/* Local sticky-header preview. Reserve the expanded height to prevent layout shifts. */
:root{--header-rest-height:96px;--header-compact-height:72px}
html:has(.sticky-header){scroll-padding-top:calc(var(--header-rest-height) + 16px)}
/* Let the fixed header participate in the page stack. The particle layer clips itself. */
#start:has(>.sticky-header){isolation:auto;overflow:visible}
.header-shell.sticky-header{height:var(--header-rest-height);flex-shrink:0;z-index:30}
.header-shell.sticky-header>.header{position:absolute;inset:0 0 auto;z-index:30;height:var(--header-rest-height);padding-top:0;padding-bottom:0;background:var(--blue);color:var(--paper)}
:is(.home-hero-screen,.regional-hero-screen)>.sticky-header:not(.is-compact)>.header{background:transparent}
.header-shell.sticky-header.is-compact>.header{position:fixed;grid-template-columns:auto minmax(40px,1fr) auto;height:var(--header-compact-height);background:#052578;animation:sticky-header-enter .42s cubic-bezier(.22,1,.36,1) both}
.header-shell.sticky-header.is-compact>.header>.header-lion{left:0;justify-self:center}
@keyframes sticky-header-enter{from{transform:translateY(-100%)}to{transform:translateY(0)}}
body:has(.sticky-header) .skip{z-index:40}
body:has(.sticky-header) .legal-nav{top:calc(var(--header-rest-height) + 16px)}
@media(max-width:900px){:root{--header-rest-height:92px}}
@media(max-width:600px){:root{--header-rest-height:88px;--header-compact-height:64px}}
@media(prefers-reduced-motion:reduce){.header-shell.sticky-header.is-compact>.header{animation:none}html:has(.sticky-header){scroll-behavior:auto}}

/* A small continuation of the hero's particle atmosphere, only in the sticky bar. */
.sticky-particles{display:none;position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.sticky-particles span{position:absolute;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:#d8eaff;opacity:var(--dot-opacity);animation:sticky-particle-drift var(--dot-duration) ease-in-out var(--dot-delay) infinite alternate;animation-play-state:paused}
.is-compact>.header>.sticky-particles{display:block}
.is-compact>.header>.sticky-particles span{animation-play-state:running}
.sticky-header:has(.fullscreen-menu[open]) .sticky-particles span{animation-play-state:paused}
.sticky-header>.header>.brand,.sticky-header>.header>.header-actions{position:relative;z-index:1}
.sticky-header>.header>.header-lion{z-index:1}
.header-actions .back-to-top{display:none;width:39.6px;height:39.6px;flex:0 0 39.6px;align-items:center;justify-content:center;border:0;border-radius:50%;padding:9px;background:var(--acid);color:var(--blue);transition:background-color .2s,transform .2s}
.is-compact>.header .back-to-top{display:inline-flex}
.is-compact>.header .header-actions{gap:12px}
.back-to-top svg{display:block;width:21.6px;height:21.6px;transform:rotate(-90deg)}
.header-actions .back-to-top:hover{background:#f3ff78;transform:translateY(-2px)}
.header-actions .back-to-top:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
@keyframes sticky-particle-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(var(--dot-x),var(--dot-y),0)}}
@media(max-width:600px){.header-shell.sticky-header.is-compact>.header{grid-template-columns:110px minmax(40px,1fr) auto;gap:10px}.is-compact>.header .brand{width:min(110px,100%)}.is-compact>.header .header-lion{left:0}.is-compact>.header .header-actions{gap:8px}}
@media(prefers-reduced-motion:reduce){.sticky-particles span{animation:none}.header-actions .back-to-top{transition:none}.header-actions .back-to-top:hover{transform:none}}

/* Shared blue-section atmosphere and the scroll-activated contact sprinter. */
.has-section-particles{position:relative;isolation:isolate}
.section-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.section-particles span{position:absolute;width:var(--dot-size);height:var(--dot-size);border-radius:50%;background:#d8eaff;opacity:var(--dot-opacity);animation:sticky-particle-drift var(--dot-duration) ease-in-out var(--dot-delay) infinite alternate;animation-play-state:paused}
.section-particles.is-active span{animation-play-state:running}
body:has(.fullscreen-menu[open]) .section-particles span{animation-play-state:paused}
@media(max-width:600px){.section-particles span:nth-child(n+81){display:none}}
@media(prefers-reduced-motion:reduce){.section-particles span{animation:none}}
/* Keep fixed navigation outside decorative stacking contexts. */
.has-section-particles:has(.header-shell){isolation:auto}
.has-section-particles:has(.header-shell)>.section-particles{z-index:0}
.has-section-particles:has(.header-shell)>section{position:relative;z-index:1}

/* Local preview: hero blue with a white separator only above blue content. */
.header-shell.sticky-header.is-compact>.header{background:var(--blue);box-shadow:none}
.header-shell.sticky-header.is-compact.over-blue>.header::after{content:"";position:absolute;top:100%;left:0;right:0;height:4px;background:#fff;pointer-events:none}
