/* Shared editorial type rules. Page-specific CSS still owns scale and layout. */
:root {
  --zento-content-max: 1320px;
  --zento-frame-max: 1000px;
  --zento-rule-max: 920px;
  --zento-copy-max: 720px;
  --zento-lead-max: 920px;
  --home-content-max: var(--zento-content-max);
}

:where(h1, h2, h3, h4) {
  line-break: strict;
  text-wrap: balance;
}

:where(p, li, dd, dt) {
  line-break: strict;
  text-wrap: pretty;
}

/* Keep labels and actions intact; responsive page rules control their size. */
:where(button, [role="button"], .button, .sponsor-pdf-link, .contact-sponsor-link, .supporters-cta) {
  white-space: nowrap;
}

/* The shared faithful-page lead uses the same copy width as section rules. */
:where(.tf-lead) {
  max-width: var(--zento-copy-max);
}

/* Existing page-specific layouts mapped to the same semantic width tiers. */
:where(.program-intro, .program-browser) {
  max-width: var(--zento-frame-max);
}

:where(.event-detail, .event-others) {
  max-width: var(--zento-rule-max);
}

:where(.nf-list-hero, .nf-news-grid) {
  max-width: var(--zento-frame-max);
}

:where(.nf-article) {
  max-width: var(--zento-copy-max);
}

:where(.wrap, .footer-grid, .home-content, .home-footer__inner) {
  max-width: var(--zento-content-max);
}

:where(.map-lead, .page-intro > p:not(.kicker)) {
  max-width: var(--zento-copy-max);
}
