/* One stationary navigation shell for every view in a suite.
   Variant backgrounds, typography and button treatments remain in their themes. */
html {
  scrollbar-gutter: stable;
  scroll-padding-top: 116px;
}

html body > .site-header.site-header {
  position: sticky!important;
  top: 0!important;
  height: 96px!important;
  min-height: 96px!important;
  transform: none!important;
  flex-shrink: 0;
}

html body > .site-header.site-header.is-hidden {
  transform: none!important;
}

html body > .site-header.site-header .nav {
  height: 100%;
}

html body > .site-header.site-header :is(.premium-logo,.header-consultation) {
  transform: none!important;
}

html body > .site-header.site-header :is(.nav-link,.premium-logo,.header-consultation) {
  transition-property: color,background-color,border-color,box-shadow,opacity!important;
  transition-duration: 240ms!important;
  transition-timing-function: ease!important;
}

/* A chosen route closes hover/focus popovers until the next interaction. */
html body > .site-header.site-header :is(.nav-services,.nav-about).nav-dismissed :is(.services-mega-menu,.nav-about-menu) {
  opacity: 0!important;
  visibility: hidden!important;
  pointer-events: none!important;
}

.nav-dropdown-bridge {
  display: none
}

.mobile-navigation-panel,
.mobile-navigation-backdrop {
  display: none;
}

html body .site-header.site-header .services-mega-menu .mega-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
  padding: 12px 6px 0;
  border-top: 1px solid rgba(255,255,255,.1);
}

@media(min-width:1121px) {
  html body > .site-header.site-header .nav-dropdown-open > .nav-dropdown-bridge {
    display: block;
    position: fixed;
    z-index: 249;
    background: transparent;
    pointer-events: auto;
  }
  html body > .site-header.site-header .nav-services.nav-dropdown-open .services-mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0) scale(1);
  }
  html body > .site-header.site-header .nav-about.nav-dropdown-open .nav-about-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%,0);
  }
}

@media(max-width:1120px) {
  html {
    scroll-padding-top: 100px;
  }
  html body > .site-header.site-header {
    --mobile-header-height: 80px;
    --navigation-panel-background: var(--primary,#0c1820);
    height: var(--mobile-header-height)!important;
    min-height: var(--mobile-header-height)!important;
    /* A filtered ancestor would turn the drawer's fixed viewport into the bar. */
    backdrop-filter: none!important;
    -webkit-backdrop-filter: none!important;
    filter: none!important;
    overflow: visible!important;
  }
  html body > .site-header.site-header .nav,
  html body > .site-header.site-header.nav-open .nav {
    display: grid!important;
    grid-template-columns: minmax(0,1fr) 48px!important;
    grid-template-rows: var(--mobile-header-height)!important;
    align-items: center;
    column-gap: 16px!important;
    row-gap: 0!important;
    flex-wrap: nowrap!important;
    padding-top: 0!important;
    padding-bottom: 0!important;
    transform: none!important;
    filter: none!important;
  }
  html body > .site-header.site-header .premium-logo {
    grid-column: 1;
    grid-row: 1;
    align-self: center;
    justify-self: start;
    width: min(200px,calc(100vw - 112px))!important;
    min-width: 0!important;
    max-width: 100%!important;
    margin: 0!important;
  }
  html body > .site-header.site-header .premium-logo img {
    width: 100%!important;
    max-height: 58px!important;
    object-fit: contain;
  }
  html body > .site-header.site-header .mobile {
    display: grid!important;
    place-items: center;
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    margin: 0!important;
    width: 44px!important;
    height: 44px!important;
    font-size: 25px!important;
    line-height: 1!important;
    cursor: pointer;
    touch-action: manipulation;
  }
  html body > .site-header.site-header .nav-links,
  html body > .site-header.site-header .header-consultation,
  html body > .site-header.site-header .mobile-navigation-panel,
  html body > .site-header.site-header .mobile-navigation-backdrop {
    display: none!important;
  }
  /* One solid drawer owns both the scrolling navigation and its bottom action. */
  html body > .site-header.site-header.nav-open .mobile-navigation-backdrop {
    display: block!important;
    position: fixed;
    z-index: 1;
    top: var(--mobile-header-height);
    right: 0;
    left: 0;
    height: calc(100vh - var(--mobile-header-height));
    height: calc(100dvh - var(--mobile-header-height));
    background: rgba(2,7,12,.58);
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel {
    display: flex!important;
    position: fixed;
    z-index: 2;
    top: var(--mobile-header-height);
    right: 0;
    width: min(440px,100%);
    height: calc(100vh - var(--mobile-header-height));
    height: calc(100dvh - var(--mobile-header-height));
    flex-direction: column;
    gap: 0;
    padding: 20px 24px max(20px,env(safe-area-inset-bottom));
    box-sizing: border-box;
    background: var(--navigation-panel-background)!important;
    border-top: 1px solid rgba(255,255,255,.1);
    border-left: 1px solid rgba(255,255,255,.1);
    box-shadow: -18px 24px 60px rgba(0,0,0,.18);
    overflow: hidden;
    animation: mobile-navigation-reveal 220ms ease both;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-links {
    display: flex!important;
    position: static!important;
    inset: auto!important;
    flex: 1 1 auto;
    min-height: 0;
    width: 100%!important;
    max-height: none!important;
    margin: 0!important;
    padding: 0 0 20px!important;
    gap: 4px!important;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start!important;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.25) transparent;
    background: transparent!important;
    border: 0!important;
    border-radius: 0!important;
    box-shadow: none!important;
    transform: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .header-consultation {
    display: flex!important;
    position: relative!important;
    inset: auto!important;
    flex: 0 0 auto;
    min-height: 50px!important;
    width: 100%!important;
    margin: 18px 0 0!important;
    align-items: center;
    justify-content: center;
    transform: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-link {
    display: flex!important;
    align-items: center;
    justify-content: space-between!important;
    flex: 0 0 auto;
    min-height: 50px!important;
    width: 100%!important;
    height: auto!important;
    padding: 12px 10px!important;
    margin: 0!important;
    font-size: 16px!important;
    font-weight: 600!important;
    line-height: 1.35!important;
    text-align: left;
    white-space: normal;
    border-radius: 10px;
    box-sizing: border-box;
    cursor: pointer;
    touch-action: manipulation;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-link:is(:hover,:focus-visible) {
    background: rgba(255,255,255,.055)!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-link::after {
    display: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel :is(.nav-services,.nav-about) {
    display: block!important;
    position: static!important;
    flex: 0 0 auto;
    width: 100%;
    height: auto!important;
    min-height: 0!important;
    padding: 0!important;
    margin: 0!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-about-trigger::before {
    display: none!important;
    content: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-chevron {
    flex: 0 0 7px;
    width: 7px!important;
    height: 7px!important;
    margin: -4px 3px 0 0!important;
    border-right: 1.5px solid currentColor!important;
    border-bottom: 1.5px solid currentColor!important;
    transform: rotate(45deg)!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-dropdown-open .services-chevron {
    transform: rotate(225deg)!important;
    margin-top: 4px!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-chevron {
    flex: 0 0 12px;
    transform: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-dropdown-open .nav-chevron {
    transform: rotate(180deg)!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel :is(.services-mega-menu,.nav-about-menu.nav-about-premium) {
    display: none!important;
    position: static!important;
    inset: auto!important;
    width: 100%!important;
    min-width: 0!important;
    max-width: none!important;
    height: auto!important;
    max-height: none!important;
    padding: 10px 6px 18px!important;
    margin: 0 0 10px!important;
    transform: none!important;
    opacity: 1!important;
    visibility: visible!important;
    pointer-events: auto!important;
    border: 0!important;
    border-bottom: 1px solid rgba(255,255,255,.12)!important;
    border-radius: 0!important;
    background: transparent!important;
    box-shadow: none!important;
    backdrop-filter: none!important;
    -webkit-backdrop-filter: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-dropdown-open :is(.services-mega-menu,.nav-about-menu.nav-about-premium) {
    display: block!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu :is(.mega-glow,.mega-contact-card) {
    display: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-grid {
    display: grid!important;
    grid-template-columns: minmax(0,1fr)!important;
    gap: 24px!important;
    padding: 0!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-col {
    min-width: 0!important;
    padding: 0!important;
    border: 0!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-title {
    margin: 0 6px 10px!important;
    font-size: 10px!important;
    line-height: 1.5!important;
    letter-spacing: .12em!important;
    opacity: .7;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-service {
    display: grid!important;
    grid-template-columns: 34px minmax(0,1fr)!important;
    align-items: center;
    min-height: 52px!important;
    gap: 12px!important;
    padding: 8px 6px!important;
    margin: 2px 0!important;
    border-radius: 10px!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-service strong {
    font-size: 13px!important;
    line-height: 1.4!important;
    white-space: normal!important;
    overflow-wrap: anywhere;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-service small {
    display: none!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-icon {
    width: 34px!important;
    height: 34px!important;
    border-radius: 10px!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-footer {
    justify-content: flex-start;
    padding: 12px 0 0!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .services-mega-menu .mega-all {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    gap: 12px;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-about-premium > a {
    min-height: 72px!important;
    padding: 12px 6px!important;
    grid-template-columns: 34px minmax(0,1fr) 16px!important;
    gap: 12px!important;
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .nav-about-premium .nav-about-icon {
    width: 34px!important;
    height: 34px!important;
  }
  html body > .site-header.site-header.nav-open :is(a,button):focus-visible {
    outline: 2px solid var(--secondary,#bde6e8)!important;
    outline-offset: -2px;
  }
  html body[data-os-template] > .site-header {
    --navigation-panel-background:#080b10;
  }
  html body[data-os-template][data-os-template][data-os-template] > .site-header.site-header {
    backdrop-filter: none!important;
    -webkit-backdrop-filter: none!important;
    filter: none!important;
  }
  html.bl-mobile-nav-open {
    overflow: hidden!important;
    overscroll-behavior: none;
  }
  /* Keep body from becoming a new scroll container for the sticky header. */
  html.bl-mobile-nav-open body {
    overflow: clip!important;
  }
}

@media(max-width:600px) {
  html body > .site-header.site-header.nav-open #mobileNavigationPanel {
    width: 100%;
    padding-right: max(20px,env(safe-area-inset-right));
    padding-left: max(20px,env(safe-area-inset-left));
    border-left: 0;
    box-shadow: none;
  }
}

@media(max-width:1120px) and (max-height:500px) {
  html body > .site-header.site-header.nav-open #mobileNavigationPanel {
    padding-top: 10px;
    padding-bottom: max(12px,env(safe-area-inset-bottom));
  }
  html body > .site-header.site-header.nav-open #mobileNavigationPanel .header-consultation {
    min-height: 44px!important;
    margin-top: 10px!important;
  }
}

@keyframes mobile-navigation-reveal {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Device previews use the native pointer too, even on a desktop with a mouse. */
@media(max-width:1120px),(pointer:coarse) {
  html.has-custom-cursor,
  html.has-custom-cursor * {
    cursor: auto!important;
  }
  html.has-custom-cursor :is(a,button,label,summary,select,[role="button"]) {
    cursor: pointer!important;
  }
  html.has-custom-cursor :is(input:not([type="checkbox"]):not([type="radio"]),textarea,[contenteditable="true"]) {
    cursor: text!important;
  }
  html body :is(.cursor-dot,.cursor-ring) {
    display: none!important;
  }
}

@media(prefers-reduced-motion:reduce) {
  html body > .site-header.site-header :is(.nav-link,.premium-logo,.header-consultation) {
    transition: none!important;
  }
  html body > .site-header.site-header .mobile-navigation-panel {
    animation: none!important;
  }
}
