/* ZeckenBox — Typography tokens
   Montserrat throughout (brand face). Headlines are set UPPERCASE & bold with tight
   tracking (see box lids: "DAS ZECKEN-SET FÜR OUTDOOR & FAMILIE"); the POS claim
   "ENTFERNEN. EINSENDEN. VORSORGEN." is the recurring capitalised subline. */
:root{
  --font-sans: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-display: 'Montserrat', -apple-system, 'Segoe UI', sans-serif; /* same family, heavier weights */
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

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

  /* Type scale (rem, 16px base) */
  --fs-display: 4rem;     /* 64 — hero */
  --fs-h1: 2.5rem;        /* 40 */
  --fs-h2: 1.875rem;      /* 30 */
  --fs-h3: 1.375rem;      /* 22 */
  --fs-h4: 1.125rem;      /* 18 */
  --fs-body-lg: 1.125rem; /* 18 */
  --fs-body: 1rem;        /* 16 */
  --fs-body-sm: 0.875rem; /* 14 */
  --fs-caption: 0.75rem;  /* 12 */
  --fs-micro: 0.6875rem;  /* 11 — POS sub-labels under icons */

  /* Line heights */
  --lh-tight: 1.05;    /* @kind font */
  --lh-heading: 1.15;  /* @kind font */
  --lh-snug: 1.35;     /* @kind font */
  --lh-body: 1.55;     /* @kind font */

  /* Letter spacing */
  --ls-tight: -0.02em;   /* large headlines @kind font */
  --ls-normal: 0;        /* @kind font */
  --ls-wide: 0.04em;     /* uppercase sublines @kind font */
  --ls-wider: 0.14em;    /* micro icon labels (ENTFERNEN · VERSORGEN …) @kind font */

  /* Semantic roles */
  --text-display: var(--fw-extrabold) var(--fs-display)/var(--lh-tight) var(--font-display);
  --text-h1: var(--fw-bold) var(--fs-h1)/var(--lh-heading) var(--font-display);
  --text-h2: var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-display);
  --text-body: var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-sans);
}
