/* Canonical heading scale. Loaded after the legacy component styles. */
:root {
  --rs-title-home: clamp(2.25rem, 3.6vw, 3.75rem);
  --rs-title-page: clamp(2.125rem, 3.4vw, 3.5rem);
  --rs-title-section: clamp(1.75rem, 2.7vw, 2.75rem);
  --rs-title-card: clamp(1.6rem, 2.3vw, 2.125rem);
}

.hero h1 {
  font-size: var(--rs-title-home);
  line-height: 1.12;
  letter-spacing: -.04em;
}

:is(.inner-hero, .contact-hero, .solutions-hero, .about-hero,
    .process-hero, .audience-hero, .faq-hero, .methodology-hero,
    .diagnostic-hero, .page-hero) h1 {
  font-size: var(--rs-title-page);
  line-height: 1.12;
  letter-spacing: -.04em;
}

:is(.story, .diagnostic, .audience, .faq, .dark-band, .plans-head,
    .final-cta, .contact-copy, .contact-fit, .solutions-intro,
    .solutions-section-head, .solutions-audience, .solutions-cta,
    .methodology, .about-intro, .about-fit, .about-cta, .about-section-head,
    .process-intro, .process-reality, .process-cta, .process-section-head,
    .audience-intro, .audience-fit, .faq-main, .audience-cta, .faq-cta,
    .audience-section-head, .methodology-intro, .methodology-boundaries,
    .diagnostic-page, .diagnostic-page-cta, .methodology-section-head,
    .methodology-cta, .home-film-heading, .section-heading) h2 {
  font-size: var(--rs-title-section);
  line-height: 1.16;
  letter-spacing: -.035em;
}

.inner-grid article h2 {
  font-size: clamp(1.6rem, 2.3vw, 2.25rem);
  line-height: 1.2;
}

:is(.plan-card, .primary-solution-card) h3 {
  font-size: var(--rs-title-card);
  line-height: 1.18;
}

:is(.inner-aside, .form-heading) h2 {
  font-size: clamp(1.5rem, 2.1vw, 2rem);
  line-height: 1.2;
}

@media (max-width: 560px) {
  :root {
    --rs-title-home: clamp(2rem, 8.2vw, 2.5rem);
    --rs-title-page: clamp(1.875rem, 7.7vw, 2.375rem);
    --rs-title-section: clamp(1.625rem, 6.8vw, 2rem);
    --rs-title-card: 1.6rem;
  }
}
