/* Clear over the hero; opaque only when the following section reaches the header. */
.site-header--refined { height:var(--header-height); isolation:isolate; background:transparent; border:0; color:var(--ink); box-shadow:none; transition:transform 220ms ease; }
.site-header--refined::before { content:''; position:absolute; z-index:-1; inset:0; pointer-events:none; background:#fffefa; border:0; box-shadow:none; opacity:1; -webkit-backdrop-filter:none; backdrop-filter:none; }
.site-header--refined .header-inner { height:100%; min-height:0; gap:26px; flex-wrap:nowrap; }
.site-header--refined .brand img { width:126px; height:auto; }
.site-header--refined .brand-caption { padding-left:20px; border:0; font-size:11px; line-height:1.65; letter-spacing:0; color:#52646b; }
.site-header--refined .site-nav { gap:32px; font-size:13px; }
.site-header--refined .site-nav>a { min-height:44px; display:inline-flex; align-items:center; padding-block:10px; }
.site-header--refined .site-nav>a:not(.nav-contact)::after { bottom:6px; }
.site-header--refined .site-nav>a.nav-contact { min-height:46px; gap:25px; padding:11px 19px; border:1px solid transparent; border-radius:8px; background:#102c39; color:#fffefa; transition:background 180ms ease,border-color 180ms ease; }
.site-header--refined .nav-contact .icon { transition:transform 180ms ease; }
.site-header--refined .nav-contact:hover .icon { transform:translateX(3px); }
.site-header--refined .header-controls:has(.menu-toggle[hidden]) { display:none; }
.site-header--refined.is-scrolled:not(.is-hidden) { box-shadow:none; }
.site-header--overlay { margin-bottom:calc(-1 * var(--header-height)); }
.site-header--overlay:not(.is-on-light):not(.is-open) { color:#fffefa; background:transparent; box-shadow:none; }
.site-header--overlay:not(.is-on-light):not(.is-open)::before { background:transparent; opacity:0; border:0; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; }
.site-header--overlay:not(.is-on-light):not(.is-open) .brand img { filter:brightness(0) invert(1); }
.site-header--overlay:not(.is-on-light):not(.is-open) .brand-caption { color:#e0e9ed; }
.site-header--overlay:not(.is-on-light):not(.is-open) .site-nav,.site-header--overlay:not(.is-on-light):not(.is-open) .brand-caption { text-shadow:0 1px 3px #07141ec9; }
.site-header--overlay:not(.is-on-light):not(.is-open) .site-nav>a.nav-contact { background:transparent; color:#fffefa; border-color:#e0e9ed99; }
.site-header--overlay:not(.is-on-light):not(.is-open) .site-nav>a.nav-contact:hover { background:#fffefa18!important; border-color:#fffefa; }
.site-header--overlay:not(.is-on-light):not(.is-open) .menu-icon { color:#fffefa; border-color:#e0e9ed80; background:transparent; }
.site-header--overlay:not(.is-on-light):not(.is-open) .menu-toggle:hover .menu-icon { background:#fffefa14; }
.site-header--overlay:not(.is-on-light):not(.is-open) :focus-visible { outline-color:#f4f8fa; }
.page-home .hero-inner { padding-top:var(--header-height); min-height:clamp(640px,calc(100svh - 128px),800px); }
/* Palette changes are immediate so cross-fades cannot create white text on white. */
@media (min-width:900px) { .site-header--refined .header-controls { display:none; } }
@media (min-width:900px) and (max-width:1130px) { .site-header--refined .site-nav { gap:27px; } .site-header--refined .brand-caption { display:none; } }
@media (max-width:899px) {
  .site-header--refined .header-inner { min-height:0; gap:12px; }
  .site-header--refined .brand img { width:112px; }
  .site-header--refined .brand-caption { display:none; }
  .page-home .hero-inner { padding:0; min-height:0; }
  .page-home .hero-copy { padding-top:calc(var(--header-height) + 34px); }
  .site-header--refined .menu-icon { width:44px; height:44px; }
}
@media (prefers-reduced-transparency:reduce),(prefers-contrast:more) {
  .site-header--refined::before { background:#fffefa; opacity:1; }
  .site-header--overlay:not(.is-on-light):not(.is-open)::before { background:#091e2a; opacity:1; }
}
@media (prefers-reduced-motion:reduce) {
  .site-header--refined,.site-header--refined .nav-contact,.site-header--refined .nav-contact .icon { transition:none; }
}
@media (forced-colors:active) {
  .site-header--refined::before { background:Canvas!important; opacity:1!important; border-bottom:1px solid CanvasText; }
  .site-header--refined,.site-header--refined .brand-caption,.site-header--refined .menu-icon { color:CanvasText!important; text-shadow:none!important; }
  .site-header--refined .site-nav { text-shadow:none!important; }
  .site-header--refined .brand img { filter:none!important; background:White; }
  .site-header--refined .site-nav>a.nav-contact { background:ButtonFace!important; color:ButtonText!important; border-color:ButtonText!important; }
}
@media print { .site-header--overlay { margin-bottom:0; } .page-home .hero-inner { padding-top:0; min-height:0; } .page-home .hero-copy { padding-top:24px; } }

/* Let scrolled hero copy pass cleanly behind the navigation, not through the logo. */
.site-header--overlay:not(.is-on-light):not(.is-hidden):not(.is-open) ~ main :is(.hero-copy,.hero-bottom):not(:focus-within) { -webkit-mask-image:linear-gradient(to bottom,transparent max(0px,calc(var(--header-clearance,0px) - 12px)),#000 var(--header-clearance,0px)); mask-image:linear-gradient(to bottom,transparent max(0px,calc(var(--header-clearance,0px) - 12px)),#000 var(--header-clearance,0px)); }
