/* ============================================================
   Azbuka Pro — base element defaults (reachable via styles.css)
   Kept light: sets document type defaults, not a reset framework.
   ============================================================ */
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--t-body);
  /* Unitless leading (14.5px × 1.65 ≈ 23.93px — same body rhythm as the
     brand-book --lh-body). Must stay unitless: a fixed px line-height here
     is inherited as an ABSOLUTE length by every child that doesn't set its
     own, so large inline-sized text (e.g. the 32px CTA headings) would get
     a 23.93px line box and collapse onto itself. */
  line-height: 1.65;
  color: var(--text-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5 {
  font-family: var(--font-display);
  color: var(--text-strong);
  margin: 0;
  font-weight: var(--fw-semibold);
  /* Sensible default leading for headings that don't set their own (e.g. the
     inline font-size:32px CTA <h2>s). Prevents multi-line headings from
     overlapping. Components with their own line-height (.hero h1,
     .section-head h2, .page-hero h1…) still override this. */
  line-height: 1.15;
  /* Guard against a very long word pushing a heading past its panel edge. */
  overflow-wrap: break-word;
}

/* Utility helpers used across cards & kits */
.az-eyebrow {
  font-family: var(--font-sans);
  font-weight: var(--fw-bold);
  font-size: var(--t-eyebrow);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--accent-ink);
}
.az-serif { font-family: var(--font-display); }
.az-sans  { font-family: var(--font-sans); }

/* Section number chip (e.g. "07" · 30px gold rule) used in the book */
.az-section-index {
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 1.2px;
  color: var(--accent);
}
