/* ===========================================================================
   GALERIE LEHALLE — Typography tokens
   A two-voice system: a high-contrast didone for display (the brand's Didot,
   substituted by Bodoni Moda) and a quiet geometric grotesque (Jost) for UI,
   labels and body. Labels are uppercase with generous tracking — the gallery-
   placard voice. Display is set tight and large.
   =========================================================================== */

:root {
  /* --- Families ----------------------------------------------------------- */
  --font-display: 'Bodoni Moda', 'Didot', 'GFS Didot', 'Hoefler Text', Georgia, 'Times New Roman', serif;
  --font-sans:    'Jost', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --font-body:    var(--font-sans);

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

  /* --- Fluid display sizes (clamp: min, fluid, max) ----------------------- */
  /* hero serif */
  --display-2xl: clamp(3.5rem, 1.8rem + 6.5vw, 7rem);    /* @kind spacing */
  --display-xl:  clamp(2.75rem, 1.6rem + 4.5vw, 5rem);   /* @kind spacing */
  --display-lg:  clamp(2.25rem, 1.5rem + 3vw, 3.5rem);   /* @kind spacing */
  --display-md:  clamp(1.875rem, 1.3rem + 2vw, 2.5rem);  /* @kind spacing */

  /* --- Headings ----------------------------------------------------------- */
  --text-h1: 2.25rem;   /* 36 */
  --text-h2: 1.75rem;   /* 28 */
  --text-h3: 1.375rem;  /* 22 */
  --text-h4: 1.125rem;  /* 18 */

  /* --- Body & UI ---------------------------------------------------------- */
  --text-lead:  1.25rem;   /* 20 */
  --text-body:  1rem;      /* 16 */
  --text-sm:    0.875rem;  /* 14 */
  --text-xs:    0.75rem;   /* 12 */

  /* --- Labels (uppercase, tracked — placard voice) ------------------------ */
  --text-label:    0.8125rem; /* 13 */
  --text-label-sm: 0.6875rem; /* 11 */

  /* --- Line heights ------------------------------------------------------- */
  --leading-tight:   1.04;  /* display */
  --leading-snug:    1.18;  /* headings */
  --leading-normal:  1.5;   /* body */
  --leading-relaxed: 1.7;   /* long-form prose */

  /* --- Letter-spacing ----------------------------------------------------- */
  --tracking-display: -0.01em;
  --tracking-normal:  0;
  --tracking-wide:    0.08em;
  --tracking-wider:   0.18em;  /* labels / nav */
  --tracking-widest:  0.32em;  /* mastheads, sparse caps */
}
