/* News page, "headlines by source" (2026-10-06, app/pages/news.php). Loaded only on the News page, on top of app.css. */

/* hero: the town's own front page, set from its latest headlines (hb-hero / hz-hero come from app.css) */
.xb-hero .hb-in{max-width:600px}
.xb-hero h1{max-width:560px}
.xb-hero .hb-in > p{max-width:540px}
.xb-hero .nx-fresh{margin-top:12px}
.xb-share{position:absolute;top:16px;right:16px;z-index:2}
.xb-paper{width:54%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#eef1ee,#dfe5e0);overflow:hidden}
.xb-sheet{width:430px;flex:none;transform:rotate(-4deg) translate(-6px,92px) scale(.94);background:#fbf9f3;box-shadow:0 18px 40px rgba(15,22,35,.18),0 2px 6px rgba(15,22,35,.08);padding:18px 20px 22px;font-family:Georgia,"Times New Roman",serif;color:#1d1d1b}
.xb-mast{text-align:center;border-bottom:3px double #1d1d1b;padding-bottom:6px;margin-bottom:10px}
.xb-mast b{display:block;font-size:32px;line-height:1.05;letter-spacing:-.01em;font-weight:700}
.xb-mast small{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#55534c;font-family:var(--sans)}
.xb-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:10px 14px}
.xb-art{display:flex;flex-direction:column;gap:4px;border-top:1px solid #cfcabb;padding-top:6px;min-width:0}
.xb-art b{font-size:13px;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical}
.xb-art1{grid-row:span 2}.xb-art1 b{font-size:18px;line-height:1.08;-webkit-line-clamp:6}
.xb-art em{font-style:normal;font-family:var(--sans);font-size:8.5px;letter-spacing:.08em;text-transform:uppercase;color:#7a766b}
.xb-art i{display:block;height:4px;border-radius:2px;background:#dcd7c9}.xb-art i:last-child{width:62%}

/* latest about the town */
.xb-latest{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:12px}
.xb-lt{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;background:#fff;min-width:0}
.xb-lt h3{margin:0;font-size:15.5px;line-height:1.35}.xb-lt h3 a:hover{color:var(--accent-ink)}
.xb-lt1{background:var(--accent-tint);border-color:#bfe9d1}.xb-lt1 h3{font-size:19px}
.xb-lt-img{display:block;margin:-14px -16px 4px;border-radius:13px 13px 0 0;overflow:hidden}.xb-lt-img:empty{display:none}
.xb-lt-img img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.xb-also{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:auto}
.xb-also a{color:var(--accent-ink);font-weight:600}.xb-also .nx-src{width:18px;height:18px;font-size:9px}
.xb-lt .nx-acts{margin-top:auto}

/* the weekly AI recap: the site's own card style, not the old purple panel (app.css .nx-week) */
.nx-week{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.nx-week .kick{color:var(--accent-ink)}

/* official sources: the week ahead + one card per site (notices, coming up), read by bin/official.php */
.xb-cv-k{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}.xb-cv-k .ic{width:15px;height:15px}
.of-week{padding:16px 18px;margin-bottom:14px;container-type:inline-size}
.of-wk-h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.of-wk-h b{display:flex;align-items:center;gap:8px;font-size:15.5px}.of-wk-h .ic{width:18px;height:18px;color:var(--accent)}
.of-key{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted)}.of-key .of-d{margin-left:6px}
.of-d{display:inline-block;width:9px;height:9px;border-radius:50%}
.of-d.of-town,.of-ic.of-town{background:#0e9f57}.of-d.of-schools,.of-ic.of-schools{background:#2f74d0}.of-d.of-library,.of-ic.of-library{background:#d98a1c}
.of-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
@container (max-width:880px){.of-days{grid-template-columns:repeat(7,150px);overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:4px}}
.of-day{scroll-snap-align:start;display:flex;flex-direction:column;gap:6px;min-width:0;padding:10px;border-radius:12px;background:var(--surface)}
.of-today{background:var(--accent-tint);box-shadow:inset 0 0 0 1px #bfe9d1}
.of-dh{display:flex;align-items:baseline;justify-content:space-between;gap:4px}.of-dh b{font-size:13.5px}.of-dh span{font-size:11.5px;color:var(--muted)}
.of-ev{display:flex;flex-direction:column;gap:1px;padding:6px 8px;border-radius:8px;background:#fff;font-size:12.5px;line-height:1.3;color:var(--ink)}
.of-ev small{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--muted);font-weight:600}
.of-ev small::before{content:"";width:7px;height:7px;border-radius:50%;background:#0e9f57;flex:none}
.of-ev.of-schools small::before{background:#2f74d0}.of-ev.of-library small::before{background:#d98a1c}.of-ev span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-weight:600}
.of-ev:hover span{color:var(--accent-ink)}
.of-x span{text-decoration:line-through;color:var(--faint)}.of-x small{color:var(--bad)}
.of-more{font-size:12px;font-weight:600;color:var(--accent-ink);padding-left:2px}
.of-none{margin:0;font-size:12px;color:var(--faint)}
.of-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;align-items:start}
.of-src{display:flex;flex-direction:column;gap:8px;padding:18px;scroll-margin-top:calc(var(--hdr) + 20px)}
.of-h{display:flex;align-items:center;gap:12px;margin-bottom:4px}
.of-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:#fff;flex:none}.of-ic .ic{width:20px;height:20px}
.of-hn{flex:1;min-width:0}.of-hn b{display:block;font-size:16px;line-height:1.25}
.of-lab{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.of-list{list-style:none;margin:0;padding:0}
.of-list li{padding:10px 0;border-top:1px solid var(--hair)}
.of-list a{font-weight:600;font-size:15px;line-height:1.35;color:var(--ink)}.of-list a:hover{color:var(--accent-ink)}
.of-list p{margin:4px 0 0;font-size:13px;line-height:1.45;color:var(--ink-2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.of-when{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.of-alert{display:inline-block;vertical-align:2px;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;background:#fff4dc;color:#8a5a00}
.of-cal{list-style:none;margin:0;padding:0}
.of-cal li{display:grid;grid-template-columns:42px 1fr;column-gap:10px;padding:8px 0;border-top:1px solid var(--hair);align-items:center}
.of-date{grid-row:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;height:42px;border-radius:9px;background:var(--surface);font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted);line-height:1.1}
.of-date b{font-size:16px;color:var(--ink)}
.of-cal a{font-weight:600;font-size:14px;line-height:1.3;color:var(--ink)}.of-cal a:hover{color:var(--accent-ink)}
.of-cal small{font-size:12px;color:var(--muted)}
.of-cal .of-x a{text-decoration:line-through;color:var(--faint)}
.of-how{margin-top:auto;padding-top:10px;border-top:1px solid var(--hair);font-size:12px;color:var(--faint)}
@container (max-width:480px){.of-days{grid-template-columns:repeat(7,72%)}}

/* by source */
.xb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.xb-src{display:flex;flex-direction:column;gap:10px;padding:18px;scroll-margin-top:calc(var(--hdr) + 20px)}
.xb-home{grid-column:1/-1}
.xb-h{display:flex;align-items:center;gap:12px}.xb-h .nx-src{width:40px;height:40px;border-radius:11px;font-size:13.5px}
.xb-hn{flex:1;min-width:0}.xb-hn b{display:block;font-size:16.5px}.xb-hn small{color:var(--muted);font-size:12.5px}
.xb-visit{font-size:13px;font-weight:600;color:var(--accent-ink);white-space:nowrap}
.xb-stat{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.xb-stat b{color:var(--ink)}
.xb-tag{margin-left:auto;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface);color:var(--muted)}
.xb-tag-top{margin-left:0;background:var(--accent-tint);color:var(--accent-ink)}
.xb-heads{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.xb-heads li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--hair)}
.xb-heads a{font-weight:600;font-size:15px;line-height:1.35;color:var(--ink)}.xb-heads a:hover{color:var(--accent-ink)}
.xb-heads span{font-size:12.5px;color:var(--muted)}
.xb-home .xb-heads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px}
.xb-ment{font-style:normal;padding:1px 7px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:10.5px}
.xb-more summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--accent-ink);padding-top:4px}

@media (max-width:900px){.xb-latest{grid-template-columns:1fr 1fr}.xb-lt1{grid-column:1/-1}.xb-grid{grid-template-columns:1fr}.xb-home .xb-heads{grid-template-columns:1fr}}
@media (max-width:640px){.xb-latest{grid-template-columns:1fr}.xb-sheet{transform:rotate(-3deg) scale(.8)}.xb-share{display:none}}
