/* news.css - "The Wire": page-scoped stylesheet for the /news family only
   (front, day editions, take pages, section feeds). Loaded AFTER site.css via
   base.html.j2's extra_head block, hashed like every other asset. Budget <=8KB
   (test_news_css_under_budget). Every color comes from site.css :root tokens -
   dark mode is inherited, nothing redefined here. Rubrics: research = violet,
   packages/tools = green; AA rule holds (ink-on-tint, never raw accents on
   text). Structure is hairline rules and density, radii <= --r-sm: the news
   section reads as the terminal room of the same building. */

/* --- masthead: the counts ARE the thesis ---------------------------------- */
.nw-masthead{border-bottom:2px solid var(--ink);padding-bottom:16px;margin-bottom:8px}
.nw-masthead h1{margin:10px 0 4px}
.nw-dateline{font:600 0.6875rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:0}
.nw-counts{font:500 clamp(1.125rem,2.4vw,1.625rem)/1.35 var(--mono);color:var(--ink);letter-spacing:-0.01em;margin:10px 0 6px;text-wrap:balance}
.nw-counts b{font-weight:700}
.nw-counts .sep{color:var(--muted);padding:0 2px}
.nw-thesis{font-size:0.9375rem;color:var(--ink-soft);margin:0;max-width:46rem}

/* --- rubric stamps --------------------------------------------------------- */
.nw-stamp{display:inline-flex;align-items:center;font:650 0.6875rem/1 var(--mono);text-transform:uppercase;letter-spacing:0.07em;padding:4px 9px;border-radius:5px}
.nw-stamp-r{background:var(--violet-t);color:var(--violet-ink)}
.nw-stamp-p{background:var(--green-t);color:var(--green-ink)}

/* --- spotlight duo ---------------------------------------------------------- */
.nw-spothead{font:650 0.6875rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.09em;color:var(--muted);margin:26px 0 10px}
.nw-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nw-spot{display:block;padding:18px 20px 16px;border-radius:var(--r-sm);border:1px solid var(--line);color:inherit}
.nw-spot:hover{text-decoration:none;border-color:currentColor}
.nw-spot-r{background:var(--violet-t);border-left:3px solid var(--violet)}
.nw-spot-p{background:var(--green-t);border-left:3px solid var(--green)}
.nw-spot .t{display:block;font-size:clamp(1.125rem,2vw,1.375rem);font-weight:700;line-height:1.25;letter-spacing:-0.01em;color:var(--ink);margin:9px 0 7px;text-wrap:balance}
.nw-spot:hover .t{text-decoration:underline}
.nw-spot .x{display:block;font-size:0.9375rem;line-height:1.55;color:var(--ink-soft)}
.nw-sig{display:block;font:500 0.75rem/1.5 var(--mono);margin-top:10px}
.nw-spot-r .nw-sig{color:var(--violet-ink)}
.nw-spot-p .nw-sig{color:var(--green-ink)}
@keyframes nwrise{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.nw-spot{animation:nwrise 0.45s ease-out both}
.nw-duo .nw-spot+.nw-spot{animation-delay:0.12s}
@media (prefers-reduced-motion:reduce){.nw-spot{animation:none}}

/* --- the river -------------------------------------------------------------- */
.nw-river{list-style:none;margin:0;padding:0}
.nw-daterule{display:flex;align-items:center;gap:12px;font:650 0.75rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:28px 0 2px}
.nw-daterule a{color:var(--ink-soft)}
.nw-daterule::after{content:"";flex:1;height:1px;background:var(--line)}
.nw-row{padding:11px 8px 11px 12px;border-left:2px solid transparent;border-bottom:1px solid var(--line)}
.nw-row-r{border-left-color:var(--violet)}
.nw-row-p{border-left-color:var(--green)}
.nw-row:hover{background:var(--card)}
.nw-row .t{font-weight:600;color:var(--ink)}
.nw-row .d{font-size:0.875rem;color:var(--ink-soft);margin:3px 0 0;line-height:1.5}
.nw-meta{display:block;font:500 0.75rem/1.6 var(--mono);color:var(--muted);margin-top:3px}
.nw-meta time{color:inherit}

/* --- section rails + feed band ---------------------------------------------- */
.nw-rails{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:30px}
.nw-rail{display:block;padding:15px 18px;border-radius:var(--r-sm);font-weight:650;font-size:0.9375rem}
.nw-rail:hover{text-decoration:none;outline:1px solid currentColor}
.nw-rail-r{background:var(--violet-t);color:var(--violet-ink)}
.nw-rail-p{background:var(--green-t);color:var(--green-ink)}
.nw-rail small{display:block;font:500 0.75rem/1.5 var(--mono);margin-top:3px;opacity:0.85}
.nw-band{padding:16px 20px 14px;border-radius:var(--r-sm);margin:8px 0 6px}
.nw-band-r{background:var(--violet-t);border-left:3px solid var(--violet)}
.nw-band-p{background:var(--green-t);border-left:3px solid var(--green)}
.nw-band h1{margin:4px 0 4px;font-size:clamp(1.375rem,3vw,1.75rem)}
.nw-band p{margin:0;font-size:0.9375rem}
.nw-band-r p{color:var(--violet-ink)}
.nw-band-p p{color:var(--green-ink)}

/* --- day edition: take excerpt cards + group heads --------------------------- */
.nw-ghead{display:flex;align-items:center;gap:12px;font:650 0.75rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;margin:30px 0 4px}
.nw-ghead::after{content:"";flex:1;height:1px;background:var(--line)}
.nw-ghead-r{color:var(--violet-ink)}
.nw-ghead-p{color:var(--green-ink)}
.nw-cards{list-style:none;margin:0;padding:0}
.nw-card{padding:14px 8px 15px 14px;border-left:2px solid transparent;border-bottom:1px solid var(--line)}
.nw-card-r{border-left-color:var(--violet)}
.nw-card-p{border-left-color:var(--green)}
.nw-card .t{font-size:1.0625rem;font-weight:650;line-height:1.3;color:var(--ink)}
.nw-card .x{font-size:0.9375rem;line-height:1.55;color:var(--ink-soft);margin:5px 0 6px}
.nw-card .go{font-weight:650;font-size:0.875rem;white-space:nowrap}

/* --- take page (the product) ------------------------------------------------- */
.nw-take h1{font-size:clamp(1.5rem,3.2vw,2rem);max-width:var(--read)}
.nw-byline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font:500 0.8125rem/1.6 var(--mono);color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0;margin:16px 0 10px;max-width:var(--read)}
.nw-byline a{color:var(--ink-soft)}
.nw-body{max-width:var(--read);font-size:1.0625rem;line-height:1.7;color:var(--ink)}
.nw-body p{margin:0 0 1em}
.nw-body h2{font-size:1.1875rem;margin:1.5em 0 0.4em}
.nw-verdict{max-width:var(--read);font-size:1.0625rem;font-weight:650;line-height:1.5;color:var(--ink);padding:10px 0 10px 16px;border-left:3px solid var(--line);margin:26px 0}
.nw-verdict-r{border-left-color:var(--violet)}
.nw-verdict-p{border-left-color:var(--green)}
.nw-limits{max-width:var(--read);background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 18px 13px;margin:26px 0}
.nw-limits h2{font:650 0.6875rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:0 0 7px}
.nw-limits p{font-size:0.875rem;line-height:1.6;color:var(--ink-soft);margin:0}
.nw-refs{max-width:var(--read);margin:26px 0 0}
.nw-refs h2{font:650 0.6875rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin:0 0 7px}
.nw-refs ul{list-style:none;margin:0;padding:0;font-size:0.9375rem}
.nw-refs li{padding:5px 0;border-bottom:1px solid var(--line)}
.nw-ring{display:flex;flex-wrap:wrap;gap:8px 20px;max-width:var(--read);border-top:2px solid var(--ink);padding-top:13px;margin-top:36px;font-weight:600;font-size:0.8125rem}
.nw-ring a{color:var(--ink-soft)}

/* --- pagination + scroll sentinel -------------------------------------------- */
.nw-pager{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:26px 0 0;font:500 0.8125rem/1 var(--mono)}
.nw-pager a,.nw-pager span[aria-current]{padding:6px 11px;border:1px solid var(--line);border-radius:6px;color:var(--ink-soft)}
.nw-pager a:hover{border-color:var(--violet);text-decoration:none}
.nw-pager span[aria-current]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.nw-sentinel{height:1px}

/* --- responsive --------------------------------------------------------------- */
@media (max-width:680px){
.nw-duo,.nw-rails{grid-template-columns:1fr}
.nw-counts{font-size:1.0625rem}
}
