/* =============================================================
   TYPE SCALE v2 — 2026-06-16
   Unification pass after Playwright audit revealed per-section
   font-size drift (H3 appearing at 19/20/21/24px across sections;
   body reading 19px desktop / 17px mobile despite theme.css = 22px).

   This file is loaded LAST in <head>, after all the inline <style>
   blocks in each page, so source-order makes it win for same-
   specificity selectors. No `!important` needed.

   Scale principles:
   - Bigger across the board (Jamie 2026-06-16: "make it larger, clearer")
   - One H1, one H2 (recurring), one H3 (subsections + card titles)
   - Body unified: same px for <p>, <li>, hero sub, card bodies of similar weight
   - Visible hierarchy gap between sizes (no two sizes within 2px of each other)
   ============================================================= */

/* === HEADLINES ============================================== */
.hero__h1,
h1 {
  font-size: 64px;
  line-height: 1.08;
}
h2 {
  font-size: 44px;
  line-height: 1.12;
}
h3,
.symptom-card__title,
.step-card h3,
.differentiator h3,
.team-card h3,
.stripes__item h3,
.route__title,
.parents-band h3,
.price-card .price-card__head h3 {
  font-size: 24px;
  line-height: 1.22;
}
.featured-quote blockquote { font-size: 24px; line-height: 1.4; }
.outcomes h2 { font-size: 36px; }
.outcomes__stat-num { font-size: 56px; line-height: 1; }
.dc-tile__title { font-size: 22px; line-height: 1.2; }

@media (max-width: 900px) {
  .hero__h1, h1 { font-size: 50px; }
  h2 { font-size: 36px; }
  h3,
  .symptom-card__title,
  .step-card h3,
  .differentiator h3,
  .stripes__item h3,
  .route__title { font-size: 22px; }
  .outcomes h2 { font-size: 30px; }
  .outcomes__stat-num { font-size: 44px; }
}

@media (max-width: 600px) {
  .hero__h1, h1 { font-size: 40px; }
  h2 { font-size: 32px; }
  h3,
  .symptom-card__title,
  .step-card h3,
  .differentiator h3,
  .stripes__item h3,
  .route__title { font-size: 22px; }
  .featured-quote blockquote { font-size: 20px; }
}

/* === BODY =================================================== */
body { font-size: 20px; line-height: 1.6; }
p,
li,
dd,
.hero__sub,
.symptom-card__body,
.step-card p,
.differentiator p,
.stripes__item p,
.route__pitch,
.book-cta__sub,
.faq-item p,
.parents-band p,
.dc-tile__body,
.outcomes__stat-label,
.team-card__role,
.section-title p {
  font-size: 20px;
  line-height: 1.6;
}

@media (max-width: 900px) {
  body,
  p, li, dd,
  .hero__sub,
  .symptom-card__body,
  .step-card p,
  .differentiator p,
  .stripes__item p,
  .route__pitch,
  .book-cta__sub,
  .faq-item p,
  .dc-tile__body,
  .outcomes__stat-label,
  .team-card__role { font-size: 19px; }
}

@media (max-width: 600px) {
  body,
  p, li, dd,
  .hero__sub,
  .symptom-card__body,
  .step-card p,
  .differentiator p,
  .stripes__item p,
  .route__pitch,
  .book-cta__sub,
  .faq-item p,
  .dc-tile__body,
  .outcomes__stat-label,
  .team-card__role,
  .section-title p { font-size: 18px; }
}

/* === CARDS (testimonial, pricing, comparison) =============== */
.testimonial-card,
.testimonial-card blockquote,
.pricing-card li,
.comparison-card li,
.comparison-card p,
.price-card__included li {
  font-size: 19px;
  line-height: 1.55;
}
@media (max-width: 600px) {
  .testimonial-card,
  .testimonial-card blockquote,
  .pricing-card li,
  .price-card__included li { font-size: 18px; }
}

/* === FAQ ==================================================== */
.faq-item summary { font-size: 20px; line-height: 1.4; }
@media (max-width: 600px) { .faq-item summary { font-size: 18px; } }

/* === PRICE ================================================== */
.price-card__price { font-size: 64px; line-height: 1; }
@media (max-width: 900px) { .price-card__price { font-size: 52px; } }
@media (max-width: 600px) { .price-card__price { font-size: 44px; } }

/* === SMALL / META =========================================== */
.eyebrow { font-size: 16px; letter-spacing: 0.08em; }
.wait-tag,
.best-badge,
.testimonial-card__meta,
.featured-quote__meta,
.hero__caption-text,
.hero__availability,
.g-trust-strip__text span,
[class*="__meta"],
[class*="__caption"],
.route__row-label,
.route__row-value,
.footnotes,
.footnotes li { font-size: 17px; }

@media (max-width: 600px) {
  .eyebrow { font-size: 15px; }
  .wait-tag,
  .best-badge,
  .testimonial-card__meta { font-size: 16px; }
}

/* === HERO TRUST / PHONE ===================================== */
.hero__trust-meta,
.hero__trust-meta strong { font-size: 18px; line-height: 1.4; }
.hero__phone,
.hero__phone .label { font-size: 18px; }

/* === BUTTONS ================================================ */
.btn { font-size: 19px; }
@media (max-width: 600px) {
  .btn { font-size: 17px; }
  .site-header__right .btn { font-size: 16px; }
}

/* === SECTION-TITLE INTRO P (bigger - it's a lead-in) ======== */
.section-title p { font-size: 22px; line-height: 1.55; }
@media (max-width: 900px) { .section-title p { font-size: 20px; } }
@media (max-width: 600px) { .section-title p { font-size: 18px; } }

/* === MOBILE LAYOUT: patterns grid to 1-col so cards aren't 17ch wide === */
@media (max-width: 600px) {
  .symptom-grid { grid-template-columns: 1fr !important; gap: 14px; }
}

/* === Women bullet typography (match the new body scale) === */
.women-bullets li strong { font-size: 19px; }
.women-bullets li > div   { font-size: 19px; line-height: 1.55; }
@media (max-width: 600px) {
  .women-bullets li strong,
  .women-bullets li > div { font-size: 18px; }
}
