/* ============================================================
   Typography — Willa
   ------------------------------------------------------------
   Young Serif for display (set LARGE — it is a single heavy
   weight and earns its keep at 28px+; needs tighter tracking
   than a text serif). Familjen Grotesk for everything
   functional. Tables use tabular-nums so schedules and dates
   align.
   ============================================================ */
:root {
  /* ---- Font size scale ---- */
  --text-hero: 72px;      /* marketing hero */
  --text-display: 36px;   /* h1 page titles, email H1 */
  --text-display-sm: 28px;/* h1 on secondary pages / mobile email */
  --text-title: 24px;     /* h2 section headers, "Waiting for You" */
  --text-subtitle: 18px;  /* h3, card headers, sans semibold */
  --text-body: 16px;      /* default body */
  --text-label: 14px;     /* UI labels, buttons */
  --text-meta: 13px;      /* secondary notes */
  --text-fine: 12px;      /* badges, day-badge captions */

  /* ---- Line heights ---- */
  --leading-hero: 1.02;   /* hero display */
  --leading-tight: 1.12;  /* display headings */
  --leading-snug: 1.4;    /* subtitles, labels */
  --leading-body: 1.7;    /* body copy — generous, calm */

  /* ---- Weights ---- */
  --weight-regular: 400;
  --weight-medium: 500;   /* UI labels, buttons */
  --weight-semibold: 600; /* card headers, emphasis */
  --weight-bold: 700;

  /* ---- Letter spacing ---- */
  --tracking-display: -0.02em; /* Young Serif at large sizes */
  --tracking-label: 0.08em;    /* uppercase eyebrow / account labels */

  /* ---- Semantic type tokens ---- */
  --type-hero: var(--weight-regular) var(--text-hero)/var(--leading-hero) var(--font-display);
  --type-page-title: var(--weight-regular) var(--text-display)/var(--leading-tight) var(--font-display);
  --type-section: var(--weight-regular) var(--text-title)/var(--leading-snug) var(--font-display);
  --type-body: var(--weight-regular) var(--text-body)/var(--leading-body) var(--font-sans);
  --type-label: var(--weight-medium) var(--text-label)/var(--leading-snug) var(--font-sans);
}
