/* Public marketing typography. Compact navigation, documents and admin keep their roles. */
:root {
  --type-hero: clamp(1.75rem, 4.8vw, 4.125rem);
  --type-section: clamp(2.125rem, 3.2vw + .875rem, 3.5rem);
  --type-column: clamp(2.125rem, 3vw + .6rem, 3rem);
  --type-card: clamp(1.5rem, 1.5vw + .65rem, 1.875rem);
  --type-subtitle: clamp(1.375rem, 1vw + .75rem, 1.5rem);
}

.hero-copy { container-type: inline-size; }
.hero h1.hero-two-lines {
  font-size: var(--type-hero);
  line-height: 1.06;
  font-weight: 650;
  letter-spacing: -.04em;
  margin-bottom: 1.75rem;
}
.hero h1 .hero-title-line { white-space: normal; }

.landing-page .lp-hero h1,
.landing-page .company-hero h1 {
  font-size: var(--type-hero);
  line-height: 1.06;
  font-weight: 650;
  letter-spacing: -.04em;
  text-wrap: balance;
}

body :is(.section-heading, .directions-heading, .consultation-copy,
  .lp-payment-heading, .evidence-copy, .quiz-copy, .closing-inner,
  .company-intro, .faq-grid) h2,
.landing-page :is(.lp-detail-grid > div, .lp-photo-copy, .lp-result-copy,
  .lp-faq-grid > div, .lp-related-heading) > h2 {
  font-size: var(--type-section);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -.035em;
  text-wrap: balance;
  overflow-wrap: break-word;
}

body :is(.consultation-copy, .evidence-copy, .quiz-copy, .company-intro, .faq-grid, .lp-payment-heading) h2,
.landing-page :is(.lp-detail-grid > div, .lp-photo-copy, .lp-result-copy,
  .lp-faq-grid > div) > h2 {
  font-size: var(--type-column);
}

body :is(.service-card, .purchase-scope, .case-body, .contact-form) h3 {
  font-size: var(--type-card);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.03em;
  text-wrap: balance;
}
body :is(.direction-group, .steps-grid, .evidence-item,
  .payment-flow, .lp-payment-flow, .lp-editorial-list, .lp-photo-list) h3 {
  font-size: var(--type-subtitle);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.heading-accent { color: var(--blue); }
.evidence .heading-accent { color: #b4ccff; }
.steps-grid h3 br { display: initial; }

body :is(.hero, .lp-hero, .company-hero) .hero-return-offer {
  font-size: clamp(1.125rem, 1.7vw, 1.5rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.025em;
  color: var(--ink);
  max-width: none;
  margin: 0 0 1.375rem;
}
.hero-return-offer strong { color: var(--blue); font-weight: 650; }
@media (min-width: 901px) {
  .hero-return-offer { white-space: nowrap; }
  .hero-offer-break { display: none; }
}

/* Give the larger heading room without squeezing its supporting paragraph. */
.section-heading > div:first-child { flex: 1 1 62%; min-width: 0; }
.section-heading > :is(p, a, .text-link) { flex-shrink: 0; }

@media (max-width: 900px) {
  :root { --type-hero: clamp(1.75rem, 9vw, 4.5rem); }
}
@media (max-width: 650px) {
  body :is(.hero, .lp-hero, .company-hero) .hero-return-offer { font-size: 1.25rem; }
  .hero h1.hero-two-lines { margin-bottom: 1.5rem; }
  .section-heading > :is(p, a, .text-link) { flex-shrink: 1; }
}
