/* A single, progressively enhanced navigation: native links become a modal drawer. */
html { scrollbar-gutter:stable; }
html.menu-visible,html.menu-visible body { overflow:hidden; overscroll-behavior:none; }
.site-header.wrap { display:flex; height:88px; min-height:88px; gap:24px; flex-wrap:nowrap; }
.header-location { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:14px; margin-left:24px; min-width:0; }
.header-location > .icon { width:19px; height:19px; flex-shrink:0; }
.header-location > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.site-header .header-cta { margin-left:auto; }
.site-header .menu-toggle { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; width:auto; padding:11px 18px; border:1px solid #bacdc6; border-radius:14px; background:white; color:var(--petrol); cursor:pointer; flex-shrink:0; }
.site-header .menu-toggle > span { font-size:14px; font-weight:650; }
.menu-toggle[hidden],.menu-close[hidden] { display:none !important; }
.menu-glyph { position:relative; display:block; width:20px; height:20px; }
.site-header .menu-toggle .menu-glyph > .icon { display:block; }
.menu-glyph > .icon { position:absolute; inset:0; width:20px; height:20px; transition:transform .2s,opacity .2s; }
.menu-glyph > .icon:last-child { opacity:0; transform:rotate(-45deg); }
.menu-toggle[aria-expanded="true"] .menu-glyph > .icon:first-child { opacity:0; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-glyph > .icon:last-child { opacity:1; transform:none; }
.navigation-dialog { position:fixed; inset:16px 16px 16px auto; width:min(520px,calc(100% - 32px)); height:calc(100dvh - 32px); max-width:none; max-height:none; margin:0; padding:0; border:1px solid #d1ddd6; border-radius:28px; color:var(--ink); background:var(--cream); box-shadow:0 24px 80px #102d4233; overflow:hidden; }
.navigation-dialog::backdrop { background:#142f3ac2; animation:menu-shade-in .25s ease-out; }
.navigation-dialog.is-closing::backdrop { animation:menu-shade-out .18s ease-in forwards; }
.navigation-dialog .menu-content { display:flex; flex-direction:column; height:100%; min-height:0; }
.menu-heading { display:flex; flex-shrink:0; justify-content:space-between; align-items:center; gap:16px; padding:24px 28px 20px; border-bottom:1px solid var(--line); }
.menu-heading h2 { font-size:26px; line-height:1.15; letter-spacing:-.035em; }
.menu-close { width:44px; height:44px; flex-shrink:0; background:white; border:1px solid #cbd7d1; border-radius:50%; color:var(--petrol); cursor:pointer; }
.menu-close .icon { width:22px; height:22px; }
.menu-content #main-nav { display:block; flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; padding:20px; margin:0; background:transparent; border:0; border-radius:0; }
.menu-group + .menu-group { margin-top:22px; }
.menu-group h3 { font-size:16px; font-weight:650; letter-spacing:0; padding:0 12px 10px; color:var(--petrol); }
.menu-content .menu-link { display:flex; align-items:center; gap:14px; padding:12px; min-height:72px; border-radius:14px; color:var(--ink); text-decoration:none; transition:background .18s,color .18s; }
.menu-content .nav-symbol { display:inline-flex; align-items:center; justify-content:center; width:42px; height:42px; flex-shrink:0; border:1px solid #d5ded5; border-radius:13px; background:white; color:var(--petrol); }
.menu-content .nav-symbol .icon { width:22px; height:22px; }
.menu-link-copy { display:block; min-width:0; flex:1; }
.menu-link-copy strong { display:block; font-size:16px; font-weight:650; line-height:1.3; }
.menu-link-copy > span { display:block; font-size:13px; line-height:1.4; color:var(--muted); margin-top:4px; }
.menu-link > .icon { width:18px; height:18px; flex-shrink:0; opacity:.65; transition:transform .18s; }
.menu-content .menu-link[aria-current="page"] { background:var(--petrol); color:white; text-decoration:none; }
.menu-link[aria-current="page"] .menu-link-copy > span { color:#e3eeea; }
.menu-link[aria-current="page"] .nav-symbol { background:#ffffff16; border-color:#ffffff40; color:white; }
.menu-link[aria-current="page"] > .icon { opacity:1; }
.menu-utilities { display:flex; gap:4px 16px; flex-wrap:wrap; margin:20px 12px 0; padding-top:16px; border-top:1px solid var(--line); }
.menu-content .menu-utilities a { display:inline-flex; align-items:center; min-height:44px; padding:4px 0; font-size:13px; color:var(--petrol); }
.menu-content .menu-utilities a[aria-current="page"] { font-weight:750; text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:5px; }
.menu-actions { flex-shrink:0; padding:16px 28px 20px; border-top:1px solid var(--line); background:white; }
.menu-actions .button { display:flex; min-height:54px; width:100%; padding:12px 22px; justify-content:space-between; font-size:15px; border-radius:16px; background:var(--orange); color:#2d251b; border:1px solid var(--orange); }
.menu-content a:focus-visible,.menu-close:focus-visible,.menu-toggle:focus-visible { outline:3px solid #bc4c0e; outline-offset:3px; }
/* Without JS, the exact same links remain visible and flow with the document. */
.site-header:not(.nav-enhanced) { display:flex; position:relative; height:auto; flex-wrap:wrap; padding-block:16px; }
.site-header:not(.nav-enhanced) .menu-content { flex-basis:100%; width:100%; }
.site-header:not(.nav-enhanced) .menu-heading { padding:20px 12px; }
.site-header:not(.nav-enhanced) #main-nav { display:grid; grid-template-columns:1fr 1fr; gap:20px; position:static; width:100%; max-height:none; }
.site-header:not(.nav-enhanced) .menu-group { margin:0; }
.site-header:not(.nav-enhanced) .menu-utilities { grid-column:1 / -1; margin-top:0; }
.site-header:not(.nav-enhanced) .menu-link { justify-content:flex-start; font-size:16px; white-space:normal; }
.site-header:not(.nav-enhanced) .nav-symbol { display:inline-flex; }
.site-header:not(.nav-enhanced) .menu-actions { display:none; }
@media (max-width:1199px) and (min-width:740px) {
  .site-header.wrap { padding-block:12px; gap:16px; }
  .header-location { margin-left:0; }
}
@media (max-width:739px) {
  .site-header.wrap { height:72px; min-height:72px; gap:8px; }
  .header-location { display:none; }
  .site-header .menu-toggle { min-height:44px; padding:10px 12px; gap:7px; border-radius:13px; }
  .site-header .menu-toggle > span { font-size:12px; }
  .navigation-dialog { inset:0; width:100%; height:100dvh; border:0; border-radius:0; }
  .menu-heading { padding:calc(16px + env(safe-area-inset-top,0px)) max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px)); }
  .menu-heading h2 { font-size:24px; }
  .menu-content #main-nav { padding:16px max(12px,env(safe-area-inset-right,0px)) 20px max(12px,env(safe-area-inset-left,0px)); }
  .menu-content .menu-link { min-height:70px; gap:12px; padding:11px 12px; }
  .menu-link-copy strong { font-size:15px; }
  .menu-link-copy > span { font-size:12px; }
  .menu-group + .menu-group { margin-top:20px; }
  .menu-actions { padding:12px max(20px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px)); }
  .site-header:not(.nav-enhanced) { height:auto; }
  .site-header:not(.nav-enhanced) #main-nav { grid-template-columns:1fr; padding-inline:0; }
}
@media (max-width:359px) {
  .site-header.wrap { padding-inline:12px; gap:6px; }
  .site-header .brand img { width:96px; }
  .site-header .header-cta { padding-inline:10px !important; font-size:11px !important; }
  .site-header .menu-toggle { padding-inline:10px; }
  .menu-content .nav-symbol { width:36px; height:36px; }
  .menu-content .menu-link { gap:10px; }
  .menu-link > .icon { width:16px; }
}
@media (hover:hover) and (pointer:fine) {
  .site-header .menu-toggle:hover,.menu-close:hover { background:#e9f0e8; border-color:#92aaa0; }
  .menu-content .menu-link:not([aria-current]):hover { background:#e8eee6; }
  .menu-link:hover > .icon { transform:translateX(3px); opacity:1; }
  .menu-utilities a:hover { text-decoration:underline; text-underline-offset:5px; }
}
@keyframes menu-shade-in { from { background:#142f3a00; } to { background:#142f3ac2; } }
@keyframes menu-shade-out { to { background:#142f3a00; } }
@media (prefers-reduced-motion:reduce) {
  .menu-glyph > .icon,.menu-content .menu-link,.menu-link > .icon { transition:none; }
  .navigation-dialog::backdrop,.navigation-dialog.is-closing::backdrop { animation:none; }
}
@media print {
  .menu-toggle,.navigation-dialog { display:none !important; }
  html.menu-visible,html.menu-visible body { overflow:visible; }
}
