/* Rush Hour Guide: "Night Shift" design system. Mobile-first, no build step. */
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-semi-condensed-600.woff2") format("woff2")}
@font-face{font-family:"Barlow Semi Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/barlow-semi-condensed-700.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/source-sans-3-400.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/source-sans-3-600.woff2") format("woff2")}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/source-sans-3-700.woff2") format("woff2")}

:root{
  --bg:#F6F7F9;--surface:#FFFFFF;
  --ink:#14181F;--ink-muted:#4A5260;
  --link:#0B5CAD;--link-hover:#083F78;
  --night:#0E141B;--on-night:#EEF2F6;--on-night-muted:#A9B4C2;
  --signal-fill:#FFB020;--signal-fill-hover:#E39A00;--signal-on-night:#FFB020;--signal-text:#8A4B00;
  --alert-fill:#D92D20;--alert-text:#B42318;
  --ok-fill:#D9F2E3;--ok-text:#0B6B3A;
  --line:#D5DAE1;--line-strong:#8791A0;
  --focus:#0B5CAD;--focus-night:#FFB020;
  --font-head:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif;
  --font-body:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --radius:8px;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;
  --container:1200px;--column:760px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:1.125rem;line-height:1.6}
img,svg{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-head);font-weight:700;line-height:1.15;margin:0 0 var(--s2);color:var(--ink)}
h1{font-size:clamp(2rem,5vw,3.25rem)}
h2{font-size:1.75rem;margin-top:var(--s5)}
h3{font-size:1.3rem;margin-top:var(--s4)}
p,ul,ol{margin:0 0 var(--s2)}
a{color:var(--link);text-underline-offset:3px}
a:hover{color:var(--link-hover)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.on-night :focus-visible,.site-header :focus-visible,.site-footer :focus-visible,.mobile-banner :focus-visible{outline-color:var(--focus-night)}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--s2)}
.column{max-width:var(--column)}
main{display:block}
.skip-link{position:absolute;left:var(--s1);top:-100px;background:var(--signal-fill);color:var(--ink);padding:var(--s1) var(--s2);border-radius:var(--radius);font-weight:700;z-index:100}
.skip-link:focus{top:var(--s1)}

/* Header */
.site-header{background:var(--night);color:var(--on-night);position:sticky;top:0;z-index:50;border-bottom:3px solid var(--signal-fill)}
.site-header__inner{display:flex;align-items:center;gap:var(--s2);min-height:64px;padding-top:var(--s1);padding-bottom:var(--s1)}
.site-header a{color:var(--on-night);text-decoration:none}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto}
.brand svg{width:40px;height:40px;flex:none}
.brand__text{display:flex;flex-direction:column;line-height:1.15}
.brand__text strong{font-family:var(--font-head);font-size:1.25rem}
.brand__text small{display:none;color:var(--on-night-muted);font-size:.8rem}
.age-badge{background:var(--alert-fill);color:#fff!important;font-weight:700;padding:4px 10px;border-radius:var(--radius);font-size:.95rem}
.nav-desktop{display:none}
.nav-desktop>a,.nav-desktop summary{display:block;padding:10px 12px;border-radius:var(--radius);cursor:pointer;color:var(--on-night);list-style:none;font-weight:600}
.nav-desktop summary::-webkit-details-marker,.nav-mobile summary::-webkit-details-marker{display:none}
.nav-desktop summary::after{content:"";display:inline-block;margin-left:8px;border:4px solid transparent;border-top-color:currentColor;vertical-align:-2px}
.nav-desktop a:hover,.nav-desktop summary:hover{background:rgba(255,255,255,.08)}
.nav-desktop [aria-current="page"],.nav-desktop .is-active>summary{box-shadow:inset 0 -3px 0 var(--signal-fill)}
.nav-desktop details{position:relative}
.nav-desktop ul{position:absolute;left:0;top:100%;min-width:230px;margin:0;padding:var(--s1);list-style:none;background:var(--night);border:1px solid #2A3544;border-radius:var(--radius);z-index:60}
.nav-desktop ul a{display:block;padding:8px 12px;border-radius:6px}
.nav-mobile{position:relative}
.nav-mobile summary{list-style:none;cursor:pointer;padding:8px 14px;border:1px solid var(--on-night-muted);border-radius:var(--radius);font-weight:600}
.nav-mobile>ul{position:absolute;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 32px));margin:0;padding:var(--s1);list-style:none;background:var(--night);border:1px solid #2A3544;border-radius:var(--radius);max-height:75vh;overflow:auto}
.nav-mobile li a{display:block;padding:10px 12px;border-radius:6px}
.nav-mobile li a:hover{background:rgba(255,255,255,.08)}
.nav-mobile [aria-current="page"]{box-shadow:inset 3px 0 0 var(--signal-fill)}
.nav-mobile .nav-group{padding:12px 12px 4px;color:var(--on-night-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}

/* Breadcrumb */
.breadcrumb{font-size:.95rem;color:var(--ink-muted);padding:var(--s2) 0 0}
.breadcrumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:0}
.breadcrumb li+li::before{content:"/";margin-right:8px;color:var(--line-strong)}
.breadcrumb a{color:var(--link)}
.on-night .breadcrumb,.on-night .breadcrumb a{color:var(--on-night-muted)}

/* Hero */
.page-hero{background:var(--night);color:var(--on-night);padding:0 0 var(--s5)}
.page-hero h1{color:var(--on-night);margin-top:var(--s2)}
.page-hero a{color:#9CCBFF}
.page-hero .container>.hero-grid{display:grid;gap:var(--s4)}
.eyebrow{color:var(--signal-on-night);font-family:var(--font-head);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.95rem;margin:var(--s3) 0 var(--s1)}
.lead{font-size:1.25rem;color:var(--on-night-muted);max-width:var(--column)}
.page-hero .lead{color:var(--on-night-muted)}
.byline{color:var(--on-night-muted);font-size:.95rem;margin:var(--s2) 0}
.byline a{color:#9CCBFF}
.quick-verdict{background:#16202B;border:1px solid #2A3544;border-left:4px solid var(--signal-fill);border-radius:var(--radius);padding:var(--s2) var(--s3);margin:var(--s3) 0;max-width:var(--column);display:flex;gap:var(--s2);align-items:center}
.quick-verdict p{margin:0}
.quick-verdict strong{color:var(--on-night)}
.score-badge{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:50%;background:var(--signal-fill);color:var(--ink);font-family:var(--font-head);font-weight:700;line-height:1}
.score-badge b{font-size:2rem}
.score-badge span{font-size:.85rem;font-weight:600}
.btn{display:inline-block;background:var(--signal-fill);color:var(--ink)!important;font-weight:700;text-decoration:none;padding:12px 22px;border-radius:var(--radius);border:2px solid var(--signal-fill);transition:background .15s}
.btn:hover{background:var(--signal-fill-hover);border-color:var(--signal-fill-hover)}
.btn--ghost{background:transparent;color:var(--link)!important;border-color:var(--line-strong)}
.btn--ghost:hover{background:rgba(11,92,173,.08);border-color:var(--link)}
.page-hero .btn--ghost{color:var(--on-night)!important;border-color:var(--on-night-muted)}
.page-hero .btn--ghost:hover{background:rgba(255,255,255,.08)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);margin:var(--s2) 0}
.hero-art{margin:0}
.hero-art svg{width:100%;border-radius:var(--radius)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2);margin:var(--s4) 0 0}
.stats div{border-top:2px solid var(--signal-fill);padding-top:var(--s1)}
.stats dt{color:var(--on-night-muted);font-size:.9rem}
.stats dd{margin:0;font-family:var(--font-head);font-weight:700;font-size:1.4rem;color:var(--signal-on-night)}

/* Bands and layout */
.band{padding:var(--s5) 0}
.band--alt{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band h2:first-child{margin-top:0}
.toc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s2) var(--s3);margin:var(--s3) 0}
.toc ol{columns:1;margin:0;padding-left:var(--s3)}
.toc li{margin-bottom:4px}
.glance{margin:var(--s3) 0}
.table-wrap{overflow-x:auto;margin:var(--s2) 0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.table-wrap:focus-visible{outline:2px solid var(--focus)}
table{border-collapse:collapse;width:100%;font-size:1rem;font-variant-numeric:tabular-nums}
caption{text-align:left;font-family:var(--font-head);font-weight:700;font-size:1.15rem;padding:var(--s2) var(--s2) var(--s1)}
th,td{text-align:left;padding:10px var(--s2);border-top:1px solid var(--line);vertical-align:top}
thead th{background:var(--bg);font-weight:700;white-space:nowrap}
tbody th{font-weight:600;white-space:nowrap}
.table-note{color:var(--ink-muted);font-size:.95rem}
.src{display:inline-block;margin-left:6px;padding:0 8px;border-radius:99px;font-size:.8rem;font-weight:600;background:var(--ok-fill);color:var(--ok-text);white-space:nowrap}
.src--c{background:#FDEBD0;color:var(--signal-text)}
img.shot{width:100%;max-width:var(--column);border:1px solid var(--line);border-radius:var(--radius);margin:var(--s2) 0;background:var(--bg)}
.shot-frame{max-width:var(--column);aspect-ratio:16/9;border:2px dashed var(--line-strong);border-radius:var(--radius);margin:var(--s2) 0;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--s2);color:var(--ink-muted);font-size:.95rem}
.example{background:var(--bg);border:1px solid var(--line);border-left:4px solid var(--signal-fill);border-radius:var(--radius);padding:var(--s2) var(--s3);margin:var(--s2) 0}
.example p:last-child{margin:0}
.band--alt .example{background:var(--bg)}
.example__title{font-family:var(--font-head);font-weight:700;margin-bottom:4px}

/* Cards */
.cards{display:grid;gap:var(--s3);margin:var(--s3) 0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s3);display:flex;flex-direction:column}
.card h3{margin-top:0;font-size:1.25rem}
.card p{color:var(--ink)}
.card .btn{margin-top:auto;align-self:flex-start}
.card__status{display:inline-block;align-self:flex-start;font-size:.85rem;font-weight:700;color:var(--signal-text);background:#FDEBD0;border-radius:99px;padding:2px 10px;margin-bottom:var(--s1)}
.pros-cons{display:grid;gap:var(--s3);margin:var(--s3) 0}
.pros,.cons{border-radius:var(--radius);padding:var(--s2) var(--s3)}
.pros{background:var(--ok-fill);color:var(--ink)}
.pros h3{color:var(--ok-text)}
.cons{background:var(--surface);border:1px solid var(--alert-text)}
.cons h3{color:var(--alert-text)}
.pros h3,.cons h3{margin-top:0}
.pros ul,.cons ul{padding-left:var(--s3);margin:0}
.pros li,.cons li{margin-bottom:8px}
.op-list{list-style:none;padding:0;margin:var(--s2) 0;display:grid;gap:var(--s1)}
.op-list li{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--s2)}
.op-list strong{display:block;font-family:var(--font-head);font-size:1.1rem}
.cta-band{background:var(--night);color:var(--on-night);border-radius:var(--radius);padding:var(--s3);margin:var(--s4) 0;display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:space-between}
.cta-band p{margin:0;max-width:520px}
.cta-band small{display:block;color:var(--on-night-muted)}
.callout{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--link);border-radius:var(--radius);padding:var(--s2) var(--s3);margin:var(--s3) 0}
.callout--warn{border-left-color:var(--alert-fill)}
.callout p:last-child{margin:0}
.callout strong:first-child{font-family:var(--font-head)}
.score-bar{display:block;height:8px;border-radius:4px;background:var(--line);min-width:120px;overflow:hidden}
.score-bar i{display:block;height:100%;background:var(--signal-fill)}

/* FAQ */
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:var(--s1)}
.faq summary{cursor:pointer;padding:var(--s2) 44px var(--s2) var(--s2);font-weight:700;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:var(--s2);top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--link)}
.faq details[open] summary::after{content:"\2212"}
.faq details>div{padding:0 var(--s2) var(--s2)}
.faq details>div p:last-child{margin:0}
.update-log{list-style:none;padding:0}
.update-log li{border-left:3px solid var(--signal-fill);padding:0 0 var(--s1) var(--s2)}

/* Footer */
.site-footer{background:var(--night);color:var(--on-night);padding:var(--s5) 0 var(--s3);margin-top:0;font-size:1rem}
.site-footer a{color:#9CCBFF}
.site-footer h2{font-size:1.1rem;color:var(--signal-on-night);margin:0 0 var(--s1)}
.footer-cols{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.footer-cols ul{list-style:none;margin:0;padding:0}
.footer-cols li{margin-bottom:6px}
.footer-note{border-top:1px solid #2A3544;margin-top:var(--s4);padding-top:var(--s3);color:var(--on-night-muted);font-size:.95rem}
.footer-note p{max-width:900px}
.footer-note strong{color:var(--on-night)}

/* Mobile banner (JS adds it; below 760 px only) */
.mobile-banner{display:none}
.mobile-banner[data-open="true"]{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;align-items:center;gap:var(--s1);padding:10px var(--s2);background:var(--night);color:var(--on-night);border-top:3px solid var(--signal-fill)}
.mobile-banner span{flex:1;font-size:.95rem}
.mobile-banner .btn{padding:8px 14px}
.mobile-banner button{background:none;border:0;color:var(--on-night);font-size:1.5rem;line-height:1;cursor:pointer;padding:4px 8px}
@media (min-width:760px){.mobile-banner[data-open="true"]{display:none}}

/* 404 and stubs */
.notice{max-width:var(--column)}
.page-head{padding:var(--s3) 0 var(--s2)}
.page-head h1{margin-top:var(--s2)}
.page-head .lead{color:var(--ink-muted)}
.prose{max-width:var(--column)}
.prose h2{margin-top:var(--s4)}

@media (min-width:600px){
  .brand__text small{display:block}
  .stats{grid-template-columns:repeat(4,1fr)}
  .footer-cols{grid-template-columns:repeat(4,1fr)}
  .pros-cons{grid-template-columns:1fr 1fr}
  .toc ol{columns:2}
}
@media (min-width:900px){
  .cards{grid-template-columns:repeat(3,1fr)}
  .page-hero .container>.hero-grid{grid-template-columns:1.1fr .9fr;align-items:center}
  .nav-desktop{display:flex;gap:2px;margin-right:var(--s1)}
  .nav-mobile{display:none}
  .container{padding:0 var(--s3)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
