/* Shared brand typography; page-specific sizes, palettes and layouts remain local. */
:root{--rr-font-body:Arial,Helvetica,sans-serif;--rr-font-heading:"Arial Black",Arial,sans-serif;--rr-red:#b62d37;--rr-ink:#171513;--rr-paper:#f0e9df;--rr-cream:#fffdf9}
body{font-family:var(--rr-font-body)}
main :is(h1,h2,h3){font-family:var(--rr-font-heading);font-weight:900}
main :is(.button,.home-partner-button){font-family:var(--rr-font-body);font-size:11px;font-weight:800;letter-spacing:.1em;line-height:1.5}
/* Keep narrow-screen text inside its layout rather than clipping it. */
@media (max-width: 600px) {
  main :where(section, div, article, aside) { min-width: 0; }
  main :where(h1, h2, h3, p, blockquote) { overflow-wrap: anywhere; }
  .hero > :not(video) { min-width: 0; max-width: 100%; }
}
@media (max-width: 480px) {
  body main :is(.hero,.news-hero,.join-hero) h1 { font-size: clamp(36px, 11vw, 52px); line-height: .95; }
}

/* White labels retain contrast on solid red call-to-action panels. */
body main :is(.cta,.contact,.registration,.closing) .eyebrow{color:#fff}
body main .cta p{color:#fff}
