/* ========================================================
   TYPE — app-wide typographic layer (load right after base.css).
   Fonts are imported once in variables.css; sizes come from
   the --text-* scale also defined there.
   ======================================================== */

/* ─── Font inheritance ──────────────────────────────────────
   Form controls ship with a UA-specific font; force them onto
   the app's Manrope stack so inputs match surrounding text. */
input, button, textarea, select, optgroup {
  font-family: inherit;
  font-size: inherit;
}

/* ─── Reading rhythm ───────────────────────────────────────
   Only long-form flows (articles, prose, pillar subsections)
   force an air gap after a heading that follows content.
   Cards, heroes, modals and section headers keep the spacing
   they were designed with (badges sit right above titles). */
:where(article, .prose, .subsection-text) > :where(h1, h2, h3, h4, h5, h6):not(:first-child) {
  margin-top: 1.5em;
}

.hero-title,
.page-hero h1 {
  margin-top: 0;
}

/* ─── Format ─────────────────────────────────────────────── */
strong, b { font-weight: 700; }

/* The hero carousel keeps exactly one expressive accent
   (.type-quote) for the testimonial overlay. */
.font-quote,
.type-quote {
  font-family: var(--font-serif);
  font-weight: 600;
  line-height: var(--leading-snug);
  letter-spacing: 0;
}

/* ─── Emphasis utilities (weight only — sizes stay in the scale) ─── */
.fw-400 { font-weight: 400; }
.fw-500 { font-weight: 500; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.fw-800 { font-weight: 800; }

/* ─── tracking utilities ──────────────────────────────────── */
.tracking-tight  { letter-spacing: var(--tracking-tight); }
.tracking-wide   { letter-spacing: var(--tracking-wide); }
.tracking-widest { letter-spacing: var(--tracking-widest); }

/* ─── measure (line length) ─────────────────────────────────
   Long-form reading stays inside 62–68ch in both themes. */
.measure > p,
.measure p,
.prose > p,
.prose li {
  max-width: 68ch;
}