/* Shared type scale. Loaded after page styles so every page follows one system. */
:root {
  --type-display: clamp(2.75rem, 5vw, 4rem);
  --type-h1: clamp(2.5rem, 4vw, 3.5rem);
  --type-h2: clamp(1.875rem, 3vw, 2.625rem);
  --type-h3: clamp(1.25rem, 1.7vw, 1.5rem);
}

body { font-size: 1rem; line-height: 1.65; }
p { text-wrap: pretty; }
h1, h2, h3 {
  font-family: Inter, Arial, sans-serif;
  text-wrap: balance;
  overflow-wrap: break-word;
}
h1 { font-size: var(--type-h1); line-height: 1.12; letter-spacing: -.045em; }
h2 { font-size: var(--type-h2); line-height: 1.18; letter-spacing: -.035em; }
h3 { font-size: var(--type-h3); line-height: 1.3; letter-spacing: -.02em; }

/* Page titles and full-width campaign headings. */
.landing-hero h1, .about-hero h1, .home-hero h1 { font-size: var(--type-display); line-height: 1.1; letter-spacing: -.05em; }
.landing-hero h1 { max-width: 14ch; }
.landing-banner h2 { max-width: 29ch; }
.page-hero h1, .hero-copy h1, .program-hero h1 { font-size: var(--type-h1); line-height: 1.12; }

/* Section headings across the current homepage, About, programs, and contact. */
.landing-about-copy h2, .landing-section-head h2, .landing-banner h2,
.landing-paths-intro h2, .landing-guidance h2, .landing-final h2,
.about-story h2, .about-section-heading h2, .about-banner h2, .about-contact h2,
.home-intro-copy h2, .home-centered-heading h2, .home-featured-head h2,
.home-expertise h2, .home-gallery h2, .home-statement h2, .home-contact h2,
.program-intro h2, .program-section-heading h2, .program-closing-copy h2,
.contact-band h2 {
  font-size: var(--type-h2);
  line-height: 1.18;
  letter-spacing: -.035em;
}

/* Smaller headings within cards, sidebars, forms, and supporting sections. */
.landing-program-info h3, .landing-guidance-grid h3, .about-principles-grid h3,
.about-paths-grid h3, .course-card h3, .home-why-card h3,
.home-featured-spotlight h3, .program-highlight h3 {
  font-size: var(--type-h3);
  line-height: 1.3;
  letter-spacing: -.02em;
}
.catalog-controls h2, .detail-main h2, .detail-section h2, .detail-aside h2,
.contact-form h2, .location-strip h2, .program-advisor h2 { font-size: clamp(1.5rem, 2vw, 1.875rem); line-height: 1.25; }
.legal-content h2 { font-size: 1.625rem; }
.legal-content h3 { font-size: 1.25rem; }
.footer-v2 h2 { font-size: 1.08rem; line-height: 1.35; letter-spacing: 0; }
.footer-v2-column a, .footer-v2-column p, .footer-v2-brand p { font-size: .875rem; line-height: 1.6; }
.footer-v2-bottom > .container { font-size: .8125rem; }

/* Readable paragraph sizes and flexible measures prevent cramped columns. */
.landing-hero-content > p, .about-hero p { font-size: clamp(1rem, 1.35vw, 1.125rem); line-height: 1.6; }
.about-story-copy .about-story-lead, .program-intro p { font-size: 1.0625rem; line-height: 1.7; }
.landing-program-info p, .landing-guidance-grid p, .about-principles-grid p,
.about-paths-grid p, .course-card p, .home-why-card p, .program-advisor p { font-size: .9375rem; line-height: 1.6; }
.landing-about-grid > *, .landing-paths-grid > *, .landing-guidance-grid > *,
.landing-final > *, .about-story > *, .program-hero > * { min-width: 0; }

@media (max-width: 520px) {
  :root {
    --type-display: clamp(2.625rem, 11vw, 3.25rem);
    --type-h1: clamp(2.25rem, 9vw, 2.75rem);
    --type-h2: clamp(1.75rem, 7vw, 2.125rem);
    --type-h3: 1.25rem;
  }
  .landing-hero h1 { max-width: 13ch; }
  .landing-hero-content > p, .about-hero p { font-size: 1rem; }
  .footer-v2-column a, .footer-v2-column p { font-size: .875rem; }
}
