/* Links remain visible without JavaScript. The early js-nav marker avoids a
   first-paint expanded header; site.js supplies the disclosure semantics. */
:is(body > nav, body > header > nav):not(.sticky-cta) .menu-toggle { min-width:44px; min-height:44px; }
:is(body > nav, body > header > nav):not(.sticky-cta) :is(a, button):focus-visible { outline:3px solid #fbbf24; outline-offset:3px; }
/* The current destination is marked in HTML, so it is announced and visible
   before scripts run. Underlining also distinguishes it without relying on color. */
body > nav.site-header .nav-links a[aria-current="page"],
body > nav.site-header .nav-links a[aria-current="location"] {
  color:#bfdbfe; font-weight:750; text-decoration:underline;
  text-decoration-thickness:2px; text-underline-offset:.35em;
}
body > nav.site-header .nav-links a:focus-visible,
body > nav.site-header .menu-toggle:focus-visible { border-radius:.15rem; }
@media (max-width:860px) {
  /* Keep expanded/no-JS headers in flow instead of covering the article. */
  :is(body > nav, body > header > nav):not(.sticky-cta) { position:sticky !important; top:0; }
  :is(body > nav, body > header > nav):not(.sticky-cta) :is(.inner, .nav-inner) { height:auto !important; min-height:var(--site-header-inner-height,64px); flex-wrap:wrap; }
  :is(body > nav, body > header > nav):not(.sticky-cta) .menu-toggle { display:none !important; }
  :is(body > nav, body > header > nav):not(.sticky-cta) :is(.links, .nav-links) {
    display:flex !important; position:static !important; inset:auto !important;
    width:100%; flex-basis:100%; flex-wrap:wrap; flex-direction:row !important;
    align-items:center; gap:.25rem .75rem !important; padding:.5rem 0 !important;
    max-height:none; overflow:visible; opacity:1; visibility:visible;
  }
  :is(body > nav, body > header > nav):not(.sticky-cta) :is(.links, .nav-links) a {
    display:inline-flex !important; align-items:center; min-width:44px; min-height:44px;
    padding:.35rem .5rem; width:auto;
  }
  :is(body > nav, body > header > nav):not(.sticky-cta).navigation-enhanced .menu-toggle,
  .js-nav :is(body > nav, body > header > nav):not(.sticky-cta):has(.menu-toggle) .menu-toggle {
    display:inline-flex !important; align-items:center; justify-content:center;
  }
  :is(body > nav, body > header > nav):not(.sticky-cta).navigation-enhanced :is(.links, .nav-links),
  .js-nav :is(body > nav, body > header > nav):not(.sticky-cta):has(.menu-toggle) :is(.links, .nav-links) { display:none !important; }
  :is(body > nav, body > header > nav):not(.sticky-cta).navigation-enhanced :is(.links, .nav-links).open,
  .js-nav :is(body > nav, body > header > nav):not(.sticky-cta):has(.menu-toggle) :is(.links, .nav-links).open {
    display:flex !important; max-height:60vh; max-height:min(60dvh,calc(100dvh - var(--site-header-inner-height,64px) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 1rem)); overflow-y:auto; overscroll-behavior:contain;
  }
}
/* Wider touch windows still need readable form text. */
@media (any-pointer:coarse) {
  :is(input:not([type="hidden"]), select, textarea) { font-size:max(16px,1rem); }
}
@media (prefers-reduced-motion:reduce) {
  body > nav.site-header *, body > nav.site-header *::before,
  body > nav.site-header *::after { scroll-behavior:auto; transition:none; animation:none; }
}
@media (forced-colors:active) {
  body > nav.site-header .nav-links a[aria-current] { color:LinkText; }
}
