/* Site-fix overrides layered on top of Webflow's CSS. Webflow's runtime
   doesn't reliably initialize dropdowns / mobile nav on pages where
   the form module crashed the init chain, so we drive it ourselves. */

/* --- Dropdown menus (desktop hover + keyboard/click) --- */
.w-dropdown {
  position: relative;
}
.w-dropdown:hover > .w-dropdown-list,
.w-dropdown:focus-within > .w-dropdown-list,
.w-dropdown.w--open > .w-dropdown-list {
  display: block !important;
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 500;
  top: 100%;
  left: 0;
}

/* Give the open toggle the standard Webflow open state */
.w-dropdown.w--open > .w-dropdown-toggle {
  color: #fff;
  background-color: #c8c8c8;
}

/* --- Top-nav link underline hover (IX2 replacement) --- */
/* Origin uses IX2 to slide .nav-link-underline from -110% to 0% on hover.
   IX2 isn't initialized on most pages, so animate with pure CSS. */
.nav-link-wrapper .nav-link-underline,
.nav-link-wrapper--white .nav-link-underline,
.nav-link-wrapper-no-overflow .nav-link-underline {
  transition: transform 0.25s ease;
}
.nav-link-wrapper:hover .nav-link-underline,
.nav-link-wrapper--white:hover .nav-link-underline,
.nav-link-wrapper-no-overflow:hover .nav-link-underline,
.drop-container:hover .nav-link-underline,
.drop-container.sf-drop-open .nav-link-underline {
  transform: translateX(0) !important;
}

/* --- Custom IX2-driven services dropdown (.drop-container > a + .dropdown) --- */
.drop-container {
  position: relative;
}
.drop-container:hover > .dropdown,
.drop-container:focus-within > .dropdown,
.drop-container.sf-drop-open > .dropdown {
  display: block !important;
  top: 100%;
  left: 0;
  z-index: 500;
  width: max-content;
  max-width: 90vw;
}
/* Two-column grid (services list) needs more width */
.drop-container > .dropdown:has(.dropdown-grid) {
  min-width: 34em;
}
/* Single-column list (about menu) sizes to content with a modest minimum */
.drop-container > .dropdown:not(:has(.dropdown-grid)) {
  min-width: 14em;
}
.drop-container > .dropdown > .dropdown-grid {
  grid-template-columns: 1fr 1fr;
  width: 100%;
}
.drop-container > .dropdown .dropdown-link--secondary {
  min-width: 0;
  white-space: normal;
  transition: background-color 0.15s ease, color 0.15s ease;
}
/* Hover effect on dropdown links */
.drop-container > .dropdown .dropdown-link--secondary:hover,
.drop-container > .dropdown .dropdown-link--secondary:focus {
  background-color: rgba(252, 125, 19, 0.08);
  color: #fc7d13;
}
.drop-container > .dropdown .dropdown-link--secondary:hover .nav-link,
.drop-container > .dropdown .dropdown-link--secondary:focus .nav-link {
  color: #fc7d13;
}

/* Show dropdown inline inside the mobile nav panel (no hover needed) */
@media screen and (max-width: 991px) {
  .navbar.w-nav.sf-nav-open .drop-container {
    width: 100%;
  }
  .navbar.w-nav.sf-nav-open .drop-container > .dropdown {
    display: grid !important;
    position: static;
    width: 100%;
    grid-template-columns: 1fr;
    box-shadow: none;
    border: none;
    background-color: transparent;
  }
  .navbar.w-nav.sf-nav-open .drop-container .dropdown-link--secondary {
    padding: 0.5em 1em;
    color: #fff;
    border-bottom-color: rgba(255, 255, 255, 0.1);
  }
  .navbar.w-nav.sf-nav-open .drop-container .nav-link {
    color: #fff;
  }
}

/* --- Mobile nav overlay --- */
@media screen and (max-width: 991px) {
  /* Hidden by default on mobile (already in Webflow CSS, re-asserted for safety) */
  .navbar.w-nav .w-nav-menu {
    display: none;
  }

  /* When toggled, show the menu as a full-width panel below the navbar */
  .navbar.w-nav.sf-nav-open .w-nav-menu {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5em;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    max-height: calc(100vh - 100%);
    padding: 1em 6vw 2em;
    background-color: var(--dark-blue, #0d2942);
    z-index: 399;
    overflow-y: auto;
  }

  .navbar.w-nav.sf-nav-open .nav-menu a,
  .navbar.w-nav.sf-nav-open .w-nav-menu a {
    display: block;
    padding: 0.75em 0;
    color: #fff;
    text-align: left;
    width: 100%;
  }

  /* Dropdowns inside the mobile menu should expand inline, not float */
  .navbar.w-nav.sf-nav-open .w-dropdown {
    width: 100%;
  }
  .navbar.w-nav.sf-nav-open .w-dropdown-list,
  .navbar.w-nav.sf-nav-open .w-dropdown:hover > .w-dropdown-list {
    position: static;
    background: transparent;
    min-width: 0;
    padding-left: 1em;
  }
}
