/* Full-page section paging: one gesture settles on the next complete section. */
html{scroll-snap-type:y proximity!important;scroll-padding-top:0!important}
main>section{min-height:100svh;scroll-snap-align:start!important;scroll-snap-stop:always;scroll-margin-top:0!important}
.hero,.section,.consulting,.team-page-hero,.team-profile,.team-cta{scroll-snap-align:start!important;scroll-snap-stop:always;scroll-margin-top:0!important}
@media(max-width:900px){html{scroll-snap-type:none!important;scroll-behavior:smooth}main>section{scroll-snap-align:none!important;scroll-snap-stop:normal}}
@media(max-width:600px){main>section{min-height:auto}.hero,.consulting,.team-page-hero{min-height:100svh}}

/* The v2 artwork is already composed as a full-bleed hero with its own natural fade. */
.hero .hero-plane-v2{inset:0!important;width:100%!important;height:100%!important;object-fit:cover;object-position:center center;opacity:1!important;filter:saturate(.9) contrast(1.03)!important;-webkit-mask-image:none!important;mask-image:none!important}
.hero:after{background:linear-gradient(90deg,rgba(0,47,42,.62) 0%,rgba(0,47,42,.34) 37%,rgba(0,47,42,.05) 63%,transparent 100%)!important}
.hero-glow{display:none}
@media(max-width:900px){.hero .hero-plane-v2{right:auto!important;object-position:58% center;opacity:.82!important}.hero:after{background:linear-gradient(90deg,rgba(0,47,42,.88),rgba(0,47,42,.48) 72%,rgba(0,47,42,.22))!important}}

/* Solid tablet/mobile navigation panel. Avoids iOS fixed-position + backdrop-filter bugs. */
@media(max-width:1180px){
  body.menu-open{overflow:hidden;touch-action:none}
  .site-header .menu{display:block;z-index:72;border:0;background:transparent;color:#fff;width:40px;height:40px;position:relative;flex:0 0 auto}
  .site-header .menu span{position:absolute;left:7px;right:7px;top:14px;border-top:1px solid currentColor;transition:transform .25s,top .25s}
  .site-header .menu span:last-child{top:24px}
  .site-header .menu[aria-expanded="true"] span:first-child{top:19px;transform:rotate(45deg)}
  .site-header .menu[aria-expanded="true"] span:last-child{top:19px;transform:rotate(-45deg)}
  .site-header .nav{position:absolute!important;z-index:70;top:100%!important;bottom:auto!important;left:0!important;right:0!important;width:100%;height:calc(100dvh - 88px);padding:34px 6vw 48px;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:0;background:#003832!important;backdrop-filter:none;overflow-y:auto;-webkit-overflow-scrolling:touch;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-10px);transition:opacity .25s,transform .25s,visibility 0s linear .25s}
  .site-header .nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition:opacity .25s,transform .25s}
  .site-header .nav a{display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;border-bottom:1px solid rgba(255,255,255,.12);font-size:13px;letter-spacing:.19em;color:#fff}
  .site-header .nav a:first-child{border-top:1px solid rgba(255,255,255,.12)}
}
@media(max-width:600px){.site-header .nav{height:calc(100dvh - 74px);padding-top:20px;padding-bottom:28px}.site-header .nav a{min-height:52px;font-size:11px}}

/* iOS-safe mobile navigation: a body-level layer, never nested in the blurred header. */
.mobile-nav{display:none}
@media(max-width:1180px){
  .site-header .nav{display:none!important}
  .mobile-nav{display:block;position:fixed;z-index:49;inset:0;background:#003832;color:#fff;opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(0,-12px,0);transition:opacity .24s ease,transform .24s ease,visibility 0s linear .24s;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .mobile-nav.open{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0);transition:opacity .24s ease,transform .24s ease}
  .mobile-nav-inner{min-height:100%;padding:112px 7vw 38px;display:flex;flex-direction:column;align-items:stretch;justify-content:center}
  .mobile-nav a{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:62px;border-bottom:1px solid rgba(255,255,255,.13);font:500 13px/1 Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#fff}
  .mobile-nav a:first-child{border-top:1px solid rgba(255,255,255,.13)}
}
@media(max-width:600px){.mobile-nav-inner{padding:92px 7vw 24px;justify-content:flex-start}.mobile-nav a{min-height:55px;font-size:11px}}
