/* =====================================================================
   LETO CAPITAL — Design Tokens (web)
   Extraído do brand book Figma (LETO – Visual iD – RAZ).
   Cores idênticas ao brand book; escala tipográfica adaptada para web
   responsiva (fluida via clamp), em vez da escala fixa 1920×1080 do deck.

   FONTE OFICIAL: PP Neue Montreal (Pangram Pangram, licenciada pelo cliente).
   6 pesos web locais (OTF→WOFF2): Thin 200, Book 400, Medium 500, Bold 700,
   + Itálico 400 e SemiBold Itálico 600. General Sans (Fontshare) fica só
   como fallback de rede para os pesos não cobertos (300/600 normal).
   ===================================================================== */

@font-face {
  font-family: "PP Neue Montreal"; font-weight: 200; font-style: normal; font-display: swap;
  src: url("../../fonts/pp/pp-neue-montreal-200.woff2") format("woff2");
}
@font-face {
  font-family: "PP Neue Montreal"; font-weight: 400; font-style: normal; font-display: swap;
  src: url("../../fonts/pp/pp-neue-montreal-400.woff2") format("woff2");
}
@font-face {
  font-family: "PP Neue Montreal"; font-weight: 500; font-style: normal; font-display: swap;
  src: url("../../fonts/pp/pp-neue-montreal-500.woff2") format("woff2");
}
@font-face {
  font-family: "PP Neue Montreal"; font-weight: 700; font-style: normal; font-display: swap;
  src: url("../../fonts/pp/pp-neue-montreal-700.woff2") format("woff2");
}
@font-face {
  font-family: "PP Neue Montreal"; font-weight: 400; font-style: italic; font-display: swap;
  src: url("../../fonts/pp/pp-neue-montreal-400-italic.woff2") format("woff2");
}
@font-face {
  font-family: "PP Neue Montreal"; font-weight: 600; font-style: italic; font-display: swap;
  src: url("../../fonts/pp/pp-neue-montreal-600-italic.woff2") format("woff2");
}

:root {
  /* -------- Cores exatas (extraídas do .fig do site) -------- */
  --leto-green:        #D8EEA9;   /* Verde-lima — botões/accent (fig) */
  --leto-green-soft:   #E4F0BB;
  --leto-green-deep:   #5e6b3a;   /* verde-floresta escuro — color: em texto/link sobre fundo claro (WCAG AA ~5.7:1 sobre paper). NÃO usar em background. */
  --leto-green-card:   #C2D49A;   /* verde-oliva claro dos cards (valores/famílias) — fig */
  --leto-ink:          #2D2D2D;   /* texto primário sobre claro (fig) */
  --leto-paper:        #E1E1E1;   /* fundo claro das seções (fig) */
  --leto-charcoal:     #2D2D2D;   /* seções escuras (footer/CTA) (fig) */
  --leto-hero:         #121212;   /* fundo do hero (fig) */
  --leto-black:        #121212;
  --leto-black-soft:   #2D2D2D;
  --leto-white:        #FFFFFF;
  --leto-gray:         #595959;   /* texto secundário/eixos (fig) */
  --leto-gray-soft:    #A3A3A3;   /* links de footer (fig) */

  /* -------- Aliases semânticos -------- */
  --bg-primary:        var(--leto-charcoal);
  --bg-secondary:      var(--leto-green);
  --bg-light:          var(--leto-paper);
  --surface-dark:      var(--leto-charcoal);
  --text-on-dark:      var(--leto-white);
  --text-on-light:     var(--leto-ink);
  --text-muted-dark:   #A3A3A3;
  --text-muted-light:  var(--leto-gray);
  --accent:            var(--leto-green);
  --rule-dark:         rgba(213, 232, 159, 0.22);  /* hairline sobre escuro */
  --rule-light:        rgba(14, 15, 12, 0.12);     /* hairline sobre claro */

  /* -------- Tipografia -------- */
  --font-display: "PP Neue Montreal", "General Sans", "Helvetica Neue", Arial, sans-serif;
  --font-body:    "PP Neue Montreal", "General Sans", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "JetBrains Mono", "IBM Plex Mono", "SF Mono", Menlo, Consolas, monospace;

  /* Escala fluida (min … max) — base 1440px de viewport de referência */
  --fs-hero:     clamp(2.7rem,   1.44rem + 5.58vw, 6.75rem);   /* 48 → 120 */
  --fs-h1:       clamp(2.16rem, 1.26rem + 3.96vw, 4.5rem);     /* 38 → 80  */
  --fs-h2:       clamp(1.71rem, 1.17rem + 2.34vw, 2.93rem);  /* 30 → 52  */
  --fs-h3:       clamp(1.35rem, 0.99rem + 1.53vw, 2.02rem);  /* 24 → 36  */
  --fs-h4:       clamp(1.08rem, 0.9rem + 0.81vw, 1.46rem); /* 19 → 26  */
  --fs-body-xl:  clamp(1.01rem, 0.9rem + 0.45vw, 1.24rem); /* 18 → 22  */
  --fs-body:     clamp(0.9rem, 0.85rem + 0.18vw, 1.01rem);  /* 16 → 18  */
  --fs-body-sm:  0.84rem;  /* 15 */
  --fs-caption:  0.73rem;  /* 13 */
  --fs-micro:    0.62rem;  /* 11 — labels/eyebrows técnicas */

  --lh-tight:   0.98;
  --lh-snug:    1.08;
  --lh-normal:  1.5;
  --lh-loose:   1.65;

  --tracking-tight:  -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.08em;
  --tracking-xwide:  0.16em;

  /* -------- Espaçamentos -------- */
  --space-1: 0.5rem;   /* 8  */
  --space-2: 1rem;     /* 16 */
  --space-3: 1.5rem;   /* 24 */
  --space-4: 2rem;     /* 32 */
  --space-5: 3rem;     /* 48 */
  --space-6: 4rem;     /* 64 */
  --space-7: 6rem;     /* 96 */
  --space-8: 8rem;     /* 128 */

  /* Ritmo vertical de seção (fluido) */
  --section-y: clamp(4rem, 2.5rem + 6vw, 9rem);

  /* -------- Layout -------- */
  --container:    1320px;   /* largura máx de conteúdo */
  --container-wide: 1560px;
  --gutter:       clamp(1.25rem, 0.5rem + 3vw, 4rem);
  --header-h:     76px;

  /* -------- Geometria editorial ("não-AI") -------- */
  --radius:       2px;      /* cantos quase retos */
  --radius-card:  4px;
  --border-hair:  1px;

  /* -------- Motion -------- */
  --ease:        cubic-bezier(0.22, 1, 0.36, 1);
  --dur:         .45s;
}
