/* OLA global type hierarchy */
:root {
  --type-display: clamp(52px, 5.8vw, 88px);
  --type-display-home: clamp(56px, 6.4vw, 96px);
  --type-section: clamp(40px, 4.6vw, 68px);
  --type-section-compact: clamp(34px, 3.8vw, 56px);
  --type-card: clamp(25px, 2.5vw, 38px);
  --type-card-small: clamp(22px, 2vw, 31px);
  --type-lead: clamp(16px, 1.25vw, 18px);
  --type-body: 14px;
  --type-body-small: 12px;
  --type-meta: 9px;
  --leading-display: .96;
  --leading-heading: 1.02;
  --leading-body: 1.62;
}

body {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

/* Level 1 — page identity */
.support-hero h1,
.science-hero h1,
.library-page .science-hero h1,
.extracts-hero h1,
.journal-hero h1 {
  font-size: var(--type-display);
  line-height: var(--leading-display);
}

.home-page .hero h1 {
  font-size: var(--type-display-home);
}

/* Level 2 — editorial modules */
.section-head h2,
.ways > h2,
.statement h2,
.science-copy h2,
.library-home-copy h2,
.origin-copy h2,
.journal-head h2,
.support-section-head h2,
.practitioners-head h2,
.coordination h2,
.request-copy h2,
.science-section-head h2,
.ingredients-intro h2,
.science-library-teaser h2,
.evidence-section h2,
.science-cta h2,
.extracts-intro h2,
.choice h2,
.inquiry h2,
.journal-intro h2 {
  font-size: var(--type-section);
  line-height: var(--leading-display);
}

/* Level 3 — cards, profiles and articles */
.ritual-card h3,
.service-card h3,
.plan-card h3,
.practitioner-copy h3,
.technology-grid h3,
.ingredient-card h3,
.ways-grid h3,
.proof h3,
.journal-entry h2,
.product-grid .product-content h2,
.process-band h3 {
  font-size: var(--type-card);
  line-height: var(--leading-heading);
}

.proof h3,
.ways-grid h3,
.process-band h3 {
  font-size: var(--type-card-small);
}

/* Leads introduce a page or major idea. */
.hero-text,
.hero-lead,
.support-hero p:not(.eyebrow),
.science-hero > div > p:not(.eyebrow),
.journal-hero-copy > p:not(.eyebrow) {
  font-size: var(--type-lead);
  line-height: 1.58;
}

/* Reading text */
.statement p,
.science-copy > p:not(.eyebrow),
.library-home-copy > p:not(.eyebrow),
.origin-copy > p:not(.eyebrow),
.choice-copy p,
.inquiry-copy p,
.request-copy p,
.oceanica-bridge-copy > p:not(.eyebrow),
.science-library-teaser p:not(.eyebrow) {
  font-size: var(--type-body);
  line-height: var(--leading-body);
}

.service-card p,
.service-card li,
.plan-card p,
.plan-card li,
.practitioner-copy p,
.technology-grid dd,
.ingredient-card > div > p,
.journal-entry p,
.product-grid .product-summary {
  font-size: var(--type-body-small);
  line-height: 1.58;
}

/* Level 6 — labels and technical metadata */
.eyebrow,
.module-label,
.service-card > span,
.plan-card > span,
.technology-grid article > span,
.ingredient-index,
.journal-entry-meta,
.specs dt,
.research-note span {
  font-size: var(--type-meta);
  line-height: 1.25;
  letter-spacing: .1em;
}

@media (max-width: 800px) {
  :root {
    --type-display: clamp(42px, 12.4vw, 54px);
    --type-display-home: clamp(47px, 13.4vw, 58px);
    --type-section: clamp(35px, 10.5vw, 46px);
    --type-section-compact: clamp(31px, 9vw, 40px);
    --type-card: clamp(27px, 8vw, 36px);
    --type-card-small: clamp(22px, 6.5vw, 28px);
    --type-lead: 16px;
    --type-body: 14px;
    --type-body-small: 12px;
  }

  .science-cta h2,
  .closing h2 {
    font-size: var(--type-section);
  }
}
