/* Editorial pages use the site's type and surface tokens, with one lead story. */
.page-news {
  --news-gap: clamp(32px, 5vw, 72px);
  --news-muted: #535a63;
}
.news-hub, .editorial { padding-block: clamp(72px, 8vw, 116px) var(--section); }
.news-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  align-items: end;
  gap: var(--news-gap);
  margin-bottom: clamp(64px, 7vw, 100px);
}
.news-heading h1, .editorial h1 {
  margin: 0;
  font: 500 var(--display-lg)/1.05 var(--serif);
  letter-spacing: -.018em;
}
.news-heading > p { max-width: 34ch; margin: 0 0 4px; font-size: var(--text-lead); }
.news-entry-link { display: block; text-decoration: none; }
.news-feature .news-entry-link {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--news-gap);
}
.news-visual { margin: 0; min-width: 0; }
.news-image-surface { padding: clamp(20px, 3vw, 44px); background: var(--surface-muted); }
.news-image-surface img { width: 100%; height: auto; }
.news-visual figcaption { margin-top: 14px; color: var(--news-muted); font-size: var(--text-caption); }
.news-meta { color: var(--news-muted); font-size: var(--text-caption); margin: 0 0 24px; }
.news-entry h2, .news-entry h3 { margin: 0; font: 500 var(--display-sm)/1.12 var(--serif); letter-spacing: -.012em; }
.news-feature h2 { font-size: clamp(2rem, 3.6vw, 4rem); }
.news-entry-description { max-width: 46ch; margin: 24px 0 30px; }
.news-entry-copy > .text-link { display: inline-flex; min-height: 44px; align-items: center; }
.news-entry-link:hover :is(h2, h3) { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .12em; }
.news-entry-link:focus-visible { outline-offset: 8px; }
.news-entry-text .news-entry-link { display: block; }
.news-entry-text .news-entry-copy { max-width: 720px; }
.news-more { margin-top: var(--section); }
.news-more > h2 { margin: 0 0 48px; font-size: var(--heading-functional); font-weight: 500; }
.news-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 80px var(--news-gap); }
.news-grid .news-visual { margin-bottom: 32px; }
.news-empty { padding-block: 48px; font-size: var(--text-lead); }
.editorial-back { display: flex; align-items: center; gap: 10px; width: fit-content; min-height: 44px; margin: 0 0 48px max(0px, calc((100% - 840px) / 2)); font-size: var(--text-small); font-weight: 500; line-height: 1.5; text-decoration: none; }
.editorial-back svg { flex: none; }
.editorial-back:hover span, .editorial-back:focus-visible span { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.editorial-heading { max-width: 840px; margin-inline: auto; }
.editorial h1, .news-entry :is(h2, h3) { hyphens: manual; overflow-wrap: anywhere; text-wrap: balance; }
.editorial-intro { margin: 32px 0 0; font-size: var(--text-lead); line-height: 1.75; text-wrap: pretty; }
.editorial > .news-visual { max-width: 960px; margin: 64px auto 0; }
.editorial-body { max-width: 720px; margin: 80px auto 0; }
.editorial-body section + section { margin-top: 64px; }
.editorial-body h2 { margin: 0 0 24px; font-size: clamp(1.5rem, 2.4vw, 1.875rem); line-height: 1.3; font-weight: 500; letter-spacing: -.018em; text-wrap: pretty; }
.editorial-body p { margin: 0 0 24px; line-height: 1.8; text-wrap: pretty; }
.editorial-references { list-style: none; margin: 28px 0 0; padding: 0; }
.editorial-references a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 8px; font-size: var(--text-small); text-underline-offset: 4px; overflow-wrap: anywhere; }
.editorial-next { margin-top: 88px; padding: clamp(24px, 4vw, 48px); background: var(--surface-muted); }
.editorial-next .hero-actions { margin-top: 28px; }
@media (max-width: 760px) {
  .news-heading, .news-feature .news-entry-link { grid-template-columns: minmax(0, 1fr); }
  .news-heading { gap: 24px; }
  .news-heading > p { max-width: 38ch; }
  .editorial h1, .news-feature h2 { font-size: clamp(2rem, 10.4vw, 3rem); }
  .news-feature .news-entry-copy { max-width: 560px; }
  .news-grid { grid-template-columns: minmax(0, 1fr); gap: 64px; }
  .editorial-back { margin-left: 0; margin-bottom: 32px; }
  .editorial > .news-visual { margin-top: 48px; }
  .editorial-body { margin-top: 56px; }
}
