/* -------------------------------- */
/* CPaT Sticky Header               */
/* -------------------------------- */

/* Default state: transparent header with faint dark overlay */
header.elementor {
  transition: background-color 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease;
}
header:not(:has(.elementor-sticky--effects)) .e-con.elementor-sticky {
  background-color: rgba(31, 42, 46, 0.5) !important;
}

/* Scrolled state: solid background */
header .elementor-sticky--effects {
  background-color: rgba(255, 255, 255, 0.95) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

/* CC-CPAT-0169: backdrop-filter relocated to pseudo-element so the
   Header Wrapper does not establish a containing block for fixed-position
   descendants (off-canvas overlay). Visual treatment unchanged. */
header:not(:has(.elementor-sticky--effects)) .e-con.elementor-sticky::before,
header .elementor-sticky--effects::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: -1;
  transition: backdrop-filter 0.3s ease;
}

header:not(:has(.elementor-sticky--effects)) .e-con.elementor-sticky::before {
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

header .elementor-sticky--effects::before {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Logo switch on scroll */
header .c-logo {
  display: none;
}
header .elementor-sticky--effects .c-logo {
  display: inline-block;
}
header .elementor-sticky--effects .w-logo {
  display: none;
}

/* Nav text color: white by default (transparent state) */
header .cpat-nav-text,
header .elementor-widget-n-menu .e-n-menu-title-text,
header .elementor-widget-n-menu .e-n-menu-item .e-n-menu-title .e-n-menu-title-text {
  color: rgba(255, 255, 255, 0.9) !important;
  transition: color 0.3s ease;
}

/* Nav text color: dark on scroll */
header .elementor-sticky--effects .cpat-nav-text,
header .elementor-sticky--effects .elementor-widget-n-menu .e-n-menu-title-text,
header .elementor-sticky--effects .elementor-widget-n-menu .e-n-menu-item .e-n-menu-title .e-n-menu-title-text {
  color: #212D33 !important;
}

/* Nav hover color (both states) */
header .elementor-widget-n-menu .e-n-menu-item:hover .e-n-menu-title .e-n-menu-title-text {
  color: #72BE44 !important;
}

/* Prevent green highlight on expanded parent items in dropdowns */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown a.highlighted {
  color: inherit !important;
  background: transparent !important;
}
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown a.highlighted {
  color: rgba(255, 255, 255, 0.9) !important;
}
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown a.highlighted {
  color: #1F262E !important;
}

/* CTA buttons: transparent state */
header .cpat-cta-outline .elementor-button {
  border-color: rgba(255, 255, 255, 0.4) !important;
  color: #ffffff !important;
  background: transparent !important;
  transition: all 0.3s ease;
}
header .cpat-cta-outline .elementor-button:hover {
  border-color: #ffffff !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

/* CTA buttons: scrolled state */
header .elementor-sticky--effects .cpat-cta-outline .elementor-button {
  border-color: #72BE44 !important;
  color: #72BE44 !important;
  background: transparent !important;
}
header .elementor-sticky--effects .cpat-cta-outline .elementor-button:hover {
  background: rgba(114, 190, 68, 0.08) !important;
}

/* Mobile hamburger icon: white by default */
header .cpat-mobile-toggle svg,
header .cpat-mobile-toggle i {
  color: #ffffff !important;
  fill: #ffffff !important;
  transition: color 0.3s ease, fill 0.3s ease;
}

/* Mobile hamburger icon: dark on scroll */
header .elementor-sticky--effects .cpat-mobile-toggle svg,
header .elementor-sticky--effects .cpat-mobile-toggle i {
  color: #212D33 !important;
  fill: #212D33 !important;
}

/* Chevron icons: white by default */
header .elementor-widget-n-menu .e-n-menu-title svg {
  color: rgba(255, 255, 255, 0.7) !important;
  fill: rgba(255, 255, 255, 0.7) !important;
  transition: color 0.3s ease, fill 0.3s ease;
}

/* Chevron icons: dark on scroll */
header .elementor-sticky--effects .elementor-widget-n-menu .e-n-menu-title svg {
  color: #212D33 !important;
  fill: #212D33 !important;
}

/* -------------------------------- */
/* Mega Menu Dropdown Panels        */
/* -------------------------------- */

/* Dropdown container base styling */
header .elementor-widget-n-menu .e-n-menu-content {
  transition: opacity 0.25s ease, transform 0.25s ease;
}

/* Dropdown panel background and shape */
header .elementor-widget-n-menu nav.elementor-nav-menu--dropdown {
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-radius: 6px !important;
  box-shadow: rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.1) 0px 4px 6px -4px !important;
  border: none !important;
  margin-top: 8px !important;
  padding: 16px !important;
  width: 256px !important;
  overflow: visible !important;
}

/* Dropdown in transparent state: dark background */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu nav.elementor-nav-menu--dropdown {
  background: rgba(31, 42, 46, 0.95) !important;
}

/* Dropdown link styling */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown a {
  padding: 8px !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 14px !important;
  border-radius: 6px !important;
  transition: color 0.15s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.15s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Dropdown link colors: transparent state */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown a {
  color: rgba(255, 255, 255, 0.9) !important;
}
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown a:hover {
  color: #FFFFFF !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

/* Dropdown link colors: scrolled state */
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown a {
  color: #212D33 !important;
}
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown a:hover {
  color: #1F262E !important;
  background: #F3F5F6 !important;
}

/* -------------------------------- */
/* Dropdown Sub-Menu Flyout         */
/* (Pilot, etc. - nested menus)     */
/* -------------------------------- */

/* Allow flyout to escape the mega menu panel */
header .elementor-widget-n-menu .e-n-menu-content,
header .elementor-widget-n-menu .e-n-menu-content > .e-con,
header .elementor-widget-n-menu .e-n-menu-content .e-con-inner {
  overflow: visible !important;
}

/* Parent item with children: anchor for absolute flyout */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children {
  position: relative !important;
}

/* Flyout panel: hidden by default, styled to match parent dropdown */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown ul.sub-menu {
  position: absolute !important;
  top: -16px !important;
  left: calc(100% + 8px) !important;
  right: auto !important;
  width: 240px !important;
  min-width: 240px !important;
  margin: 0 !important;
  padding: 16px !important;
  border: none !important;
  border-radius: 6px !important;
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  box-shadow: rgba(0, 0, 0, 0.1) 0px 10px 15px -3px, rgba(0, 0, 0, 0.1) 0px 4px 6px -4px !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateX(-4px) !important;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease !important;
  z-index: 10 !important;
}

/* Flyout: dark background in transparent header state */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown ul.sub-menu {
  background: rgba(31, 42, 46, 0.95) !important;
}

/* Flyout: flip to the left when JS detects insufficient viewport space */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children.flyout-flip > ul.sub-menu {
  left: auto !important;
  right: calc(100% + 8px) !important;
  transform: translateX(4px) !important;
}

/* Flyout: show on hover, focus, or JS-toggled .flyout-open */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children:hover > ul.sub-menu,
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children:focus-within > ul.sub-menu,
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children.flyout-open > ul.sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(0) !important;
}

/* Hover bridge: invisible 8px spacer between parent li and flyout so the
   mouse can cross the visual gap without breaking :hover */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children > ul.sub-menu::before {
  content: '';
  position: absolute;
  top: 0;
  left: -8px;
  width: 8px;
  height: 100%;
  pointer-events: auto;
}
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children.flyout-flip > ul.sub-menu::before {
  left: auto;
  right: -8px;
}

/* Sub-menu link base styling */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-menu a {
  font-size: 14px !important;
  padding: 8px !important;
  line-height: 14px !important;
  border-radius: 6px !important;
}

/* Sub-menu link colors: transparent header state */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-menu a {
  color: rgba(255, 255, 255, 0.9) !important;
}
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-menu a:hover {
  color: #FFFFFF !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

/* Sub-menu link colors: scrolled header state */
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-menu a {
  color: #212D33 !important;
}
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-menu a:hover {
  color: #1F262E !important;
  background: #F3F5F6 !important;
}

/* Sub-arrow: rotate to point right (indicates flyout direction) */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-arrow {
  display: flex !important;
  align-items: center !important;
}
header .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-arrow svg {
  width: 12px !important;
  height: 12px !important;
  transform: rotate(-90deg) !important;
  transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

/* Sub-arrow: point left when flyout is flipped */
header .elementor-widget-n-menu .elementor-nav-menu--dropdown li.menu-item-has-children.flyout-flip > a .sub-arrow svg {
  transform: rotate(90deg) !important;
}

/* Sub-arrow color: transparent header state */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-arrow svg {
  fill: rgba(255, 255, 255, 0.9) !important;
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Sub-arrow color: scrolled header state */
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown .sub-arrow svg {
  fill: #1F262E !important;
  color: #1F262E !important;
}

/* Dropdown width and background */
header .elementor-widget-n-menu .e-n-menu-content .e-con {
  width: auto !important;
  min-width: 256px !important;
  max-width: 256px !important;
  background: transparent !important;
}

/* Directional slide keyframes */
@keyframes slideFromRight {
  from { transform: translateX(20px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}
@keyframes slideFromLeft {
  from { transform: translateX(-20px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}

/* Directional slide: from right */
header .elementor-widget-n-menu .e-n-menu-item[data-direction="right"] .e-n-menu-content.e-active {
  animation: slideFromRight 0.25s ease forwards !important;
}

/* Directional slide: from left */
header .elementor-widget-n-menu .e-n-menu-item[data-direction="left"] .e-n-menu-content.e-active {
  animation: slideFromLeft 0.25s ease forwards !important;
}

/* -------------------------------- */
/* Off-Canvas Mobile Menu            */
/* -------------------------------- */

/* Override child theme bullet styling in header off-canvas menu */
header .elementor-widget-off-canvas ul.elementor-nav-menu li:before {
  display: none !important;
  content: none !important;
}

/* -------------------------------- */
/* Dropdown Active Page State       */
/* -------------------------------- */

/* Active page link (top-level dropdown): transparent header state */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown li.current-menu-item > a,
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown li.current-menu-ancestor > a,
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown a.elementor-item-active {
  color: #72BE44 !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

/* Active page link (top-level dropdown): scrolled header state */
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown li.current-menu-item > a,
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown li.current-menu-ancestor > a,
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown a.elementor-item-active {
  color: #72BE44 !important;
  background: rgba(200, 200, 200, 0.15) !important;
}

/* Active page link (sub-menu / flyout): transparent header state */
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown ul.sub-menu li.current-menu-item > a,
header:not(:has(.elementor-sticky--effects)) .elementor-widget-n-menu .elementor-nav-menu--dropdown ul.sub-menu a.elementor-item-active {
  color: #72BE44 !important;
  background: rgba(255, 255, 255, 0.1) !important;
}

/* Active page link (sub-menu / flyout): scrolled header state */
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown ul.sub-menu li.current-menu-item > a,
header .elementor-sticky--effects .elementor-widget-n-menu .elementor-nav-menu--dropdown ul.sub-menu a.elementor-item-active {
  color: #72BE44 !important;
  background: rgba(200, 200, 200, 0.15) !important;
}