/* ============================================================
   theme.css · Beahava 3.0.0
   Components used by the theme's Elementor templates.
   Tokens only (tokens.css). Logical properties. Zero radius.
   Signature: the Threshold Line (36 px gold rule before eyebrows,
   2 px gold top edge on event cards, ◆ bullets). Nothing else is gold
   except the one primary button per viewport and link text.
   ============================================================ */

/* ---------- base ---------- */
html, body { background: var(--color-surface); }
body { color: var(--color-ink); font-family: var(--font-body); font-weight: var(--weight-body); line-height: var(--leading-body); -webkit-font-smoothing: antialiased; }
a { color: var(--color-brand-deep); }
a:hover { color: var(--color-brand-hover); }
:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
img { border-radius: 0; }
h1, h2, h3, h4, h5, h6, .elementor-heading-title { font-family: var(--font-display); font-weight: var(--weight-display); line-height: var(--leading-display); letter-spacing: normal; }
.elementor-widget-text-editor p:last-child { margin-block-end: 0; }
.bh-muted, .bh-muted .elementor-widget-container { color: var(--color-ink-muted); }
.bh-small, .bh-small .elementor-widget-container { font-size: var(--text-sm); }
bdi { unicode-bidi: isolate; }

/* ---------- eyebrow with the Threshold Line ---------- */
/* tokens.css styles .bh-eyebrow on the element itself; on Elementor widgets the class sits on the
   wrapper, so the wrapper is reset and the heading inside carries the line. */
.elementor-widget.bh-eyebrow { display: block; font-size: inherit; letter-spacing: normal; }
.elementor-widget.bh-eyebrow::before { content: none; display: none; }
.bh-eyebrow .elementor-heading-title,
p.bh-eyebrow, span.bh-eyebrow {
  display: inline-flex; align-items: center; gap: .875rem;
  font-size: var(--text-xs); font-weight: var(--weight-medium); letter-spacing: var(--tracking-eyebrow);
  color: var(--color-brand); line-height: 1.4; margin: 0;
}
.bh-eyebrow .elementor-heading-title::before,
p.bh-eyebrow::before, span.bh-eyebrow::before { content: ""; inline-size: 36px; block-size: 1px; background: var(--color-brand); flex: none; }

/* ---------- lead ---------- */
.bh-lead, .bh-lead .elementor-widget-container { font-size: var(--text-lg); color: var(--color-ink-muted); max-inline-size: var(--measure); }

/* ---------- buttons (theme shortcodes and Elementor button widgets) ---------- */
.bh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-block-size: 52px; padding-inline: var(--space-6); border: 1px solid transparent; border-radius: 0;
  font-family: var(--font-body); font-weight: var(--weight-medium); font-size: var(--text-base); line-height: 1; text-decoration: none; cursor: pointer;
  transition: background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);
}
.bh-btn--primary { background: var(--color-brand); color: var(--color-on-brand); }
.bh-btn--primary:hover { background: var(--color-brand-hover); color: var(--color-on-brand); }
.bh-btn--ghost { background: transparent; color: var(--color-ink); border-color: var(--color-line-strong); }
.bh-btn--ghost:hover { border-color: var(--color-brand); background: var(--color-brand-tint); color: var(--color-ink); }
.bh-btn svg { flex: none; }
.elementor-widget-button.bh-btn--ghost .elementor-button,
.elementor-widget-button.bh-ghost .elementor-button { background: transparent !important; color: var(--color-ink) !important; border: 1px solid var(--color-line-strong) !important; }
.elementor-widget-button.bh-btn--ghost .elementor-button:hover,
.elementor-widget-button.bh-ghost .elementor-button:hover { border-color: var(--color-brand) !important; background: var(--color-brand-tint) !important; }
.elementor-widget-button.bh-link .elementor-button { background: transparent !important; color: var(--color-brand-deep) !important; padding-inline: 0 !important; min-block-size: 44px; border: 0 !important; }
.elementor-widget-button.bh-link .elementor-button:hover { color: var(--color-brand-hover) !important; }
.elementor-button .elementor-button-icon svg { fill: currentColor; }
.bh-full .elementor-button, .bh-full .bh-btn { inline-size: 100%; }
@media (max-width: 767.98px) { .bh-full-m .elementor-button, .bh-full-m .bh-btn { inline-size: 100%; } }

/* ---------- wordmark (logo + name) ---------- */
.bh-wordmark { display: inline-flex; align-items: center; gap: var(--space-3); text-decoration: none; color: var(--color-ink); }
.bh-wordmark img { inline-size: 40px; block-size: 40px; }
.bh-wordmark b { display: block; font-weight: var(--weight-medium); font-size: var(--text-xl); color: var(--color-brand-deep); line-height: 1.1; }
.bh-wordmark span { display: block; font-size: var(--text-2xs); letter-spacing: var(--tracking-eyebrow); color: var(--color-ink-muted); margin-block-start: 2px; }

/* ---------- header ---------- */
.bh-header { border-block-end: 1px solid var(--color-line); background: var(--color-surface); }
.bh-header .elementor-nav-menu--main .elementor-item { color: var(--color-ink-muted); font-size: var(--text-sm); font-weight: var(--weight-body); padding-inline: var(--space-3); }
.bh-header .elementor-nav-menu--main .elementor-item:hover,
.bh-header .elementor-nav-menu--main .elementor-item.elementor-item-active { color: var(--color-ink); }
.bh-header .elementor-nav-menu--main .elementor-item::after { background-color: var(--color-brand) !important; block-size: 1px !important; }
.bh-header .elementor-nav-menu--dropdown { background: var(--color-surface-raised); border: 1px solid var(--color-line); }
.bh-header .elementor-nav-menu--dropdown a { color: var(--color-ink); }
.bh-header .elementor-nav-menu--dropdown a:hover, .bh-header .elementor-nav-menu--dropdown a.elementor-item-active { background: var(--color-brand-tint); color: var(--color-ink); }
.bh-header .elementor-menu-cart__toggle .elementor-button { background: transparent !important; color: var(--color-ink) !important; border: 0 !important; min-block-size: 44px; padding: 0 .5rem !important; }
.bh-header .elementor-menu-cart__toggle .elementor-button-icon-qty { background: var(--color-brand); color: var(--color-on-brand); }
.elementor-menu-cart__container .elementor-menu-cart__main { background: var(--color-surface-raised); color: var(--color-ink); border-inline-start: 1px solid var(--color-line); }
.elementor-menu-cart__product-name a, .elementor-menu-cart__subtotal { color: var(--color-ink); }
.bh-icon-btn .elementor-icon { color: var(--color-ink); fill: var(--color-ink); }
.bh-icon-btn .elementor-icon-wrapper a { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 44px; min-block-size: 44px; border: 1px solid var(--color-line-strong); }

/* ---------- sections ---------- */
.bh-section { padding-block: var(--space-section); }
.bh-subtle { background: var(--color-surface-subtle); }
.bh-hero h1, .bh-hero .elementor-heading-title { text-wrap: balance; }

/* ---------- photos with fixed ratios (no CLS) ---------- */
.bh-photo img { inline-size: 100%; object-fit: cover; display: block; }
.bh-ratio-45 img { aspect-ratio: 4 / 5; }
.bh-ratio-43 img { aspect-ratio: 4 / 3; }
.bh-ratio-32 img { aspect-ratio: 3 / 2; }
.bh-ratio-11 img { aspect-ratio: 1; }
@media (max-width: 767.98px) { .bh-ratio-45-m43 img { aspect-ratio: 4 / 3; } }

/* ---------- door cards (whole card is one link) ---------- */
.bh-door { border: 1px solid var(--color-line); text-decoration: none; color: var(--color-ink); transition: border-color var(--duration-fast) var(--ease-standard); }
.bh-door:hover { border-color: var(--color-brand); }
.bh-door .elementor-heading-title { color: var(--color-ink); }
.bh-door .bh-icon { color: var(--color-brand); }
.bh-door .bh-door__more .elementor-heading-title { color: var(--color-brand-deep); font-size: var(--text-sm); font-weight: var(--weight-medium); }

/* ---------- course cards ---------- */
.bh-course { text-decoration: none; color: var(--color-ink); }
.bh-course .elementor-heading-title { color: var(--color-ink); }
.bh-course:hover .elementor-heading-title { color: var(--color-brand-deep); }
.bh-course .bh-price .elementor-heading-title { color: var(--color-brand-deep); font-size: var(--text-sm); }
.bh-course img { aspect-ratio: 4 / 3; object-fit: cover; inline-size: 100%; border: 1px solid var(--color-line); }

/* ---------- event cards (theme [front_page_events] and plugin [bh_events]) ---------- */
.bh-events { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-4); }
@media (min-width: 768px) { .bh-events { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: var(--space-5); } }
.bh-event-card { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-5); background: var(--color-surface-subtle); border-block-start: 2px solid var(--color-brand); }
.bh-event-card__type { font-size: var(--text-xs); font-weight: var(--weight-medium); letter-spacing: .14em; color: var(--color-brand); }
.bh-event-card__title { margin: 0; font-size: var(--text-xl); }
.bh-event-card__title a { color: var(--color-ink); text-decoration: none; }
.bh-event-card__excerpt, .bh-event-card__meta { color: var(--color-ink-muted); font-size: var(--text-sm); margin: 0; }
.bh-event-card__img { inline-size: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.bh-event-card__more { display: inline-flex; align-items: center; gap: .4rem; min-block-size: 44px; margin-block-start: auto; color: var(--color-brand-deep); font-weight: var(--weight-medium); text-decoration: none; }
.bh-event-card__share { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-2); }
.bh-event-card__share a { display: inline-flex; align-items: center; justify-content: center; min-inline-size: 36px; min-block-size: 36px; color: var(--color-ink-muted); }
.bh-event-card__share a:hover { color: var(--color-brand-deep); }
[dir="ltr"] .bh-arrow, [dir="ltr"] .icon-directional { display: inline-block; transform: scaleX(-1); }

/* ---------- key facts ---------- */
.bh-sill { background: var(--color-surface-subtle); border-block-start: 2px solid var(--color-brand); }
.bh-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-5); margin: 0; }
.bh-facts dt { color: var(--color-ink-muted); font-size: var(--text-sm); }
.bh-facts dd { margin: 0; font-weight: var(--weight-medium); }
@media (max-width: 767.98px) { .bh-facts dl { grid-template-columns: 1fr; } }

/* ---------- ◆ list ---------- */
.bh-list ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.bh-list li { display: flex; gap: .75rem; align-items: baseline; color: var(--color-ink-muted); }
.bh-list li::before { content: "◆"; color: var(--color-brand); font-size: .7em; flex: none; }

/* ---------- FAQ (Elementor accordion / toggle) ---------- */
.bh-faq .elementor-accordion .elementor-accordion-item, .bh-faq .elementor-toggle .elementor-toggle-item { border: 0; border-block-end: 1px solid var(--color-line); }
.bh-faq .elementor-tab-title { padding-inline: 0 !important; padding-block: var(--space-4) !important; border: 0 !important; }
.bh-faq .elementor-tab-title a, .bh-faq .elementor-accordion-title, .bh-faq .elementor-toggle-title { color: var(--color-ink) !important; font-weight: var(--weight-medium); font-size: var(--text-lg); }
.bh-faq .elementor-tab-title .elementor-accordion-icon, .bh-faq .elementor-toggle-icon { color: var(--color-brand) !important; }
.bh-faq .elementor-tab-content { padding-inline: 0 !important; color: var(--color-ink-muted); border: 0 !important; }

/* ---------- CTA band (framed box) ---------- */
.bh-cta-band { border: 1px solid var(--color-brand); }
.bh-cta-band .elementor-field-group .elementor-field { background: var(--color-surface-subtle) !important; }

/* ---------- forms in templates (Elementor Form) ---------- */
.elementor-form .elementor-field-group .elementor-field, .elementor-form .elementor-field-textual { background: var(--color-surface-subtle) !important; color: var(--color-ink) !important; border: 1px solid var(--color-line-strong) !important; border-radius: 0 !important; min-block-size: 50px; font-family: var(--font-body); }
.elementor-form .elementor-field-textual::placeholder { color: var(--color-ink-faint); }
.elementor-form .elementor-button { border-radius: 0 !important; background: var(--color-brand) !important; color: var(--color-on-brand) !important; min-block-size: 50px; font-weight: var(--weight-medium); }
.elementor-form .elementor-button:hover { background: var(--color-brand-hover) !important; }
.elementor-form .elementor-message-success { color: var(--color-success); }
.elementor-form .elementor-message-danger, .elementor-form .elementor-error { color: var(--color-error); }
.bh-form-ghost .elementor-button { background: transparent !important; color: var(--color-brand-deep) !important; border: 1px solid var(--color-brand) !important; }

/* ---------- author strip ---------- */
.bh-author img { inline-size: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.bh-author--compact img { inline-size: 80px; block-size: 80px; aspect-ratio: 1; }

/* ---------- breadcrumbs, page hero (restyled simple pages) ---------- */
.bh-page-hero { background: var(--color-surface-subtle); border-block-end: 1px solid var(--color-line); }
.elementor-widget-breadcrumbs, .elementor-widget-breadcrumbs a, #breadcrumbs, #breadcrumbs a { color: var(--color-ink-muted); font-size: var(--text-sm); }
.elementor-widget-breadcrumbs a:hover { color: var(--color-brand-deep); }
.elementor-widget-divider .elementor-divider-separator { border-color: var(--color-line) !important; }

/* ---------- UAEL posts and products (cards on dark) ---------- */
.uael-post__bg-wrap, .uael-post-wrapper .uael-post__inner-wrap, .uael-woocommerce .product, .uael-woo-products-summary-wrap { background: var(--color-surface-subtle) !important; border-radius: 0 !important; box-shadow: none !important; }
.uael-post__title a, .uael-woo-products .woocommerce-loop-product__title { color: var(--color-ink) !important; font-family: var(--font-display); font-weight: var(--weight-display); }
.uael-post__title a:hover { color: var(--color-brand-deep) !important; }
.uael-post__excerpt, .uael-post__meta-data, .uael-post__meta-data a { color: var(--color-ink-muted) !important; }
.uael-post__read-more, .uael-post__cta { background: transparent !important; color: var(--color-brand-deep) !important; border: 0 !important; border-radius: 0 !important; padding-inline: 0 !important; }
.uael-post-image img, .uael-post__thumbnail img { border-radius: 0 !important; }
.uael-post__separator { background: var(--color-line) !important; }
.uael-woocommerce .button, .uael-woo-products .button { background: var(--color-brand) !important; color: var(--color-on-brand) !important; border-radius: 0 !important; }

/* ---------- footer ---------- */
.bh-footer { background: var(--color-surface); border-block-start: 1px solid var(--color-line); color: var(--color-ink-muted); }
.bh-footer a { color: var(--color-ink-muted); text-decoration: none; }
.bh-footer a:hover { color: var(--color-brand-deep); }
.bh-footer .bh-footer__title .elementor-heading-title { font-size: var(--text-xs); letter-spacing: var(--tracking-eyebrow); color: var(--color-brand); font-weight: var(--weight-medium); }
.bh-footer .elementor-icon-list-text { color: var(--color-ink-muted); }
.bh-footer .elementor-icon-list-icon svg, .bh-footer .elementor-icon-list-icon i { color: var(--color-brand); fill: var(--color-brand); }
.bh-footer .elementor-social-icon { background: transparent !important; border: 1px solid var(--color-line-strong); border-radius: 0 !important; }
.bh-footer .elementor-social-icon i, .bh-footer .elementor-social-icon svg { color: var(--color-ink) !important; fill: var(--color-ink) !important; }
.bh-footer .elementor-social-icon:hover { border-color: var(--color-brand); }
.bh-footer-bottom { border-block-start: 1px solid var(--color-line); font-size: var(--text-xs); color: var(--color-ink-faint); }

/* ---------- landing (canvas) ---------- */
.bh-ltr { direction: ltr; text-align: left; }
.bh-ltr .elementor-heading-title, .bh-ltr .elementor-widget-text-editor { text-align: left; }
.bh-landing-head { border-block-end: 1px solid var(--color-line); }
.bh-lang-toggle .elementor-button { min-block-size: 40px !important; padding: 0 .75rem !important; font-size: var(--text-sm) !important; background: transparent !important; color: var(--color-ink-muted) !important; border: 1px solid var(--color-line-strong) !important; }
.bh-lang-toggle.is-current .elementor-button { background: var(--color-brand) !important; color: var(--color-on-brand) !important; border-color: var(--color-brand) !important; }

/* ---------- mobile sticky CTA ---------- */
.bh-sticky-cta { position: fixed; inset-inline: 0; inset-block-end: 0; z-index: 90; padding: .5rem 1rem; background: var(--color-surface); border-block-start: 1px solid var(--color-line); }
.bh-sticky-cta .bh-btn { inline-size: 100%; min-block-size: 48px; }
body.bh-has-sticky { padding-block-end: 64px; }
@media (min-width: 768px) { .bh-sticky-cta { display: none !important; } body.bh-has-sticky { padding-block-end: 0; } }

/* ---------- mobile menu popup ---------- */
.bh-mobile-menu .elementor-button { background: transparent !important; color: var(--color-ink) !important; border: 0 !important; border-block-end: 1px solid var(--color-line) !important; inline-size: 100%; justify-content: flex-start; min-block-size: 52px; font-size: var(--text-lg) !important; font-weight: var(--weight-body) !important; padding-inline: 0 !important; }
.bh-mobile-menu .elementor-button:hover { color: var(--color-brand-deep) !important; }
.bh-mobile-menu .bh-mobile-menu__cta .elementor-button { background: var(--color-brand) !important; color: var(--color-on-brand) !important; justify-content: center; border: 0 !important; margin-block-start: var(--space-4); }
.dialog-type-lightbox.elementor-popup-modal .dialog-close-button svg, .elementor-popup-modal .dialog-close-button i { color: var(--color-ink); fill: var(--color-ink); }

/* ---------- no entrance animations, reduced motion ---------- */
.elementor-invisible { visibility: visible !important; }
.animated { animation: none !important; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; } }

/* Loop item cards (replace Ultimate Addons posts/products, 3.1.0) */
.bh-lcard { block-size: 100%; background: var(--color-surface-subtle); border-block-start: 2px solid var(--color-brand); padding-block-end: var(--space-5); }
.bh-lcard > .e-con-inner, .bh-lcard { gap: var(--space-2); }
.bh-lcard .elementor-widget:not(.bh-lcard__media) { padding-inline: var(--space-5); }
.bh-lcard__media img { display: block; inline-size: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 0; }
.bh-lcard--product .bh-lcard__media img { aspect-ratio: 1 / 1; }
.bh-lcard__title .elementor-heading-title { margin: 0; font-size: var(--text-xl); line-height: 1.3; }
.bh-lcard__title .elementor-heading-title a { color: var(--color-ink); text-decoration: none; }
.bh-lcard__title .elementor-heading-title a:hover { color: var(--color-brand-deep); }
.bh-lcard__excerpt, .bh-lcard__excerpt p { margin: 0; color: var(--color-ink-muted); font-size: var(--text-sm); }
.bh-lcard__price .elementor-heading-title { margin: 0; color: var(--color-brand-deep); font-size: var(--text-base); font-weight: var(--weight-medium); }
.bh-lcard__price del { color: var(--color-ink-muted); margin-inline-end: .4em; }
.bh-lcard__cta { margin-block-start: auto; }
.bh-lcard__cta .elementor-button { background: transparent; color: var(--color-brand-deep); padding-inline: 0; min-block-size: 44px; border: 0; }
.bh-lcard__cta .elementor-button:hover { color: var(--color-ink); background: transparent; }
.e-loop__load-more .elementor-button { background: transparent; color: var(--color-brand-deep); border: 1px solid var(--color-line-strong); }
.bh-gallery .swiper-slide-image { aspect-ratio: 4 / 3; object-fit: cover; inline-size: 100%; }
.bh-gallery .elementor-swiper-button { color: var(--color-brand); }

/* Desktop header: logo and actions keep their size, the menu takes the rest and starts next to the logo (3.1.1) */
.bh-header > .e-con:first-child, .bh-header > .e-con:last-child { flex: 0 0 auto; inline-size: auto; }
.bh-header .bh-header__nav, .bh-header > .e-con:nth-child(2) { flex: 1 1 auto; inline-size: auto; min-inline-size: 0; justify-content: flex-start; align-items: flex-start; }
.bh-header .elementor-nav-menu--main .elementor-nav-menu { flex-wrap: nowrap; justify-content: flex-start; }
.bh-header .elementor-nav-menu--main .elementor-nav-menu > li > a { white-space: nowrap; }
.bh-header .elementor-widget-nav-menu { inline-size: auto; }
@media (min-width: 1025px) and (max-width: 1440px) {
  .bh-header .elementor-nav-menu--main .elementor-nav-menu > li > a { padding-inline: 7px; font-size: .875rem; }
}

/* 3.1.2: header and footer share the content grid (boxed width 1312px) on desktop */
@media (min-width: 1025px) {
  .bh-header { padding-inline: max(64px, calc((100% - 1312px) / 2)) !important; }
}
/* 3.1.2: mobile header on one line */
@media (max-width: 1024px) {
  .bh-header { flex-wrap: nowrap !important; gap: 8px !important; padding-inline: 16px !important; }
  .bh-header > .e-con:first-child { flex: 1 1 auto !important; inline-size: auto !important; min-inline-size: 0; }
  .bh-header > .e-con:last-child { flex: 0 0 auto !important; inline-size: auto !important; gap: 4px !important; }
  .bh-header .bh-wordmark img { inline-size: 34px; block-size: 34px; }
  .bh-header .bh-wordmark b { font-size: 20px; }
  .bh-header .bh-wordmark span span { font-size: 11px; letter-spacing: .06em; white-space: nowrap; }
  .bh-header .bh-icon-btn .elementor-icon { inline-size: 40px; block-size: 40px; }
}
/* 3.1.2: privacy line under forms */
.bh-form-privacy { margin: 12px 0 0; font-size: var(--text-xs, .8125rem); line-height: 1.5; color: var(--color-ink-muted); }
.bh-form-privacy a { color: var(--color-brand-deep); text-decoration: underline; text-underline-offset: 3px; }
.bh-form-privacy a:hover { color: var(--color-ink); }

/* 3.2.2: breadcrumbs (Rank Math inside the Elementor widget). The widget sized only the links,
   so the separator and the current page fell back to body text size. One size, current page in ink. */
.elementor-widget-breadcrumbs .rank-math-breadcrumb,
.elementor-widget-breadcrumbs .rank-math-breadcrumb p,
.elementor-widget-breadcrumbs #breadcrumbs { margin: 0; font-family: var(--font-body); font-size: var(--text-sm) !important; font-weight: var(--weight-body, 300); line-height: 1.6; color: var(--color-ink-muted); }
.elementor-widget-breadcrumbs .rank-math-breadcrumb a,
.elementor-widget-breadcrumbs #breadcrumbs a { font-size: inherit !important; color: var(--color-ink-muted) !important; text-decoration: none; }
.elementor-widget-breadcrumbs .rank-math-breadcrumb a:hover { color: var(--color-brand-deep) !important; }
.elementor-widget-breadcrumbs .rank-math-breadcrumb .separator { font-size: inherit !important; color: var(--color-line-strong); margin-inline: .35em; }
.elementor-widget-breadcrumbs .rank-math-breadcrumb .last,
.elementor-widget-breadcrumbs #breadcrumbs .breadcrumb_last { font-size: inherit !important; color: var(--color-ink) !important; font-weight: var(--weight-body, 300); }

/* 3.2.3: contact page */
.bh-page-head .elementor-widget-breadcrumbs { margin-block-start: 4px; }
.bh-contact-card { background: var(--color-surface-subtle); border: 1px solid var(--color-line); border-inline-start: 2px solid var(--color-line-strong); text-decoration: none !important; transition: background-color .2s ease, border-color .2s ease; }
.bh-contact-card:hover, .bh-contact-card:focus-visible { background: var(--color-surface-raised); border-inline-start-color: var(--color-brand); }
.bh-contact-card--primary { border-inline-start-color: var(--color-brand); background: var(--color-brand-tint); }
.bh-contact-card__icon .elementor-icon { inline-size: 48px; block-size: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--color-line-strong); color: var(--color-brand) !important; fill: var(--color-brand) !important; font-size: 20px !important; }
.bh-contact-card__icon .elementor-icon svg { inline-size: 20px; block-size: 20px; fill: var(--color-brand); }
.bh-contact-card__title .elementor-heading-title { margin: 0; color: var(--color-ink); }
.bh-contact-card__line, .bh-contact-card__line p { margin: 0; color: var(--color-ink-muted); font-size: var(--text-sm); }
.bh-form-card { background: var(--color-surface-subtle); border: 1px solid var(--color-line); border-block-start: 2px solid var(--color-brand); }
.bh-form-card .elementor-field-label { color: var(--color-ink); font-size: var(--text-sm); font-weight: var(--weight-medium); }
.bh-form-card .elementor-field-textual { min-block-size: 48px; }
.bh-map iframe { display: block; filter: grayscale(1) invert(.92) sepia(.25) contrast(.9); border: 1px solid var(--color-line); }
/* 3.2.4: primary buttons printed by shortcodes ([bh_whatsapp]) inherited the gold link colour inside some widgets */
a.bh-btn.bh-btn--primary, a.bh-btn.bh-btn--primary:visited, a.bh-btn.bh-btn--primary:hover { color: var(--color-on-brand) !important; }
a.bh-btn.bh-btn--primary svg { fill: currentColor; color: currentColor; }
/* 3.2.4: page head directly followed by content: no double section padding */
.e-con.bh-page-head { padding-bottom: 0 !important; }
