/* ============================================================
   ParsinX — Typography
   Vazirmatn for Persian + Latin UI. JetBrains Mono for specs,
   IPs, code & terminal. Numbers use tabular figures.
   ============================================================ */

:root {
  /* Families */
  --font-sans: "Vazirmatn", "Segoe UI", Tahoma, system-ui, sans-serif;
  --font-display: "Vazirmatn", "Segoe UI", Tahoma, system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "Vazirmatn", ui-monospace, "SFMono-Regular",
               Menlo, monospace;

  /* Weights (Vazirmatn is variable 100–900) */
  --fw-thin: 200;      /* @kind font */
  --fw-regular: 400;   /* @kind font */
  --fw-medium: 500;    /* @kind font */
  --fw-semibold: 600;  /* @kind font */
  --fw-bold: 700;      /* @kind font */
  --fw-black: 900;     /* @kind font */

  /* Fluid type scale — display down to caption */
  --text-display-2xl: 4.5rem;   /* 72 — hero numerals          */
  --text-display-xl:  3.5rem;   /* 56 — page hero              */
  --text-display-lg:  2.75rem;  /* 44 — section hero           */
  --text-h1:          2.125rem; /* 34                           */
  --text-h2:          1.625rem; /* 26                           */
  --text-h3:          1.3125rem;/* 21                           */
  --text-h4:          1.0625rem;/* 17                           */
  --text-body-lg:     1.125rem; /* 18                           */
  --text-body:        1rem;     /* 16 — base                   */
  --text-body-sm:     0.9375rem;/* 15                           */
  --text-caption:     0.8125rem;/* 13                           */
  --text-micro:       0.6875rem;/* 11 — labels / overline      */

  /* Line heights */
  --lh-tight: 1.1;     /* @kind font */
  --lh-snug: 1.28;     /* @kind font */
  --lh-normal: 1.55;   /* @kind font */
  --lh-relaxed: 1.75;  /* @kind font */

  /* Letter spacing (Latin only — never tighten Persian) */
  --ls-tight: -0.02em;   /* @kind font */
  --ls-normal: 0;        /* @kind font */
  --ls-wide: 0.04em;     /* @kind font */
  --ls-overline: 0.16em; /* @kind font */
}

/* Base element defaults — consumers may opt in via these utility roles */
:root {
  --type-hero: var(--fw-black) var(--text-display-xl) / var(--lh-tight) var(--font-display);
  --type-h1:   var(--fw-bold) var(--text-h1) / var(--lh-snug) var(--font-display);
  --type-h2:   var(--fw-bold) var(--text-h2) / var(--lh-snug) var(--font-display);
  --type-h3:   var(--fw-semibold) var(--text-h3) / var(--lh-snug) var(--font-sans);
  --type-body: var(--fw-regular) var(--text-body) / var(--lh-relaxed) var(--font-sans);
  --type-label: var(--fw-semibold) var(--text-caption) / var(--lh-normal) var(--font-sans);
  --type-mono: var(--fw-medium) var(--text-body-sm) / var(--lh-normal) var(--font-mono);
}

/* Tabular numerals helper for stats, prices, specs */
.px-tnum { font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1; }

/* Overline / eyebrow label */
.px-overline {
  font: var(--fw-bold) var(--text-micro) / 1 var(--font-sans);
  letter-spacing: var(--ls-overline);
  text-transform: uppercase;
  color: var(--text-accent);
}
