.news-page { padding: 80px 0 110px; }
.news-page h1 { font-size: clamp(2.2rem, 4.5vw, 4.4rem); line-height: 1.1; overflow-wrap: anywhere; }
.news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.news-grid + .reference-result-count { margin-top: 32px; }
.news-card { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--surface); }
.news-card-link { display: flex; flex-direction: column; height: 100%; }
.news-card-photo { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.news-card-copy { display: flex; flex-direction: column; align-items: flex-start; flex: 1; gap: 16px; padding: 28px; }
.news-card-text .news-card-copy { border-top: 4px solid var(--accent); }
.news-card h2 { font-size: 1.5rem; line-height: 1.25; overflow-wrap: anywhere; }
.news-card time, .news-heading time { font-size: .85rem; color: var(--muted); }
.news-read { margin-top: auto; padding-top: 16px; color: var(--accent); font-weight: 700; }
.news-card-link:hover h2 { color: var(--accent); }
.news-card-link:focus-visible { outline: 3px solid var(--accent); outline-offset: -4px; border-radius: var(--radius); }
.news-back { display: inline-block; margin-bottom: 36px; color: var(--muted); font-weight: 700; }
.news-back:hover { color: var(--accent); }
.news-heading { max-width: 900px; margin-bottom: 36px; }
.news-heading h1 { margin: 16px 0 22px; }
.news-cover { display: block; width: 100%; max-height: 700px; height: auto; object-fit: cover; border-radius: var(--radius); margin-bottom: 44px; }
.news-body { max-width: 820px; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.9; font-size: 1.05rem; }
@media (max-width: 980px) { .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .news-page { padding: 48px 0 72px; }
    .news-grid { grid-template-columns: 1fr; gap: 18px; }
    .news-grid + .reference-result-count { margin-top: 24px; }
    .news-card-copy { padding: 24px; }
    .news-cover { margin-bottom: 28px; }
}
