/* Shared typography: load after page styles so equal content roles stay consistent. */
:root {
  --ts-font: "Instrument Sans", sans-serif;
  --ts-text: 0.9rem;
  --ts-title-page: clamp(1.5rem, 2.5vw, 1.8rem);
  --ts-title-section: clamp(1.2rem, 2vw, 1.4rem);
  --ts-title-card: 1.05rem;
}
body { font-family: var(--ts-font); font-size: var(--ts-text); line-height: 1.65; }
button, input, select, textarea { font-family: var(--ts-font); font-size: var(--ts-text); }
h1, h2, h3, h4, h5, h6,
.section-title, .card-title, .journal-entry-title, .journal-entry-subtitle {
  font-family: var(--ts-font) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em;
  line-height: 1.3 !important;
}
h1, h1.section-title { font-size: var(--ts-title-page) !important; }
h2, h2.section-title, .journal-entry-title { font-size: var(--ts-title-section) !important; }
h3, h3.card-title, .journal-entry-subtitle { font-size: var(--ts-title-card) !important; }
h4, h5, h6 { font-size: var(--ts-text) !important; }
p, li, label, input, select, textarea, th, td,
.body-text, .section-copy, .hero-subtitle, .modal-copy,
.contact-editorial p, .journal-entry-body, .promoter-copy,
.follow-copy, .newsletter-copy {
  font-family: var(--ts-font) !important;
  font-size: var(--ts-text) !important;
  line-height: 1.65;
}
label { font-weight: 500; }
/* Secondary captions retain the same compact scale on every page. */
.small, .section-footnote, .footer-brand p, .footer-newsletter p,
.copyright, .footer-legal { font-size: 0.78rem !important; }
.footer-partners h2 {
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.08em;
}
