.news-heading { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 8px; }
.news-heading h3 { font-size: 1.3rem; font-weight: 600; color: var(--brand-accent); }
.news-heading span { font-size: .7rem; letter-spacing: .22em; color: var(--leaf); }
.news-item { min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--line); }
.news-item time, #news-dialog-date { display: block; color: var(--ink-soft); font-size: .82rem; letter-spacing: .05em; margin-bottom: 9px; }
.news-item-heading { display: flex; align-items: baseline; gap: 12px; }
.news-item time { flex: 0 0 auto; white-space: nowrap; line-height: 1.4; letter-spacing: normal; font-size: .75rem; margin-bottom: 0; }
.news-title { min-width: 0; flex: 1; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; width: 100%; overflow-wrap: anywhere; background: none; border: 0; text-align: left; cursor: pointer; color: var(--ink); font: inherit; font-size: 1.05rem; line-height: 1.45; letter-spacing: normal; font-weight: 600; }
.news-title:hover { color: var(--leaf); }
.news-summary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 4px; font-size: .9rem; line-height: 1.5; letter-spacing: normal; }
.news-empty { padding: 32px 0; font-size: .95rem; }
.news-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; color: var(--ink-soft); font-size: .85rem; }
.news-pagination[hidden] { display: none; }
.news-pagination button, #news-close { border: 0; background: none; color: var(--field); font: inherit; cursor: pointer; padding: 7px 0; }
.news-pagination button:disabled { color: #969d97; cursor: default; }
.news-pagination button:not(:disabled):hover, #news-close:hover { text-decoration: underline; }
.news-title:focus-visible, .news-pagination button:focus-visible, #news-close:focus-visible { outline: 2px solid var(--leaf); outline-offset: 4px; }
#section-intro .image-stack img { height: 180px !important; }
html.news-open, html.news-open body { overflow: hidden; }
#news-dialog { margin: auto; padding: 0; width: min(760px, calc(100% - 40px)); max-height: 86dvh; border: 1px solid var(--line); border-radius: 18px; background: var(--snow); color: var(--ink); box-shadow: 0 24px 100px #14201b40; overscroll-behavior: contain; }
#news-dialog::backdrop { background: rgba(16, 30, 22, .55); backdrop-filter: blur(4px); }
.news-dialog-top { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; padding: 12px 28px; background: var(--snow); border-bottom: 1px solid var(--line); font-size: .85rem; z-index: 1; }
.news-dialog-article { padding: 28px 36px 40px; }
#news-dialog-title { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.4; overflow-wrap: anywhere; }
#news-dialog-summary { font-size: 1rem; padding-bottom: 22px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
#news-dialog-summary:empty { display: none; }
.news-body { font-size: 1rem; line-height: 1.85; overflow-wrap: anywhere; }
.news-body p { font-size: inherit; line-height: inherit; margin: 0 0 1em; }
.news-body h1, .news-body h2, .news-body h3 { font-size: 1.25em; margin: 1.4em 0 .65em; line-height: 1.5; }
.news-body ul, .news-body ol { padding-left: 1.5em; margin: 1em 0; }
.news-body img { max-width: 100%; height: auto; display: block; border-radius: 10px; margin: 18px auto; }
.news-body a { color: #365a3f; text-decoration: underline; }
.news-body blockquote { border-left: 3px solid #5f8f59; padding-left: 16px; margin: 1em 0; }
.news-body pre { white-space: pre-wrap; padding: 12px; background: #365a3f0d; border-radius: 6px; }
@media (max-width: 720px) {
  #section-intro .image-stack img { height: 150px !important; }
  #news-dialog { width: calc(100% - 20px); max-height: 94dvh; border-radius: 12px; }
  .news-dialog-top { padding: 10px 20px; }
  .news-dialog-article { padding: 24px 20px 32px; }
}
