:root {
  --type-label: 0.6875rem;
  --type-meta: 0.75rem;
  --type-small: 0.875rem;
  --type-body: 1rem;
  --type-body-large: 1.125rem;
  --type-card-title: 1.25rem;
  --type-subsection-title: 2rem;
  --type-feature-title: 3rem;
  --type-section-title: 4rem;
  --type-article-title: 4.5rem;
  --type-page-title: 5.25rem;
  --type-guide-title: 3.5rem;
}

/* Shared display roles */
.landing-hero h1,
.product-evaluator__heading h1,
.about-hero h1,
.blog-hero h1,
.support-workspace__intro h1,
.page-shell h1 {
  font-size: var(--type-page-title);
}

.blog-article__header h1 {
  font-size: var(--type-article-title);
}

.support-guide-header h1 {
  font-size: var(--type-guide-title);
}

.product-console__header h2,
.night-story h2,
.audiences__intro h2,
.evidence__header h2,
.product-section-heading h2,
.product-category-comparison__heading h2,
.product-outcomes__heading h2,
.product-hub-compare__heading h2,
.product-faq__heading h2,
.product-waitlist-section__heading h2,
.about-story h2,
.about-culture h2,
.blog-section__header h2,
.site-waitlist__copy h2 {
  font-size: var(--type-section-title);
}

.product-console__panel h3,
.product-console__system h3,
.product-explorer__panel > h3,
.product-feature-evaluator__content h3,
.blog-lead__copy h2,
.blog-newsletter h2 {
  font-size: var(--type-feature-title);
}

.evidence-story__copy h3,
.evidence-story--science .evidence-story__copy h3,
.support-assistant h2,
.support-routes h2,
.support-human h2,
.support-guide-section h2,
.blog-article__body h2,
.product-waitlist-success h3 {
  font-size: var(--type-subsection-title);
}

.night-story__moment h3,
.audience-panel__title,
.audiences__promise h3,
.evidence-ledger__item h3,
.product-outcomes__outcome h3,
.product-setup__step h3,
.support-guide-step h3,
.blog-topic-link h3,
.blog-story__copy h3,
.blog-article__body h3 {
  font-size: var(--type-card-title);
}

/* Shared reading roles */
.landing-hero__copy > p,
.audiences__intro > p,
.evidence__lede,
.product-evaluator__heading > p,
.product-section-heading > p:last-child,
.product-hub-compare__heading > p:last-child,
.product-faq__heading > p:last-child,
.product-waitlist-section__heading > p:last-child,
.blog-hero__intro,
.support-workspace__intro > p:last-child,
.support-guide-header > p,
.site-waitlist__copy > p {
  font-size: var(--type-body-large);
}

.about-hero__copy p,
.about-story__copy p,
.about-story__copy p:first-child,
.about-culture__intro,
.about-culture__explanation,
.blog-lead__copy p,
.blog-article__body,
.blog-article__body p,
.blog-article__body li,
.support-guide-section > p,
.support-guide-list li {
  font-size: var(--type-body);
}

.product-console__panel > p:last-child,
.product-console__system > p:not(.product-console__system-label):not(.product-console__support-label),
.night-story__moment p,
.audience-panel__body,
.evidence-story__copy > p:not(.evidence-story__label),
.evidence-ledger__item p,
.product-outcomes__outcome p,
.product-feature-evaluator__content > p,
.product-setup__step p,
.blog-section__aside,
.blog-story__copy > p:not(.blog-meta),
.support-assistant__intro > p,
.support-routes__header p,
.support-human p:last-child,
.support-guide-step p {
  font-size: var(--type-small);
}

/* Repeated labels, metadata, navigation, and footer roles */
.product-console__eyebrow,
.product-console__panel-label,
.product-console__system-label,
.product-console__support-label,
.audience-panel__context,
.evidence__eyebrow,
.evidence-story__label,
.product-kicker,
.blog-eyebrow,
.blog-topic,
.blog-status,
.support-kicker,
.support-guide-kicker,
.support-assistant__eyebrow,
.footer__heading,
.landing-footer__nav h3 {
  font-size: var(--type-label);
}

.blog-meta,
.blog-article__breadcrumb {
  font-size: var(--type-meta);
}

.nav-link,
.about-navigation a,
.blog-navigation a,
.footer__links a,
.footer__link--disabled {
  font-size: var(--type-small);
}

.footer__slogan {
  font-size: var(--type-subsection-title);
}

@media (max-width: 960px) {
  :root {
    --type-page-title: 4rem;
    --type-article-title: 3.75rem;
    --type-section-title: 3.25rem;
    --type-feature-title: 2.5rem;
  }
}

@media (max-width: 640px) {
  :root {
    --type-body-large: 1rem;
    --type-page-title: 3.25rem;
    --type-article-title: 2.75rem;
    --type-guide-title: 3rem;
    --type-section-title: 2.5rem;
    --type-feature-title: 2rem;
    --type-subsection-title: 1.5rem;
    --type-card-title: 1.125rem;
  }

  .nav-link,
  .about-navigation a,
  .blog-navigation a {
    font-size: var(--type-body);
  }
}
