/* v1.3.5 — restrained sitewide marketing typography.
   Keeps hierarchy strong without letting every section read like a hero. */
:root {
  --vaph-display-heading: clamp(2.75rem, 4.25vw, 4rem);
  --vaph-section-heading: clamp(1.9rem, 2.85vw, 2.8rem);
  --vaph-compact-heading: clamp(1.65rem, 2.35vw, 2.35rem);
  --vaph-mobile-display: clamp(2.25rem, 9.5vw, 3rem);
  --vaph-mobile-section: clamp(1.8rem, 7.5vw, 2.35rem);
}

/* Main page/hero headings. */
.hero-copy h1,
.service-hero-copy h1,
.hub-hero h1,
.vaph-about-hero h1,
.vaph-contact-copy h1,
.vaph-booking-copy h1,
.vaph-academy-hero h1,
.vaph-blog-archive .vaph-archive-hero h1,
.vaph-post-hero h1,
.vaph-page-header h1 {
  font-size: var(--vaph-display-heading);
  line-height: 1.02;
  letter-spacing: -.05em;
}

/* Primary marketing section headings. */
.section-heading h2,
.fit-copy h2,
.faq-intro h2,
.process-copy h2,
.outcome-heading h2,
.fit-copy-card h2,
.calculator-copy h2,
.vaph-about-section h2,
.vaph-about-cta h2,
.vaph-academy-heading h2,
.vaph-academy-workspace-intro h2,
.vaph-academy-faq-grid > div:first-child h2,
.vaph-section-heading-row h2 {
  font-size: var(--vaph-section-heading);
  line-height: 1.08;
  letter-spacing: -.045em;
}

/* Closing CTAs and featured content should be one step smaller than section titles. */
.final-cta h2,
.vaph-blog-archive .vaph-feature-card-body h2,
.vaph-blog-hero-cta h2,
.vaph-contact-card-head h2,
.vaph-booking-panel-head h2,
.vaph-about-hero-card h2 {
  font-size: var(--vaph-compact-heading);
  line-height: 1.1;
  letter-spacing: -.04em;
}

/* Keep long headings from spanning too wide, which makes them feel oversized. */
.section-heading,
.outcome-heading,
.vaph-about-heading,
.vaph-academy-heading {
  max-width: 820px;
}

@media (max-width: 640px) {
  .hero-copy h1,
  .service-hero-copy h1,
  .hub-hero h1,
  .vaph-about-hero h1,
  .vaph-contact-copy h1,
  .vaph-booking-copy h1,
  .vaph-academy-hero h1,
  .vaph-blog-archive .vaph-archive-hero h1,
  .vaph-post-hero h1,
  .vaph-page-header h1 {
    font-size: var(--vaph-mobile-display);
    line-height: 1.05;
    letter-spacing: -.042em;
  }

  .section-heading h2,
  .fit-copy h2,
  .faq-intro h2,
  .process-copy h2,
  .outcome-heading h2,
  .fit-copy-card h2,
  .calculator-copy h2,
  .vaph-about-section h2,
  .vaph-about-cta h2,
  .vaph-academy-heading h2,
  .vaph-academy-workspace-intro h2,
  .vaph-academy-faq-grid > div:first-child h2,
  .vaph-section-heading-row h2 {
    font-size: var(--vaph-mobile-section);
    line-height: 1.1;
  }

  .final-cta h2,
  .vaph-blog-archive .vaph-feature-card-body h2,
  .vaph-blog-hero-cta h2,
  .vaph-contact-card-head h2,
  .vaph-booking-panel-head h2,
  .vaph-about-hero-card h2 {
    font-size: clamp(1.55rem, 6.8vw, 2rem);
  }
}
