/* =============================================================
   Roberta Vidal — Psicóloga e Psicanalista
   Design Tokens · ponto ÚNICO de cor do site.

   Paleta da marca (visual-dna / report.md):
     nogueira  #8A6B4F   primária — ênfase do display, botões, links
     sálvia    #6B7A5E   accent secundário
     creme     #F0EBE3   superfície / fundo
     céu       #6E6350 → #E3DFD2   gradiente do hero

   Todos os tokens dependentes foram recalculados para contraste AA
   (texto normal ≥ 4.5:1, texto grande ≥ 3:1) sobre o creme.
   ============================================================= */

:root {
  /* ---------- Cor: superfícies ---------- */
  --cream:        #f0ebe3;  /* fundo principal da marca */
  --cream-warm:   #e7e0d4;  /* faixa/moldura de mídia */
  --cream-soft:   #f7f3ec;  /* hover de superfície clara */
  --surface-card: #fbf8f3;  /* cards — quase branco, quente */
  --ink:          #241e18;  /* texto principal (marrom-quase-preto) */
  --ink-deep:     #1a1510;
  --bark:         #2b241c;  /* seções escuras */
  --stone-600:    #675f55;  /* texto secundário — 5.2:1 sobre o creme */
  --stone-200:    #ddd6ca;

  /* ---------- Cor: marca ---------- */
  --nogueira:      #8a6b4f;  /* primária */
  --nogueira-ink:  #6e523a;  /* variante legível em corpo de texto — 6.0:1 */
  --nogueira-deep: #5c4531;  /* pressionado / hover escuro */
  --nogueira-pale: #e0d2c2;  /* fundo de tag, foco suave */
  --sage:          #6b7a5e;  /* accent secundário */
  --sage-deep:     #55634a;
  --sage-pale:     #dfe3d6;

  /* Céu do hero — a PRÓPRIA nogueira, escurecida e saturada.
     Nenhum preto, cinza ou véu entra aqui: o contraste do texto sai da
     COR. Todos os stops vivem na mesma família de matiz de #8A6B4F
     (oklch H 58–70 contra os 63° da primária); o que muda é luminância
     e croma — mais escuro e mais saturado à medida que sobe.
       #6c3813  oklch(0.40 0.088 52)    8.4:1 sob o creme
       #8a5119  oklch(0.49 0.100 61)    5.8:1
       #96622a  oklch(0.55 0.099 67)    4.5:1  ← último stop do bloco de texto
     O croma é MAIOR que o da primária (0.088–0.10 contra 0.057): é a mesma
     cor, mais viva. Da faixa do horizonte para baixo o céu acende no creme. */
  --sky-top:      #6c3813;
  --sky-deep:     #7e4714;
  --sky-mid:      #8a5119;
  --sky-amber:    #96622a;
  --sky-warm:     #ac7d45;
  --sky-glow:     #cdb796;
  --sky-bottom:   #e3dfd2;

  /* ---------- Cor: semânticos ---------- */
  --bg:            var(--cream);
  --surface:       var(--surface-card);
  --fg:            var(--ink);
  --fg-muted:      var(--stone-600);
  --fg-on-dark:    #f5f1ea;
  --border:        rgba(36, 30, 24, 0.14);
  --border-strong: rgba(36, 30, 24, 0.24);
  --accent:        var(--nogueira);
  --accent-ink:    var(--nogueira-ink);
  --dark-section:  var(--bark);

  --inset-hairline: rgba(36, 30, 24, 0.07) 0 0 0 1px inset;

  /* ---------- Tipografia ----------
     Display e corpo são sans. Nenhuma serif: o DNA da marca pede
     "maduro, intelectual, humano" — não editorial-clássico.        */
  --font-display: 'Instrument Sans', 'Inter Display', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-body:    'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-mono:    'Fragment Mono', ui-monospace, Menlo, monospace;

  /* Ênfase do display: COR + PESO. Nunca inclinação.
     `italic` é proibido em todo o site. */
  --display-emph-style:  normal;
  --display-emph-color:  var(--accent);
  --display-emph-weight: 700;
  --display-weight:      500;

  /* Escala fluida entre mobile e desktop */
  --t-display: clamp(2.75rem, 1.6rem + 4.6vw, 5rem);
  --t-h1:      clamp(2.25rem, 1.5rem + 3.1vw, 3.5rem);     /* 36 → 56px */
  --t-h2:      clamp(2rem,   1.45rem + 2.3vw, 2.8125rem);  /* 32 → 45px */
  --t-h3:      clamp(1.5rem, 1.25rem + 1.1vw, 2.1875rem);  /* 24 → 35px */
  --t-h4:      clamp(1.375rem, 1.2rem + 0.6vw, 1.8125rem); /* 22 → 29px */
  --t-h5:      1.375rem;                                    /* 22px */
  --t-lead:    clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem); /* 18 → 20px */
  --t-body:    1.125rem;                                    /* 18px */
  --t-sm:      1rem;                                        /* 16px */
  --t-xs:      0.875rem;                                    /* 14px */
  --t-stat:    clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);

  /* Line-heights */
  --lh-display: 1.06;
  --lh-tight:   1.12;
  --lh-snug:    1.24;
  --lh-body:    1.32;
  --lh-relaxed: 1.4;
  --lh-loose:   1.55;

  /* Letter-spacing */
  --ls-display: -0.022em;
  --ls-tight:   -0.01em;
  --ls-caps:    0.08em;

  --otf: 'cv05' on, 'cv08' on, 'ss01' on;

  /* ---------- Espaçamento (escala 8px) ---------- */
  --sp-xs:    4px;
  --sp-sm:    8px;
  --sp-md:    10px;
  --sp-lg:    12px;
  --sp-xl:    16px;
  --sp-2xl:   20px;
  --sp-3xl:   24px;
  --sp-4xl:   32px;
  --sp-5xl:   48px;
  --sp-6xl:   64px;
  --sp-7xl:   96px;

  --section-y: clamp(72px, 8vw, 140px);
  --gutter:    clamp(20px, 4vw, 64px);
  --maxw:      1280px;
  --maxw-text: 62ch;

  /* ---------- Raios ---------- */
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 12px;
  --r-xl: 14px;
  --r-2xl: 24px;
  --r-card: 24px;
  --r-pill: 999px;

  /* ---------- Movimento ----------
     Eases herdados do template — a gramática de movimento é a peça
     que se preserva. */
  --ease-brand:  cubic-bezier(0.44, 0, 0.56, 1);
  --ease-drift:  cubic-bezier(0.34, 0.64, 0.34, 1);
  --ease-snap:   cubic-bezier(0.27, 0, 0.51, 1);
  --dur-fast:    0.2s;
  --dur-base:    0.4s;
  --dur-slow:    1s;
  --dur-cinema:  2s;
}

/* Breakpoints: mobile ≤ 699.98px · tablet 700–1199.98px · desktop ≥ 1200px */
