/* APSAIDAL global header interaction shell.
 * Critical menu visibility lives in Core so Elementor cannot expose the panel
 * when its generated/custom CSS is stale or unavailable.
 */

.elementor-location-header .elementor-element-772840db {
  position: relative;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  column-gap: 18px !important;
}

.elementor-location-header .elementor-element-772840db > .elementor-element {
  flex: 0 0 auto !important;
}

.elementor-location-header .elementor-element-3346eddd { order: 1; }
.elementor-location-header .elementor-element-c6186db9 { order: 2; }
.elementor-location-header .elementor-element-8bdc37c7 { order: 3; }
.elementor-location-header .elementor-element-79955deb { order: 4; }
.elementor-location-header .elementor-element-f5271ecc { order: 5; }

.elementor-location-header .elementor-element-79955deb,
.elementor-location-header .elementor-element-f5271ecc,
.elementor-location-header .elementor-element-8bdc37c7 {
  display: block !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
}

.elementor-location-header .elementor-element-79955deb,
.elementor-location-header .elementor-element-f5271ecc,
.elementor-location-header .elementor-element-8bdc37c7 {
  cursor: pointer;
}

.elementor-location-header .elementor-element-c0224b75 {
  position: absolute !important;
  top: 100% !important;
  right: max(28px, calc((100vw - 1280px) / 2 + 28px)) !important;
  width: 310px !important;
  max-width: calc(100vw - 56px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 0 !important;
  background: rgba(0, 0, 0, .82) !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .22) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 10020 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-8px) !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}

.elementor-location-header .elementor-element-c0224b75.aps-menu-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

.elementor-location-header .elementor-element-c0224b75 > .elementor-element {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

.elementor-location-header .elementor-element-c0224b75 .elementor-heading-title,
.elementor-location-header .elementor-element-c0224b75 .elementor-heading-title a {
  width: 100% !important;
}

.elementor-location-header .elementor-element-c0224b75 .elementor-heading-title a {
  display: block !important;
  box-sizing: border-box;
  padding: 11px 10px !important;
  color: #fff !important;
  line-height: 1.25 !important;
  text-decoration: none !important;
  border-left: 2px solid transparent;
}

.elementor-location-header .elementor-element-c0224b75 .elementor-heading-title a:hover,
.elementor-location-header .elementor-element-c0224b75 .elementor-heading-title a:focus-visible {
  color: #fff !important;
  background: rgba(255, 255, 255, .06) !important;
  border-left-color: #6F1822 !important;
  padding-left: 14px !important;
  outline: none;
}

.elementor-location-header .elementor-element-598e3ad0 {
  display: none !important;
}

@media (max-width: 1024px) {
  .elementor-location-header .elementor-element-772840db {
    column-gap: 14px !important;
  }

  .elementor-location-header .elementor-element-c0224b75 {
    right: 22px !important;
    width: 300px !important;
    max-width: calc(100vw - 44px) !important;
  }
}

@media (max-width: 767px) {
  .elementor-location-header .elementor-element-772840db {
    column-gap: 10px !important;
  }

  .elementor-location-header .elementor-element-c0224b75 {
    right: 14px !important;
    width: min(300px, calc(100vw - 28px)) !important;
    max-width: calc(100vw - 28px) !important;
  }
}


/* Elementor editor: interaction panels must never cover the editing canvas. */
body.elementor-editor-active .elementor-location-header .elementor-element-c0224b75,
body.elementor-editor-preview .elementor-location-header .elementor-element-c0224b75,
.elementor-editor-active .elementor-location-header .elementor-element-c0224b75 {
  display: none !important;
}

/* HOME responsive menu is generated from the current primary navigation. */
.elementor-location-header .aps-home-responsive-menu {
  position: absolute !important;
  top: 100% !important;
  right: 16px !important;
  width: min(320px, calc(100vw - 32px)) !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  background: rgba(0,0,0,.86) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.22) !important;
  z-index: 10030 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-8px) !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}

.elementor-location-header .aps-home-responsive-menu.aps-menu-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

.elementor-location-header .aps-home-responsive-menu a {
  display: block !important;
  padding: 11px 14px !important;
  color: #fff !important;
  text-decoration: none !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}

.elementor-location-header .aps-home-responsive-menu a:hover,
.elementor-location-header .aps-home-responsive-menu a:focus-visible {
  background: rgba(255,255,255,.06) !important;
  color: #fff !important;
  outline: none;
}

body.elementor-editor-active .aps-home-responsive-menu,
body.elementor-editor-preview .aps-home-responsive-menu {
  display: none !important;
}


/* Header menu click target hardening — 2026-09-23.
 * Keep the existing desktop composition untouched while ensuring the menu
 * glyph itself remains the top interactive target in both Elementor headers. */
.elementor-location-header .elementor-element-8bdc37c7,
.elementor-location-header .elementor-element-8c5e205,
.elementor-location-header .aps-menu-toggle-open {
  position: relative !important;
  z-index: 10040 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.elementor-location-header .elementor-element-8bdc37c7 .elementor-heading-title,
.elementor-location-header .elementor-element-8c5e205 .elementor-heading-title,
.elementor-location-header .elementor-element-8bdc37c7 a,
.elementor-location-header .elementor-element-8c5e205 a {
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none;
}


/* Runtime menu bridge: detached from Elementor-generated ids/containers. */
.aps-runtime-header-menu {
  position: fixed !important;
  width: min(320px, calc(100vw - 28px)) !important;
  max-width: calc(100vw - 28px) !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  display: block !important;
  background: rgba(0, 0, 0, .70) !important;
  border: 1px solid rgba(255, 255, 255, .08) !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .24) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 2147480000 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-8px) !important;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}

.aps-runtime-header-menu.aps-runtime-menu-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

.aps-runtime-header-menu a,
.aps-runtime-header-menu button {
  display: block !important;
  box-sizing: border-box;
  width: 100% !important;
  margin: 0 !important;
  padding: 11px 14px !important;
  border: 0 !important;
  border-left: 2px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #fff !important;
  font-family: "Source Sans Pro", sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  text-align: left !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

.aps-runtime-header-menu a:hover,
.aps-runtime-header-menu a:focus-visible,
.aps-runtime-header-menu button:hover,
.aps-runtime-header-menu button:focus-visible {
  color: #fff !important;
  background: rgba(255, 255, 255, .07) !important;
  border-left-color: #6F1822 !important;
  outline: none !important;
}

.elementor-location-header [data-aps-header-menu-toggle="1"] {
  position: relative !important;
  z-index: 2147480001 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  user-select: none;
}


/* Reduced header composition — 2026-09-23.
 * Tablet keeps search, language, Log In, Register and hamburger in the action rail.
 * Phone keeps search, language and hamburger; Log In/Register move into the menu. */
.aps-header-language-control {
  display: none;
}

@media (max-width: 1024px) {
  /* Real Elementor language controls must survive saved responsive visibility
   * flags and stale generated CSS. The hidden global template has its own class. */
  .elementor-location-header .aps-home-header-language,
  .elementor-location-header .elementor-widget-apsaidal-header-language-selector {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
  }

  .elementor-location-header .aps-home-header-language .aps-header-language-control,
  .elementor-location-header .elementor-widget-apsaidal-header-language-selector .aps-header-language-control {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

@media (max-width: 1024px) {
  .elementor-location-header .aps-header-search-direct,
  .elementor-location-header .elementor-element-3346eddd,
  .elementor-location-header .elementor-element-dbe6c62,
  .elementor-location-header .aps-header-language-native,
  .elementor-location-header .aps-header-menu-direct {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .elementor-location-header .aps-header-search-direct,
  .elementor-location-header .elementor-element-3346eddd,
  .elementor-location-header .elementor-element-dbe6c62 {
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 26px !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  .elementor-location-header .aps-header-language-native {
    align-items: center !important;
    width: auto !important;
    min-width: 38px !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }

  .elementor-location-header .aps-header-language-native .aps-header-lang,
  .elementor-location-header .aps-header-language-native .aps-header-lang-fallback {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .elementor-location-header .aps-header-language-control {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 38px !important;
    margin: 0 !important;
    z-index: 100050 !important;
  }

  .aps-header-language-control__trigger {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    min-width: 38px !important;
    padding: 6px 2px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #5f6368 !important;
    font: inherit !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    cursor: pointer !important;
  }

  .aps-header-language-control__chevron {
    font-size: 9px !important;
    line-height: 1 !important;
  }

  .aps-header-language-control__fallback {
    position: absolute !important;
    top: calc(100% + 6px) !important;
    right: 0 !important;
    min-width: 56px !important;
    padding: 6px 0 !important;
    border: 1px solid #e9e5e0 !important;
    background: #fff !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.08) !important;
    z-index: 100060 !important;
  }

  .aps-header-language-control__fallback[hidden] {
    display: none !important;
  }

  .aps-header-language-control__fallback a {
    display: block !important;
    padding: 6px 10px !important;
    color: #5f6368 !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-decoration: none !important;
    white-space: nowrap !important;
  }

  .aps-header-language-control__fallback a.is-current {
    color: #6f1822 !important;
    font-weight: 700 !important;
  }

  .elementor-location-header .aps-header-menu-direct {
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 24px !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
  }
}

@media (max-width: 767px) {
  .elementor-location-header .aps-header-auth-direct {
    display: none !important;
  }

  .elementor-location-header .aps-header-search-direct,
  .elementor-location-header .elementor-element-3346eddd,
  .elementor-location-header .elementor-element-dbe6c62 {
    min-width: 24px !important;
  }

  .elementor-location-header .aps-header-language-native,
  .elementor-location-header .aps-header-language-control {
    min-width: 34px !important;
  }

  .aps-header-language-control__trigger {
    min-width: 34px !important;
    font-size: 13px !important;
  }
}


/* Canonical responsive controls — one language selector and one menu toggle. */
@media (max-width: 1024px) {
  .elementor-location-header .aps-header-language-source {
    display: none !important;
  }

  .elementor-location-header .aps-header-menu-duplicate {
    display: none !important;
  }

  .elementor-location-header [data-aps-runtime-language-control="1"] {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  .elementor-location-header .aps-header-search-direct,
  .elementor-location-header [data-aps-search-trigger="1"] {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}


/* Tablet action rail order — canonical across both Elementor headers.
 * Required order: search, language, Log In, Register, hamburger. */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-location-header .aps-header-search-direct,
  .elementor-location-header [data-aps-search-trigger="1"] {
    order: 1 !important;
  }

  .elementor-location-header [data-aps-runtime-language-control="1"],
  .elementor-location-header .aps-header-language-control {
    order: 2 !important;
  }

  .elementor-location-header .aps-header-login-direct,
  .elementor-location-header .aps-header-login-widget,
  .elementor-location-header .aps-header-login-slot {
    order: 3 !important;
  }

  .elementor-location-header .aps-header-register-direct,
  .elementor-location-header .aps-header-register-widget,
  .elementor-location-header .aps-header-register-slot {
    order: 4 !important;
  }

  .elementor-location-header .aps-header-menu-direct {
    order: 5 !important;
  }
}


@media (max-width: 1024px) {
  .elementor-location-header .aps-header-search-duplicate {
    display: none !important;
  }
}


@media (max-width: 1024px) {
  .elementor-location-header .aps-header-search-global-duplicate {
    display: none !important;
  }
}


/* Tablet auth labels must never collapse: the apparent "second search icon"
 * was the compressed "Lo" of Log In, not another search widget. */
@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-location-header .aps-header-login-direct,
  .elementor-location-header .aps-header-register-direct,
  .elementor-location-header .aps-header-auth-direct {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    flex-basis: auto !important;
    margin: 0 !important;
    transform: none !important;
  }

  .elementor-location-header .aps-header-login-direct .elementor-heading-title,
  .elementor-location-header .aps-header-register-direct .elementor-heading-title,
  .elementor-location-header .aps-header-auth-direct .elementor-heading-title,
  .elementor-location-header .aps-header-login-direct a,
  .elementor-location-header .aps-header-register-direct a,
  .elementor-location-header .aps-header-auth-direct a {
    display: inline-block !important;
    width: auto !important;
    min-width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    line-height: 1.2 !important;
  }
}


@media (max-width: 1024px) {
  .elementor-location-header .aps-header-search-glyph-duplicate,
  .elementor-location-header .aps-header-search-widget-glyph-duplicate {
    display: none !important;
  }
}


/* Header 2.0: search must remain visible on reduced layouts. */
@media (max-width: 1024px) {
  header[data-elementor-id="715"] .elementor-widget-icon:has(a[href*="?s="]),
  header[data-elementor-id="715"] .elementor-widget-icon:has(a[href*="/search"]) {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}


/* Structural responsive header pass — 2026-09-24.
 * Core owns sticky positioning; Elementor's sticky module is removed from the
 * header templates by the responsive agent. */
.aps-header-language-template[data-aps-global-language-control="1"] {
  display: none !important;
}

body:not(.aps-home-header-stack-enabled):not(.elementor-editor-active)
header[data-elementor-id="715"].elementor-location-header {
  position: sticky !important;
  top: 0 !important;
  z-index: 9999 !important;
  width: 100% !important;
}

body.admin-bar:not(.aps-home-header-stack-enabled):not(.elementor-editor-active)
header[data-elementor-id="715"].elementor-location-header {
  top: 32px !important;
}

@media (max-width: 782px) {
  body.admin-bar:not(.aps-home-header-stack-enabled):not(.elementor-editor-active)
  header[data-elementor-id="715"].elementor-location-header {
    top: 0 !important;
  }
}

@media (max-width: 767px) {
  .elementor-location-header .aps-header-search-direct,
  .elementor-location-header [data-aps-search-trigger="1"] {
    order: 1 !important;
  }

  .elementor-location-header [data-aps-runtime-language-control="1"],
  .elementor-location-header .aps-header-language-control {
    order: 2 !important;
  }

  .elementor-location-header .aps-header-menu-direct {
    order: 3 !important;
  }
}
