/* ═══ Design Tokens ═══ */
:root {
  /* ─── Font families ─── */
  --font-display: "Oswald", sans-serif;
  --font-heading: "Oswald", sans-serif;
  --font-body: "Barlow", sans-serif;

  /* ─── Fluid font sizes (clamp: min / preferred vw / max) ─── */
  /* Major display — hero, final CTA */
  --fs-h1: clamp(48px, 8vw, 110px);
  /* Section titles */
  --fs-h2: clamp(40px, 6vw, 80px);
  /* Sub-section / card titles */
  --fs-h3: clamp(28px, 4vw, 56px);
  /* Strong UI headings (Oswald family) */
  --fs-h4: clamp(22px, 2.4vw, 32px);
  --fs-h5: clamp(18px, 1.8vw, 24px);
  --fs-h6: clamp(15px, 1.3vw, 18px);

  /* Body */
  --fs-body-lg: clamp(1rem, 1.15vw, 1.125rem);
  --fs-body: 1rem;
  --fs-body-sm: 0.875rem;
  --fs-body-xs: 0.75rem;

  /* Labels (uppercase metadata) */
  --fs-label: 0.72rem;
  --fs-label-sm: 0.65rem;

  /* Numeric emphasis (prices, stats) */
  --fs-numeric-lg: 40px;
  --fs-numeric: 20px;

  /* ─── Line heights (VN-diacritic-safe) ─── */
  --lh-display: 1.1;
  --lh-heading: 1.2;
  --lh-body: 1.6;
  --lh-tight: 1;

  /* ─── Letter spacing ─── */
  --ls-display: -0.02em;
  --ls-heading: -0.01em;
  --ls-label: 0.18em;
  --ls-body: 0;

  /* ─── Weights ─── */
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-black: 900;
}