/* ============================================================
   GRAM · TYPOGRAPHY
   Hanken Grotesk everywhere. Newsreader for rare editorial notes.
   Tabular figures on all data (grams, tonnes, fees, dates).
   ============================================================ */

:root {
  /* Families */
  --font-sans: 'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-serif: 'Newsreader', ui-serif, Georgia, 'Times New Roman', serif;
  --font-mono: ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, monospace;

  /* Type scale (px). 16 = base body. Restrained, generous jumps up top. */
  --text-xs:   12px;
  --text-sm:   14px;
  --text-base: 16px;
  --text-md:   18px;
  --text-lg:   20px;
  --text-xl:   24px;
  --text-2xl:  30px;
  --text-3xl:  38px;
  --text-4xl:  48px;
  --text-5xl:  60px;
  --text-6xl:  76px;

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

  /* Line heights */
  --leading-none:    1;
  --leading-tight:   1.12;   /* display */
  --leading-snug:    1.25;   /* headings */
  --leading-normal:  1.5;    /* body */
  --leading-relaxed: 1.65;   /* long-form reading */

  /* Letter-spacing — tighten as size grows, open up small caps/labels */
  --tracking-tighter: -0.03em;  /* big display */
  --tracking-tight:   -0.015em; /* headings */
  --tracking-normal:  0em;
  --tracking-wide:    0.02em;
  --tracking-label:   0.06em;   /* eyebrow / overline labels */

  /* --- Semantic type roles --- */
  --display-family: var(--font-sans);
  --display-weight: var(--weight-semibold);
  --display-tracking: var(--tracking-tighter);
  --display-leading: var(--leading-tight);

  --heading-family: var(--font-sans);
  --heading-weight: var(--weight-semibold);
  --heading-tracking: var(--tracking-tight);

  --body-family: var(--font-sans);
  --body-weight: var(--weight-regular);
  --body-leading: var(--leading-normal);

  --label-weight: var(--weight-medium);
  --label-tracking: var(--tracking-label);
}

/* Base document defaults (consumers can opt out by not using these) */
html {
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  color: var(--text-body);
}

/* Tabular figures utility — apply to any numeric/data element */
.gram-tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }
