/* Loaded last: one layout owns the header across phone/tablet breakpoints. */
html,html:has([data-static-guide]){scroll-padding-top:0}
main[id],main :where(section[id],div[id],span[id]){scroll-margin-top:calc(var(--city-header-height,82px) + 16px)}
.desktop-nav a[aria-current]::after{right:0}
.mobile-menu-links a[aria-current]{box-shadow:inset 3px 0 var(--orange);background:#f7eee1}
.discover-shortcuts{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 24px;padding:0;border:0}
.discover-shortcuts a{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border:1px solid #173f7629;border-radius:24px;color:var(--blue);font-size:13px;font-weight:600;text-decoration:none}
.discover-shortcuts a:hover{background:#f3efe5}.discover-shortcuts a:focus-visible{outline:3px solid #d89921;outline-offset:3px}
.discovery-cards>[hidden]{display:none!important}
.search-dialog{max-height:calc(var(--city-search-height,100svh) - 32px);overflow-y:auto;overscroll-behavior:contain}
.search-dialog .dialog-close{display:grid;place-items:center;min-width:44px;min-height:44px;flex-shrink:0}
@media(max-width:600px){.search-dialog{margin:12px auto 0;max-height:calc(var(--city-search-height,100svh) - 24px)}.search-shell{padding:18px}}
.search-result{gap:14px;text-decoration:none;min-height:48px}.search-result strong{min-width:0;overflow-wrap:anywhere}.search-result small{flex-shrink:0}
.search-result:focus-visible{outline:3px solid #d89921;outline-offset:2px;background:#f3efe5}
@media(max-width:480px){.search-result{align-items:flex-start}.search-result strong{font-size:14px}.search-result small{font-size:11px;max-width:90px;text-align:right}.discover-shortcuts{gap:7px}.discover-shortcuts a{font-size:12px;padding:9px 12px}}
/* The drawer repeats the same brand, not a larger second header. */
@media(max-width:1120px) {
 .site-header,.mobile-menu { font-family:Arial,Helvetica,sans-serif; }
 .mobile-menu .mobile-menu-top { height:72px; min-height:72px; padding:0 14px; box-sizing:border-box; }
 .mobile-menu .brand { gap:9px; }
 .mobile-menu .brand-mark { width:34px; height:34px; flex-shrink:0; }
 .mobile-menu .brand-copy strong,.site-header .brand-copy strong { font-family:Arial,Helvetica,sans-serif; font-size:15px; line-height:1.2; font-weight:700; }
 .mobile-menu .brand-copy span,.site-header .brand-copy span { font-family:Arial,Helvetica,sans-serif; font-size:8px; line-height:1.3; letter-spacing:.15em; }
 .mobile-menu .mobile-menu-close { width:96px; height:44px; font-family:Arial,Helvetica,sans-serif; font-size:13px; line-height:1.3; }
 .site-header button,.mobile-menu button,.mobile-menu a { font-family:Arial,Helvetica,sans-serif; }
}
.desktop-controls { display:flex; align-items:center; gap:.6rem; min-width:0; }
.mobile-menu:not([open]) { display:none; }
/* svh stays stable when Safari/Chrome show or hide their address bars. */
.mobile-menu { position:fixed; inset:0 0 auto auto; margin:0; padding:0; width:min(480px,100%); height:100vh; height:100svh; max-width:none; max-height:100%; border:0; color:var(--blue-deep); background:var(--paper); box-shadow:-18px 0 70px #0d2c5520; overflow:hidden; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
.mobile-menu[open] { display:flex; flex-direction:column; }
.mobile-menu::backdrop { background:#0d213666; }
.mobile-menu-top { display:flex; align-items:center; justify-content:space-between; flex:0 0 auto; gap:12px; padding:16px 22px; padding-top:max(16px,env(safe-area-inset-top)); border-bottom:1px solid #173f7615; }
.mobile-menu .brand-copy { display:flex; }
.mobile-menu-close { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; flex-shrink:0; padding:0 12px; border:1px solid #173f7626; border-radius:24px; color:var(--blue); background:transparent; font-size:13px; font-weight:600; cursor:pointer; }
.mobile-menu-close svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; }
.mobile-menu-scroll { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-width:thin; padding:23px 22px 16px; scroll-behavior:auto; }
.mobile-menu-kicker { font-size:10px; font-weight:750; letter-spacing:.17em; color:#8b5039; margin:0 0 8px; }
.mobile-menu h2 { margin:0 0 20px; font-size:clamp(24px,6.7vw,32px); line-height:1.15; font-weight:650; letter-spacing:-.045em; }
.mobile-menu-search { display:flex; align-items:center; gap:11px; width:100%; min-height:48px; padding:12px 14px; border:1px solid #173f7626; border-radius:12px; background:#f4f0e6; text-align:left; color:var(--blue); font-size:13px; cursor:pointer; }
.mobile-menu-search svg { flex-shrink:0; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; }
.mobile-menu-search span:last-child { margin-left:auto; font-size:18px; }
.mobile-menu-links { display:grid; gap:3px; margin-top:16px; }
.mobile-menu-links a { display:grid; grid-template-columns:32px minmax(0,1fr) 20px; align-items:center; gap:12px; padding:13px 10px; min-height:67px; color:var(--blue-deep); text-decoration:none; border-radius:12px; border-bottom:1px solid #173f7612; }
.mobile-menu-links strong { display:block; font-size:18px; font-weight:650; letter-spacing:-.02em; line-height:1.25; overflow-wrap:anywhere; }
.mobile-menu-links small { display:block; margin-top:4px; font-size:12px; line-height:1.45; color:#65717c; overflow-wrap:anywhere; }
.mobile-nav-number { font-size:11px; font-weight:600; font-variant-numeric:tabular-nums; color:#707b81; }
.mobile-menu-links i { font-style:normal; font-size:20px; }
.mobile-menu-links a.mobile-nav-map { background:#e9eee8; border-color:transparent; }
.mobile-menu-links a[aria-current=location] { box-shadow:inset 3px 0 var(--orange); background:#f7eee1; }
.mobile-menu-links a:hover { background:#f3efe5; }
.mobile-menu-bottom { flex:0 0 auto; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px 22px; padding-bottom:max(16px,env(safe-area-inset-bottom)); border-top:1px solid #173f761c; background:#f5f1e8; }
.mobile-language-label { font-size:13px; color:#556571; }
.mobile-menu-bottom .language-switch { padding:3px; background:var(--paper); }
.mobile-menu-bottom .language-switch button { min-width:44px; min-height:40px; padding:7px 10px; font-size:13px; }
.mobile-menu-bottom .account-button { grid-column:1 / -1; width:100%; min-height:48px; font-size:15px; padding:12px 18px; }
.mobile-menu :focus-visible { outline:3px solid #d89921; outline-offset:2px; }
@media(min-width:1121px) { .desktop-nav { gap:clamp(.8rem,1.7vw,2.2rem); }.site-header { grid-template-columns:minmax(130px,1fr) auto minmax(280px,1fr); gap:20px; } }
@media(max-width:1120px) {
  .site-header { height:72px; min-height:72px; display:flex; justify-content:space-between; gap:10px; padding:0 max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left)); background:#fffdf7; backdrop-filter:none; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
  .site-header .desktop-nav,.site-header .desktop-controls { display:none; }
  .site-header .brand { gap:9px; min-width:0; }
  .site-header .brand-copy { display:flex; }
  .site-header .brand-mark { width:34px; height:34px; flex-shrink:0; }
  .site-header .brand-copy strong { font-size:15px; }
  .site-header .brand-copy span { font-size:8px; letter-spacing:.15em; }
  .site-header .header-actions { gap:7px; flex-shrink:0; }
  .site-header .header-actions .icon-button { display:grid; width:44px; min-height:44px; padding:0; }
  .site-header .menu-button { display:flex; justify-content:center; width:96px; min-height:44px; padding:0 13px; font-size:13px; line-height:1.3; gap:8px; background:var(--blue); color:white; border-color:var(--blue); }
  .site-header .menu-button svg { width:19px; height:19px; }
  main section[id] { scroll-margin-top:88px; }
}
@media(max-width:350px) { .site-header { padding-inline:10px; gap:6px; }.site-header .brand { gap:7px; }.site-header .header-actions { gap:5px; }.site-header .menu-button { padding-inline:10px; }.mobile-menu-top,.mobile-menu-bottom { padding-inline:16px; }.mobile-menu-scroll { padding-inline:16px; }.mobile-menu-links a { gap:8px; grid-template-columns:26px minmax(0,1fr) 18px; } }
@media(max-height:480px) { .mobile-menu-top { padding-block:8px; }.mobile-menu-bottom { gap:7px; padding-block:8px; }.mobile-menu-bottom .account-button { min-height:44px; padding-block:8px; }.mobile-menu-scroll { padding-top:14px; } }
@media(prefers-reduced-motion:no-preference) { .mobile-menu[open] .mobile-menu-scroll { animation:menu-appear .14s ease-out; } @keyframes menu-appear { from { opacity:.7; transform:translateY(5px); } to { opacity:1; transform:none; } } }
