/* GALVIC — TYPE
   Pairing retained from the identity manual: Darker Grotesque + Inter.
   The manual specifies a desktop/print hierarchy in points, with line-height 1.5
   and letter-spacing 0 as the governing rules:
     30 pt / 45 pt  title        30 pt / 43 pt  subtitle
     25 pt / 37,5 pt body        25 pt / 43 pt  supporting text
     25 pt / 27 pt  link/button  20 pt / 30 pt  caption
   The mobile scale was recorded as [pendente] in the master document. The ramp
   below re-expresses the inherited hierarchy for screen and closes that gap —
   it is fluid, so one set of tokens serves phone and desktop. The 1.5 body
   line-height and 0 tracking are carried over verbatim.
   Numerals (price, size, measurement) are core content in this brand: they are
   always Darker Grotesque, tabular, and never below --text-md on mobile. */

:root{
  /* ---- Display / titles: Darker Grotesque ---- */
  --display-2xl:clamp(3.5rem,2.2rem + 6.4vw,7rem); /* @kind other */
  --display-xl:clamp(2.75rem,1.9rem + 4.2vw,5rem); /* @kind other */
  --display-lg:clamp(2.25rem,1.7rem + 2.7vw,3.5rem); /* @kind other */
  --display-md:clamp(1.875rem,1.55rem + 1.6vw,2.5rem); /* @kind other */
  --display-sm:clamp(1.5rem,1.3rem + 1vw,2rem); /* @kind other */

  /* ---- Text: Inter ---- */
  --text-xs:0.75rem;
  --text-sm:0.8125rem;
  --text-md:0.9375rem;
  --text-lg:1.0625rem;
  --text-xl:1.25rem;

  /* ---- Weight ---- */
  --weight-light:300;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;
  --weight-black:800;

  /* ---- Line height ---- */
  --leading-display:0.94;
  --leading-title:1.06;
  --leading-snug:1.3;
  --leading-body:1.5;
  --leading-loose:1.7;

  /* ---- Tracking ---- */
  --tracking-display:-0.02em;
  --tracking-tight:-0.01em;
  --tracking-normal:0;
  --tracking-wide:0.04em;
  --tracking-eyebrow:0.18em;

  /* ---- Composed roles ---- */
  --type-manifesto:var(--weight-bold) var(--display-2xl)/var(--leading-display) var(--font-display);
  --type-hero:var(--weight-bold) var(--display-xl)/var(--leading-display) var(--font-display);
  --type-section:var(--weight-bold) var(--display-lg)/var(--leading-title) var(--font-display);
  --type-title:var(--weight-semibold) var(--display-md)/var(--leading-title) var(--font-display);
  --type-subtitle:var(--weight-semibold) var(--display-sm)/var(--leading-snug) var(--font-display);
  --type-price:var(--weight-bold) var(--display-sm)/1 var(--font-numeric);
  --type-price-lg:var(--weight-bold) var(--display-md)/1 var(--font-numeric);
  --type-body:var(--weight-regular) var(--text-md)/var(--leading-body) var(--font-text);
  --type-body-lg:var(--weight-regular) var(--text-lg)/var(--leading-body) var(--font-text);
  --type-body-sm:var(--weight-regular) var(--text-sm)/var(--leading-snug) var(--font-text);
  --type-label:var(--weight-semibold) var(--text-sm)/1.2 var(--font-text);
  --type-caption:var(--weight-regular) var(--text-xs)/1.4 var(--font-text);
  --type-button:var(--weight-semibold) var(--text-md)/1 var(--font-text);
  /* Botão é sempre caixa alta: o componente Button aplica text-transform:uppercase
     e --tracking-wide. Nenhum outro elemento de texto usa caixa alta além do
     eyebrow curto. */
  --type-eyebrow:var(--weight-semibold) var(--text-xs)/1 var(--font-text);
}
