/* Karofi PH — type system.
   Core face is Roboto Condensed: condensed widths let long product model names
   ("PLATINUM LUMIFLOW S6") set large without wrapping. Exo / Exo 2 carry the
   engineered, technical display voice. Role assignment is INFERRED — see readme.md. */

:root{
  /* Families */
  --font-core:'Roboto Condensed',system-ui,'Helvetica Neue',Arial,sans-serif;
  --font-display:'Exo 2','Exo','Roboto Condensed',system-ui,sans-serif;
  --font-display-heavy:'Exo','Exo 2','Roboto Condensed',system-ui,sans-serif;
  --font-alt:'Barlow','Roboto Condensed',system-ui,sans-serif;
  --font-support:'Montserrat','Roboto Condensed',system-ui,sans-serif;
  --font-legacy:'Myriad Pro','Roboto Condensed',system-ui,sans-serif;
  --font-script:'SVN Alluring',cursive;

  /* Semantic family aliases */
  --font-heading:var(--font-core);
  --font-body:var(--font-core);
  --font-model:var(--font-display);   /* product model names */
  --font-price:var(--font-core);
  --font-caption:var(--font-support);

  /* Weights */
  --fw-light:300; /* @kind font */
  --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 */
  --fw-black:900; /* @kind font */

  /* Sizes — 1.250 major-third ramp off a 16px body */
  --fs-2xs:11px;
  --fs-xs:12px;
  --fs-sm:14px;
  --fs-base:16px;
  --fs-md:18px;
  --fs-lg:20px;
  --fs-xl:24px;
  --fs-2xl:30px;
  --fs-3xl:38px;
  --fs-4xl:48px;
  --fs-5xl:60px;
  --fs-6xl:76px;

  /* Line heights */
  --lh-tight:1.05; /* @kind font */
  --lh-snug:1.18; /* @kind font */
  --lh-heading:1.25; /* @kind font */
  --lh-body:1.6; /* @kind font */
  --lh-relaxed:1.75; /* @kind font */

  /* Tracking — uppercase eyebrows and nav need positive tracking */
  --ls-tighter:-0.02em; /* @kind font */
  --ls-tight:-0.01em; /* @kind font */
  --ls-normal:0; /* @kind font */
  --ls-wide:0.02em; /* @kind font */
  --ls-wider:0.06em; /* @kind font */
  --ls-widest:0.12em; /* @kind font */

  /* Composed roles */
  --type-hero-size:var(--fs-6xl);
  --type-hero-weight:var(--fw-black); /* @kind font */
  --type-hero-lh:var(--lh-tight); /* @kind font */
  --type-hero-ls:var(--ls-tight); /* @kind font */

  --type-h1-size:var(--fs-4xl);
  --type-h2-size:var(--fs-3xl);
  --type-h3-size:var(--fs-2xl);
  --type-h4-size:var(--fs-xl);
  --type-heading-weight:var(--fw-bold); /* @kind font */

  --type-eyebrow-size:var(--fs-xs);
  --type-eyebrow-weight:var(--fw-bold); /* @kind font */
  --type-eyebrow-ls:var(--ls-widest); /* @kind font */

  --type-body-size:var(--fs-base);
  --type-body-lh:var(--lh-body); /* @kind font */

  --type-caption-size:var(--fs-xs);
  --type-caption-ls:var(--ls-wide); /* @kind font */
}
