/* ============================================================
   TYPOGRAPHY TOKENS
   Display serif (Playfair) · Body sans (Montserrat) · Script (Allura)
   ============================================================ */
:root {
  /* ---- Families ---- */
  --font-display: 'Playfair Display', 'Didot', 'Times New Roman', serif;
  --font-body:    'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --font-script:  'Allura', 'Snell Roundhand', cursive;

  /* ---- Weights ---- */
  --weight-light:    300;
  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;
  --weight-black:    800;

  /* ---- Display scale (Playfair) ---- */
  --fs-display-1: clamp(3rem, 6vw, 5.25rem);     /* @kind font */ /* hero */
  --fs-display-2: clamp(2.4rem, 4.4vw, 3.75rem); /* @kind font */ /* section titles */
  --fs-display-3: clamp(1.9rem, 3vw, 2.6rem);    /* @kind font */ /* sub-section */
  --fs-h4:        clamp(1.4rem, 2vw, 1.85rem);   /* @kind font */ /* card titles */

  /* ---- Body scale (Montserrat) ---- */
  --fs-lead:  1.25rem;    /* 20px — intro paragraphs */
  --fs-body:  1.0625rem;  /* 17px — default body (min readable) */
  --fs-small: 0.9375rem;  /* 15px — captions/meta */
  --fs-label: 0.78rem;    /* 12.5px — eyebrow/pill labels (uppercase) */

  /* ---- Line heights ---- */
  --lh-tight:   1.08;  /* @kind font */
  --lh-heading: 1.18;  /* @kind font */
  --lh-body:    1.7;   /* @kind font */
  --lh-relaxed: 1.85;  /* @kind font */

  /* ---- Tracking ---- */
  --ls-label:  0.22em;   /* uppercase eyebrow labels @kind font */
  --ls-tight: -0.01em;   /* @kind font */
  --ls-body:   0.005em;  /* @kind font */

  /* ---- Semantic aliases ---- */
  --text-eyebrow-size:   var(--fs-label);
  --text-eyebrow-track:  var(--ls-label);
}
