.elementor-theme-builder-content-area{height:400px;}.elementor-location-header:before, .elementor-location-footer:before{content:"";display:table;clear:both;}/* Start custom CSS *//* ---------------------------------------------------------------
   Header navigation states + global focus indicator.
   Everything here is a documented V4 schema gap, not a shortcut —
   see build_header.py for why each block cannot be a style variant.
   --------------------------------------------------------------- */

/* ---------- DESKTOP: hover / focus submenu reveal ---------- */
/* Closed submenu uses opacity + pointer-events, NEVER visibility:hidden.
   visibility:hidden pulled the submenu links out of the tab order, which left
   14 of 21 header links keyboard-unreachable and made :focus-within dead code
   (the panel could never be revealed by focus because its links could never
   take focus). With opacity they stay focusable, so tabbing in reveals them —
   and because they are never display:none, they stay fully crawlable. */
@media (min-width: 1025px) {
  .elementor .nav-dropdown { pointer-events: none; }
  .elementor .nav-item:hover > .nav-dropdown,
  .elementor .nav-item:focus-within > .nav-dropdown { opacity: 1; pointer-events: auto; }
}

/* ---------- TABLET + MOBILE: hamburger panel + accordion ---------- */
@media (max-width: 1024px) {
  /* Closed panel. visibility:hidden (not opacity) is deliberate HERE and the
     opposite of the desktop rule above: a collapsed panel must NOT stay in the
     tab order, or keyboard users tab through 21 invisible links. It still
     animates, unlike display:none, and the markup stays crawlable. */
  .elementor .site-header .nav-landmark {
    visibility: hidden;
    max-height: 0;
    transition: max-height 300ms ease, visibility 0s linear 300ms;
  }
  .elementor .site-header.is-nav-open .nav-landmark {
    visibility: visible;
    max-height: calc(100vh - 4rem);
    overflow: auto;
    transition: max-height 300ms ease, visibility 0s;
  }

  /* Hamburger -> X. `.is-nav-open` is a JS state class, and V4 has no custom
     variant state, so the transform cannot live in the class variants. */
  .elementor .site-header.is-nav-open .nav-toggle-bar:nth-child(1) {
    transform: translateY(0.4375rem) rotate(45deg);
  }
  .elementor .site-header.is-nav-open .nav-toggle-bar:nth-child(2) { opacity: 0; }
  .elementor .site-header.is-nav-open .nav-toggle-bar:nth-child(3) {
    transform: translateY(-0.4375rem) rotate(-45deg);
  }

  /* Submenu accordion — same visibility reasoning as the panel. */
  .elementor .site-header .nav-item > .nav-dropdown {
    visibility: hidden;
    max-height: 0;
    transition: max-height 300ms ease, visibility 0s linear 300ms;
  }
  .elementor .site-header .nav-item.is-open > .nav-dropdown {
    visibility: visible;
    max-height: 40rem;
    transition: max-height 300ms ease, visibility 0s;
  }
  /* RTL: the chevron points inline-start (left) when closed, down when open. */
  .elementor .site-header .nav-item.is-open .nav-sub-toggle { transform: rotate(-90deg); }
}

/* ---------- Visible focus indicator (WCAG 2.4.7) ---------- */
/* Elementor's atomic base sets outline-style:none on interactive elements, so
   without this keyboard users get no indication of position. */
.elementor a:focus-visible,
.elementor button:focus-visible,
.elementor .e-form-input-base:focus-visible {
  outline: 3px solid #FF2E01;
  outline-offset: 2px;
}/* End custom CSS */