/* New Hampshire Forum — typography.
   Three faces, three jobs (Brand Guidelines p.18-19):
   Libre Baskerville = display headlines. Lora = body + small headlines.
   Barlow Condensed = labels, buttons, subheads, data. */
:root{
  --font-display:"Libre Baskerville",Georgia,"Times New Roman",serif;
  --font-body:"Lora",Georgia,"Times New Roman",serif;
  --font-ui:"Barlow Condensed","Arial Narrow",Helvetica,sans-serif;

  --fw-regular:400; /* @kind font */
  --fw-medium:500; /* @kind font */
  --fw-semibold:600; /* @kind font */
  --fw-bold:700; /* @kind font */

  /* Display — Libre Baskerville Bold, -3% tracking */
  --type-display-1-size:clamp(2.75rem,5.2vw,4.25rem);
  --type-display-1-lh:1.06;
  --type-display-1-ls:-0.03em;
  --type-display-2-size:clamp(2.125rem,3.6vw,3rem);
  --type-display-2-lh:1.12;
  --type-display-2-ls:-0.03em;
  --type-display-3-size:clamp(1.625rem,2.4vw,2.125rem);
  --type-display-3-lh:1.18;
  --type-display-3-ls:-0.02em;

  /* Headline — Lora Bold */
  --type-headline-size:1.25rem;
  --type-headline-lh:1.35;
  --type-headline-ls:-0.005em;
  --type-headline-sm-size:1.0625rem;
  --type-headline-sm-lh:1.4;

  /* Body — Lora Regular */
  --type-body-lg-size:1.1875rem;
  --type-body-lg-lh:1.62;
  --type-body-size:1rem;
  --type-body-lh:1.65;
  --type-body-sm-size:0.875rem;
  --type-body-sm-lh:1.6;

  /* Label / eyebrow — Barlow Condensed Semibold, all caps, 10% tracking */
  --type-label-size:0.8125rem;
  --type-label-lh:1.2;
  --type-label-ls:0.10em;
  --type-label-lg-size:0.9375rem;

  /* Button — Barlow Condensed Semibold, all caps, 8% tracking */
  --type-button-size:0.9375rem;
  --type-button-lh:1;
  --type-button-ls:0.08em;
  --type-button-sm-size:0.8125rem;

  /* Data / stat — Barlow Condensed Bold, tabular */
  --type-stat-size:clamp(2.5rem,4vw,3.5rem);
  --type-stat-lh:0.95;
  --type-stat-ls:-0.01em;
}

/* Utility classes — optional; components use the tokens directly. */
.nhf-display-1{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-display-1-size);line-height:var(--type-display-1-lh);letter-spacing:var(--type-display-1-ls);color:var(--text-heading);text-wrap:balance}
.nhf-display-2{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-display-2-size);line-height:var(--type-display-2-lh);letter-spacing:var(--type-display-2-ls);color:var(--text-heading);text-wrap:balance}
.nhf-display-3{font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--type-display-3-size);line-height:var(--type-display-3-lh);letter-spacing:var(--type-display-3-ls);color:var(--text-heading);text-wrap:balance}
.nhf-headline{font-family:var(--font-body);font-weight:var(--fw-bold);font-size:var(--type-headline-size);line-height:var(--type-headline-lh);color:var(--text-heading)}
.nhf-body-lg{font-family:var(--font-body);font-size:var(--type-body-lg-size);line-height:var(--type-body-lg-lh);color:var(--text-body);text-wrap:pretty}
.nhf-body{font-family:var(--font-body);font-size:var(--type-body-size);line-height:var(--type-body-lh);color:var(--text-body);text-wrap:pretty}
.nhf-body-sm{font-family:var(--font-body);font-size:var(--type-body-sm-size);line-height:var(--type-body-sm-lh);color:var(--text-muted);text-wrap:pretty}
.nhf-label{font-family:var(--font-ui);font-weight:var(--fw-semibold);font-size:var(--type-label-size);line-height:var(--type-label-lh);letter-spacing:var(--type-label-ls);text-transform:uppercase;color:var(--text-accent)}
.nhf-stat{font-family:var(--font-ui);font-weight:var(--fw-bold);font-size:var(--type-stat-size);line-height:var(--type-stat-lh);letter-spacing:var(--type-stat-ls);font-variant-numeric:tabular-nums;color:var(--text-heading)}
