/* Design tokens — evandroleao.com.br
   GERADO por scripts/build.cjs a partir de tokens/design-tokens.json. Não edite à mão. */

/* === 1. PRIMITIVAS (valores brutos) === */
:root {
  --primitive-color-navy-800: #1C2D52;
  --primitive-color-navy-900: #14213D;
  --primitive-color-navy-950: #0E1730;
  --primitive-color-blue-100: #E3EDFF;
  --primitive-color-blue-300: #A8CBFF;
  --primitive-color-blue-400: #7DB4FF;
  --primitive-color-blue-450: #6BA6F7;
  --primitive-color-blue-500: #5A98EE;
  --primitive-color-blue-550: #4A7FD6;
  --primitive-color-blue-600: #3A5BA0;
  --primitive-color-blue-650: #2F62BD;
  --primitive-color-blue-700: #2F4C88;
  --primitive-color-neutral-0: #FFFFFF;
  --primitive-color-neutral-50: #F6F7FB;
  --primitive-color-neutral-100: #EBEEF5;
  --primitive-color-neutral-200: #DCE1EC;
  --primitive-color-neutral-300: #A9B4CC;
  --primitive-color-neutral-400: #7E88A0;
  --primitive-color-neutral-500: #626C80;
  --primitive-color-neutral-900: #141B2D;
  --primitive-color-green-600: #2E9E6B;
  --primitive-color-green-700: #1F7F52;
  --primitive-color-amber-500: #E0A030;
  --primitive-color-amber-800: #8A5F0B;
  --primitive-color-red-400: #E86A6A;
  --primitive-color-red-500: #CF4A4A;
  --primitive-color-red-700: #B03A3A;
  --primitive-color-red-800: #962F2F;
  --primitive-color-whatsapp-500: #25D366;
  --primitive-color-whatsapp-600: #20BD5C;
  --primitive-color-whatsapp-700: #1AA653;
  --primitive-font-family-montserrat: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --primitive-font-family-open-sans: 'Open Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --primitive-font-family-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --primitive-font-weight-regular: 400;
  --primitive-font-weight-semibold: 600;
  --primitive-font-weight-bold: 700;
  --primitive-font-weight-extrabold: 800;
  --primitive-font-size-xs: 0.75rem;
  --primitive-font-size-sm: 0.875rem;
  --primitive-font-size-base: 1rem;
  --primitive-font-size-lg: 1.125rem;
  --primitive-font-size-xl: 1.25rem;
  --primitive-font-size-2xl: 1.5rem;
  --primitive-font-size-fluid-h2: clamp(1.5rem, 3vw, 2rem);
  --primitive-font-size-fluid-h1: clamp(1.75rem, 4vw, 2.75rem);
  --primitive-font-size-fluid-display: clamp(2rem, 5vw, 3.5rem);
  --primitive-font-line-height-tight: 1.1;
  --primitive-font-line-height-snug: 1.2;
  --primitive-font-line-height-normal: 1.5;
  --primitive-font-line-height-relaxed: 1.65;
  --primitive-font-tracking-tight: -0.02em;
  --primitive-font-tracking-snug: -0.01em;
  --primitive-font-tracking-normal: 0;
  --primitive-font-tracking-wider: 0.14em;
  --primitive-spacing-0: 0;
  --primitive-spacing-1: 0.25rem;
  --primitive-spacing-2: 0.5rem;
  --primitive-spacing-3: 0.75rem;
  --primitive-spacing-4: 1rem;
  --primitive-spacing-5: 1.25rem;
  --primitive-spacing-6: 1.5rem;
  --primitive-spacing-8: 2rem;
  --primitive-spacing-10: 2.5rem;
  --primitive-spacing-12: 3rem;
  --primitive-spacing-16: 4rem;
  --primitive-spacing-20: 5rem;
  --primitive-spacing-24: 6rem;
  --primitive-radius-none: 0;
  --primitive-radius-sm: 0.375rem;
  --primitive-radius-md: 0.5rem;
  --primitive-radius-lg: 0.875rem;
  --primitive-radius-xl: 1.125rem;
  --primitive-radius-full: 9999px;
  --primitive-shadow-none: none;
  --primitive-shadow-sm: 0 1px 2px 0 rgb(20 33 61 / 0.06);
  --primitive-shadow-md: 0 4px 12px -2px rgb(20 33 61 / 0.10);
  --primitive-shadow-lg: 0 12px 28px -6px rgb(20 33 61 / 0.16);
  --primitive-duration-fast: 150ms;
  --primitive-duration-normal: 200ms;
  --primitive-duration-slow: 300ms;
  --primitive-easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --primitive-layout-container: 1240px;
  --primitive-layout-measure: 65ch;
  --primitive-z-sticky: 50;
  --primitive-z-overlay: 100;
  --primitive-z-modal: 110;
  --primitive-z-toast: 120;
}

/* === 2. SEMÂNTICAS (função do token) === */
:root {
  --color-background: var(--primitive-color-neutral-50);
  --color-surface: var(--primitive-color-neutral-0);
  --color-surface-alt: var(--primitive-color-blue-100);
  --color-foreground: var(--primitive-color-neutral-900);
  --color-foreground-muted: var(--primitive-color-neutral-500);
  --color-heading: var(--primitive-color-navy-900);
  --color-border: var(--primitive-color-neutral-200);
  --color-border-input: var(--primitive-color-neutral-400);
  --color-disabled-bg: var(--primitive-color-neutral-100);
  --color-primary: var(--primitive-color-navy-900);
  --color-primary-hover: var(--primitive-color-navy-800);
  --color-primary-active: var(--primitive-color-navy-950);
  --color-primary-foreground: var(--primitive-color-neutral-0);
  --color-secondary: var(--primitive-color-blue-600);
  --color-secondary-hover: var(--primitive-color-blue-700);
  --color-secondary-foreground: var(--primitive-color-neutral-0);
  --color-accent: var(--primitive-color-blue-400);
  --color-accent-hover: var(--primitive-color-blue-450);
  --color-accent-active: var(--primitive-color-blue-500);
  --color-accent-foreground: var(--primitive-color-navy-900);
  --color-accent-soft: var(--primitive-color-blue-100);
  --color-link: var(--primitive-color-blue-600);
  --color-link-hover: var(--primitive-color-navy-900);
  --color-focus-ring: var(--primitive-color-blue-600);
  --color-inverse-background: var(--primitive-color-navy-900);
  --color-inverse-foreground: var(--primitive-color-neutral-0);
  --color-inverse-muted: var(--primitive-color-blue-100);
  --color-inverse-accent: var(--primitive-color-blue-400);
  --color-success: var(--primitive-color-green-600);
  --color-success-strong: var(--primitive-color-green-700);
  --color-warning: var(--primitive-color-amber-500);
  --color-warning-strong: var(--primitive-color-amber-800);
  --color-error: var(--primitive-color-red-500);
  --color-error-strong: var(--primitive-color-red-700);
  --color-info: var(--primitive-color-blue-550);
  --color-info-strong: var(--primitive-color-blue-650);
  --color-destructive: var(--primitive-color-red-700);
  --color-destructive-hover: var(--primitive-color-red-800);
  --color-destructive-foreground: var(--primitive-color-neutral-0);
  --font-heading: var(--primitive-font-family-montserrat);
  --font-body: var(--primitive-font-family-open-sans);
  --font-mono: var(--primitive-font-family-mono);
  --type-display-size: var(--primitive-font-size-fluid-display);
  --type-display-line-height: var(--primitive-font-line-height-tight);
  --type-display-weight: var(--primitive-font-weight-extrabold);
  --type-display-tracking: var(--primitive-font-tracking-tight);
  --type-h1-size: var(--primitive-font-size-fluid-h1);
  --type-h1-line-height: var(--primitive-font-line-height-tight);
  --type-h1-weight: var(--primitive-font-weight-extrabold);
  --type-h1-tracking: var(--primitive-font-tracking-tight);
  --type-h2-size: var(--primitive-font-size-fluid-h2);
  --type-h2-line-height: var(--primitive-font-line-height-snug);
  --type-h2-weight: var(--primitive-font-weight-extrabold);
  --type-h2-tracking: var(--primitive-font-tracking-snug);
  --type-h3-size: var(--primitive-font-size-xl);
  --type-h3-line-height: var(--primitive-font-line-height-snug);
  --type-h3-weight: var(--primitive-font-weight-bold);
  --type-h3-tracking: var(--primitive-font-tracking-normal);
  --type-h4-size: var(--primitive-font-size-lg);
  --type-h4-line-height: var(--primitive-font-line-height-snug);
  --type-h4-weight: var(--primitive-font-weight-bold);
  --type-h4-tracking: var(--primitive-font-tracking-normal);
  --type-lead-size: var(--primitive-font-size-lg);
  --type-lead-line-height: var(--primitive-font-line-height-relaxed);
  --type-lead-weight: var(--primitive-font-weight-regular);
  --type-lead-tracking: var(--primitive-font-tracking-normal);
  --type-body-size: var(--primitive-font-size-base);
  --type-body-line-height: var(--primitive-font-line-height-relaxed);
  --type-body-weight: var(--primitive-font-weight-regular);
  --type-body-tracking: var(--primitive-font-tracking-normal);
  --type-small-size: var(--primitive-font-size-sm);
  --type-small-line-height: var(--primitive-font-line-height-normal);
  --type-small-weight: var(--primitive-font-weight-regular);
  --type-small-tracking: var(--primitive-font-tracking-normal);
  --type-caption-size: var(--primitive-font-size-xs);
  --type-caption-line-height: var(--primitive-font-line-height-normal);
  --type-caption-weight: var(--primitive-font-weight-regular);
  --type-caption-tracking: var(--primitive-font-tracking-normal);
  --type-eyebrow-size: var(--primitive-font-size-xs);
  --type-eyebrow-line-height: var(--primitive-font-line-height-normal);
  --type-eyebrow-weight: var(--primitive-font-weight-semibold);
  --type-eyebrow-tracking: var(--primitive-font-tracking-wider);
  --spacing-component: var(--primitive-spacing-4);
  --spacing-gutter: var(--primitive-spacing-5);
  --spacing-section: var(--primitive-spacing-16);
}

/* === 3. COMPONENTES === */
:root {
  --button-font-family: var(--font-heading);
  --button-font-weight: var(--primitive-font-weight-bold);
  --button-radius: var(--primitive-radius-md);
  --button-transition: var(--primitive-duration-normal) var(--primitive-easing-standard);
  --button-disabled-opacity: 0.5;
  --button-sm-height: 2.25rem;
  --button-sm-padding-x: var(--primitive-spacing-4);
  --button-sm-font-size: var(--primitive-font-size-sm);
  --button-md-height: 2.75rem;
  --button-md-padding-x: var(--primitive-spacing-5);
  --button-md-font-size: var(--primitive-font-size-base);
  --button-lg-height: 3.25rem;
  --button-lg-padding-x: var(--primitive-spacing-6);
  --button-lg-font-size: var(--primitive-font-size-lg);
  --button-primary-bg: var(--color-primary);
  --button-primary-fg: var(--color-primary-foreground);
  --button-primary-hover-bg: var(--color-primary-hover);
  --button-primary-active-bg: var(--color-primary-active);
  --button-accent-bg: var(--color-accent);
  --button-accent-fg: var(--color-accent-foreground);
  --button-accent-hover-bg: var(--color-accent-hover);
  --button-accent-active-bg: var(--color-accent-active);
  --button-outline-border: var(--color-secondary);
  --button-outline-fg: var(--color-secondary);
  --button-outline-hover-bg: var(--color-surface-alt);
  --button-ghost-fg: var(--color-link);
  --button-ghost-hover-bg: var(--color-surface-alt);
  --button-destructive-bg: var(--color-destructive);
  --button-destructive-fg: var(--color-destructive-foreground);
  --button-destructive-hover-bg: var(--color-destructive-hover);
  --button-whatsapp-bg: var(--primitive-color-whatsapp-500);
  --button-whatsapp-fg: var(--primitive-color-navy-900);
  --button-whatsapp-hover-bg: var(--primitive-color-whatsapp-600);
  --button-whatsapp-active-bg: var(--primitive-color-whatsapp-700);
  --input-bg: var(--color-surface);
  --input-fg: var(--color-foreground);
  --input-placeholder: var(--color-foreground-muted);
  --input-border: var(--color-border-input);
  --input-hover-border: var(--color-foreground-muted);
  --input-focus-border: var(--color-focus-ring);
  --input-error-border: var(--color-error-strong);
  --input-disabled-bg: var(--color-disabled-bg);
  --input-radius: var(--primitive-radius-md);
  --input-height: 2.75rem;
  --input-padding-x: var(--primitive-spacing-3);
  --input-label-font-family: var(--font-heading);
  --input-label-font-weight: var(--primitive-font-weight-semibold);
  --card-bg: var(--color-surface);
  --card-border: color-mix(in srgb, var(--color-secondary) 14%, transparent);
  --card-shadow: var(--primitive-shadow-sm);
  --card-hover-shadow: var(--primitive-shadow-md);
  --card-padding: var(--primitive-spacing-6);
  --card-radius: var(--primitive-radius-lg);
  --card-icon-bg: var(--color-accent-soft);
  --card-icon-fg: var(--color-secondary);
  --badge-bg: var(--color-accent-soft);
  --badge-fg: var(--color-heading);
  --badge-radius: var(--primitive-radius-full);
  --badge-padding-x: var(--primitive-spacing-3);
  --badge-padding-y: var(--primitive-spacing-1);
  --alert-radius: var(--primitive-radius-md);
  --alert-padding: var(--primitive-spacing-3) var(--primitive-spacing-4);
  --alert-border-width: 4px;
  --alert-bg-mix: 10%;
  --nav-bg: var(--color-inverse-background);
  --nav-fg: var(--color-inverse-muted);
  --nav-fg-hover: var(--color-inverse-foreground);
  --nav-border: rgb(255 255 255 / 0.08);
  --nav-height: 4.5rem;
  --hero-bg: var(--color-inverse-background);
  --hero-fg: var(--color-inverse-foreground);
  --hero-lead-fg: var(--color-inverse-muted);
  --hero-eyebrow-fg: var(--color-inverse-accent);
  --hero-glow: radial-gradient(900px 340px at 85% -10%, color-mix(in srgb, var(--primitive-color-blue-600) 70%, transparent), transparent);
  --hero-padding-y: var(--primitive-spacing-20);
  --quote-bg: var(--primitive-color-blue-600);
  --quote-fg: var(--primitive-color-neutral-0);
  --quote-cite-fg: var(--primitive-color-blue-100);
  --footer-bg: var(--primitive-color-navy-950);
  --footer-fg: var(--color-inverse-muted);
  --footer-heading-fg: var(--color-inverse-foreground);
  --footer-border: rgb(255 255 255 / 0.12);
  --fab-bg: var(--primitive-color-whatsapp-500);
  --fab-hover-bg: var(--primitive-color-whatsapp-600);
  --fab-fg: var(--primitive-color-navy-900);
  --fab-shadow: var(--primitive-shadow-lg);
  --fab-size: 3.5rem;
}

/* === 4. TEMA ESCURO (opt-in: data-theme="dark" ou classe .theme-dark) ===
   Os tokens de componente são redeclarados aqui porque var() é resolvido no elemento
   onde a propriedade é declarada; sem isso, o tema escuro não chegaria aos componentes. */
[data-theme="dark"],
.theme-dark {
  color-scheme: dark;
  --color-background: var(--primitive-color-navy-950);
  --color-surface: var(--primitive-color-navy-900);
  --color-surface-alt: var(--primitive-color-navy-800);
  --color-foreground: var(--primitive-color-neutral-50);
  --color-foreground-muted: var(--primitive-color-neutral-300);
  --color-heading: var(--primitive-color-neutral-50);
  --color-border: var(--primitive-color-navy-800);
  --color-disabled-bg: var(--primitive-color-navy-800);
  --color-primary: var(--primitive-color-blue-400);
  --color-primary-hover: var(--primitive-color-blue-450);
  --color-primary-active: var(--primitive-color-blue-500);
  --color-primary-foreground: var(--primitive-color-navy-900);
  --color-secondary: var(--primitive-color-blue-300);
  --color-secondary-hover: var(--primitive-color-blue-100);
  --color-secondary-foreground: var(--primitive-color-navy-900);
  --color-accent-soft: var(--primitive-color-navy-800);
  --color-link: var(--primitive-color-blue-400);
  --color-link-hover: var(--primitive-color-blue-300);
  --color-focus-ring: var(--primitive-color-blue-400);
  --color-success-strong: var(--primitive-color-green-600);
  --color-warning-strong: var(--primitive-color-amber-500);
  --color-error-strong: var(--primitive-color-red-400);
  --color-info-strong: var(--primitive-color-blue-300);
  --button-font-family: var(--font-heading);
  --button-font-weight: var(--primitive-font-weight-bold);
  --button-radius: var(--primitive-radius-md);
  --button-transition: var(--primitive-duration-normal) var(--primitive-easing-standard);
  --button-disabled-opacity: 0.5;
  --button-sm-height: 2.25rem;
  --button-sm-padding-x: var(--primitive-spacing-4);
  --button-sm-font-size: var(--primitive-font-size-sm);
  --button-md-height: 2.75rem;
  --button-md-padding-x: var(--primitive-spacing-5);
  --button-md-font-size: var(--primitive-font-size-base);
  --button-lg-height: 3.25rem;
  --button-lg-padding-x: var(--primitive-spacing-6);
  --button-lg-font-size: var(--primitive-font-size-lg);
  --button-primary-bg: var(--color-primary);
  --button-primary-fg: var(--color-primary-foreground);
  --button-primary-hover-bg: var(--color-primary-hover);
  --button-primary-active-bg: var(--color-primary-active);
  --button-accent-bg: var(--color-accent);
  --button-accent-fg: var(--color-accent-foreground);
  --button-accent-hover-bg: var(--color-accent-hover);
  --button-accent-active-bg: var(--color-accent-active);
  --button-outline-border: var(--color-secondary);
  --button-outline-fg: var(--color-secondary);
  --button-outline-hover-bg: var(--color-surface-alt);
  --button-ghost-fg: var(--color-link);
  --button-ghost-hover-bg: var(--color-surface-alt);
  --button-destructive-bg: var(--color-destructive);
  --button-destructive-fg: var(--color-destructive-foreground);
  --button-destructive-hover-bg: var(--color-destructive-hover);
  --button-whatsapp-bg: var(--primitive-color-whatsapp-500);
  --button-whatsapp-fg: var(--primitive-color-navy-900);
  --button-whatsapp-hover-bg: var(--primitive-color-whatsapp-600);
  --button-whatsapp-active-bg: var(--primitive-color-whatsapp-700);
  --input-bg: var(--color-surface);
  --input-fg: var(--color-foreground);
  --input-placeholder: var(--color-foreground-muted);
  --input-border: var(--color-border-input);
  --input-hover-border: var(--color-foreground-muted);
  --input-focus-border: var(--color-focus-ring);
  --input-error-border: var(--color-error-strong);
  --input-disabled-bg: var(--color-disabled-bg);
  --input-radius: var(--primitive-radius-md);
  --input-height: 2.75rem;
  --input-padding-x: var(--primitive-spacing-3);
  --input-label-font-family: var(--font-heading);
  --input-label-font-weight: var(--primitive-font-weight-semibold);
  --card-bg: var(--color-surface);
  --card-border: color-mix(in srgb, var(--color-secondary) 14%, transparent);
  --card-shadow: var(--primitive-shadow-sm);
  --card-hover-shadow: var(--primitive-shadow-md);
  --card-padding: var(--primitive-spacing-6);
  --card-radius: var(--primitive-radius-lg);
  --card-icon-bg: var(--color-accent-soft);
  --card-icon-fg: var(--color-secondary);
  --badge-bg: var(--color-accent-soft);
  --badge-fg: var(--color-heading);
  --badge-radius: var(--primitive-radius-full);
  --badge-padding-x: var(--primitive-spacing-3);
  --badge-padding-y: var(--primitive-spacing-1);
  --alert-radius: var(--primitive-radius-md);
  --alert-padding: var(--primitive-spacing-3) var(--primitive-spacing-4);
  --alert-border-width: 4px;
  --alert-bg-mix: 10%;
  --nav-bg: var(--color-inverse-background);
  --nav-fg: var(--color-inverse-muted);
  --nav-fg-hover: var(--color-inverse-foreground);
  --nav-border: rgb(255 255 255 / 0.08);
  --nav-height: 4.5rem;
  --hero-bg: var(--color-inverse-background);
  --hero-fg: var(--color-inverse-foreground);
  --hero-lead-fg: var(--color-inverse-muted);
  --hero-eyebrow-fg: var(--color-inverse-accent);
  --hero-glow: radial-gradient(900px 340px at 85% -10%, color-mix(in srgb, var(--primitive-color-blue-600) 70%, transparent), transparent);
  --hero-padding-y: var(--primitive-spacing-20);
  --quote-bg: var(--primitive-color-blue-600);
  --quote-fg: var(--primitive-color-neutral-0);
  --quote-cite-fg: var(--primitive-color-blue-100);
  --footer-bg: var(--primitive-color-navy-950);
  --footer-fg: var(--color-inverse-muted);
  --footer-heading-fg: var(--color-inverse-foreground);
  --footer-border: rgb(255 255 255 / 0.12);
  --fab-bg: var(--primitive-color-whatsapp-500);
  --fab-hover-bg: var(--primitive-color-whatsapp-600);
  --fab-fg: var(--primitive-color-navy-900);
  --fab-shadow: var(--primitive-shadow-lg);
  --fab-size: 3.5rem;
}
