.news-hero{padding:42px 0 30px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f8f5ee 0%,#fff 100%)}
.news-hero h1{max-width:820px;font-size:clamp(38px,5vw,60px);line-height:1.02;letter-spacing:-.035em}
.news-hero .lead{max-width:720px;margin:18px 0 0;font-size:18px;line-height:1.65;color:var(--muted)}
.news-count{margin-left:auto;color:var(--muted);font-size:13px;align-self:center}
.editorial-section{padding:38px 0 30px}
.news-card{display:flex;overflow:hidden;min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.news-card:hover{transform:translateY(-3px);border-color:#cbd2d8;box-shadow:var(--shadow)}
.news-card:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:3px}
.news-card[hidden]{display:none!important}
.news-card .story-cover{position:relative;overflow:hidden;background:#e7edf1}
.news-card .story-cover img{width:100%;height:100%;display:block;object-fit:cover}
.news-card .story-body{display:flex;flex:1;flex-direction:column;padding:22px}
.news-card .story-kicker{margin:0 0 9px;color:var(--gold-ink);font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}
.news-card h2,.news-card h3{margin:0;color:var(--ink);font-weight:750;line-height:1.17}
.news-card .story-summary{margin:12px 0 18px;color:var(--muted);line-height:1.55}
.news-card .story-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;color:var(--muted);font-size:13px}
.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:22px}
.news-grid .news-card{height:100%;min-height:420px;flex-direction:column}
.news-grid .story-cover{aspect-ratio:16/10}
.news-grid .news-card h2{font-size:22px}
.diagram-frame{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#f5f1e8}
.diagram-frame>img{width:100%;display:block}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.related-grid .news-card{min-height:100%}
@media(max-width:1023px){.news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.news-hero{padding:30px 0 22px}.news-hero h1{font-size:36px}.tabs{display:grid;grid-template-columns:1fr 1fr}.tabs button{width:100%}.news-count{grid-column:1/-1;margin-left:0}.news-grid{grid-template-columns:1fr}.related-grid{grid-template-columns:1fr}.news-grid .news-card{min-height:0}.news-card .story-body{padding:18px}}
