/* ==========================================================================
   tokens.css
   Sistema de design da Carloman Comunicação Visual.
   Cores em OKLCH, tipografia fluida, espaço, motion baseline.
   ========================================================================== */

:root {
  /* ---------------------------------------------------------------------- */
  /* Paleta da marca, convertida de HEX para OKLCH                          */
  /* ---------------------------------------------------------------------- */
  --carloman-red:        oklch(56.2% 0.215 27.5);   /* #E91619 vermelho vibrante */
  --carloman-red-deep:   oklch(48.0% 0.205 27.5);   /* hover/pressed do vermelho */
  --carloman-burgundy:   oklch(22.0% 0.105 22.0);   /* #4C080E bordô profundo */
  --carloman-burgundy-2: oklch(28.0% 0.110 22.0);   /* surface do bordô */
  --carloman-green:      oklch(72.0% 0.215 145.0);  /* #00C530 verde vibrante */
  --carloman-green-deep: oklch(36.0% 0.130 152.0);  /* #005616 verde floresta */
  --carloman-moonlight:  oklch(91.0% 0.005 27.5);   /* #E2E2E2 cinza claro */
  --carloman-ghost:      oklch(98.0% 0.004 27.5);   /* #F5F7FC ghost white */

  /* ---------------------------------------------------------------------- */
  /* Neutros tintados (todos sutilmente puxados pro vermelho da marca)      */
  /* ---------------------------------------------------------------------- */
  --paper:        oklch(98.5% 0.003 27.5);  /* fundo principal */
  --paper-2:      oklch(95.5% 0.005 27.5);  /* fundo alternado */
  --paper-3:      oklch(92.0% 0.006 27.5);  /* fundo de destaque sutil */
  --ink:          oklch(18.0% 0.020 27.5);  /* uso restrito: borders/shadows tintados */
  --ink-soft:     oklch(36.0% 0.130 152.0); /* body verde-floresta */
  --ink-mute:     oklch(36.0% 0.130 152.0 / 0.62); /* microcopy verde-floresta translúcido */
  --rule:         oklch(85.0% 0.005 27.5);  /* divisores finos */
  --rule-strong:  oklch(72.0% 0.008 27.5);  /* divisores marcados */

  /* ---------------------------------------------------------------------- */
  /* Roles semânticas                                                       */
  /* Estratégia: vermelho e verde vibrantes lideram. Bordô, verde-floresta  */
  /* e quase-preto são detalhes (texto, hover, watermarks, tipografia).     */
  /* ---------------------------------------------------------------------- */
  --bg:            var(--paper);
  --bg-alt:        var(--paper-2);
  --bg-cream:      var(--paper-3);
  --bg-red:        var(--carloman-red);          /* surfaces committed em vermelho */
  --bg-green:      var(--carloman-green);        /* surfaces committed em verde   */
  --bg-deep:       var(--carloman-burgundy);     /* uso raro: texto, sublinhado, footer detalhe */
  --bg-deep-2:     var(--carloman-burgundy-2);
  /* TEXTO: paleta restrita a verde-floresta (body), vermelho (headings) e paper (em cor). */
  --fg:            var(--carloman-green-deep);                 /* body em verde-floresta */
  --fg-soft:       oklch(36.0% 0.130 152.0 / 0.78);            /* body secundário */
  --fg-mute:       oklch(36.0% 0.130 152.0 / 0.55);            /* microcopy */
  --fg-on-red:     var(--paper);
  --fg-on-red-soft: oklch(94% 0.025 27.5);
  --fg-on-green:   var(--ink);
  --fg-on-green-soft: oklch(28% 0.06 152);
  --fg-on-deep:    var(--paper);
  --fg-on-deep-soft: oklch(85.0% 0.020 27.5);
  --brand:         var(--carloman-red);
  --brand-press:   var(--carloman-red-deep);
  --joy:           var(--carloman-green);        /* CTA "alegria" / WhatsApp principal */
  --joy-press:     oklch(64% 0.21 145);
  --accent:        var(--carloman-green);        /* WhatsApp, success */
  --accent-deep:   var(--carloman-green-deep);   /* hover/pressed do verde */

  /* ---------------------------------------------------------------------- */
  /* Tipografia                                                             */
  /* ---------------------------------------------------------------------- */
  --font-display: "AvantGarde", "ITC Avant Garde Gothic", "Helvetica Neue", system-ui, sans-serif;
  --font-body:    "Montserrat", system-ui, sans-serif;

  /* Escala fluida: cada step interpola entre 360px e 1440px */
  --step--1: clamp(0.8125rem, 0.78rem + 0.18vw, 0.9375rem);  /* 13 → 15 */
  --step-0:  clamp(0.9375rem, 0.89rem + 0.25vw, 1.0625rem);  /* 15 → 17 */
  --step-1:  clamp(1.0625rem, 0.99rem + 0.36vw, 1.25rem);    /* 17 → 20 */
  --step-2:  clamp(1.25rem, 1.13rem + 0.60vw, 1.5625rem);    /* 20 → 25 */
  --step-3:  clamp(1.5rem, 1.30rem + 1.00vw, 2rem);          /* 24 → 32 */
  --step-4:  clamp(1.875rem, 1.55rem + 1.65vw, 2.75rem);     /* 30 → 44 */
  --step-5:  clamp(2.5rem, 1.95rem + 2.75vw, 4rem);          /* 40 → 64 */
  --step-6:  clamp(3.25rem, 2.40rem + 4.25vw, 5.625rem);     /* 52 → 90 */
  --step-7:  clamp(4rem, 2.65rem + 6.75vw, 7.5rem);          /* 64 → 120 */
  --step-8:  clamp(5rem, 2.90rem + 10.50vw, 10.625rem);      /* 80 → 170 */

  /* Pesos */
  --w-thin:    100;
  --w-light:   300;
  --w-regular: 400;
  --w-medium:  500;
  --w-semi:    600;
  --w-bold:    700;
  --w-extra:   800;
  --w-black:   900;

  /* Line heights */
  --lh-display: 0.92;
  --lh-tight:   1.05;
  --lh-snug:    1.20;
  --lh-body:    1.55;
  --lh-loose:   1.75;

  /* Tracking */
  --track-tight:  -0.02em;
  --track-normal: 0;
  --track-wide:   0.04em;
  --track-eyebrow: 0.16em;

  /* ---------------------------------------------------------------------- */
  /* Espaço fluido                                                          */
  /* ---------------------------------------------------------------------- */
  --space-3xs: clamp(0.25rem, 0.22rem + 0.10vw, 0.3125rem);
  --space-2xs: clamp(0.5rem, 0.45rem + 0.20vw, 0.625rem);
  --space-xs:  clamp(0.75rem, 0.68rem + 0.30vw, 0.9375rem);
  --space-s:   clamp(1rem, 0.90rem + 0.45vw, 1.25rem);
  --space-m:   clamp(1.5rem, 1.34rem + 0.80vw, 2rem);
  --space-l:   clamp(2rem, 1.78rem + 1.10vw, 2.75rem);
  --space-xl:  clamp(3rem, 2.62rem + 1.95vw, 4.5rem);
  --space-2xl: clamp(4.5rem, 3.85rem + 3.25vw, 7rem);
  --space-3xl: clamp(6rem, 4.95rem + 5.25vw, 10.5rem);
  --space-4xl: clamp(8rem, 6.40rem + 8.00vw, 14rem);

  /* ---------------------------------------------------------------------- */
  /* Layout                                                                 */
  /* ---------------------------------------------------------------------- */
  --measure: 65ch;
  --container-narrow: 64rem;
  --container:        80rem;
  --container-wide:   90rem;
  --gutter: clamp(1.25rem, 0.95rem + 1.50vw, 2.5rem);

  /* ---------------------------------------------------------------------- */
  /* Bordas e raios                                                         */
  /* ---------------------------------------------------------------------- */
  --radius-xs: 2px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --hairline: 1px solid var(--rule);
  --hairline-strong: 1px solid var(--rule-strong);
  --hairline-deep: 1px solid oklch(35.0% 0.080 22.0);

  /* ---------------------------------------------------------------------- */
  /* Sombras tintadas para o vermelho da marca                              */
  /* ---------------------------------------------------------------------- */
  --shadow-1: 0 1px 2px oklch(22.0% 0.105 22.0 / 0.06);
  --shadow-2: 0 6px 18px -8px oklch(22.0% 0.105 22.0 / 0.10);
  --shadow-3: 0 24px 48px -16px oklch(22.0% 0.105 22.0 / 0.18);
  --shadow-press: inset 0 1px 0 oklch(99% 0.005 27.5 / 0.12);

  /* ---------------------------------------------------------------------- */
  /* Motion (baseline; entry animations vão no /emil-design-eng)            */
  /* ---------------------------------------------------------------------- */
  --duration-fast: 120ms;
  --duration:      220ms;
  --duration-slow: 380ms;
  --ease-out:      cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out:   cubic-bezier(0.65, 0, 0.35, 1);
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* ---------------------------------------------------------------------- */
  /* Z-index scale                                                          */
  /* ---------------------------------------------------------------------- */
  --z-base:    1;
  --z-sticky:  10;
  --z-header:  100;
  --z-overlay: 500;
  --z-modal:   1000;
  --z-fab:     800;
  --z-skip:    9999;
}

/* Reduced motion respeita o usuário */
@media (prefers-reduced-motion: reduce) {
  :root {
    --duration-fast: 0ms;
    --duration: 0ms;
    --duration-slow: 0ms;
  }
}
