/* ============================================================
   TYPE TOKENS
   Authoritative pairing & hierarchy from the Manual de Identidad
   2024 (p.11): Noto Sans + Libre Baskerville Italic (the serif is
   only ever italic — never bold, never upright).
   Manual hierarchy (print anchors): Títulos de acento (LB Italic
   75pt) · Título (NS Bold 48pt) · Subtítulo (NS SemiBold Italic
   28pt) · Textos (NS Regular 18pt) · Website (NS Bold 18pt).
   The UI scale (text-xs…lg) is an addition for product surfaces;
   mono is a system-stack addition for identifiers (CLABE, RFC,
   folios) — no mono font ships with the brand.
   ============================================================ */

:root {
  --font-serif-display: "Libre Baskerville", "Iowan Old Style", Georgia, serif;
  --font-sans: "Noto Sans", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Consolas, "Liberation Mono", monospace; /* system stack — no brand mono ships */

  /* TÍTULOS DE ACENTO — Libre Baskerville Italic. Emotional headlines
     & slogans ≤5 words ("¡Este mes estrena auto!"). */
  --text-accent-xl: italic 400 64px/1.12 var(--font-serif-display);
  --text-accent-lg: italic 400 44px/1.15 var(--font-serif-display);
  --text-accent-md: italic 400 30px/1.25 var(--font-serif-display);
  /* legacy aliases */
  --text-display-lg: var(--text-accent-xl);
  --text-display-md: var(--text-accent-lg);
  --text-display-sm: var(--text-accent-md);

  /* TÍTULO — Noto Sans Bold. Structural headings. Semantic h-level is
     chosen by document outline; visual size by token — decoupled. */
  --text-h1: 700 48px/1.15 var(--font-sans);
  --text-h2: 700 36px/1.2 var(--font-sans);
  --text-h3: 700 24px/1.3 var(--font-sans);
  --text-h4: 700 18px/1.35 var(--font-sans);
  --text-h5: 700 16px/1.4 var(--font-sans);

  /* SUBTÍTULO — Noto Sans SemiBold Italic. */
  --text-subtitle: italic 600 28px/1.3 var(--font-sans);
  --text-subtitle-sm: italic 600 20px/1.35 var(--font-sans);

  /* TEXTOS — body. Never below 16px for primary reading. */
  --text-body-lg: 400 19px/1.55 var(--font-sans);
  --text-body-md: 400 16px/1.55 var(--font-sans);
  --text-body-sm: 400 14px/1.5 var(--font-sans);

  /* UI scale (product surfaces; tighter line-heights than prose) */
  --text-xs: 400 12px/1.35 var(--font-sans);   /* captions, table meta, legal floor */
  --text-sm: 400 14px/1.45 var(--font-sans);   /* dense UI, table body */
  --text-md: 400 16px/1.5 var(--font-sans);    /* app body default */
  --text-lg: 400 18px/1.55 var(--font-sans);

  /* Overlines / group labels (uppercase; add --label-tracking) */
  --text-overline: 700 12px/1.35 var(--font-sans);

  /* WEBSITE / UI labels — Noto Sans Bold, tracked-out (marketing register). */
  --text-label-md: 700 13px/1.2 var(--font-sans);
  --text-label-sm: 700 11px/1.2 var(--font-sans);
  --label-tracking: 0.08em; /* @kind other */

  /* Code / identifiers — CLABE, RFC, CURP, folios, CEP keys. */
  --text-code-md: 400 14px/1.55 var(--font-mono);
  --text-code-sm: 400 13px/1.5 var(--font-mono);

  /* Numerals: apply wherever numbers align (tables, amounts, timers).
     usage: font-variant-numeric: var(--numeric-tabular); */
  --numeric-tabular: tabular-nums lining-nums; /* @kind other */

  /* Prose measure */
  --measure-prose: 65ch; /* @kind spacing */
}
