:root{
/* Families — brand book §8.5. sans-serif fallback is mandatory in every declaration.
   "hatch-sans" ships no local font file BY DESIGN: it is Adobe-licensed and served by the
   brand's own Typekit kit mdd1pob, imported in tokens/fonts.css. Adobe's Typekit Terms of
   Use forbid self-hosting the binaries, so there is nothing to vendor here. Verified
   loading (document.fonts.check passes for all three families) and the kit is not
   domain-locked. The design-system checker flags this as "no project font file" — that
   flag is expected and correct. Do NOT resolve it by substituting another family. */
--font-display:"hatch-sans","Montserrat",sans-serif;  /* voz de destaque: títulos, chamadas, preço */
--font-sans:"montserrat","Montserrat",sans-serif;     /* cavalo de trabalho: corpo, UI */
--font-accent:"montserrat-alternates","Montserrat Alternates",sans-serif; /* acento pontual: selos, detalhes */

/* Size scale — 15px body, tuned for product listings on a phone */
--text-caption:12px;
--text-xs:13px;
--text-sm:14px;
--text-base:15px;
--text-lg:17px;
--text-xl:20px;
--text-2xl:24px;
--text-3xl:30px;
--text-4xl:38px;
--text-5xl:48px;
--text-6xl:64px;
--text-display:80px;

--leading-tight:1.06;
--leading-snug:1.2;
--leading-normal:1.45;
--leading-relaxed:1.6;

--weight-regular:400;
--weight-medium:500;
--weight-semibold:600;
--weight-bold:700;
--weight-black:900;

--tracking-tight:-0.02em;
--tracking-snug:-0.01em;
--tracking-normal:0;
--tracking-wide:0.04em;
--tracking-caps:0.09em;

/* ---- Role aliases: two families, contrast by role (§8.5) ---- */
--type-hero-family:var(--font-display);
--type-hero-size:var(--text-5xl);
--type-hero-weight:var(--weight-bold);
--type-hero-leading:var(--leading-tight);

--type-title-family:var(--font-display);
--type-title-size:var(--text-3xl);
--type-title-weight:var(--weight-bold);

--type-section-family:var(--font-display);
--type-section-size:var(--text-2xl);
--type-section-weight:var(--weight-bold);

--type-subtitle-family:var(--font-display);
--type-subtitle-size:var(--text-lg);
--type-subtitle-weight:var(--weight-medium);

--type-body-family:var(--font-sans);
--type-body-size:var(--text-base);
--type-body-weight:var(--weight-regular);
--type-body-leading:var(--leading-relaxed);

--type-label-family:var(--font-sans);
--type-label-size:var(--text-sm);
--type-label-weight:var(--weight-semibold);

--type-button-family:var(--font-sans);
--type-button-size:var(--text-sm);
--type-button-weight:var(--weight-semibold);

--type-eyebrow-family:var(--font-sans);
--type-eyebrow-size:var(--text-caption);
--type-eyebrow-weight:var(--weight-bold);
--type-eyebrow-tracking:var(--tracking-caps);

/* Preço é elemento de design (§8.4): sempre Hatch Sans Bold */
--type-price-family:var(--font-display);
--type-price-weight:var(--weight-bold);
--type-price-size:var(--text-xl);
--type-price-tracking:var(--tracking-snug);

/* Selo / acento — Montserrat Alternates, nunca em texto corrido */
--type-stamp-family:var(--font-accent);
--type-stamp-weight:var(--weight-bold);
--type-stamp-size:var(--text-caption);
}
