/* ==========================================================================
   HEZARNAVA — Typography tokens
   Two parallel scripts sharing one editorial rhythm:
     Farsi  — Vazirmatn (geometric/humanist sans; medium–semibold display,
              tight tracking per Persian editorial convention)
     Latin  — Newsreader (high-contrast editorial serif; regular–medium,
              open tracking 0.02–0.05em) — nearest Google Fonts register to
              Portrait/Lyon Text/Freight Display/Tiempos. FLAGGED SUBSTITUTE:
              no license for Freight/Tiempos/Portrait was provided — swap
              the @font-face src below for the real files when available.
   Farsi is authored true RTL (dir="rtl", logical properties) — never a
   mirrored LTR layout.
   ========================================================================== */

@font-face {
  font-family: "Vazirmatn";
  src: local("Vazirmatn");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Newsreader";
  src: local("Newsreader");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Newsreader";
  src: local("Newsreader Italic");
  font-weight: 200 800;
  font-style: italic;
  font-display: swap;
}

:root {
  /* ---- Font families ---- */
  --font-fa: "Vazirmatn", "IRANSansX", "Estedad", sans-serif;
  --font-en: "Newsreader", "Lyon Text", "Freight Display", Georgia, serif;
  --font-en-ui: "Newsreader", Georgia, serif; /* editorial UI chrome in Latin contexts */

  /* ---- Tracking ---- */
  --tracking-fa-display: -0.015em;   /* Persian display sits tighter than digital default */
  --tracking-fa-body: -0.006em;
  --tracking-en-display: 0.02em;     /* Latin editorial sits looser */
  --tracking-en-body: 0.035em;
  --tracking-en-eyebrow: 0.14em;     /* tracked all-caps, per HEZARNAVA lockup */

  /* ---- Type scale — shared step sizes across both scripts ---- */
  --text-2xs: 12px;
  --text-xs: 13px;
  --text-sm: 15px;
  --text-base: 17px;
  --text-md: 20px;
  --text-lg: 24px;
  --text-xl: 32px;
  --text-2xl: 40px;
  --text-3xl: 52px;
  --text-4xl: 68px;
  --text-5xl: 88px;

  /* ---- Line heights ---- */
  --leading-display: 1.05;
  --leading-heading: 1.18;
  --leading-body-fa: 1.85;   /* Persian body wants more vertical air than Latin */
  --leading-body-en: 1.55;
  --leading-caption: 1.4;

  /* ---- Weights ---- */
  --weight-fa-display: 700;
  --weight-fa-heading: 600;
  --weight-fa-body: 400;
  --weight-fa-medium: 500;
  --weight-en-display: 500;
  --weight-en-heading: 500;
  --weight-en-body: 400;
}

/* Semantic aliases — compose family + size + weight for common editorial roles */
.hz-display-fa { font-family: var(--font-fa); font-size: var(--text-5xl); font-weight: var(--weight-fa-display); line-height: var(--leading-display); letter-spacing: var(--tracking-fa-display); }
.hz-display-en { font-family: var(--font-en); font-size: var(--text-5xl); font-weight: var(--weight-en-display); line-height: var(--leading-display); letter-spacing: var(--tracking-en-display); }
.hz-h1-fa { font-family: var(--font-fa); font-size: var(--text-3xl); font-weight: var(--weight-fa-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-fa-display); }
.hz-h1-en { font-family: var(--font-en); font-size: var(--text-3xl); font-weight: var(--weight-en-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-en-display); }
.hz-h2-fa { font-family: var(--font-fa); font-size: var(--text-2xl); font-weight: var(--weight-fa-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-fa-display); }
.hz-h2-en { font-family: var(--font-en); font-size: var(--text-2xl); font-weight: var(--weight-en-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-en-display); }
.hz-h3-fa { font-family: var(--font-fa); font-size: var(--text-xl); font-weight: var(--weight-fa-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-fa-display); }
.hz-h3-en { font-family: var(--font-en); font-size: var(--text-xl); font-weight: var(--weight-en-heading); line-height: var(--leading-heading); letter-spacing: var(--tracking-en-display); }
.hz-body-fa { font-family: var(--font-fa); font-size: var(--text-base); font-weight: var(--weight-fa-body); line-height: var(--leading-body-fa); letter-spacing: var(--tracking-fa-body); }
.hz-body-en { font-family: var(--font-en); font-size: var(--text-base); font-weight: var(--weight-en-body); line-height: var(--leading-body-en); letter-spacing: var(--tracking-en-body); }
.hz-caption-fa { font-family: var(--font-fa); font-size: var(--text-xs); font-weight: var(--weight-fa-medium); line-height: var(--leading-caption); letter-spacing: var(--tracking-fa-body); color: var(--color-fg-2); }
.hz-eyebrow-en { font-family: var(--font-en); font-size: var(--text-2xs); font-weight: var(--weight-en-heading); line-height: 1; letter-spacing: var(--tracking-en-eyebrow); text-transform: uppercase; color: var(--color-fg-2); }
