/* tokens.css — CANONICAL 4-layer design tokens for Bergamotão & Barthel.
   Source of truth: source/harvest.json. Generated by scripts/gen-tokens.mjs.
   confidence: observed = read off the live site · inferred = reconstructed/defaulted.
   Captured 2026-09-16 from file://floricultura-bergamotao/brand/icones/Laranja 1.png. DO NOT hand-edit — re-run gen-tokens. */

:root {

  /* ── A1-identity — brand decides · REQUIRED ── */
  --bg: #FFE6AE; /* observed · page surface · 149292 hits */
  --fg: #6B2E0F; /* observed · primary ink · 16296 hits */
  --accent: #E07832; /* observed · brand accent · 149290 hits */
  --accent-hover: #C6682A; /* inferred · inferred: #E07832 mixed 22% toward #6B2E0F (no hover state in static PNG) */
  --font-display: "Fraunces", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; /* inferred · heading family — Fraunces · no webfont file — relies on fallback stack */
  --font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; /* inferred · body family — IBM Plex Sans · no webfont file — relies on fallback stack */

  /* ── A1-structure — brand decides · REQUIRED ── */
  --text-xs: 0.75rem; /* inferred · 12px anchor (not observed) */
  --text-sm: 0.875rem; /* inferred · 14px anchor (not observed) */
  --text-base: 1rem; /* inferred · 16px anchor (not observed) */
  --text-lg: 1.125rem; /* inferred · 18px anchor (not observed) */
  --text-xl: 1.375rem; /* inferred · 22px anchor (not observed) */
  --text-2xl: clamp(1.333rem, 1.533rem + 0.34vw, 1.625rem); /* inferred · 26px anchor, clamp reconstructed */
  --text-3xl: clamp(1.64rem, 1.840rem + 0.42vw, 2rem); /* inferred · 32px anchor, clamp reconstructed */
  --text-4xl: clamp(2.255rem, 2.455rem + 0.57vw, 2.75rem); /* inferred · 44px anchor, clamp reconstructed */
  --text-5xl: clamp(2.87rem, 3.070rem + 0.73vw, 3.5rem); /* inferred · 56px anchor, clamp reconstructed */
  --leading-tight: 1.1; /* inferred · heading line-height */
  --leading-snug: 1.3; /* inferred · interpolated */
  --leading-normal: 1.65; /* observed · body rhythm */
  --tracking-tight: -0.02em; /* inferred · heading tracking */
  --tracking-snug: -0.01em; /* inferred · subhead tracking */
  --tracking-normal: 0em; /* inferred · body default */
  --weight-light: 300; /* observed · light headings */
  --weight-regular: 400; /* observed · body/buttons */
  --weight-medium: 500; /* observed · UI emphasis */
  --weight-bold: 700; /* observed · strong emphasis */
  --container-max: 1120px; /* inferred · inferred: catalog grid + location column, not observed in PNG */
  --container-wide: 1440px; /* inferred · inferred: full-bleed gallery / hero plinth */
  --section-y: clamp(4rem, 8vw, 8rem); /* inferred · section rhythm */
  --section-y-sm: clamp(2.5rem, 5vw, 4rem); /* inferred · tight section rhythm */
  --gutter: 1rem; /* inferred · page padding */

  /* ── A2 — brand with sensible fallback ── */
  --space-1: 0.25rem; /* inferred · 4px grid step */
  --space-2: 0.5rem; /* inferred · 8px grid step */
  --space-3: 0.75rem; /* inferred · 12px grid step */
  --space-4: 1rem; /* inferred · 16px grid step */
  --space-5: 1.25rem; /* inferred · 20px grid step */
  --space-6: 1.5rem; /* inferred · 24px grid step */
  --space-8: 2rem; /* inferred · 32px grid step */
  --space-12: 3rem; /* inferred · 48px grid step */
  --space-16: 4rem; /* inferred · 64px grid step */
  --space-24: 6rem; /* inferred · 96px grid step */
  --radius-sm: 4px; /* inferred · small radius */
  --radius-md: 8px; /* inferred · medium radius */
  --radius-lg: 12px; /* inferred · large radius */
  --radius-full: 9999px; /* observed · pills / circular */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.06); /* inferred · no shadow observed */
  --shadow-md: 0 4px 12px rgba(0,0,0,0.08); /* inferred · no shadow observed */
  --shadow-lg: 0 12px 32px rgba(0,0,0,0.12); /* inferred · no shadow observed */
  --shadow-xl: 0 24px 60px rgba(0,0,0,0.16); /* inferred · no shadow observed */
  --motion-fast: 0.2s; /* observed · fast transition */
  --motion-base: 0.35s; /* observed · base transition */
  --motion-slow: 0.7s; /* observed · slow transition */
  --ease-out: cubic-bezier(0.33, 1, 0.68, 1); /* observed · ease-out */
  --ease-in-out: cubic-bezier(0.45, 0.05, 0.55, 0.95); /* observed · ease-in-out */
  --ease-smooth: cubic-bezier(0.16, 1, 0.3, 1); /* observed · smooth */
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; /* inferred · mono family — IBM Plex Mono · fallback stack */
  --fg-muted: #905C37; /* inferred · inferred: #6B2E0F mixed 25% toward #FFE6AE for AA body on cream (4.56:1) */
  --fg-subtle: #A97B52; /* inferred · inferred: #6B2E0F mixed 42% toward #FFE6AE — large/meta only (3.05:1) */
  --success: #818133; /* observed · brand/png/Verde Folha 17.png (mode pixel, PIL, 2026-09-16) — kit name Verde Folha, used as success */
  --danger: #9B2C1A; /* inferred · inferred: terracotta in the marrom family; no danger color in kit */
  --warning: #E2CE76; /* observed · brand/png/Verde Caule 13.png (mode pixel, PIL, 2026-09-16) — kit name Verde Caule (gold-straw) */

  /* ── B-slot — brand value or aliasTo schema default ── */
  --surface: #FFE6AE; /* observed · card/panel base = bg */
  --surface-muted: #FFFFFF; /* observed · alt surface · 16297 hits */
  --surface-tint: #F9DFA8; /* inferred · inferred: #FFE6AE mixed 4% toward #6B2E0F (alt paper) */
  --border: #EDD09B; /* inferred · inferred: #FFE6AE mixed 12% toward #6B2E0F */
  --border-strong: #DEBE8B; /* inferred · inferred: #FFE6AE mixed 22% toward #6B2E0F */
  --fg-2: var(--fg-muted); /* observed · aliasTo fg-muted */
  --link: var(--accent); /* observed · aliasTo accent */
  --focus-ring: var(--accent); /* observed · aliasTo accent */
  --accent-soft: #f9d298; /* inferred · light accent fill (mixed toward bg) */
  --accent-soft-fg: var(--accent); /* observed · aliasTo accent */

  /* ── C-extensions — brand-specific, allowlisted ── */
  --accent-light: #e99957; /* inferred · lighter accent (mixed 30% toward bg) */
  --accent-lighter: #f1b576; /* inferred · lightest accent (mixed 55% toward bg) */
  --bergamota: #E07832; /* observed · brand/icones/Laranja 1.png (mode pixel, PIL, 2026-09-16) */
  --creme: #FFE6AE; /* observed · brand/icones/Bege 1.png + brand/png/Bege 5.png (mode pixel, PIL, 2026-09-16) */
  --marrom: #6B2E0F; /* observed · brand/png/Marrom 1.png (mode pixel, PIL, 2026-09-16) */
  --folha: #818133; /* observed · brand/png/Verde Folha 17.png (mode pixel, PIL, 2026-09-16) */
  --caule: #E2CE76; /* observed · brand/png/Verde Caule 13.png (mode pixel, PIL, 2026-09-16) */
  --lilas: #D2B9CC; /* observed · brand/png/Lilás 29.png (mode pixel, PIL, 2026-09-16) — kit variant only, never accent, never gradient */
  --preto: #000000; /* observed · brand/png/Preto 21.png (mode pixel, PIL, 2026-09-16) */
  --branco: #FFFFFF; /* observed · brand/png/Branco 25.png (mode pixel, PIL, 2026-09-16) */
  --on-accent: #3A1808; /* inferred · inferred: deep marrom for text on #E07832 (5.25:1 AA). Cream-on-orange is 2.49:1 — lockup only. */
  --shadow-warm: 0 16px 40px color-mix(in srgb, #6B2E0F 18%, transparent); /* inferred · inferred: kit is flat (no drop shadow); warm marrom elevation for the review drawer only */
}
