/* ==========================================================================
   tokens.css — Fuente de verdad de color / tipografía / espaciado.
   Derivado de variables.css del proyecto. NO inventar valores fuera de aquí.
   Dos añadidos obligatorios marcados con [DESIGN] respecto al export original.
   ========================================================================== */

:root {
  /* --- Colores ------------------------------------------------------------ */
  --color-pure-black: #000000;
  --color-canvas: #ffffff;
  --color-paper-white: #faf6ef;
  --color-subtle-gray: #999999;   /* SOLO bordes/divisores/decorativo — no texto */
  --color-outline-gray: #d9d9d9;  /* SOLO hairlines/divisores — no texto */
  --color-medium-gray: #a1a1a1;   /* SOLO decorativo — no texto */
  --color-action-orange: #fa5c40; /* máx. 1 aparición por viewport, nunca CTA */

  /* [DESIGN §2] Gris conforme AA para TEXTO secundario legible (~7:1 sobre papel).
     Los grises de sistema de arriba NO pasan AA: prohibidos para texto. */
  --color-text-muted: #595959;

  /* Roles semánticos de superficie/texto */
  --surface-canvas: #ffffff;
  --surface-paper-white: #faf6ef;
  --color-bg: var(--color-canvas); /* fondo dominante: blanco puro (decisión de Carlos; design.md §2 proponía paper-white) */
  --color-text: var(--color-pure-black);
  --color-border-strong: var(--color-pure-black);
  --color-border-hairline: var(--color-outline-gray);

  /* --- Tipografía: familia ------------------------------------------------ */
  --font-f37bolton: 'F37Bolton', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-body: var(--font-f37bolton);

  /* --- Tipografía: pesos -------------------------------------------------- */
  --font-weight-regular: 400;
  --font-weight-bold: 700;

  /* --- Tipografía: escala -------------------------------------------------
     [DESIGN §3] Los tokens son de escritorio. Titulares = fluidos con clamp(),
     cuyo MÁXIMO es exactamente el token original (no se sale de escala).
     Cuerpo y menores quedan fijos. */
  --text-caption: 12px;            --leading-caption: 1.25;
  --text-body-sm: 14px;            --leading-body-sm: 1.25;
  --text-body: 16px;               --leading-body: 1.25;
  --text-subheading: 20px;         --leading-subheading: 1.25;
  --text-heading-sm: 24px;         --leading-heading-sm: 1.25;  --tracking-heading-sm: -0.48px;
  --text-heading: clamp(26px, 4.5vw, 34px);   --leading-heading: 1.2;
  --text-heading-lg: clamp(30px, 6vw, 48px);  --leading-heading-lg: 1.2;  --tracking-heading-lg: -1.44px;
  --text-display: clamp(40px, 9vw, 75px);     --leading-display: 1;       --tracking-display: -2.25px;

  /* --- Espaciado (rejilla base 4px) -------------------------------------- */
  --spacing-unit: 4px;
  --spacing-4: 4px;
  --spacing-8: 8px;
  --spacing-12: 12px;
  --spacing-16: 16px;
  --spacing-20: 20px;
  --spacing-24: 24px;
  --spacing-28: 28px;
  --spacing-40: 40px;
  --spacing-64: 64px;
  --spacing-100: 100px;

  /* --- Layout ------------------------------------------------------------- */
  --section-gap: 100px;
  --section-gap-mobile: 64px;
  --card-padding: 24px;
  --element-gap: 16px;
  --container-max: 1520px;

  /* --- Radios ------------------------------------------------------------- */
  --radius-2xl: 20px;
  --radius-full: 100px;
  --radius-cards: 0px;     /* tarjetas: canto vivo */
  --radius-links: 20px;
  --radius-inputs: 100px;  /* inputs: pastilla */
  --radius-buttons: 20px;
  --radius-images: 20px;
}
