/*
  Rooted Rocket authoritative typography system.

  Benchmarked August 20, 2026 against 64 competitor and adjacent-company
  homepages in a desktop cloud browser. Forty-seven sites returned usable
  computed typography. Their medians were 65px H1, 44px H2, 24px H3, and
  16px body/navigation/action text.

  This file loads after site-2026.css so every canonical route resolves to
  one responsive type scale. Legacy component declarations remain for layout
  compatibility, but font-size decisions are owned here.
*/

:root {
  --rr-type-display: 4rem;
  --rr-type-section: 3rem;
  --rr-type-feature: 2rem;
  --rr-type-subhead: 1.75rem;
  --rr-type-lede: 1.25rem;
  --rr-type-body: 1.125rem;
  --rr-type-compact: 1rem;
  --rr-type-control: 1rem;
  --rr-type-meta: .875rem;
  --rr-type-stat: 3rem;
  --rr-type-brand: clamp(5rem, 10vw, 10rem);
}

body.rr-v2 {
  font-size: var(--rr-type-body);
  line-height: 1.62;
}

/* Primary hierarchy */
.rr-v2 h1,
.rr-v2 .hero-copy h1,
.rr-v2 .page-hero h1,
.rr-v2 .article-header h1,
.rr-v2 .contact-intro h1 {
  font-size: var(--rr-type-display) !important;
  letter-spacing: -.05em;
  line-height: 1;
  text-wrap: balance;
}

.rr-v2 h2,
.rr-v2 .section-heading h2,
.rr-v2 .sticky-heading h2,
.rr-v2 .result-story-heading h2,
.rr-v2 .result-copy h2,
.rr-v2 .price-summary h2,
.rr-v2 .final-cta h2,
.rr-v2 .commercial-grid > h2 {
  font-size: var(--rr-type-section) !important;
  letter-spacing: -.045em;
  line-height: 1.06;
  text-wrap: balance;
}

.rr-v2 h3 {
  font-size: var(--rr-type-subhead) !important;
  letter-spacing: -.03em;
  line-height: 1.18;
  text-wrap: balance;
}

.rr-v2 h4 {
  font-size: 1.25rem !important;
  line-height: 1.25;
}

/* Reading text */
.rr-v2 main p,
.rr-v2 main li,
.rr-v2 main dd {
  font-size: var(--rr-type-body) !important;
  line-height: 1.62;
  text-wrap: pretty;
}

.rr-v2 :is(
  .hero-lede,
  .intervention-lede,
  .article-body > p:first-child,
  .contact-intro > p,
  .assessment-result-header > div > p
) {
  font-size: var(--rr-type-lede) !important;
  line-height: 1.6;
}

.rr-v2 :is(
  .hero-promise,
  .system-readout p,
  .field-grid p,
  .card p,
  .case-chain p,
  .case-system-list li,
  .case-outcomes dd,
  .method-grid p,
  .decision-path p,
  .price-card p,
  .resource-item p,
  .worksheet-row strong,
  .worksheet-row span,
  .contact-notes p,
  .field input,
  .field textarea,
  .field select,
  .error-summary
) {
  font-size: var(--rr-type-compact) !important;
}

/* Component headings */
.rr-v2 :is(
  .intervention-row h3,
  .price-card h2,
  .price-card h3,
  .price-card strong,
  .price-summary strong,
  .decision-path h3,
  .commercial-section .decision-path h3,
  .article-body h2,
  .article-body blockquote,
  .legal-body h2,
  .intro-statement,
  .assessment-result-header h2,
  .contact-principle h2
) {
  font-size: var(--rr-type-feature) !important;
  line-height: 1.16;
}

.rr-v2 :is(
  .system-readout h2,
  .field-grid h3,
  .card h3,
  .content-stack h2,
  .content-stack h3,
  .resource-item h2,
  .resource-item h3,
  .case-chain h3,
  .case-outcomes > h3,
  .method-grid h3,
  .article-body h3,
  .assessment-section h2,
  .assessment-result-details h3,
  .assessment-result-cta h3
) {
  font-size: var(--rr-type-subhead) !important;
  line-height: 1.18;
}

/* Navigation and actions */
.rr-v2 :is(
  .nav-list > li > a,
  .nav-trigger,
  .nav-menu a,
  .header-cta,
  .button,
  .text-link,
  .field-link,
  details.disclosure summary,
  details.faq summary,
  .assessment-question legend,
  .assessment-options strong,
  .assessment-progress strong
) {
  font-size: var(--rr-type-control) !important;
}

/* Labels, metadata, and compact UI */
.rr-v2 :is(
  .article-meta,
  .article-byline,
  .tag,
  .document-label,
  .artifact-label,
  .intervention-note,
  .method-grid span,
  .card > span,
  .price-card > span,
  .decision-path > article > span,
  .resource-item > span:first-child,
  .comparison-table th,
  .field label,
  .form-footnote,
  .system-core strong,
  .system-node,
  .footer-bottom,
  .assessment-progress > div:first-child > span,
  .assessment-section > header > span,
  .assessment-question legend > span,
  .assessment-options small,
  .assessment-section-results strong,
  .assessment-section-results span,
  .assessment-referral strong
) {
  font-size: var(--rr-type-meta) !important;
}

.rr-v2 .intervention-row::before {
  font-size: var(--rr-type-meta) !important;
}

.rr-v2 .comparison-table td {
  font-size: var(--rr-type-compact) !important;
}

/* Metrics and intentional brand display */
.rr-v2 :is(
  .proof-grid strong,
  .result-ledger dt,
  .case-outcomes dt,
  .assessment-result-header > span
) {
  font-size: var(--rr-type-stat) !important;
  line-height: 1;
}

.rr-v2 .brand-word {
  font-size: var(--rr-type-brand) !important;
}

/* Footer is navigation, not page-heading hierarchy. */
.rr-v2 .footer-brand p,
.rr-v2 .footer-column a {
  font-size: var(--rr-type-compact) !important;
  line-height: 1.55;
}

.rr-v2 .footer-column h2 {
  font-size: var(--rr-type-control) !important;
  line-height: 1.3;
}

/* Keep the subtractive thesis readable as one composed editorial block. */
.rr-v2 .intervention-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(20rem, .8fr);
  column-gap: clamp(3rem, 6vw, 6rem);
  align-items: start;
}

.rr-v2 .intervention-shell > h2 {
  grid-column: 1;
  max-width: none;
  margin: 0;
}

.rr-v2 .intervention-lede {
  grid-column: 2;
  max-width: 34rem;
  margin: .5rem 0 0;
}

.rr-v2 .intervention-list {
  grid-column: 1 / -1;
  margin-top: clamp(3.5rem, 5vw, 4.5rem);
}

@media (max-width: 800px) {
  :root {
    --rr-type-display: 2.75rem;
    --rr-type-section: 2.25rem;
    --rr-type-feature: 1.75rem;
    --rr-type-subhead: 1.5rem;
    --rr-type-lede: 1.125rem;
    --rr-type-body: 1.0625rem;
    --rr-type-stat: 2.5rem;
    --rr-type-brand: clamp(4.25rem, 18vw, 5.75rem);
  }

  .rr-v2 .intervention-shell {
    grid-template-columns: 1fr;
  }

  .rr-v2 .intervention-shell > h2,
  .rr-v2 .intervention-lede,
  .rr-v2 .intervention-list {
    grid-column: 1;
  }

  .rr-v2 .intervention-shell > h2 {
    max-width: 18ch;
  }

  .rr-v2 .intervention-lede {
    margin-top: 1.5rem;
  }

  .rr-v2 .intervention-list {
    margin-top: 3rem;
  }
}

@media (max-width: 420px) {
  :root {
    --rr-type-display: 2.5rem;
    --rr-type-section: 2.125rem;
  }
}
