/* ==========================================================================
   v21 — FONTES HOSPEDADAS NO PRÓPRIO DOMÍNIO
   Substitui o carregamento pelo CDN do Google. Nenhuma conexão com terceiro:
   as fontes vêm da mesma origem do site, o que elimina a transferência
   internacional descrita no art. 33 da LGPD.
   Todas sob SIL Open Font License 1.1 — avisos em /fonts/OFL-*.txt.
   ========================================================================== */

/* Newsreader — corte óptico "Text". O pacote estático não traz o eixo opsz
   variável do Google Fonts; "Text" é o corte de uso geral e cobre bem a faixa
   de 18 a 40 px, onde estão quase todos os títulos do site. */
@font-face{ font-family:'Newsreader'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/NewsreaderText-Regular.woff2') format('woff2'); }
@font-face{ font-family:'Newsreader'; font-style:italic; font-weight:400; font-display:swap;
  src:url('fonts/NewsreaderText-Italic.woff2') format('woff2'); }
@font-face{ font-family:'Newsreader'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/NewsreaderText-Medium.woff2') format('woff2'); }
@font-face{ font-family:'Newsreader'; font-style:italic; font-weight:500; font-display:swap;
  src:url('fonts/NewsreaderText-MediumItalic.woff2') format('woff2'); }
@font-face{ font-family:'Newsreader'; font-style:normal; font-weight:600; font-display:swap;
  src:url('fonts/NewsreaderText-SemiBold.woff2') format('woff2'); }

/* Hanken Grotesk — fonte variável: dois arquivos cobrem 300 a 700 em ambos os
   estilos, em vez de dez estáticos. */
@font-face{ font-family:'Hanken Grotesk'; font-style:normal; font-weight:300 700; font-display:swap;
  src:url('fonts/HankenGrotesk-var.woff2') format('woff2-variations'),
      url('fonts/HankenGrotesk-var.woff2') format('woff2'); }
@font-face{ font-family:'Hanken Grotesk'; font-style:italic; font-weight:300 700; font-display:swap;
  src:url('fonts/HankenGrotesk-Italic-var.woff2') format('woff2-variations'),
      url('fonts/HankenGrotesk-Italic-var.woff2') format('woff2'); }

/* IBM Plex Mono — subconjunto Latin1, que cobre os 68 caracteres usados nos
   rótulos monoespaçados e nas referências de DOI: latim básico, suplemento
   Latin-1 (á, ã, ç, õ), travessão (U+2014) e aspas curvas (U+201C–U+201D).
   O unicode-range evita o download quando a página não usa esses caracteres. */
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url('fonts/IBMPlexMono-Regular-Latin1.woff2') format('woff2');
  unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,
                U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,
                U+2074,U+20AC,U+2122,U+2212,U+FB01-FB02; }
@font-face{ font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
  src:url('fonts/IBMPlexMono-Medium-Latin1.woff2') format('woff2');
  unicode-range:U+0000,U+000D,U+0020-007E,U+00A0-00FF,U+0131,U+0152-0153,U+02C6,U+02DA,U+02DC,
                U+2013-2014,U+2018-201A,U+201C-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+2044,
                U+2074,U+20AC,U+2122,U+2212,U+FB01-FB02; }


/* Skip link — WCAG 2.4.1 (ACC-06) */
.skip-link{
  position:absolute; left:0; top:-60px;
  background:var(--azul-profundo,#0F1C2E); color:#fff;
  padding:12px 20px; border-radius:0 0 8px 0;
  font-family:'Hanken Grotesk',sans-serif; font-weight:600; font-size:14px;
  z-index:9999; text-decoration:none;
  transition:top .15s ease;
}
.skip-link:focus{ top:0; }
:root{
    /* Paleta definitiva — handoff 2.0 */
    --azul-profundo:#0F1C2E;   /* estrutural: títulos, rodapé, âncoras */
    --terracota:#C65E42;       /* ação: botões, CTAs, ênfase */
    --argila:#A6492E;          /* D-8: cor de TEXTO e de fundo de ação (AA) */
    --argila-escura:#8A3C26;   /* D-8: hover derivado do botão primário */
    --papel:#FAF6EE;           /* fundo geral */
    --areia:#F1EADB;           /* seções */
    --areia-cabecalho:#ECE2D0; /* cabeçalho */
    --areia-clara:#FBF8F0;     /* cartões sobre areia */
    --grafite:#1A1A1A;         /* texto corrido */
    --grafite-quente:#4A4438;  /* texto corrido em fundo areia */
    --cinza:#5E6368;           /* texto de apoio */
    --pessego:#F0B095;         /* cartola sobre foto escura */
    /* Paleta secundária (reserva) */
    --azul-petroleo:#3E6B78;
    --verde-salvia:#8AA79B;
    --ouro:#D9A742;
    --areia-quente:#FBF1E2;
    --verde-sucesso:#4A7A5C;
    --alerta:#9A4127;
  }
  *{ box-sizing:border-box; }
  html,body{ margin:0; }
  body{ background:var(--papel); font-family:'Hanken Grotesk',system-ui,sans-serif; color:var(--grafite); -webkit-font-smoothing:antialiased; }
  ::selection{ background:var(--argila); color:var(--papel); }
  img{ display:block; }
  /* v10 · o <picture> restaurado (D-11) é uma caixa inline entre o contêiner
     e o <img>. Sem isto, todo `height:100%` de imagem passa a resolver contra
     uma caixa inline de altura automática, e o <img> deixa de ser item de
     flex/grid do contêiner original. `display:contents` remove a caixa do
     <picture> da árvore de layout e devolve o <img> ao lugar que ocupava. */
  picture{ display:contents; }
  a{ color:inherit; }
  /* Placeholder de imagem a buscar — demarca vaga no layout */
  .img-ph{ position:relative; display:flex; align-items:center; justify-content:center; text-align:center; background:
      repeating-linear-gradient(135deg, var(--areia-clara) 0 14px, var(--areia) 14px 28px);
      border:1.5px dashed rgba(198,94,66,.45); border-radius:14px; color:var(--argila); overflow:hidden; }
  .img-ph .img-ph-in{ padding:22px 18px; }
  .img-ph .img-ph-ico{ color:var(--argila); opacity:.55; display:block; margin:0 auto 8px; }
  .img-ph .img-ph-tag{ font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--argila); font-weight:500; }
  .img-ph .img-ph-desc{ font-family:'Hanken Grotesk',sans-serif; font-size:13px; line-height:1.5; color:var(--argila); margin-top:6px; max-width:34ch; }
  .img-ph .img-ph-ico{ font-size:20px; opacity:.5; margin-bottom:6px; }
  /* Faixa de pilar: imagem + texto alternados */
  /* v30.9 — a mídia deixa de ser esticada pela altura total da faixa: a tríade
     "A ideia / Por que mexe / Como entra" saiu do corpo e virou faixa própria,
     de largura inteira. A foto passa a acompanhar só a altura do texto de
     abertura (título, subtítulo, mecanismo e nota de evidência). */
  .pilar-row{ display:grid; grid-template-columns:minmax(0,0.86fr) minmax(0,1.14fr);
    grid-template-areas:"media corpo" "triade triade"; gap:0;
    background:var(--areia); border-radius:18px; overflow:hidden; }
  .pilar-row.rev{ grid-template-columns:minmax(0,1.14fr) minmax(0,0.86fr);
    grid-template-areas:"corpo media" "triade triade"; }
  .pilar-media{ grid-area:media; min-height:260px; position:relative; }
  .pilar-media img{ width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
  .pilar-body{ grid-area:corpo; padding:clamp(26px,3vw,42px); }
  .pilar-row > .p7-grid{ grid-area:triade;
    padding:clamp(24px,2.6vw,34px) clamp(26px,3vw,42px) clamp(28px,3.2vw,42px);
    border-top:1px solid rgba(198,94,66,.22); }
  @media (max-width:720px){
    .pilar-row, .pilar-row.rev{ grid-template-columns:1fr; grid-template-areas:"media" "corpo" "triade"; }
    .pilar-media{ min-height:210px; }
    .pilar-row > .p7-grid{ padding-top:0; border-top:none; }
  }


/* --- multipágina: navegação --- */
.navlink{ text-decoration:none; }
.nav-menu a.active{ color:var(--argila); font-weight:600; }
a{ color:inherit; }

/* hover states (migrados de style-hover) */
.h1:hover{ color:var(--argila); }
.h2:hover{ background:var(--argila); }
.h3:hover{ color:var(--pessego); }

/* ============================================================
   RODA DOS 7 PILARES (HOME) — desktop: roda interativa; mobile: grade
   Aliases das variáveis da roda para a paleta do site:
   ============================================================ */
.pilares{ --azul:var(--azul-profundo); --terra:var(--terracota);
  /* v30.9 — DEFEITO CORRIGIDO: aqui havia `--argila:var(--argila)` e
     `--pessego:var(--pessego)`. Autorreferência é ciclo: a propriedade
     resolve para o valor garantidamente inválido e `color:var(--argila)`
     caía em `unset` (= herdado). Toda a seção da roda saía em preto no
     lugar da terracota. Removidas as duas linhas, o valor de :root passa
     a ser herdado normalmente. */
  --areia2:var(--areia-cabecalho); --areiaq:var(--areia-quente); --grafite:var(--grafite-quente);
  --serif:'Newsreader',Georgia,serif; --sans:'Hanken Grotesk',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
  padding:clamp(60px,8vw,100px) var(--inset); background:var(--papel); }
.pilares-head{ text-align:left; max-width:var(--conteudo); margin:0 auto clamp(30px,5vw,52px); }
.pilares-eyebrow{ font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--argila); margin-bottom:16px; }
.pilares-title{ font-family:var(--serif); font-weight:500; font-size:clamp(25px,2.7vw,37px); line-height:1.12; margin:0; color:var(--azul); }
.pilares-sub{ font-family:var(--sans); font-size:clamp(16px,1.65vw,18px); line-height:1.72; color:var(--grafite-quente); margin:18px 0 0; max-width:70ch; }

/* ---- RODA (desktop >=1024px) — REDESIGN v2: nos maiores, rotulos em pilula, centro reaproveitado ---- */
.wheel-wrap{ display:none; }
@media (min-width:1024px){ .grid-wrap{ display:none; } .wheel-wrap{ display:block; } }
/* ===== LAYOUT DUAS COLUNAS: roda à esquerda, painel de citação à direita ===== */
.wheel-stage{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr); align-items:center; gap:clamp(24px,4vw,64px); max-width:var(--conteudo); margin:0 auto; }
/* roda: imagem sempre protagonista no centro, sem texto por cima */
.wheel{ position:relative; width:min(52vw,560px); aspect-ratio:1/1; margin:0; justify-self:center; --node:clamp(96px,8.4vw,120px); --ring:43%; touch-action:manipulation; }
.wheel::before{ content:""; position:absolute; left:50%; top:50%; width:calc(var(--ring)*2); height:calc(var(--ring)*2); transform:translate(-50%,-50%); border-radius:50%; border:1.5px dashed rgba(15,28,46,.16); }
.wheel .center{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:50%; aspect-ratio:1/1; border-radius:50%; overflow:hidden; z-index:5; box-shadow:0 18px 50px -12px rgba(15,28,46,.5), inset 0 0 0 6px rgba(255,255,255,.94); background:var(--areia2); transition:box-shadow .5s ease, transform .5s cubic-bezier(.34,1.3,.6,1); }
.wheel.focused .center{ box-shadow:0 26px 66px -14px rgba(198,94,66,.5), inset 0 0 0 6px rgba(255,255,255,.96); transform:translate(-50%,-50%) scale(1.05); }
/* imagem base (repouso) + imagem do pilar (foco) empilhadas; a do pilar entra por cima */
.center-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .55s ease, transform .7s ease; }
.center-base{ opacity:1; z-index:1; }
.wheel.focused .center-base{ opacity:0; }
#pcimg{ opacity:0; transform:scale(1.05); z-index:2; }
#pcimg.on{ opacity:1; transform:scale(1); }
/* anel interno sutil sobre a imagem, dá acabamento sem cobrir a foto */
.center-ring{ position:absolute; inset:0; border-radius:50%; z-index:3; pointer-events:none; box-shadow:inset 0 0 40px -12px rgba(15,28,46,.4); }

/* ===== PAINEL DE CITAÇÃO (direita) — fora do sistema ===== */
.wheel-panel{ position:relative; z-index:6; min-height:280px; display:flex; align-items:center; }
.wp-rest{ transition:opacity .4s ease; }
.wp-rest .wp-kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--argila); margin-bottom:14px; }
.wp-rest .wp-invite{ font-family:var(--serif); font-weight:400; font-style:italic; font-size:clamp(19px,2vw,25px); line-height:1.42; color:var(--azul); margin:0; }
.wheel-panel.on .wp-rest{ opacity:0; pointer-events:none; }
/* a citação: bloco editorial, alinhado à esquerda, respira */
.wp-quote{ position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; opacity:0; transform:translateX(14px); transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.3,1); pointer-events:none; }
.wheel-panel.on .wp-quote{ opacity:1; transform:translateX(0); pointer-events:auto; }
.wp-pilar{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--argila); margin-bottom:14px; }
.wp-mark{ font-family:var(--serif); font-size:52px; line-height:.2; color:var(--pessego); height:26px; }
.wp-quote q{ font-family:var(--serif); font-weight:500; font-style:italic; font-size:clamp(20px,2.3vw,29px); line-height:1.32; color:var(--azul); quotes:none; display:block; }
.wp-src{ font-family:var(--mono); font-size:.72em; line-height:1.55; letter-spacing:.01em; color:var(--argila); margin-top:20px; }
.wp-src::before{ content:"\2197 "; font-size:.9em; }
.wp-open{ margin-top:22px; align-self:flex-start; display:inline-flex; align-items:center; gap:6px; font-family:var(--sans); font-weight:700; font-size:13px; letter-spacing:.01em; color:var(--argila); background:none; border:none; border-radius:0; padding:0; cursor:pointer; box-shadow:none; transition:color .18s ease; }
.wp-open svg{ width:15px; height:15px; }
.wp-open:hover{ background:none; color:var(--argila); text-decoration:underline; text-underline-offset:2px; }
@media (max-width:1120px){ .wheel-stage{ grid-template-columns:1fr; gap:20px; } .wheel{ width:min(74vw,460px); } .wheel-panel{ min-height:0; text-align:center; } .wp-rest .wp-invite{ text-align:center; } .wp-quote{ position:relative; align-items:center; text-align:center; } .wp-open{ align-self:center; } }

/* ---- NOS: grandes, imagem legivel, rotulo em pilula ABAIXO (nao vaza) ---- */
.node{ position:absolute; left:50%; top:50%; width:var(--node); height:var(--node); margin:calc(var(--node)/-2) 0 0 calc(var(--node)/-2); border-radius:50%; overflow:visible; cursor:pointer; padding:0; border:none; background:none; z-index:4; -webkit-tap-highlight-color:transparent; transition:transform .38s cubic-bezier(.34,1.56,.64,1); }
.node .ph{ position:absolute; inset:0; border-radius:50%; overflow:hidden; border:4px solid var(--papel); box-shadow:0 12px 30px -8px rgba(15,28,46,.5); transition:box-shadow .35s ease, border-color .35s ease; }
.node .ph img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.node .ph::after{ content:""; position:absolute; inset:0; border-radius:50%; background:rgba(15,28,46,.3); opacity:0; transition:opacity .35s ease; }
/* rotulo em pilula, ancorado abaixo do circulo, centralizado, nunca corta */
.node .lbl{ position:absolute; top:calc(100% - 6px); left:50%; transform:translateX(-50%); background:var(--azul); color:#fff; font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:.01em; white-space:normal; text-align:center; line-height:1.18; width:max-content; max-width:130px; padding:4px 11px; border-radius:13px; box-shadow:0 4px 12px -4px rgba(15,28,46,.5); z-index:3; transition:background .3s ease; }
.node:hover, .node:focus-visible{ transform:scale(1.1); outline:none; z-index:6; }
.node:hover .ph, .node:focus-visible .ph{ border-color:var(--argila); box-shadow:0 18px 40px -10px rgba(198,94,66,.55); }
.node:hover .ph img{ transform:scale(1.08); }
.node:hover .lbl{ background:var(--argila); }
/* alvo selecionado: cresce bastante e sobe; borda terracota mais forte */
.node.active{ transform:scale(1.24); z-index:7; }
.node.active .ph{ border-color:var(--argila); border-width:5px; box-shadow:0 0 0 5px rgba(198,94,66,.25), 0 22px 46px -10px rgba(198,94,66,.6); }
.node.active .ph img{ transform:scale(1.05); }
.node.active .lbl{ background:var(--argila); }
/* demais recuam: encolhem e desbotam, jogando o foco no alvo */
.node.dim{ transform:scale(.8); opacity:.42; }
.node.dim .ph{ box-shadow:0 6px 16px -8px rgba(15,28,46,.4); }
.node.dim .ph::after{ opacity:1; }
.node.dim .lbl{ opacity:.6; }
.hint{ margin-top:clamp(30px,5vw,48px); font-family:var(--mono); font-size:12px; color:var(--cinza); text-align:center; letter-spacing:.02em; }

/* ===== Cards de evidência (mobile) — botões que abrem o modal ===== */
.evcards{ display:grid; grid-template-columns:1fr; gap:14px; max-width:560px; margin:0 auto; }
.evcard{ display:block; width:100%; text-align:left; padding:0; border:1px solid rgba(15,28,46,.1); border-radius:16px; overflow:hidden; background:#fff; box-shadow:0 12px 30px -24px rgba(15,28,46,.5); cursor:pointer; -webkit-tap-highlight-color:transparent; transition:transform .15s ease, box-shadow .15s ease; }
.evcard:active{ transform:scale(.99); }
.evcard:hover{ box-shadow:0 16px 34px -20px rgba(15,28,46,.6); }
.evcard .ph{ display:block; height:150px; position:relative; }
.evcard .ph img{ width:100%; height:100%; object-fit:cover; display:block; }
.evcard .ph .sc{ position:absolute; inset:0; background:linear-gradient(to top, rgba(15,28,46,.62), transparent 62%); }
.evcard .ph .nm{ position:absolute; left:16px; bottom:11px; color:#fff; font-family:var(--serif); font-size:20px; text-shadow:0 1px 4px rgba(0,0,0,.5); }
.evcard .bd{ display:block; padding:17px 18px 19px; }
.evcard .bd q{ display:block; font-family:var(--serif); font-style:italic; font-size:16px; line-height:1.4; color:var(--azul-profundo); quotes:none; }
.evcard .bd .src{ display:block; font-family:var(--mono); font-size:11px; color:var(--cinza); margin-top:11px; line-height:1.5; }
.evcard .bd .cta{ display:inline-block; margin-top:13px; color:var(--argila); font-weight:700; font-size:13px; }
.ev-badge{ display:inline-block; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:3px 8px; border-radius:20px; margin-top:11px; }
.ev-badge.ok{ background:rgba(15,28,46,.10); color:var(--azul-profundo); }
.ev-badge.warn{ background:rgba(217,167,66,.2); color:#a07d1e; }

/* ===== MODAL de 5 camadas ===== */
.pilar-modal{ position:fixed; inset:0; z-index:1000; display:none; align-items:center; justify-content:center; padding:5vw; }
.pilar-modal.on{ display:flex; }
.pilar-modal .backdrop{ position:absolute; inset:0; background:rgba(15,28,46,.72); animation:fadein .3s ease; }
.pilar-modal .box{ position:relative; z-index:2; width:min(680px,100%); max-height:88vh; overflow-y:auto; background:var(--papel); border-radius:22px; box-shadow:0 40px 100px -20px rgba(15,28,46,.6); animation:popin .35s cubic-bezier(.34,1.4,.6,1); }
@keyframes fadein{ from{ opacity:0; } }
@keyframes popin{ from{ opacity:0; transform:translateY(18px) scale(.97); } }
.pm-hero{ position:relative; height:190px; border-radius:22px 22px 0 0; overflow:hidden; }
.pm-hero img{ width:100%; height:100%; object-fit:cover; display:block; }
.pm-hero .sc{ position:absolute; inset:0; background:linear-gradient(to top, rgba(15,28,46,.92), rgba(15,28,46,.15) 75%); }
.pm-hero .cap{ position:absolute; left:26px; right:26px; bottom:18px; color:#fff; }
.pm-hero .cap .k{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--pessego); }
.pm-hero .cap h3{ font-family:var(--serif); font-weight:500; font-size:clamp(24px,3vw,32px); margin:4px 0 0; line-height:1.05; }
.pm-close{ position:absolute; top:14px; right:14px; z-index:3; width:38px; height:38px; border-radius:50%; border:none; background:rgba(250,246,238,.92); color:var(--azul); font-size:20px; line-height:1; cursor:pointer; box-shadow:0 4px 12px -3px rgba(0,0,0,.3); transition:transform .2s, background .2s; }
.pm-close:hover{ transform:rotate(90deg); background:#fff; }
.pm-body{ padding:26px clamp(22px,4vw,36px) 30px; }
.pm-anchor{ font-family:var(--serif); font-style:italic; font-size:clamp(17px,2vw,21px); line-height:1.4; color:var(--azul); margin:0 0 6px; }
.pm-anchor-src{ font-family:var(--mono); font-size:.72em; letter-spacing:.01em; line-height:1.55; color:var(--argila); margin:14px 0 0; }
.pm-anchor-src::before{ content:"\2197 "; font-size:.9em; }
.pm-layer{ padding:16px 0; border-top:1px solid rgba(15,28,46,.1); }
.pm-layer .lk{ display:flex; align-items:center; gap:9px; font-family:var(--sans); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; }
.pm-layer .lk .dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.pm-layer.know .lk{ color:var(--azul-profundo); } .pm-layer.know .dot{ background:var(--azul-profundo); }
.pm-layer.unknow .lk{ color:#a07d1e; } .pm-layer.unknow .dot{ background:#c99a2e; }
.pm-layer.sys .lk{ color:var(--argila); } .pm-layer.sys .dot{ background:var(--terra); }
.pm-layer.clin .lk{ color:var(--cinza); } .pm-layer.clin .dot{ background:var(--cinza); }
.pm-layer p{ font-family:var(--sans); font-size:15px; line-height:1.62; color:var(--grafite); margin:0; }
.pm-doi{ display:inline-flex; align-items:center; gap:6px; margin-top:22px; background:none; color:var(--argila); font-family:var(--sans); font-weight:700; font-size:13px; padding:0; border-radius:0; text-decoration:none; box-shadow:none; transition:color .18s ease; }
.pm-doi:hover{ background:none; color:var(--argila); text-decoration:underline; text-underline-offset:2px; }
.pm-ref{ margin-top:22px; padding:14px 16px; background:var(--areia-quente); border-radius:12px; font-family:var(--mono); font-size:11px; line-height:1.6; color:var(--grafite); }
.pm-ref a{ color:var(--argila); text-decoration:none; font-weight:500; }
.pm-ref a:hover{ text-decoration:underline; }
.pm-badge{ display:inline-block; font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:3px 9px; border-radius:20px; margin-top:14px; }
.pm-badge.ok{ background:rgba(15,28,46,.10); color:var(--azul-profundo); }
.pm-badge.warn{ background:rgba(217,167,66,.2); color:#a07d1e; }

@media (prefers-reduced-motion: reduce){ .pilares *{ transition:none !important; animation:none !important; } }


/* Ajustes editoriais — v04 */
.pilar-media img{ object-position:center; }
img[src$="recompensa.jpg"]{ object-position:center 58% !important; }
img[src$="dr-consultorio.jpg"]{ object-position:center 45% !important; }


/* ============================================================
   Atualização editorial v05 — neurodecisão, flow e escaneabilidade
   ============================================================ */
.hero-v05{ position:relative; min-height:84vh; display:flex; align-items:center; overflow:hidden; }
.hero-v05>img,.hero-v05>picture>img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.hero-v05-scrim{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(9,16,28,.82) 0%, rgba(9,16,28,.58) 35%, rgba(9,16,28,.24) 70%, rgba(9,16,28,.36) 100%); }
.hero-v05-content{ position:relative; padding:clamp(80px,8vw,120px) var(--inset); max-width:min(640px,92vw); margin-right:auto; }
.eyebrow-light,.eyebrow{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; margin-bottom:16px; }
.eyebrow-light{ color:var(--pessego); }
.eyebrow{ color:var(--argila); }
.hero-v05 h1{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(34px,4.5vw,62px); line-height:1.01; letter-spacing:-.02em; color:var(--marfim); margin:0; }
.hero-v05 p{ font-size:clamp(15px,1.6vw,18px); line-height:1.62; color:var(--nevoa); margin:24px 0 30px; max-width:54ch; }
.cta-row{ display:flex; gap:14px 18px; align-items:center; flex-wrap:wrap; }
.center-left{ justify-content:flex-start; }
.btn-primary{ display:inline-block; background:var(--argila); color:var(--marfim) !important; text-decoration:none; padding:10px 18px; border-radius:8px; font-size:13px; font-weight:600; box-shadow:none; }
.btn-primary:hover{ background:var(--argila-escura); }
.btn-ghost{ color:var(--marfim); font-size:13px; font-weight:600; text-decoration:none; border-bottom:2px solid rgba(251,248,241,.4); padding-bottom:4px; }
.btn-ghost.dark{ color:var(--azul-profundo); border-color:rgba(15,28,46,.28); }
.section-v05{ padding:clamp(62px,8vw,110px) var(--inset); }
.section-cream{ background:var(--areia); }
.container-v05{ max-width:var(--conteudo); margin:0 auto; }
.narrow-v05{ max-width:var(--conteudo); }
.container-v05 h2{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(25px,2.7vw,37px); line-height:1.1; letter-spacing:-.01em; color:var(--azul-profundo); margin:0; }
.container-v05 p{ font-size:16px; line-height:1.74; color:var(--grafite-quente); margin:18px 0 0; }
.lead-v05{ font-size:clamp(16px,1.5vw,18px) !important; }
.split-v05{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,68px); align-items:center; }
.symptom-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.symptom-grid div,.mini-outcomes div{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:14px; padding:18px 18px; }
.symptom-grid b,.mini-outcomes b{ display:block; font-family:'Newsreader',serif; font-size:20px; color:var(--azul-profundo); font-weight:500; }
.symptom-grid span,.mini-outcomes span{ display:block; margin-top:4px; font-size:14px; color:var(--cinza); line-height:1.45; }
.mechanism-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(32px,5vw,68px); align-items:center; }
.editorial-img{ position:relative; border-radius:18px; overflow:hidden; box-shadow:0 30px 60px -42px rgba(15,28,46,.5); background:var(--areia); }
.editorial-img img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.editorial-wide img{ aspect-ratio:21/8; }
.text-link{ display:inline-block; margin-top:22px; color:var(--argila); text-decoration:none; font-weight:700; }
.section-head-v05{ max-width:840px; margin-bottom:34px; }
.steps-v05{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.steps-v05 article{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:16px; padding:24px 22px; }
.steps-v05 span{ width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--argila); color:#fff; font-family:'Newsreader',serif; font-size:18px; margin-bottom:16px; }
.steps-v05 h3{ font-family:'Newsreader',serif; color:var(--azul-profundo); font-size:22px; font-weight:500; margin:0; }
.steps-v05 p{ font-size:15px; line-height:1.6; margin-top:10px; }
.trust-box{ background:#FBF8F0; border:1px solid rgba(198,94,66,.22); border-left:4px solid var(--terracota); border-radius:12px; padding:18px 20px; margin-top:22px; color:var(--grafite-quente); font-size:15px; line-height:1.65; }
.portrait-card{ border-radius:18px; overflow:hidden; box-shadow:0 30px 60px -38px rgba(15,28,46,.5); background:var(--areia-clara); }
.portrait-card img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; object-position:center 42%; }
.mini-outcomes{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:28px 0 30px; }
.first-visit{ background:linear-gradient(180deg, rgba(241,234,219,.55), rgba(241,234,219,0)); border-radius:18px; padding:clamp(28px,4vw,48px); }
@media(max-width:900px){
  .hero-v05{ min-height:78vh; align-items:flex-end; }
  .hero-v05-scrim{ background:linear-gradient(180deg, rgba(9,16,28,.20) 0%, rgba(9,16,28,.52) 46%, rgba(9,16,28,.88) 100%); }
  .hero-v05-content{ padding-top:140px; }
  .split-v05,.mechanism-grid{ grid-template-columns:1fr; }
  .reverse-mobile .editorial-img{ order:-1; }
  .steps-v05{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mini-outcomes{ grid-template-columns:1fr; }
}
@media(max-width:560px){
  .symptom-grid,.steps-v05{ grid-template-columns:1fr; }
  .section-v05{ padding-left:var(--inset); padding-right:var(--inset); }
}


/* ============================================================
   v06 — dupla entrada, mapa educativo e presença humana disciplinada
   ============================================================ */
/* P-10 · WCAG 2.2 · 2.4.11 Focus Not Obscured — o cabeçalho é sticky;
   sem isto o navegador rola o elemento focado para baixo dele. */
:root{ --header-h:88px; }
html{ scroll-padding-top:calc(var(--header-h) + 12px); }
.site-header{ position:sticky; top:0; z-index:50; display:flex; align-items:center; flex-wrap:nowrap; justify-content:space-between; gap:18px 24px; padding:16px var(--inset); background:#ECE2D0; border-bottom:1px solid rgba(15,28,46,.1); box-shadow:0 10px 28px -22px rgba(15,28,46,.55); }
.brand-lockup{ display:block; text-decoration:none; line-height:1.1; flex:0 0 auto; }
.nav-toggle{ display:none; flex:0 0 auto; align-items:center; justify-content:center; gap:6px; width:44px; height:40px; border:1px solid rgba(15,28,46,.2); border-radius:9px; background:transparent; cursor:pointer; }
.nav-toggle span{ display:block; width:20px; height:2px; background:var(--azul-profundo); position:relative; }
.nav-toggle span::before,.nav-toggle span::after{ content:""; position:absolute; left:0; width:20px; height:2px; background:var(--azul-profundo); transition:transform .2s ease, top .2s ease; }
.nav-toggle span::before{ top:-6px; }
.nav-toggle span::after{ top:6px; }
.site-header.nav-open .nav-toggle span{ background:transparent; }
.site-header.nav-open .nav-toggle span::before{ top:0; transform:rotate(45deg); }
.site-header.nav-open .nav-toggle span::after{ top:0; transform:rotate(-45deg); }
.brand-name{ font-family:'Newsreader',serif; font-weight:600; font-size:23px; color:var(--terracota-logo); letter-spacing:.005em; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.brand-sub{ font-family:'Hanken Grotesk',sans-serif; font-size:12.5px; letter-spacing:normal; color:var(--cinza);
  margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  /* v16: mesmo espaçamento entre letras da linha equivalente no rodapé (.glf-prof .glf-corpo,
     que não declara letter-spacing e portanto renderiza em 'normal'). Tamanho já era 12,5px nos dois. */
.site-header .nav-menu{ display:flex; gap:14px 16px; align-items:center; flex-wrap:wrap; justify-content:flex-end; flex:1 1 auto; min-width:0; font-family:'Hanken Grotesk',sans-serif; font-size:12.5px; color:#3A352B; }
.nav-cta{ background:var(--argila); color:var(--marfim) !important; text-decoration:none; padding:10px 18px;
  border-radius:8px; font-weight:600; font-size:13px; white-space:nowrap; }  /* v15: não herda os 12px dos links; 13px = .btn-primary */
/* ===== Hero com Dr. recortado sobre azul (Home) ===== */

.hero-v06{ position:relative; min-height:86vh; display:flex; align-items:center; overflow:hidden; scroll-margin-top:70px; }
.hero-v06>img,.hero-v06>picture>img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.hero-v06-scrim{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(9,16,28,.84) 0%, rgba(9,16,28,.62) 34%, rgba(9,16,28,.20) 70%, rgba(9,16,28,.30) 100%); }
.hero-v06-content{ position:relative; padding:clamp(80px,8vw,120px) var(--inset); max-width:min(650px,92vw); margin-right:auto; }
.hero-v06 h1{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(36px,4.7vw,66px); line-height:1.01; letter-spacing:-.02em; color:var(--marfim); margin:0; }
.hero-v06 p{ font-size:clamp(15px,1.55vw,18px); line-height:1.62; color:var(--nevoa); margin:24px 0 30px; max-width:56ch; }
.entry-grid-v06{ display:grid; grid-template-columns:1fr; gap:14px; }
.entry-card-v06{ display:grid; grid-template-columns:150px 1fr; gap:18px; align-items:center; background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:18px; overflow:hidden; color:inherit; text-decoration:none; box-shadow:0 18px 42px -38px rgba(15,28,46,.55); transition:transform .18s ease, box-shadow .18s ease; }
.entry-card-v06:hover{ transform:translateY(-2px); box-shadow:0 22px 46px -36px rgba(15,28,46,.7); }
.entry-card-v06 img{ width:150px; height:150px; object-fit:cover; }
.entry-card-v06 div{ padding:18px 18px 18px 0; }
.entry-card-v06 span{ font-family:var(--mono); color:var(--argila); font-size:11px; text-transform:uppercase; letter-spacing:.14em; }
.entry-card-v06 b{ display:block; font-family:var(--serif); color:var(--azul-profundo); font-size:24px; font-weight:500; margin-top:6px; }
.entry-card-v06 p{ margin:7px 0 0; font-size:14px; line-height:1.55; }
.page-hero-v06{ position:relative; min-height:60vh; display:flex; align-items:flex-end; overflow:hidden; padding:0 var(--inset) clamp(48px,6vw,84px); }
.page-hero-v06.compact{ min-height:60vh; }
.page-hero-v06>img,.page-hero-v06>picture>img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.page-hero-scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(9,16,28,.10) 0%, rgba(9,16,28,.30) 40%, rgba(9,16,28,.86) 100%); }
.page-hero-v06>div:last-child{ position:relative; max-width:none; }
.page-hero-v06 h1{ font-family:var(--serif); font-size:clamp(30px,4vw,50px); line-height:1.03; font-weight:500; color:var(--marfim); margin:0; max-width:18ch; }
.page-hero-v06 p{ max-width:64ch; color:var(--nevoa); font-size:clamp(16px,1.5vw,18px); line-height:1.65; margin:20px 0 0; }
.cards-v06,.diagnosis-grid-v06{ display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:18px; }
.cards-v06 article,.diagnosis-grid-v06 article{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:16px; padding:24px 22px; scroll-margin-top:90px; }
.cards-v06 h3,.diagnosis-grid-v06 h3{ font-family:var(--serif); font-size:24px; font-weight:500; line-height:1.12; color:var(--azul-profundo); margin:0; }
.cards-v06 p,.diagnosis-grid-v06 p{ font-size:15px; line-height:1.62; margin:10px 0 0; }
.cards-v06 a{ display:inline-block; color:var(--argila); text-decoration:none; font-weight:700; margin-top:18px; }
.steps-v06-three{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.steps-v06-three article{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:18px; padding:28px 24px; }
.steps-v06-three span{ font-family:var(--mono); color:var(--argila); text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.steps-v06-three h3{ font-family:var(--serif); color:var(--azul-profundo); font-size:26px; font-weight:500; margin:10px 0 0; }
.map-form-v06{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:26px 0 22px; }
.map-form-v06 label{ display:flex; gap:12px; align-items:flex-start; background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:14px; padding:16px; cursor:pointer; }
.map-form-v06 input{ margin-top:4px; accent-color:var(--argila); }
.map-form-v06 b{ display:block; font-family:var(--serif); color:var(--azul-profundo); font-size:20px; font-weight:500; margin-bottom:3px; }
.map-form-v06 span{ font-size:14px; line-height:1.48; color:var(--cinza); }
.result-box-v06{ margin-top:22px; padding:18px 20px; border-radius:14px; background:#FBF8F0; border:1px solid rgba(198,94,66,.22); color:var(--grafite-quente); line-height:1.65; }
/* (rodapé v06 e v15.5 removidos — órfãos; rodapé atual usa .glf-rodape) */
/* banda desktop compacta: menu tradicional ainda cabe (1081–1280px) */
@media(max-width:1280px) and (min-width:1081px){
 .site-header{ gap:12px; }
 .site-header .nav-menu{ gap:9px 10px; font-size:12.5px; }
 .site-header .brand-name{ font-size:19px; }
 .site-header .brand-sub{ font-size:11px; }
 .site-header .nav-cta{ padding:7px 12px; }
}
/* hambúrguer no tablet/celular (≤1080px), onde o menu de 6 itens longos não cabe em linha */
@media(max-width:1080px){
 .nav-toggle{ display:inline-flex; }
 .brand-lockup{ flex:0 1 auto; min-width:0; }
 .site-header .nav-menu{ position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; padding:8px var(--inset) 16px; background:#ECE2D0; border-bottom:1px solid rgba(15,28,46,.12); box-shadow:0 18px 30px -22px rgba(15,28,46,.6); font-size:15px; }
 .site-header.nav-open .nav-menu{ display:flex; }
 .site-header .nav-menu .navlink{ padding:12px 4px; border-bottom:1px solid rgba(15,28,46,.08); font-size:15px; }
 .site-header .nav-menu .nav-cta{ margin-top:12px; text-align:center; }
 .hero-v06{ min-height:78vh; align-items:flex-end; }
 .hero-v06-scrim{ background:linear-gradient(180deg, rgba(9,16,28,.18) 0%, rgba(9,16,28,.55) 46%, rgba(9,16,28,.90) 100%); }
 .hero-v06-content{ padding-top:140px; }
 .steps-v06-three{ grid-template-columns:1fr; }
}
@media(max-width:640px){
 .entry-card-v06{ grid-template-columns:1fr; }
 .entry-card-v06 img{ width:100%; height:180px; }
 .entry-card-v06 div{ padding:0 18px 20px; }
 .map-form-v06{ grid-template-columns:1fr; }
 .page-hero-v06 h1{ max-width:100%; }
}

/* ============================================================
   v06.01 — refinamento editorial, tipográfico e retratos
   ============================================================ */
:root{
  --measure-hero-title:13ch;
  --measure-page-title:16ch;
  --measure-section-title:18ch;
  --measure-paragraph:58ch;
  --measure-paragraph-narrow:50ch;
  --measure-card:40ch;
  --measure-legal:72ch;
}
.hero-v06-content{ max-width:760px; }
.hero-v06 h1{ max-width:var(--measure-hero-title); line-height:.99; letter-spacing:-.025em; }
.hero-v06 p{ max-width:var(--measure-paragraph-narrow); line-height:1.68; }
.cta-row{ max-width:var(--measure-paragraph); }
.section-head-v05{ max-width:920px; }
.section-head-v05 h2,
.section-v05 h2{ max-width:var(--measure-section-title); line-height:1.05; letter-spacing:-.025em; }
.section-head-v05 p,
.section-v05 > .container-v05 > p,
.section-v05 .lead-v05,
.split-v05 p,
.mechanism-grid p{ max-width:var(--measure-paragraph); line-height:1.72; }
.cards-v06 p,
.diagnosis-grid-v06 p,
.steps-v05 p,
.steps-v06-three p,
.symptom-grid span,
.mini-outcomes span{ max-width:var(--measure-card); line-height:1.58; }
.eyebrow,.pilares-eyebrow{ letter-spacing:.16em; }
.page-hero-v06 h1{ max-width:var(--measure-page-title); line-height:1.03; letter-spacing:-.022em; }
.page-hero-v06 p{ max-width:var(--measure-paragraph); line-height:1.7; }
.legal-content,.faq-content{ max-width:var(--conteudo); margin-inline:auto; }
.legal-content p,.faq-content p{ max-width:var(--measure-legal); line-height:1.72; }
.person-hero-copy{ max-width:760px; }
.person-hero-copy h1{ font-family:var(--serif); color:var(--azul-profundo); font-size:clamp(30px,4vw,50px); line-height:1.02; letter-spacing:-.025em; font-weight:500; max-width:14ch; margin:0; }
.person-hero-copy p{ max-width:var(--measure-paragraph-narrow); font-size:clamp(16px,1.5vw,18px); line-height:1.72; color:var(--grafite-quente); margin:22px 0 0; }
.person-hero-photo{ margin:0; border-radius:22px; overflow:hidden; background:var(--areia-clara); box-shadow:0 34px 80px -48px rgba(15,28,46,.55); border:1px solid rgba(15,28,46,.08); }
.person-hero-photo img{ display:block; width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; object-position:center 35%; }
@media(max-width:900px){
  .person-hero-photo{ max-width:420px; }
}
@media(max-width:720px){
  .hero-v06 h1,.page-hero-v06 h1,.section-head-v05 h2,.section-v05 h2,.person-hero-copy h1{ max-width:100%; }
  .hero-v06 p,.page-hero-v06 p,.section-head-v05 p,.section-v05 .lead-v05,.person-hero-copy p{ max-width:100%; }
}


/* ============================================================
   v06.02 — camada neurofuncional progressiva
   ============================================================ */
.neuro-section{ padding:clamp(58px,8vw,104px) var(--inset); }
.neuro-section.cream{ background:var(--areia); }
.neuro-wrap{ max-width:var(--conteudo); margin:0 auto; }
.neuro-wrap.narrow{ max-width:var(--conteudo); }
.neuro-head{ max-width:860px; margin-bottom:34px; }
.neuro-head h2{ font-family:var(--serif); color:var(--azul-profundo); font-weight:500; font-size:clamp(28px,3.4vw,44px); line-height:1.05; letter-spacing:-.024em; max-width:18ch; margin:0; }
.neuro-head p{ max-width:58ch; line-height:1.72; color:var(--grafite-quente); font-size:clamp(16px,1.5vw,18px); margin:18px 0 0; }
.neuro-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(235px,1fr)); gap:16px; }
.neuro-card{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:17px; padding:24px 22px; }
.neuro-card .tag{ font-family:var(--mono); color:var(--argila); font-size:11px; letter-spacing:.14em; text-transform:uppercase; margin-bottom:10px; display:block; }
.neuro-card h3{ font-family:var(--serif); color:var(--azul-profundo); font-size:clamp(22px,2.2vw,28px); line-height:1.1; font-weight:500; margin:0; }
.neuro-card p{ color:var(--grafite-quente); font-size:15px; line-height:1.62; margin:10px 0 0; max-width:42ch; }
.science-note{ margin-top:22px; max-width:74ch; border-left:4px solid var(--terracota); background:#FBF8F0; border-radius:12px; padding:18px 20px; color:var(--grafite-quente); font-size:15px; line-height:1.7; }

/* ===== Citação científica orgânica (tecida no texto) ===== */
/* referência inline discreta ao fim de uma frase: autor, revista, ano + DOI */
.cite-ref{ display:inline; font-family:var(--mono); font-size:.72em; letter-spacing:.01em; color:var(--argila); text-decoration:none; white-space:nowrap; vertical-align:.15em;  transition:opacity .2s ease; }
.cite-ref::before{ content:"↗ "; font-size:.9em; }
.cite-ref:hover{ opacity:1; text-decoration:underline; }
/* nota de evidência: linha fina sob um parágrafo, mais leve que a caixa */
.ev-note{ margin-top:14px; padding-left:16px; border-left:2px solid rgba(198,94,66,.4); font-family:var(--sans); font-size:14px; line-height:1.6; color:var(--cinza); }
.ev-note b{ color:var(--grafite-quente); font-weight:600; }
.ev-note .ref{ font-family:var(--mono); font-size:11px; color:var(--argila); text-decoration:none; }
.ev-note .ref:hover{ text-decoration:underline; }
/* v30.10 — a referência sai de dentro do parágrafo e passa a ocupar linha
   própria abaixo do texto, com a flecha do padrão do site (mesmo desenho
   de .wp-src na Home). */
.ev-note-ref{ display:block; margin-top:12px; font-family:var(--mono); font-size:11px;
  line-height:1.55; color:var(--argila); }
.ev-note-ref::before{ content:"\2197 "; font-size:.9em; }
.ev-note-ref .ref{ font-size:inherit; }
/* faixa de credibilidade: números-âncora com fonte, elegante, para uma seção */
.evidence-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:22px 30px; margin-top:30px; padding-top:26px; border-top:1px solid rgba(15,28,46,.12); }
.evidence-strip .stat{ }
.evidence-strip .stat .fig{ font-family:var(--serif); font-weight:500; font-size:clamp(30px,4vw,40px); line-height:1; color:var(--argila); }
.evidence-strip .stat .desc{ font-family:var(--sans); font-size:14px; line-height:1.55; color:var(--grafite-quente); margin-top:8px; }
.evidence-strip .stat .ref{ display:inline-block; margin-top:9px; font-family:var(--mono); font-size:11px; color:var(--cinza); text-decoration:none; border-bottom:1px dotted rgba(198,94,66,.5); }
.evidence-strip .stat .ref:hover{ color:var(--argila); }
.pillar-mechanism{ margin:0 0 18px; padding:12px 14px; border-radius:12px; background:#FBF8F0; border:1px solid rgba(198,94,66,.20); color:var(--grafite-quente); font-size:14px; line-height:1.55; max-width:62ch; }
.pillar-mechanism b{ color:var(--argila); font-weight:700; }
.diagnosis-principle{ display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.78fr); gap:clamp(24px,4vw,54px); align-items:start; }
.diagnosis-principle .quote{ font-family:var(--serif); color:var(--azul-profundo); font-size:clamp(22px,2.8vw,34px); line-height:1.18; font-weight:500; margin:0; }
.diagnosis-principle p{ color:var(--grafite-quente); font-size:16px; line-height:1.72; margin:0 0 14px; max-width:62ch; }
.about-framework{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; margin-top:30px; }
.about-framework div{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:16px; padding:22px 20px; }
.about-framework b{ display:block; font-family:var(--serif); color:var(--azul-profundo); font-size:22px; font-weight:500; margin-bottom:8px; }
.about-framework span{ color:var(--grafite-quente); font-size:15px; line-height:1.6; display:block; }
@media(max-width:820px){ .diagnosis-principle{ grid-template-columns:1fr; } }


/* ============================================================
   v06.03 — sincronicidade metodologica: mapa, ciclo, alavanca, rotina possivel
   ============================================================ */
:root{
  --linha-suave:rgba(15,28,46,.10);
  --sombra-suave:0 28px 70px -52px rgba(15,28,46,.70);
}
.sync-section{ padding:clamp(58px,8vw,104px) var(--inset); background:var(--papel); }
.sync-section.cream{ background:var(--areia); }
.sync-section.dark{ background:var(--azul-profundo); color:var(--nevoa); }
.sync-wrap{ max-width:var(--conteudo); margin:0 auto; }
.sync-wrap.narrow{ max-width:var(--conteudo); }
.sync-head{ max-width:900px; margin-bottom:clamp(28px,4vw,44px); }
.sync-head h2{ font-family:var(--serif); font-weight:500; color:var(--azul-profundo); font-size:clamp(28px,3.4vw,44px); line-height:1.04; letter-spacing:-.026em; max-width:18ch; margin:0; }
.sync-head p{ max-width:58ch; color:var(--grafite-quente); line-height:1.72; font-size:clamp(16px,1.5vw,18px); margin:18px 0 0; }
.sync-section.dark .sync-head h2{ color:var(--marfim); }
.sync-section.dark .sync-head p{ color:var(--nevoa); }
.sync-kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--argila); margin-bottom:14px; font-weight:500; }
.sync-section.dark .sync-kicker{ color:var(--pessego); }
.sync-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:16px; }
.sync-card{ background:var(--areia-clara); border:1px solid var(--linha-suave); border-radius:18px; padding:24px 22px; box-shadow:var(--sombra-suave); }
.sync-card h3{ font-family:var(--serif); color:var(--azul-profundo); font-size:clamp(22px,2.2vw,28px); line-height:1.1; font-weight:500; margin:0; }
.sync-card p{ color:var(--grafite-quente); font-size:15px; line-height:1.64; margin:10px 0 0; max-width:42ch; }
.sync-card .label{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:.14em; color:var(--argila); text-transform:uppercase; margin-bottom:10px; }
.sync-note{ margin-top:24px; max-width:76ch; border-left:4px solid var(--terracota); background:#FBF8F0; border-radius:12px; padding:18px 20px; color:var(--grafite-quente); font-size:15px; line-height:1.72; }
.sync-note b{ color:var(--azul-profundo); }
.sync-section.dark .sync-note{ background:rgba(251,248,240,.08); color:#DCE3E8; border-color:var(--pessego); }
.sync-section.dark .sync-note b{ color:var(--marfim); }

.triad-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.triad-card{ background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:18px; overflow:hidden; box-shadow:var(--sombra-suave); }
.triad-card header{ padding:18px 20px; border-bottom:1px solid rgba(15,28,46,.08); background:#FFFBF4; }
.triad-card header h3{ font-family:var(--serif); font-size:clamp(22px,2.5vw,30px); line-height:1.1; color:var(--azul-profundo); font-weight:500; margin:0; }
.triad-part{ padding:17px 20px; border-bottom:1px solid rgba(15,28,46,.07); }
.triad-part:last-child{ border-bottom:0; }
.triad-part b{ display:block; font-family:var(--mono); color:var(--argila); letter-spacing:.13em; text-transform:uppercase; font-size:11px; margin-bottom:6px; }
.triad-part p{ margin:0; color:var(--grafite-quente); line-height:1.62; font-size:15px; }

.formula-flow{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; align-items:stretch; }
.flow-step{ position:relative; background:var(--areia-clara); border:1px solid rgba(15,28,46,.08); border-radius:16px; padding:22px 18px; min-height:160px; }
.flow-step:not(:last-child)::after{ content:""; position:absolute; top:50%; right:-10px; width:18px; height:2px; background:rgba(198,94,66,.35); }
.flow-step span{ display:block; font-family:var(--mono); color:var(--argila); letter-spacing:.14em; text-transform:uppercase; font-size:11px; margin-bottom:10px; }
.flow-step h3{ font-family:var(--serif); font-weight:500; color:var(--azul-profundo); font-size:22px; line-height:1.1; margin:0; }
.flow-step p{ color:var(--grafite-quente); font-size:14px; line-height:1.55; margin:9px 0 0; }

.timeline-063{ display:flex; flex-direction:column; gap:0; }
.timeline-item-063{ display:grid; grid-template-columns:auto 1fr; gap:24px; }
.timeline-mark-063{ display:flex; flex-direction:column; align-items:center; }
.timeline-mark-063 .num{ width:48px; height:48px; border-radius:50%; background:var(--argila); color:#fff; font-family:var(--serif); font-size:19px; display:flex; align-items:center; justify-content:center; }
.timeline-mark-063 .line{ flex:1; width:2px; background:#E2D6C2; margin:8px 0; }
.timeline-body-063{ padding-bottom:38px; }
.timeline-body-063 h3{ font-family:var(--serif); font-size:clamp(21px,2.5vw,29px); color:var(--azul-profundo); font-weight:500; margin:0; line-height:1.12; }
.timeline-body-063 p{ font-size:16px; line-height:1.72; color:var(--grafite-quente); margin:10px 0 0; max-width:70ch; }
.timeline-body-063 .micro{ margin:0 0 10px; display:inline-block; font-family:var(--mono); color:var(--argila); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }

.evidence-strip{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:24px; }
.evidence-strip div{ background:#FBF8F0; border:1px solid rgba(198,94,66,.20); border-radius:14px; padding:16px 16px; color:var(--grafite-quente); font-size:14px; line-height:1.6; }
.evidence-strip b{ display:block; color:var(--argila); font-family:var(--mono); letter-spacing:.12em; text-transform:uppercase; font-size:11px; margin-bottom:6px; }

.dark-arrival{ background:var(--azul-profundo); color:var(--nevoa); border-radius:24px; padding:clamp(28px,5vw,56px); position:relative; overflow:hidden; }
.dark-arrival::before{ content:""; position:absolute; inset:auto -20% -45% auto; width:55%; aspect-ratio:1/1; border-radius:50%; background:radial-gradient(circle, rgba(198,94,66,.26), transparent 62%); }
.dark-arrival h2{ position:relative; color:var(--marfim); font-family:var(--serif); font-size:clamp(28px,3.4vw,44px); line-height:1.06; font-weight:500; max-width:16ch; margin:0; }
.dark-arrival p{ position:relative; max-width:58ch; color:var(--nevoa); line-height:1.72; font-size:16px; }

.reveal{ opacity:0; transform:translateY(16px); transition:opacity .72s ease, transform .72s ease; }
.reveal.is-visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }
@media(max-width:1000px){ .formula-flow{ grid-template-columns:1fr; } .flow-step:not(:last-child)::after{ display:none; } }
@media(max-width:720px){ .timeline-item-063{ gap:16px; } .timeline-mark-063 .num{ width:40px; height:40px; } }

/* v06.03.1 — dinamica de retratos: primeira consulta com presenca a esquerda; sobre com identidade a direita */
.person-hero-photo-left{ grid-template-columns:minmax(320px,.82fr) minmax(0,1.05fr); }
.person-hero-photo-left .person-hero-copy{ max-width:780px; }
.person-hero-photo-left .person-hero-copy h1{ max-width:14.5ch; }
.person-hero-photo-left .person-hero-photo img{ object-position:center 34%; }
@media(max-width:900px){
  .person-hero-photo-left{ grid-template-columns:1fr; }
  .person-hero-photo-left .person-hero-copy{ order:1; }
  .person-hero-photo-left .person-hero-photo{ order:2; }
}


/* v12.2 final: fontes e acessibilidade */
.source-list { max-width: 760px; margin: 24px 0 0; padding-left: 1.25rem; color: var(--grafite-quente); line-height: 1.72; }
.source-list li { margin: 0 0 12px; }
.source-list b { color: var(--azul-profundo); }
.node:focus-visible, .wp-open:focus-visible, .pm-close:focus-visible { outline: 3px solid rgba(198,94,66,.45); outline-offset: 4px; }


/* ============================================================
   v15 — padronização (largura única, tokens de cor claros, medida de leitura)
   ============================================================ */
:root{
  --conteudo:1180px;                                        /* largura única de conteúdo, do cabeçalho ao rodapé */
  --inset:max(6vw, calc((100% - var(--conteudo)) / 2));     /* recuo lateral que alinha blocos full-bleed à mesma coluna */
  --marfim:#FBF8F1;      /* texto claro principal em fundo escuro */
  --nevoa:#C9D2DA;       /* texto claro secundário em fundo escuro */
  --aco:#AEB9C4;         /* apoio em fundo escuro (links do rodapé, meta) */
  --aco-suave:#7E8A95;   /* meta/legal em fundo escuro */
}
/* medida de leitura para blocos centralizados sem classe */
div[style*="margin:0 auto"] > p{ max-width:var(--measure-legal); }
.recon-fusion p{ max-width:var(--measure-legal); }
.ev-compact-lead{ max-width:var(--measure-legal); }
.ev-note-v14{ max-width:var(--measure-legal); }
/* links: cor padrão herdada + hover discreto em texto corrido */
.pm-ref a:hover, .text-link:hover{ color:var(--argila); }


/* ============================================================
   v15.1 — logo terracota, títulos serifados, hero unificada, nav ativo
   ============================================================ */
:root{ --terracota-logo:#A6492E; --terracota-claro:#F7EEE8; }
.brand-lockup:hover .brand-name{ color:var(--argila); }
/* rede de segurança: TODO título é serifado (Newsreader), a menos de override inline */
h1,h2,h3,h4{ font-family:'Newsreader',Georgia,serif; }
/* indicação de seção ativa no menu (páginas internas) */
.nav-menu a.active{ color:var(--argila); font-weight:600; }


/* ============================================================
   v15.2 — cabeçalho em linha única, hero compacta, timeline,
   hovers, disclosure e ritmo de cores dos blocos da home
   ============================================================ */
/* menu na mesma linha da logo e do CTA */
.site-header .nav-menu{ flex-wrap:nowrap; gap:clamp(10px,1.1vw,18px); }
.site-header .nav-menu .navlink{ white-space:nowrap; }
/* v15 — a gaveta mobile mantém 13px: aqui a restrição é o alvo de toque, não a largura */
@media(max-width:1080px){ .site-header .nav-menu{ font-size:13px; } }

/* Bloco "Quem cuida" — timeline vertical com bullets */
.care-timeline{ list-style:none; margin:30px 0 8px; padding:0; display:grid; gap:0; max-width:640px; }
.care-timeline li{ position:relative; padding:0 0 22px 30px; border-left:2px solid rgba(198,94,66,.28); }
.care-timeline li:last-child{ padding-bottom:2px; border-left-color:transparent; }
.care-timeline li::before{ content:""; position:absolute; left:-8px; top:3px; width:14px; height:14px; border-radius:50%; background:var(--terracota); box-shadow:0 0 0 4px var(--areia); }
.care-timeline b{ display:block; font-family:'Hanken Grotesk',sans-serif; font-size:15px; font-weight:700; color:var(--azul-profundo); margin-bottom:5px; }
.care-timeline span{ display:block; font-size:15px; line-height:1.6; color:var(--grafite-quente); max-width:62ch; }

/* Sintomas — subtítulo em terracota + hover com movimento */
.symptom-grid div{ transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.symptom-grid div:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -24px rgba(15,28,46,.5); border-color:rgba(198,94,66,.45); }
.symptom-grid .sq{ display:block; margin-top:8px; font-family:'Hanken Grotesk',sans-serif; font-size:13px; font-weight:600; color:var(--argila); }

/* Etapas (O que fazemos) — hover com movimento */
.steps-v05 article{ transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.steps-v05 article:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -24px rgba(15,28,46,.5); border-color:rgba(198,94,66,.45); }

/* CTA alinhado à direita */
.cta-row.right{ justify-content:flex-end; }

/* Cabeça de seção em largura total (elimina espaço à direita) */
.wide-head .section-head-v05,
.wide-head .section-head-v05 h2,
.wide-head .section-head-v05 p{ max-width:none; }

/* Disclaimer / dropdown */
.disclosure{ margin-top:24px; border:1px solid rgba(15,28,46,.14); border-radius:12px; background:var(--areia-clara); overflow:hidden; max-width:74ch; }
.disclosure summary{ cursor:pointer; list-style:none; padding:15px 20px; font-family:'Hanken Grotesk',sans-serif; font-size:14px; font-weight:700; color:var(--azul-profundo); display:flex; align-items:center; gap:12px; }
.disclosure summary::-webkit-details-marker{ display:none; }
.disclosure summary::before{ content:"+"; font-family:var(--mono); color:var(--argila); font-size:20px; line-height:1; width:14px; text-align:center; }
.disclosure[open] summary::before{ content:"\2013"; }
.disclosure .disc-body{ padding:0 20px 18px 46px; font-size:14px; line-height:1.72; color:var(--grafite-quente); }


/* ============================================================
   v15.3 — roda (painel destaque + fix botão), largura total,
   bullets serifadas, precisão com imagem, hierarquia h1>h2
   ============================================================ */
/* menu alinhado ao topo, na mesma altura da logo e do CTA */
.site-header .nav-menu{ align-items:center; }
.site-header .brand-lockup{ padding-top:1px; }

/* Painel da roda — destaque numérico + texto (sem aspas) */
.wp-fig{ font-family:var(--serif); font-weight:500; font-size:clamp(30px,3.4vw,46px); line-height:1; color:var(--argila); margin:2px 0 14px; }
.wp-text{ font-family:var(--serif); font-weight:400; font-size:clamp(17px,1.7vw,21px); line-height:1.42; color:var(--azul); margin:0; }
.wp-open, .pm-doi{ opacity:1 !important; visibility:visible !important; }

/* Modal — aviso clínico como dropdown */
.pm-clin-drop{ margin-top:16px; }
.pm-clin-drop summary::before{ content:"+"; }
.pm-clin-drop[open] summary::before{ content:"\2013"; }

/* Expandir cartola/título/texto até a margem direita do conteúdo */
.full-measure .section-head-v05,
.full-measure .section-head-v05 h2,
.full-measure .section-head-v05 p,
.full-measure > .container-v05 > h2,
.full-measure > .container-v05 > p,
.full-measure .lead-v05,
.full-measure .pilares-title,
.full-measure .pilares-sub,
.full-measure .pilares-head,
.full-measure .science-note,
.full-measure .disclosure,
.full-measure .care-timeline,
.full-measure .precisao-copy p{ max-width:none; }

/* Bullets do "Quem cuida" — títulos serifados (como na página Sobre) */
.care-timeline b{ font-family:'Newsreader',serif; font-size:19px; font-weight:500; }

/* CTA fantasma "Conheça minha trajetória" no padrão 13px */
.text-link{ font-size:13px; }

/* Bloco Psiquiatria de Precisão — imagem à direita, texto full-width */
.precisao-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.42fr); gap:clamp(28px,4vw,56px); align-items:center; }
.precisao-copy{ align-self:center; }
.precisao-media{ align-self:stretch; min-height:320px; border-radius:18px; overflow:hidden; background:var(--areia-clara); }
.precisao-media picture{ display:block; width:100%; height:100%; }
.precisao-media img{ display:block; width:100%; height:100%; object-fit:cover; object-position:center 55%; }
.precisao-media span{ font-family:var(--mono); font-size:13px; letter-spacing:.04em; color:var(--cinza); line-height:1.6; }
.precisao-media small{ font-size:11px; opacity:.8; }
@media(max-width:820px){ .precisao-grid{ grid-template-columns:1fr; } .precisao-media{ min-height:220px; order:-1; } }


/* ============================================================
   v15.4 — padronização final: subtítulos de bloco (h3/b) unificados,
   cabeçalho alinhado ao topo, hover da roda limpa ao sair, precisão
   alinhada ao topo, box terracota clara em "Dê o primeiro passo"
   ============================================================ */

/* Cabeçalho: logo, menu e CTA centralizados verticalmente entre si (substitui o alinhamento pelo topo da v15.4, que não fechava) */
.site-header{ align-items:center; }
.site-header .nav-menu{ align-items:center; flex-wrap:nowrap; }
.site-header .nav-menu .navlink{ padding:10px 0; }
.site-header .nav-cta{ margin-top:0; }
@media(max-width:1180px){ .site-header .nav-menu{ font-size:12.5px; gap:12px; } .site-header .brand-name{ font-size:21px; } }

/* Subtítulo de bloco: UMA definição para h3 de cards e <b> de listas/bullets */
.steps-v05 h3,
.symptom-grid b,
.mini-outcomes b,
.care-timeline b{ font-family:'Newsreader',serif; font-weight:500; font-size:20px; line-height:1.18; color:var(--azul-profundo); }

/* Corpo de card padronizado em 15 (meta) e body em 16 já vem de .container-v05 p */
.steps-v05 p{ font-size:15px; }

/* Roda: o painel volta ao estado de repouso quando o mouse sai (não fica preso) */
/* (lógica no JS; aqui só garantimos transição suave) */
.wheel .center-copy, #wpanel{ transition:opacity .28s ease; }

/* Referências científicas sob as bullets do "Quem cuida" */
.care-refs{ margin:2px 0 0 30px; padding:0; display:flex; flex-direction:column; gap:4px; }
.care-refs a{ font-family:'Hanken Grotesk',sans-serif; font-size:13px; color:var(--argila); text-decoration:none; }
.care-refs a:hover{ text-decoration:underline; }

/* Psiquiatria de Precisão: coluna de texto alinhada ao TOPO da imagem */
.precisao-grid{ align-items:start; }
.precisao-copy{ align-self:start; }
.precisao-copy .science-note,
.precisao-copy .disclosure{ max-width:none; }

/* "Dê o primeiro passo": box terracota clara arredondada */
.first-step-box{ background:var(--terracota-claro,#F7EEE8); border:1px solid rgba(198,94,66,.24); border-radius:20px; padding:clamp(30px,4vw,52px); }
.first-step-box .eyebrow{ color:var(--argila); }

/* Disclaimer de sintomas (Entenda) usa o mesmo .disclosure já definido */

/* Assinatura sob os CTAs da hero */


/* ============================================================
   v15.5 — (removido) rodapé antigo de 5 colunas — CSS órfão eliminado.
   O rodapé atual é .glf-rodape (bloco v15.8).
   ============================================================ */


/* v15.6 — heros de página e h2 autorais alinhados à escala padrão do site */
.person-hero-copy h1,
.page-hero-v06 h1,
.hero-v06 h1{ font-size:clamp(30px,3.6vw,46px) !important; line-height:1.05; }
.sync-head h2{ font-size:clamp(25px,2.7vw,37px) !important; }
.sync-card h3,
.tm-lista h3.tm-t,
.steps-v06-three h3{ font-size:20px !important; line-height:1.18; }


/* ============================================================
   v15.9 — assinatura sobre a foto, kicker da roda sem "ponto",
   bullets "Quem cuida" à margem, disclaimer de precisão full-width
   ============================================================ */

/* Assinatura na base da foto do hero, com gradiente sutil */
.hero-dr-figure .hero-signature{
  position:absolute; left:0; right:0; bottom:0; margin:0;
  padding:34px clamp(14px,2vw,26px) 14px;
  font-family:'Hanken Grotesk',sans-serif; font-size:11.5px; letter-spacing:.02em;
  color:var(--nevoa); text-align:center;
  background:linear-gradient(to top, rgba(15,28,46,.72) 0%, rgba(15,28,46,.32) 55%, rgba(15,28,46,0) 100%);
  pointer-events:none;
}
@media(max-width:900px){ .hero-dr-figure .hero-signature{ padding:26px clamp(12px,3vw,20px) 12px; text-align:center; } }

/* Roda: bloco de introdução alinhado à esquerda; kicker sem aparência de "ponto/tag" */
.wp-rest{ text-align:left; }
.wp-rest .wp-kicker{
  font-family:var(--serif); font-weight:600; font-size:clamp(23px,2.5vw,31px);
  letter-spacing:0; text-transform:none; color:var(--argila); margin-bottom:10px;
}
.wp-rest .wp-invite{ text-align:left; }
@media (max-width:1120px){ .wp-rest{ text-align:center; } .wp-rest .wp-invite{ text-align:center; } }

/* Bullets "Quem cuida" ocupam a largura do container até a margem direita */
.full-measure .care-timeline{ max-width:none; }
.full-measure .care-timeline span{ max-width:none; }

/* Disclaimer da Psiquiatria de Precisão: 100% da largura da seção, abaixo do grid */
.precisao-disclaimer{ margin-top:24px; max-width:none; width:100%; }


/* ============================================================
   v17 — RODAPÉ v5 canônico (rodapé ÚNICO, 5 faixas, um só fundo navy)
   Substitui os blocos v15.8 e v16. Fonte serifada = Newsreader do site;
   terracota = paleta do site; mapa em click-to-load (conformidade cookies).
   ============================================================ */
:root{ --glf-navy:#0F1C2E; --glf-cream:#EDE6DA; --glf-terracota:#C65E42; --glf-terracota-hover:#A6492E; --glf-navy-2:#16283d; --glf-cream-dim:#A79F90; --glf-linha:rgba(237,230,218,.16);
  --serif:'Newsreader',Georgia,serif; --sans:'Hanken Grotesk',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace; }
/* Botão da fachada do mapa (click-to-load) */
.glf-mapa__btn{ appearance:none; cursor:pointer; margin:4px 0 2px; background:none; border:0; padding:0; font-family:'Hanken Grotesk',system-ui,sans-serif; }
.glf-cta-ghost{ display:inline-flex; align-items:center; gap:5px; color:var(--glf-terracota); font-weight:700; font-size:13px; text-decoration:none; letter-spacing:.01em; transition:color .18s ease; }
.glf-cta-ghost:hover{ color:#fff; text-decoration:underline; text-underline-offset:2px; }
.glf-cta-ghost:focus-visible{ outline:3px solid var(--glf-terracota); outline-offset:3px; border-radius:3px; }
.glf-divider{ height:1px; margin:12px 0; background:var(--glf-linha); list-style:none; padding:0; }
.glf-mapa__btn:hover{ background:var(--glf-terracota-hover,#A6492E); transform:translateY(-1px); }
.glf-mapa__btn:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
@media (prefers-reduced-motion:reduce){ .glf-cta-ghost{ transition:none; } }
.glf-rodape{ background:var(--glf-navy); color:var(--glf-cream); font-family:'Hanken Grotesk',sans-serif; font-size:15px; line-height:1.5; }
.glf-rodape *{ box-sizing:border-box; }
.glf-rodape a{ color:var(--glf-cream); text-decoration:none; }
.glf-rodape a:hover{ text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--glf-terracota); }
.glf-rodape a:focus-visible{ outline:3px solid var(--glf-terracota); outline-offset:3px; border-radius:3px; }
.glf-wrap{ max-width:none; margin:0; padding:0 var(--inset); }  /* v7: --inset é calculado contra a largura total; com max-width o calc zerava e sobrava 6vw de padding,
        estreitando o rodapé em ~173px. Sem max-width, o rodapé alinha exatamente a .section-v05. */

/* FAIXA 1 — logo + redes */
.glf-topo{ padding:32px 0 16px; }
.glf-topo-in{ display:flex; align-items:flex-start; justify-content:space-between; column-gap:24px; row-gap:0; flex-wrap:wrap; }
.glf-topo-in::after{ content:""; flex-basis:100%; height:0; margin-top:10px; border-bottom:3px double var(--glf-linha); }
.glf-prof p{ margin:0; }
.glf-prof .glf-nome{ font-family:'Newsreader',serif; font-size:21px; font-weight:600; color:var(--terracota-logo); line-height:1.3; }
.glf-prof .glf-corpo{ font-size:12px; color:var(--glf-cream); }
.glf-redes{ display:flex; align-items:center; gap:18px; }
.glf-redes a{ display:inline-flex; color:var(--terracota-logo); transition:color .18s ease, transform .18s ease; }
.glf-redes a:hover{ color:var(--glf-terracota); text-decoration:none; transform:translateY(-2px); }
.glf-redes svg{ width:36px; height:36px; display:block; }

/* FAIXA 2 — links + contato + mapa */
.glf-meio{ padding:6px 0 20px; }
.glf-meio-in{ display:grid; grid-template-columns:minmax(190px,1fr) minmax(300px,2fr) minmax(190px,1fr); gap:24px; align-items:start; }
.glf-links{ display:grid; grid-template-columns:1fr 1fr; gap:9px 24px; }
.glf-links ul{ list-style:none; margin:0; padding:0; }
.glf-links li{ margin:0 0 9px; line-height:1.5; }
.glf-links li:last-child{ margin-bottom:0; }
.glf-whats{ display:inline-flex; align-items:center; gap:8px; }
.glf-whats svg, .glf-comochegar svg{ width:18px; height:18px; flex:0 0 auto; color:var(--glf-terracota); }
.glf-comochegar{ display:inline-flex; align-items:center; gap:8px; }
.glf-rodape a.glf-comochegar svg{ color:var(--glf-terracota); }
/* v7: ícone 16→18px nos dois links e cor --terracota-logo (2,95:1 sobre o navy) → --glf-terracota (4,14:1). */
.glf-links-cta{ margin-top:6px; }
.glf-contato address{ font-style:normal; margin:0; }
.glf-contato address a,.glf-contato address span{ display:block; margin:0 0 9px; line-height:1.5; }
.glf-btn{ display:inline-flex; align-items:center; justify-content:center; padding:10px 18px; background:var(--glf-terracota); color:#fff; font-weight:600; font-size:12px; line-height:1; border-radius:8px; transition:background .2s ease; white-space:nowrap; }
.glf-btn:hover{ background:var(--glf-terracota-hover); text-decoration:none; }


/* FAIXA 3 — emergência */
.glf-emergencia-faixa{ padding:4px 0 18px; }
.glf-emergencia{ margin:0; padding:14px 16px; font-size:11.5px; line-height:1.6; background:rgba(198,94,66,.14); border:1px solid rgba(198,94,66,.42); border-radius:10px; }
.glf-emergencia strong{ color:#f0c9b8; }

/* FAIXA 4 — aviso legal */
.glf-avisolegal-faixa{ padding:0 0 12px; }
.glf-avisolegal{ margin:0; font-size:11px; color:var(--glf-cream); line-height:1.55; }

/* FAIXA 5 — links legais + copyright (uma linha) */
.glf-rodape .glf-legal{ background:none; border-top:1px solid var(--glf-linha); padding:12px 0 18px; }
.glf-legal-in{ display:flex; align-items:center; gap:6px 9px; flex-wrap:nowrap; font-size:11px; letter-spacing:-.02em; white-space:nowrap; }
.glf-legal-in a{ white-space:nowrap; }
.glf-legal-in .glf-sep{ color:var(--glf-cream-dim); }
.glf-legal-in .glf-copy{ margin-left:auto; color:var(--glf-cream-dim); white-space:nowrap; }

@media (max-width:900px){
  .glf-meio-in{ grid-template-columns:1fr 1fr; gap:26px 24px; }
  .glf-maps-col{ grid-column:1 / -1; }
  .glf-mapa{ aspect-ratio:auto; height:170px; }
}
@media (max-width:1024px){
  .glf-legal-in{ flex-wrap:wrap; white-space:normal; font-size:12px; letter-spacing:normal; }
  .glf-legal-in .glf-copy{ margin-left:0; width:100%; white-space:normal; }
}
@media (max-width:560px){
  .glf-meio-in{ grid-template-columns:1fr; }
  .glf-links{ grid-template-columns:1fr; }
  .glf-btn{ width:100%; }
}
@media (prefers-reduced-motion:reduce){ .glf-rodape *{ transition:none !important; } }
@media print{ .glf-rodape{ color:#000; } .glf-mapa{ display:none; } }


/* ============================================================
   v18 — utilitários centralizados (substituem estilo inline repetido
   nas páginas Sobre, Primeira consulta e afins)
   ============================================================ */
.sec-band{ padding:clamp(54px,7vw,90px) var(--inset); }
.sec-band.cream{ background:var(--areia); }
.sec-band > .inner{ max-width:var(--conteudo); margin:0 auto; }
.sec-title{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(25px,2.7vw,37px); line-height:1.1; margin:0 0 8px; color:var(--azul-profundo); }
.sec-intro{ font-size:16px; line-height:1.72; color:var(--grafite-quente); margin:0 0 38px; max-width:70ch; }
.prose-p{ font-size:16px; line-height:1.78; color:var(--grafite-quente); margin:0 0 18px; }
.prose-p:last-child{ margin-bottom:0; }
.serif-lead{ font-family:'Newsreader',serif; font-size:clamp(22px,2.2vw,28px); line-height:1.4; color:var(--azul-profundo); }

/* grade de valores/princípios */
.value-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:28px 44px; }
.value-grid h3{ font-family:'Newsreader',serif; font-weight:500; font-size:20px; line-height:1.2; color:var(--azul-profundo); margin:0; }
.value-grid p{ font-size:15px; line-height:1.68; color:var(--grafite-quente); margin:8px 0 0; }

/* timeline de credenciais */
.cred-timeline{ display:flex; flex-direction:column; gap:0; }
.cred-item{ display:grid; grid-template-columns:auto 1fr; gap:20px; }
.cred-rail{ display:flex; flex-direction:column; align-items:center; }
.cred-dot{ width:13px; height:13px; border-radius:50%; background:var(--terracota); margin-top:5px; }
.cred-line{ flex:1; width:2px; background:rgba(198,94,66,.30); margin:6px 0; }
.cred-body{ padding-bottom:24px; }
.cred-item:last-child .cred-body{ padding-bottom:0; }
.cred-body h3{ font-family:'Newsreader',serif; font-weight:500; font-size:20px; color:var(--azul-profundo); margin:0; }
.cred-body p{ font-size:15px; line-height:1.65; color:var(--grafite-quente); margin:5px 0 0; }

/* faixa de CTA de fim de página */
.endcta{ padding:clamp(40px,6vw,70px) var(--inset) clamp(60px,8vw,100px); }
.endcta h2{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(22px,2.2vw,28px); line-height:1.1; margin:0 0 22px; color:var(--azul-profundo); }
.endcta .row{ display:flex; gap:16px 22px; align-items:center; flex-wrap:wrap; }


/* ============================================================
   v19 — consentimento + mapa
   Banner opt-in (Aceitar mapa / Recusar) + mapa que embeda após consentimento.
   Tokens da marca do site. Substitui o banner "só essenciais" (v15.7) e o
   facade click-to-load (v17). Cookie: glf_consent_mapa (~6 meses).
   ============================================================ */
/* ---- Mapa (rodapé e Contato) ---- */
.glf-mapa{ position:relative; width:100%; aspect-ratio:auto; min-height:126px; flex:1 1 auto; border-radius:12px; overflow:hidden; background:var(--glf-navy-2); }
.glf-mapa__fallback{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; padding:16px 20px; color:var(--glf-cream);
  background:
   radial-gradient(circle at 62% 42%, rgba(198,94,66,.42), rgba(198,94,66,0) 16%),
   repeating-linear-gradient(0deg, rgba(237,230,218,.06) 0 1px, transparent 1px 26px),
   repeating-linear-gradient(90deg, rgba(237,230,218,.06) 0 1px, transparent 1px 26px),
   linear-gradient(rgba(15,28,46,.82),rgba(15,28,46,.9)); }
.glf-mapa__end{ font-size:11px; line-height:1.7; margin:6px 0 10px; font-family:'Hanken Grotesk',sans-serif; }
.glf-mapa__end strong{ color:#fff; }
.glf-mapa__link{ font-size:11px; color:var(--glf-cream-dim); margin:0; font-family:'Hanken Grotesk',sans-serif; }
.glf-mapa__link a{ color:var(--glf-terracota); text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
.glf-mapa iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

/* C-05 — bloco #glf-consent removido: 16 declarações no CSS para zero uso
   no HTML. Era o banner de consentimento anterior, substituído por
   #glf-cookie-aviso. O botão .glf-prefs-btn do rodapé, abaixo, continua em uso. */

/* link "Preferências de cookies" no rodapé */
.glf-prefs-btn{ background:none; border:0; padding:0; font:inherit; color:inherit; cursor:pointer; text-decoration:none; }
.glf-prefs-btn:hover{ text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--glf-terracota); }

/* consolidação final — a11y */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ============================================================
   v20.3 — utilitários das páginas legais (purga de inline · lote 1)
   Cada classe = as MESMAS declarações do inline que substituiu.
   ============================================================ */
.lg-h2{ font-family:'Newsreader',serif; font-weight:500; font-size:22px; color:var(--azul-profundo); margin:26px 0 8px; }
.lg-p{ font-size:16px; line-height:1.78; color:var(--grafite-quente); margin:0 0 16px; overflow-wrap:break-word; }
.lg-td{ padding:12px; border-bottom:1px solid var(--nevoa); color:var(--grafite-quente); font-size:15px; vertical-align:top; }
.lg-link{ color:var(--argila); }
.lg-th{ text-align:left; padding:10px 12px; border-bottom:2px solid var(--nevoa); font-family:'Hanken Grotesk',sans-serif; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza); }
.lg-wrap{ padding:100px var(--inset) clamp(50px,7vw,90px); margin:0 auto; max-width:var(--conteudo); }
.lg-eyebrow{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--argila); margin-bottom:14px; }
.lg-h1{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(30px,3.6vw,46px); line-height:1.06; margin:0 0 14px; color:var(--azul-profundo); }
.lg-lead{ font-size:16px; line-height:1.7; color:var(--cinza); font-style:italic; margin:0 0 10px; }
.lg-date{ font-size:13px; color:var(--aco-suave); margin:0 0 26px; }
.lg-strong{ color:var(--azul-profundo); }
.lg-table{ width:100%; border-collapse:collapse; margin:0 0 18px; display:block; overflow-x:auto; -webkit-overflow-scrolling:touch;
  background:
    linear-gradient(to right, var(--papel) 30%, rgba(250,246,238,0)) left,
    linear-gradient(to left, var(--papel) 30%, rgba(250,246,238,0)) right,
    linear-gradient(to right, rgba(15,28,46,.14), rgba(15,28,46,0)) left,
    linear-gradient(to left, rgba(15,28,46,.14), rgba(15,28,46,0)) right;
  background-repeat:no-repeat; background-color:var(--papel);
  background-size:20px 100%, 20px 100%, 10px 100%, 10px 100%;
  background-attachment:local, local, scroll, scroll;
}
.lg-mono{ font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace; font-size:14px; color:var(--argila); }
/* C-05 — .lg-note removida junto com a "Nota de conformidade CFM" (A-1). */
.lg-li{ font-size:16px; line-height:1.78; color:var(--grafite-quente); margin:0 0 16px; padding-left:22px; }

/* v37.6 — Páginas legais/FAQ: conteúdo em largura total (medida de leitura removida a pedido) */

/* v20.4 — utilitários os-7-pilares (purga de inline · lote 2) — declarações idênticas ao inline */
.p7-border{ border:1px solid rgba(15,28,46,.12); }
.p7-cta{ display:inline-block; background:var(--argila); color:var(--marfim); text-decoration:none; padding:15px 32px; border-radius:9px; font-size:15px; font-weight:600; }
.p7-navlink{ color:var(--azul-profundo); font-size:15px; font-weight:600;  border-bottom:2px solid rgba(15,28,46,.28); padding-bottom:3px; }







.p7-u8{ padding:clamp(56px,8vw,100px) var(--inset); margin:0 auto; text-align:left; }
.p7-u9{ font-family:'Hanken Grotesk',sans-serif; font-size:clamp(16px,1.5vw,18px); line-height:1.75; color:var(--grafite-quente); margin:0; }
.p7-u10{ font-family:'Hanken Grotesk',sans-serif; font-size:16px; line-height:1.75; color:var(--grafite-quente); margin:22px 0 0; }
.p7-u11{ color:var(--azul-profundo); }
.p7-u12{ padding:0 var(--inset) clamp(56px,8vw,100px); margin:0 auto; display:flex; flex-direction:column; gap:20px; }
.p7-h{ font-family:'Newsreader',serif; font-size:clamp(22px,2.2vw,28px); color:var(--azul-profundo); }
.p7-u13{ font-family:'Newsreader',serif; font-style:italic; font-size:16px; color:var(--argila); margin:2px 0 18px; }
.p7-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px 30px; }
@media (max-width:900px){ .p7-grid{ grid-template-columns:1fr; gap:20px; } }
.p7-u14{ font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--argila); margin-bottom:7px; }
.p7-p{ font-size:15px; line-height:1.65; color:var(--grafite-quente); margin:0; }
.p7-u15{ color:var(--marfim); }
.p7-u16{ padding:0 var(--inset) clamp(60px,8vw,100px); margin:0 auto; text-align:left; }
/* v30.10 — CAUSA REAL do afastamento excessivo antes da citação: sobrou da
   v30.6 (item S7, remoção do bloco azul-navy) uma <section class="sync-section
   reveal"> VAZIA logo acima, contribuindo com o padding vertical dela — até
   104px em cima e 104px embaixo, sem conteúdo nenhum. A seção foi removida do
   HTML; aqui fica apenas o respiro próprio do bloco de citação. */
.p7-u16{ padding-top:clamp(30px,4vw,56px); }
.p7-u17{ font-family:'Newsreader',serif; font-size:clamp(22px,2.2vw,28px); line-height:1.35; color:var(--azul-profundo); margin:0 0 28px; }
.p7-u18{ display:flex; gap:16px 22px; align-items:center; justify-content:center; flex-wrap:wrap; }

/* v20.5 — utilitários a-abordagem (purga de inline · lote 3) — declarações idênticas ao inline */
.ab-citelink{ margin-top:14px; display:inline-block; }
.ab-cta{ display:inline-block; background:var(--argila); color:var(--marfim); padding:15px 32px; border-radius:9px; font-size:15px; font-weight:600; }







.ab-u8{ padding:clamp(56px,8vw,100px) var(--inset); margin:0 auto; text-align:left; }
.ab-u9{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--argila); margin-bottom:16px; }
.ab-u10{ font-family:'Hanken Grotesk',sans-serif; font-size:clamp(16px,1.5vw,18px); line-height:1.75; color:var(--grafite-quente); margin:0; }
.ab-u11{ padding:0 var(--inset) clamp(20px,4vw,50px); margin:0 auto; }
.ab-u12{ padding:clamp(54px,7vw,90px) var(--inset); }
.ab-u13{ max-width:var(--conteudo); margin:0 auto; }
/* v30.12 — o vão entre título e texto era de 8px; o padrão do site (h2 +
   .lead-v05, h2 + p de .sync-head) é 18px, medido nas duas referências. */
.ab-u14{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(25px,2.7vw,37px); line-height:1.08; margin:0 0 18px; color:var(--azul-profundo); }
/* .ab-u15 não declarava line-height e caía em `normal` (~19px, contra os
   31,5px do parágrafo irmão .ab-u10). Alinhado ao corpo da própria página. */
.ab-u15{ font-family:'Hanken Grotesk',sans-serif; font-size:clamp(16px,1.5vw,18px); line-height:1.75; color:var(--grafite-quente); margin:0 0 38px; }
.ab-u16{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.ab-card{ background:var(--areia-clara); border-radius:14px; padding:28px 26px; }
.ab-h{ font-family:'Newsreader',serif; font-size:22px; color:var(--azul-profundo); }
.ab-kicker{ font-size:13px; letter-spacing:.04em; color:var(--argila); font-weight:600; margin:4px 0 12px; }
.ab-p2{ font-size:15px; line-height:1.68; color:var(--grafite-quente); margin:0; }
.ab-u17{ padding:clamp(30px,5vw,60px) var(--inset) 0; margin:0 auto; }
.ab-u18{ padding:clamp(54px,7vw,90px) var(--inset); margin:0 auto; }
.ab-u19{ font-size:16px; line-height:1.7; color:var(--grafite-quente); margin:0 0 40px; }
.ab-u20{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 48px; }
@media (max-width:640px){ .ab-u20{ grid-template-columns:1fr; } }
.ab-meta{ font-size:15px; color:var(--cinza); }
.ab-p1{ font-size:15px; line-height:1.7; color:var(--grafite-quente); margin:8px 0 0; }
.ab-u21{ max-width:var(--conteudo); margin:0 auto; text-align:left; }
.ab-u22{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(25px,2.7vw,37px); line-height:1.1; margin:0; color:var(--azul-profundo); }
.ab-u23{ font-size:clamp(15px,1.5vw,17px); line-height:1.75; color:var(--grafite-quente); margin:18px 0 0; }
.ab-u24{ background:var(--areia-clara); border-radius:10px; padding:16px 20px; margin:26px 0 0; max-width:62ch; font-size:13px; line-height:1.6; color:var(--cinza); text-align:left; }
.ab-u25{ padding:clamp(60px,8vw,100px) var(--inset); margin:0 auto; text-align:left; }
.ab-u26{ font-family:'Newsreader',serif; font-size:clamp(22px,2.2vw,28px); line-height:1.35; color:var(--azul-profundo); margin:0 0 28px; }

/* v20.6 — utilitários contato (purga de inline · lote 4) — declarações idênticas ao inline */
.ct-cta{ display:inline-block; background:var(--argila); color:var(--marfim); text-decoration:none; padding:14px 28px; border-radius:9px; font-size:15px; font-weight:600; }
.ct-mapa-h{ height:clamp(260px,36vw,420px); aspect-ratio:auto; }
.ct-u1{ padding:100px var(--inset); margin:0 auto; }
.ct-u2{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--argila); margin-bottom:14px; }
.ct-u4{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:30px; margin-top:40px; }
.ct-u5{ font-family:'Hanken Grotesk',sans-serif; font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--cinza); margin-bottom:10px; }
.ct-u6{ font-family:'Newsreader',serif; font-size:22px; color:var(--azul-profundo); }
.ct-u7{ font-size:18px; color:var(--azul-profundo); margin:6px 0 12px; }
.ct-u8{ font-size:15px; line-height:1.6; color:var(--grafite-quente); margin:0 0 18px; }
.ct-u9{ font-size:16px; line-height:1.6; color:var(--grafite-quente); margin:8px 0 12px; }
.ct-u10{ font-size:14px; line-height:1.6; color:var(--cinza); margin:0 0 14px; }
.ct-u11{ font-size:15px; font-weight:600; color:var(--argila); text-decoration:none; }
.ct-u12{ padding:0 var(--inset); margin:0 auto; max-width:var(--conteudo); }
.ct-u13{ padding:clamp(40px,5vw,64px) var(--inset) clamp(60px,8vw,100px); margin:0 auto; }
.ct-u14{ background:var(--areia); border-left:4px solid var(--terracota); border-radius:8px; padding:24px 28px; }
.ct-u15{ font-family:'Newsreader',serif; font-size:22px; color:var(--azul-profundo); margin-bottom:8px; }
.ct-u16{ font-size:15px; line-height:1.7; color:var(--grafite-quente); margin:0; }
.ct-u17{ padding:clamp(56px,8vw,100px) var(--inset) clamp(50px,7vw,80px); margin:0 auto; max-width:var(--conteudo); }
.ct-u18{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(25px,2.7vw,37px); line-height:1.1; margin:0 0 26px; color:var(--azul-profundo); }
.ct-faqrow{ border-top:1px solid rgba(15,28,46,.12); }
.ct-u19{ display:block; padding:20px 0; margin:0; font-family:'Newsreader',serif; font-size:clamp(18px,2vw,22px); color:var(--azul-profundo); cursor:pointer; }
.ct-faqa{ font-size:16px; line-height:1.72; color:var(--grafite-quente); margin:14px 0 0; padding-bottom:20px; }

/* v37.5 — Contato: blocos de contato como cards + FAQ em banda creme (ritmo) */
.ct-u4{ align-items:stretch; }
.ct-u4 > div{ display:flex; flex-direction:column; align-items:flex-start; background:var(--areia-clara); border:1px solid var(--linha-suave); border-radius:18px; padding:clamp(26px,3vw,36px); box-shadow:var(--sombra-suave); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ct-u4 > div:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -24px rgba(15,28,46,.5); border-color:rgba(198,94,66,.45); }
.ct-u4 .ct-cta, .ct-u4 .ct-u11{ margin-top:auto; }
/* v30.10 — âncora do FAQ. `html` já tem scroll-padding-top igual à altura
   do cabeçalho + 12px; o scroll-margin-top:90px daqui SOMAVA a esse valor e
   a seção parava 190px abaixo do topo, deixando 100px da seção anterior à
   mostra. Medido: 190px de sobra, tanto na chegada com âncora quanto no
   clique do rodapé sem recarga. */
.ct-faq-band{ background:var(--papel); padding:clamp(56px,8vw,100px) var(--inset) clamp(50px,7vw,80px); }
.ct-u17{ max-width:var(--conteudo); margin:0 auto; padding:0; }
@media (prefers-reduced-motion:reduce){ .ct-u4 > div{ transition:none; } .ct-u4 > div:hover{ transform:none; } }

/* v20.7 — utilitários finais (o-mapa, sobre, entenda, index · lote 5) — declarações idênticas ao inline */







.u-8{ padding:clamp(40px,6vw,80px) var(--inset) clamp(56px,7vw,90px); margin:0 auto; text-align:left; }
.u-9{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(22px,2.2vw,28px); line-height:1.15; margin:0 0 18px; color:var(--azul-profundo); }
.u-10{ font-size:16px; line-height:1.72; color:var(--grafite-quente); margin:0 0 30px; }
.u-11{ display:flex; gap:16px 22px; align-items:center; justify-content:center; flex-wrap:wrap; }
.u-12{ display:inline-block; background:var(--argila); color:var(--marfim); text-decoration:none; padding:15px 32px; border-radius:9px; font-size:15px; font-weight:600; }
.u-13{ color:var(--azul-profundo); font-size:15px; font-weight:600;  border-bottom:2px solid rgba(15,28,46,.28); padding-bottom:3px; }
.u-14{ font-size:11px; line-height:1.6; color:var(--aco-suave); margin:30px 0 0; }
.u-15{ padding:clamp(56px,8vw,100px) var(--inset); margin:0 auto; }
.u-16{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--argila); margin-bottom:18px; text-align:left; }
.u-17{ font-size:16px; line-height:1.78; color:var(--grafite-quente); margin:0 0 18px; }
.u-18{ font-size:16px; line-height:1.78; color:var(--grafite-quente); margin:0 0 18px; }
.u-19{ font-size:16px; line-height:1.78; color:var(--grafite-quente); margin:0; }
.mb-36{ margin-bottom:36px; }
.smt-90{ scroll-margin-top:90px; }
.mb-20{ margin-bottom:20px; }
.mw-none{ max-width:none; }
.mt-22{ margin-top:22px; }



.u-23{ padding:0 var(--inset) clamp(60px,8vw,100px); text-align:center; }
.mt-30{ margin-top:30px; }
.mt-26{ margin-top:26px; }
.mt-28{ margin-top:28px; }

/* #16 — título do bloco 'Dê o primeiro passo' à largura total */
.first-step-box h2{ max-width:none; }

/* #6 — fontes do miolo do rodapé a 12px (de 'Médico Psiquiatra' ao CTA) */
.glf-meio-in{ font-size:12px; }


/* ============================================================
   v20.8 — ajustes Biba: Precisão título full-width, legenda hero 2 linhas
   ============================================================ */
.full-measure .precisao-copy h2{ max-width:none; }


/* ============================================================
   SISTEMA DE HERO INTERNO — unificado (v20.9)
   Antes: tres conjuntos de classes (u-*, ab-*, p7-*) com micro-divergencias.
   Agora: FONTE UNICA para o hero full-bleed das paginas de conteudo
   (entenda, o-mapa, a-abordagem, os-7-pilares). object-position fica por
   pagina (enquadramento intencional da foto). Com o hero-dr (Home) e a
   variacao de retrato (person-hero), o site tem DOIS modelos de hero:
   (1) hero-dr, assinatura da Home; (2) hero interno, com variacao full-bleed
   (paginas de conteudo) e variacao de retrato (paginas de pessoa).
   ============================================================ */
.u-2, .u-20, .ab-u2, .p7-u2{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.u-20{ object-position:center 35%; }  /* entenda */
.u-21, .u-6, .ab-u6, .p7-u6{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(28px,3vw,40px); line-height:1.07; margin:0; color:var(--marfim); max-width:none; }
.u-22, .u-7, .ab-u7, .p7-u7{ font-size:clamp(16px,1.55vw,18px); line-height:1.64; color:var(--nevoa); margin:20px 0 0; max-width:58ch; }
/* ============================================================
   v21.0 — itens remanescentes do doc 07 (pendências reais confirmadas em CSS)
   1) Redes sociais do rodapé: .glf-topo-in saiu de justify-content:space-between
      (ícones colados na margem direita) para flex-start + gap 36px (ícones ao
      lado da logo, sem encostar na margem). Tamanho mantido em 42px — decisão
      já fechada na rodada Biba, não revertida aqui.
   2) Bloco do mapa: fontes padronizadas em 11px (.glf-mapa__end era 12.5px,
      .glf-mapa__btn era 12px; .glf-mapa__link já era 11px).
   NÃO alterado nesta rodada (ver PENDENCIAS_DEFINITIVA v18 para o motivo):
   margens/corte de texto do bloco do mapa e redução da sua altura (exigem
   confirmação visual no render, os dois pedidos tensionam entre si); imagem
   do Dr. Guilherme (tamanho/alinhamento/bug de "base repetida"); menu do
   cabeçalho; reordenação dos links do rodapé em 4 colunas — estes três
   últimos dependem do HTML das páginas, que não está disponível nesta sessão.
   ============================================================ */

/* ============================================================
   v21.1 — segunda rodada, já com o HTML real do site em mãos
   1) Hero da Home: object-position da foto de "left bottom" para "left top"
      — o pedido era alinhar o TOPO da foto ao topo da cartola; com "bottom"
      qualquer sobra de altura empurrava a foto para baixo, abrindo vão em cima.
      Não encontrei, no CSS ou na imagem, um padrão de fundo repetido — o
      "bug de base repetida" do doc 07 parece já ter sido corrigido numa
      rodada anterior (a de aumento de margens). Ainda assim, vale um Ctrl+F5.
   2) Bloco do mapa: padding 22px→16px/20px, gap 8px→6px, min-height 150→140px.
      Contas com a largura real da coluna (.9fr de ~1180px ≈ 330-380px, altura
      por aspect-ratio 16:9 ≈ 185-215px): o padding antigo deixava só ~106px
      de altura útil para 3 linhas de endereço + botão + link, por isso
      cortava. Com o padding/gap novos sobra ~30px a mais de altura útil —
      dá pra reduzir o min-height (pedido do doc 07) sem voltar a cortar.
   3) Corrigidas duas referências a classes mortas (.glf-maps-facade /
      .glf-maps-box, que não existem em nenhum HTML) que faziam a regra de
      altura mobile (≤900px) e a regra de impressão nunca serem aplicadas.
      Agora apontam para a classe real, .glf-mapa.
   ============================================================ */

/* ============================================================
   v21.2 — PROMPT 4 (retorno do cliente sobre a v21.1)
   1) Ícones sociais do rodapé: revertido para justify-content:space-between
      (o cliente pediu para voltar à posição bem à direita) + tamanho 42px→36px.
   2) --glf-cream: de #C4BCAD (contraste ~9,1:1 contra o navy) para #B3A794
      (~7,2:1) — mais "sand", menos "branco", ainda acima do mínimo AA (4,5:1).
   3) .glf-avisolegal: 10px → 11px (padrão do resto do rodapé).
   4) .glf-mapa min-height: 140px → 126px (redução adicional). Nota: na
      largura típica da coluna (~300-380px), quem determina a altura real é
      o aspect-ratio 16:9 (~170-215px) — o min-height só age como piso de
      segurança em colunas muito estreitas (<~225px). Por isso reduzir esse
      piso não deve reintroduzir o corte de texto no caso comum.
   5) Textos de Hero (Home e interno) de 15px para 16px — uniformizados com
      os "demais blocos", por pedido explícito do cliente. Texto de
      legenda/cartão (.p7-p, .ab-p2, .ct-u8, .value-grid p, .cred-body p,
      .neuro-card p, .care-timeline, .triad-part p, .sync-card p, os
      "steps-v05" do bloco Mapear/Estabilizar/Regular/Sustentar etc.) foi
      conferido um a um no HTML e mantido em 15px, por ser conteúdo de
      cartão/grade — não parágrafo corrido.
   6) Rodapé, coluna institucional: adicionado item de WhatsApp com ícone +
      número visível "(51) 99733-7430", e duplicado o CTA "Agende sua
      avaliação" como item de lista — confirmado pelo cliente.
   7) Título do hero interno "30 vs Home 28": conferido o HTML real das 6
      páginas internas (entenda, a-abordagem, os-7-pilares, o-mapa, sobre,
      primeira-consulta) — todas usam o sistema novo unificado (u-6/ab-u6/
      p7-u6/person-hero-copy), nenhuma usa as classes antigas mortas
      (hero-v06/page-hero-v06, confirmado sem uso em nenhum HTML). Os
      tamanhos já batem (Home 28, internas 30); não encontrei bug no código.
   ============================================================ */

/* ============================================================
   v21.3 — PROMPT 5
   1) --glf-cream: 2ª rodada de suavização (o cliente reportou "ainda muito
      forte/branca"). De #B3A794 (~7,2:1) para #9C8F7A (~5,4:1) — redução
      bem mais perceptível, ainda folgadamente acima do mínimo AA (4,5:1).
   2) Rodapé, coluna institucional: linha de intervalo (.glf-divider) antes
      de "Fale Conosco"; removido o botão CTA duplicado (o cliente pediu de
      volta a remoção, revertendo o pedido da rodada anterior).
   3) Bloco de contato do rodapé: endereço ganhou "Bairro" antes de
      "Petrópolis" e uma linha de CEP; o botão sólido "Agende sua avaliação"
      foi trocado por um CTA ghost "Como chegar →" linkando para o Google
      Maps (o CTA de agendamento já existe no cabeçalho, então parou de se
      repetir uma terceira vez no rodapé).
   4) Botão "Ver o mapa" (rodapé E página Contato): de botão sólido para
      link ghost, terracota bold com seta — nova classe .glf-cta-ghost,
      reaproveitada também no "Como chegar".
   5) Hero da Home: coluna da foto aumentada de .7fr para .9fr (de 35% para
      45% da largura), imagem visivelmente maior — mantido object-position:
      left top (topo alinhado à cartola).
   6) BUG REAL ENCONTRADO — "Entenda" some ao mover o mouse até ele: não era
      CSS. O opacity:1 !important (item acima, de uma rodada anterior) não
      resolve porque opacity de filho não escapa de um pai com opacity:0 —
      é composição de grupo, não herança. A causa real está no JS de
      index.html: os listeners de mouseenter/mouseleave estavam presos
      separadamente em #wheel e #wpanel (irmãos dentro de .wheel-stage),
      criando um vão real onde o mouse "sai" da roda antes de "entrar" no
      painel, disparando o reset. Corrigido: os listeners agora vivem no
      container-pai comum (.wheel-stage), zona única de hover — que já era
      a intenção descrita no comentário do próprio código-fonte, só não
      estava implementada assim. Ver index.html.
   ============================================================ */

/* person-hero (sobre, primeira-consulta) = variacao de RETRATO do hero interno */

/* v23: referência do modal linkada ao estudo */
.pm-anchor-src a{ color:inherit; text-decoration:none; }
.pm-anchor-src a:hover{ text-decoration:underline; text-underline-offset:2px; }

/* v24: espaçador (substitui o divisor removido; ocupa 1 linha p/ alinhar colunas no bottom) */
.glf-spacer{ height:18px; margin:0 0 9px; list-style:none; padding:0; }
/* v24: referência do resumo (roda) linkada ao estudo */
.wp-src a{ color:inherit; text-decoration:none; }
.wp-src a:hover{ text-decoration:underline; text-underline-offset:2px; }

/* v25: CTA ghost no rodapé precisa vencer .glf-rodape a (especificidade) */
.glf-rodape a.glf-cta-ghost{ color:var(--glf-terracota); text-decoration:none; }
.glf-rodape a.glf-cta-ghost:hover{ color:#fff; text-decoration:underline; text-underline-offset:2px; }

/* v27: coluna do mapa como flex-column para o quadro casar a altura das demais e alinhar no bottom */
.glf-maps-col{ display:flex; flex-direction:column; }
/* ============================================================
   BLOCO "ATUAÇÃO ATUAL" — sobre.html  (novo em v33.2)
   Anexar ao final de styles.css.
   Usa apenas tokens já existentes no :root do projeto.
   ============================================================ */

.cred-now{
  margin-top:38px;
  padding-top:30px;
  border-top:1px solid rgba(15,28,46,.12);
}

.cred-now > .eyebrow{ margin-bottom:12px; }

.cred-now-list{
  list-style:none;
  margin:18px 0 0;
  padding:0;
  display:grid;
  gap:16px;
}

.cred-now-list li{
  display:flex;
  flex-direction:column;
  gap:3px;
  padding-left:18px;
  border-left:2px solid rgba(198,94,66,.30);
}

.cred-now-list li b{
  font-family:'Newsreader',serif;
  font-weight:500;
  font-size:18px;
  color:var(--azul-profundo);
}

.cred-now-list li span{
  font-size:14.5px;
  line-height:1.6;
  color:var(--grafite-quente);
}

@media (max-width:640px){
  .cred-now{ margin-top:30px; padding-top:24px; }
  .cred-now-list li b{ font-size:17px; }
}


/* ============================================================
   v37 — AUDITORIA DE CONSISTÊNCIA COM A HOME
   A HOME é a referência de design aprovada. As páginas internas
   herdavam CTAs maiores (15px 32px / raio 9px / 15px) e cards
   estáticos. Este bloco alinha os DOIS pontos ao vocabulário da
   HOME, de forma centralizada: (1) parâmetros de botão idênticos
   ao .btn-primary / .btn-ghost.dark; (2) a mesma "regra mouse-on"
   de elevação dos cards (.symptom-grid / .steps-v05 da HOME).
   Nada de cor/tipo novos — só uso consistente dos tokens do :root.
   ============================================================ */

/* (1) CTAs internos = parâmetros do botão primário da HOME */
.p7-cta, .ab-cta, .ct-cta, .u-12{ padding:10px 18px; border-radius:8px; font-size:13px; }
/* seus pares "fantasma" = parâmetros do .btn-ghost.dark da HOME */
.p7-navlink, .u-13{ font-size:13px; padding-bottom:4px; }

/* CTAs finais alinhados à esquerda, como na HOME (.cta-row.center-left) */
.p7-u18, .u-11{ justify-content:flex-start; }

/* (3) Heads de conteúdo internos = largura total, como na HOME (.full-measure).
   A HOME aplica .full-measure / .wide-head / .mw-none em TODA seção de conteúdo,
   removendo os limites de medida herdados (cabeça 920px, título 18ch, lead 58ch).
   Várias seções internas (entenda "Duas portas"/"Fechamento", primeira-consulta
   "first-visit", os-7-pilares "Fontes") não tinham esse modificador e ficavam
   estreitas, com vão à direita. Aqui o padrão passa a ser largura cheia — os
   modificadores da HOME seguem válidos (mesma ou maior especificidade). */
.section-head-v05{ max-width:none; }
.section-head-v05 h2, .section-v05 h2{ max-width:none; }
.section-head-v05 p, .section-v05 .lead-v05, .section-v05 > .container-v05 > p{ max-width:none; }
.sec-intro{ max-width:none; }
/* heads próprios das páginas internas (psiquiatria, o-mapa, sobre, entenda, pilares) */
.neuro-head, .sync-head{ max-width:none; }
.neuro-head h2, .sync-head h2{ max-width:none; }
.neuro-head p, .sync-head p{ max-width:none; }
/* bloco de chegada (dark-arrival): título/texto na largura cheia como as caixas da HOME */
.dark-arrival h2, .dark-arrival p{ max-width:none; }

/* (5) Timeline "Como o caminho acontece" (o-mapa): texto na largura da coluna,
   como na HOME — antes o corpo dos passos travava em 70ch, deixando vão à direita. */
.timeline-body-063 p{ max-width:none; }

/* (4) Callouts / caixas de destaque = largura cheia da coluna, como na HOME
   (que os deixa full sob .full-measure). Elimina o vão à direita também nas
   notas de evidência, disclosures e caixas de mecanismo/aviso. */
.science-note, .sync-note, .trust-box, .disclosure,
.pillar-mechanism, .ab-u24{ max-width:none; }

/* (2) Cards internos ganham base de borda quando faltava (só .ab-card),
   para que o realce de borda no hover apareça como nos demais cards. */
.ab-card{ border:1px solid rgba(15,28,46,.08); }

/* (2) Regra mouse-on unificada: mesmo lift/sombra/borda-terracota da HOME
   (.symptom-grid div:hover / .steps-v05 article:hover). */
.neuro-card, .sync-card, .ab-card, .triad-card, .flow-step,
.about-framework div, .cards-v06 article, .diagnosis-grid-v06 article,
.steps-v06-three article, .map-form-v06 label{
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.neuro-card:hover, .sync-card:hover, .ab-card:hover, .triad-card:hover,
.flow-step:hover, .about-framework div:hover, .cards-v06 article:hover,
.diagnosis-grid-v06 article:hover, .steps-v06-three article:hover,
.map-form-v06 label:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 34px -24px rgba(15,28,46,.5);
  border-color:rgba(198,94,66,.45);
}
@media (prefers-reduced-motion: reduce){
  .neuro-card, .sync-card, .ab-card, .triad-card, .flow-step,
  .about-framework div, .cards-v06 article, .diagnosis-grid-v06 article,
  .steps-v06-three article, .map-form-v06 label{ transition:none; }
  .neuro-card:hover, .sync-card:hover, .ab-card:hover, .triad-card:hover,
  .flow-step:hover, .about-framework div:hover, .cards-v06 article:hover,
  .diagnosis-grid-v06 article:hover, .steps-v06-three article:hover,
  .map-form-v06 label:hover{ transform:none; }
}

/* ============================================================
   v37.1 — HIERARQUIA, RITMO E PARIDADE COM A HOME (páginas internas)
   Todas as decisões abaixo são centralizadas aqui; o HTML só recebe
   marcação estrutural (cartolas, dropdowns, legendas).
   ============================================================ */

/* [1] HERO de conteúdo (Sobre, Primeira consulta): 100px topo/base como a HOME,
   e coluna de texto alinhada ao TOPO da foto (antes centralizava). */
@media(max-width:900px){ .person-hero-v061{ padding-top:56px; padding-bottom:56px; } }

/* [2] Legenda sobre a foto do hero de pessoa — mesma assinatura da HOME */
.person-hero-photo{ position:relative; }
.person-hero-cap{ position:absolute; left:0; right:0; bottom:0; margin:0;
  padding:40px clamp(16px,2vw,24px) 15px;
  font-family:var(--sans); font-size:11.5px; letter-spacing:.02em; color:var(--nevoa); text-align:center;
  background:linear-gradient(to top, rgba(15,28,46,.74) 0%, rgba(15,28,46,.30) 55%, rgba(15,28,46,0) 100%); }

/* [3] Psiquiatria — respiro entre os dois parágrafos de "A mudança de paradigma" */
.ab-u8 p.ab-u10 + p.ab-u10{ margin-top:1.35em; }

/* [4] Psiquiatria — foto integrada ao bloco (mesmo fundo, com cartola/título) */
.ab-lead-img{ margin-bottom:clamp(26px,3.5vw,42px); }

/* [5] Psiquiatria — cartões "As camadas": altura uniforme e referência ancorada
   ao rodapé do card, para não vazar sobre o card vizinho */
.ab-u16{ align-items:stretch; }
.ab-card{ display:flex; flex-direction:column; height:100%; }
.ab-card .ab-p2{ margin-bottom:0; }
.ab-card .ab-citelink{ margin-top:auto; padding-top:16px; }
.ab-card .cite-ref{ white-space:normal; }

/* [6] Citação de fechamento (fim de página): pull-quote com aspa + barra terracota */
.closing-quote{ position:relative; padding-left:30px; border-left:3px solid var(--terracota);
  font-style:italic; }
.closing-quote::before{ content:"\201C"; position:absolute; left:2px; top:-20px;
  font-family:var(--serif); font-size:62px; line-height:1; color:rgba(198,94,66,.30); pointer-events:none; }

/* [7] 7 Pilares — título da introdução + parágrafos na mesma escala */
.p7-intro-title{ font-family:var(--serif); font-weight:500; font-size:clamp(25px,2.7vw,37px);
  line-height:1.08; color:var(--azul-profundo); margin:6px 0 20px; }
.p7-u10{ font-size:clamp(16px,1.5vw,18px); }

/* [9] 7 Pilares — respiro entre a nota de evidência e o trio (ideia/por que/como) */
.pilar-row > .p7-grid{ margin-top:0; }

/* v37.3 — 7 Pilares: numeração dos pilares (reforça "a ordem importa") + intro em creme */
.p7-num{ display:block; font-family:var(--mono); font-size:12px; letter-spacing:.14em; color:var(--argila); margin-bottom:8px; }
.p7-intro-band{ background:var(--areia); }
/* v37.4 — Psiquiatria: alternação de fundo papel/areia para separar blocos vizinhos */
.ab-band-cream{ background:var(--areia); }

/* [10/11] 7 Pilares — "Base científica" em largura total, duas colunas, com links */
.source-list{ max-width:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 44px; }
.source-list a{ color:var(--argila); text-decoration:none; }
.source-list a:hover{ text-decoration:underline; }
@media(max-width:720px){ .source-list{ grid-template-columns:1fr; } }

/* [12] 7 Pilares — box navy "A melhor rotina" reequilibrado (menor, mais denso) */
.dark-arrival{ padding:clamp(26px,4vw,46px); }
.dark-arrival h2{ font-size:clamp(23px,2.5vw,33px); max-width:none; }
.dark-arrival p{ font-size:15px; max-width:none; }

/* [19/20/21] dropdowns de conteúdo secundário em largura total do bloco */
.pc-disclosure, .map-disclosure{ max-width:none; }
.pc-disclosure{ margin-top:30px; }

/* [19] espaço entre o texto e as CTAs no hero de pessoa */
.person-hero-copy .cta-row{ margin-top:30px; }

/* [20] Primeira consulta — bloco de CTA final compacto */
.first-visit{ padding:clamp(26px,3vw,40px); }
.section-compact{ padding-top:clamp(40px,5vw,64px)!important; padding-bottom:clamp(40px,5vw,64px)!important; }

/* [22] o-mapa — bloco de CTA final compacto */
.u-8{ padding-top:clamp(34px,4vw,56px); padding-bottom:clamp(44px,5vw,68px); }

/* ============================================================
   v37.7 — lote de ajustes finais por página
   ============================================================ */
/* PC — 3 cards "Como funciona" numa linha até 720px */
@media(min-width:721px){ .steps-v06-three{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
/* PC — afastar CTA do conteúdo no bloco final */
.first-visit .cta-row{ margin-top:30px; }

/* 7P — box navy "A melhor rotina" ocupa a largura da coluna */
.sync-section .dark-arrival{ width:100%; }

/* Entenda — sem número no avatar-card: padding-top normal */
.avatar-card{ padding-top:24px; }

/* Sobre — hero: coluna de texto mais larga (aproxima da foto) + foto menor em altura */

/* v37.9 — Primeira consulta: título em largura total + foto mais baixa (paridade com Sobre) */
.person-hero-photo-left .person-hero-copy h1{ max-width:none; }
.person-hero-photo-left .person-hero-copy p{ max-width:none; }
.person-hero-photo-left .person-hero-photo img{ aspect-ratio:1/1; }

/* Sobre — "O que orienta a prática": itens em boxes (não soltos) */
.value-grid{ gap:18px; }
.value-grid > div{ background:var(--areia-clara); border:1px solid var(--linha-suave); border-radius:18px; padding:26px 24px; box-shadow:var(--sombra-suave); transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.value-grid > div:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -24px rgba(15,28,46,.5); border-color:rgba(198,94,66,.45); }

/* O Mapa — timeline sem números: marcador vira ponto */
.timeline-mark-063 .num{ width:14px; height:14px; font-size:0; margin-top:8px; }

/* Global — heros de contato/legais reduzem topo no mobile (paridade com person-hero) */
@media(max-width:900px){ .ct-u1{ padding:56px var(--inset); } .lg-wrap{ padding-top:56px; } }
@media (prefers-reduced-motion:reduce){ .value-grid > div{ transition:none; } .value-grid > div:hover{ transform:none; } }

/* ============================================================
   v37.8 — ESCALA DE TÍTULOS (páginas internas; HOME permanece intacta)
   HERO = 28px · títulos de bloco = 25px
   ============================================================ */
.pg-interna .u-21, .pg-interna .u-6, .pg-interna .ab-u6, .pg-interna .p7-u6,
.pg-interna .person-hero-copy h1, .pg-interna .ct-u3, .pg-interna .lg-h1{
  font-size:28px !important; line-height:1.12;
}
.pg-interna .container-v05 h2, .pg-interna .sec-title, .pg-interna .ab-u14,
.pg-interna .ab-u22, .pg-interna .sync-head h2, .pg-interna .neuro-head h2,
.pg-interna .p7-intro-title, .pg-interna .ct-u18, .pg-interna .ct-canais-h, .pg-interna .u-9,
.pg-interna .dark-arrival h2, .pg-interna .lg-h2{
  font-size:25px !important; line-height:1.16;
}

/* [1b] Heros full-bleed (entenda, psiquiatria, pilares, o-mapa): conteúdo com
   100px topo e base, como a HERO da HOME (altura guiada pelo conteúdo). */
@media(max-width:900px){ .u-4, .ab-u4, .p7-u4{ padding-top:64px; padding-bottom:64px; } }

/* ============================================================
   v37.2 — ENTENDA: módulos migrados do inline para cá (centralização)
   Cartões alinhados ao sistema de cards do site (tokens + hover-lift).
   ============================================================ */
.explorando-grid,.redes-grid,.avatares-grid{ display:grid; gap:18px; margin-top:28px; }
.explorando-grid,.avatares-grid{ grid-template-columns:repeat(3,1fr); }
.redes-grid{ grid-template-columns:repeat(4,1fr); }
.explorando-card,.redes-card,.avatar-card{ background:var(--areia-clara); border:1px solid var(--linha-suave); border-radius:18px; padding:24px 22px; box-shadow:var(--sombra-suave); }
.explorando-card h3,.redes-card h3,.avatar-card h3{ margin:0 0 10px; font-family:var(--serif); font-weight:500; font-size:20px; line-height:1.18; color:var(--azul-profundo); }
.redes-card h3 span,.avatar-card h3 small{ display:block; font-family:var(--sans); font-size:12px; font-weight:600; letter-spacing:.02em; color:var(--argila); margin-top:4px; text-transform:none; }
.explorando-fala,.redes-fala{ font-family:var(--serif); font-style:italic; font-size:15px; color:var(--grafite-quente); margin:0 0 10px; }
.explorando-escuta{ margin:0; color:var(--cinza); font-size:14.5px; line-height:1.55; }
.redes-card p:not(.redes-fala){ margin:0; color:var(--grafite-quente); font-size:14.5px; line-height:1.55; }
.avatar-card{ position:relative; padding-top:30px; }
.avatar-num{ position:absolute; top:-13px; left:22px; width:30px; height:30px; border-radius:50%; background:var(--argila); color:var(--marfim); font-family:var(--mono); font-size:13px; font-weight:500; display:flex; align-items:center; justify-content:center; }
.avatar-card p{ margin:0; color:var(--grafite-quente); font-size:14.5px; line-height:1.55; }
.aviso-educativo{ margin-top:30px; background:#FBF8F0; border-left:4px solid var(--terracota); border-radius:12px; padding:16px 20px; font-size:14.5px; color:var(--grafite-quente); line-height:1.6; }
.explorando-card,.redes-card,.avatar-card{ transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.explorando-card:hover,.redes-card:hover,.avatar-card:hover{ transform:translateY(-4px); box-shadow:0 18px 34px -24px rgba(15,28,46,.5); border-color:rgba(198,94,66,.45); }
@media (max-width:900px){ .explorando-grid,.avatares-grid{ grid-template-columns:repeat(2,1fr); } .redes-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .explorando-grid,.avatares-grid,.redes-grid{ grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce){ .explorando-card,.redes-card,.avatar-card{ transition:none; } .explorando-card:hover,.redes-card:hover,.avatar-card:hover{ transform:none; } }


/* ============================================================
   v38 — centralização de inline restante (política: zero inline)
   Move para cá: (a) utilitário mt-34 (primeira-consulta);
   (b) blocos v14 recon-fusion + ev-compact que viviam no <head> da HOME;
   (c) CSS do banner de cookies "só essenciais" (#glf-cookie-aviso), antes
   repetido em <style> inline em todas as páginas. Tokens --glf-* já vêm do
   bloco v17; o :root inline redundante foi removido das páginas.
   ============================================================ */
.mt-34{ margin-top:34px; }

/* --- v14 (HOME): reconhecimento em fusão + faixa de evidência compacta --- */
/* ===== v14: fusão do bloco de reconhecimento ===== */
.recon-fusion{max-width:var(--conteudo);margin:0 auto;}
.recon-head h2{margin:.2em 0 .5em;}
.recon-proof{margin:26px 0;padding:20px 24px;border-left:3px solid var(--terracota,#C65E42);background:rgba(198,94,66,.06);border-radius:0 10px 10px 0;}
.recon-proof p{margin:0 0 8px;font-size:16px;line-height:1.6;color:var(--azul-profundo,#0F1C2E);}
.recon-proof .ref{font-size:13px;font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;color:var(--argila,#A6492E);text-decoration:none;border-bottom:1px dotted currentColor;}
.recon-signs{margin:28px 0;}
.recon-routes{margin-top:30px;}
.recon-routes-label{display:block;font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--argila,#A6492E);margin-bottom:12px;}
.recon-routes-btns{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.route-btn{display:block;padding:16px 18px;border:1px solid rgba(15,28,46,.14);border-radius:12px;text-decoration:none;background:#fff;transition:.18s;}
.route-btn:hover{border-color:var(--terracota,#C65E42);transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,28,46,.08);}
.route-btn b{display:block;color:var(--azul-profundo,#0F1C2E);font-size:16px;margin-bottom:4px;}
.route-btn span{display:block;color:var(--cinza);font-size:14px;line-height:1.4;}
/* rota com imagem */
.route-btn-img{padding:0;overflow:hidden;}
.route-btn-img img{display:block;width:100%;height:150px;object-fit:cover;}
.route-btn-img .rb-txt{display:block;padding:16px 18px;}
.route-btn-img .rb-txt b{margin-bottom:4px;}
@media(max-width:720px){.recon-routes-btns{grid-template-columns:1fr;}}

/* ===== v14: faixa de evidência compacta (intro dos 7 pilares) ===== */
.ev-compact{max-width:var(--conteudo);margin:0 auto 10px;}
.ev-compact-lead{max-width:var(--conteudo);margin:0 auto 20px;font-size:16px;line-height:1.6;color:var(--azul-profundo,#0F1C2E);text-align:left;}
.ev-compact-lead strong{color:var(--argila,#A6492E);}
.ev-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.ev-chip{position:relative;padding:22px 20px;border:1px solid rgba(15,28,46,.12);border-radius:14px;background:#fff;cursor:default;transition:.18s;overflow:visible;}
.ev-chip:hover{border-color:var(--terracota,#C65E42);box-shadow:0 10px 26px rgba(15,28,46,.10);}
.ev-chip .fig{font-family:'Newsreader',serif;font-size:34px;line-height:1;color:var(--azul-profundo,#0F1C2E);}
.ev-chip .pil{display:block;margin-top:8px;font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--argila,#A6492E);}
.ev-chip .reveal-hint{display:block;margin-top:10px;font-size:12px;color:var(--cinza);}
.ev-chip .ev-pop{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;background:var(--azul-profundo,#0F1C2E);color:var(--nevoa);padding:16px 18px;border-radius:12px;font-size:14px;line-height:1.5;opacity:0;visibility:hidden;transform:translateY(-6px);transition:.18s;box-shadow:0 14px 34px rgba(15,28,46,.28);}
.ev-chip:hover .ev-pop,.ev-chip:focus-within .ev-pop{opacity:1;visibility:visible;transform:translateY(0);}
.ev-chip .ev-pop .ref{display:inline-block;margin-top:10px;font-family:'IBM Plex Mono',ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;font-size:12px;color:var(--pessego);text-decoration:none;border-bottom:1px dotted currentColor;}
.ev-note-v14{max-width:var(--conteudo);margin:22px auto 0;font-size:14px;color:var(--cinza);font-style:italic;}
@media(max-width:820px){.ev-chips{grid-template-columns:1fr;}.ev-chip .ev-pop{position:static;opacity:1;visibility:visible;transform:none;margin-top:12px;box-shadow:none;}.ev-chip .reveal-hint{display:none;}}

/* --- Banner de cookies (só essenciais) --- */
/* C-02 — o elemento tem [hidden], mas a especificidade de ID vence a regra
   [hidden]{display:none} da folha do agente de usuário: o banner saía da tela
   só por transform e continuava tabulável. Medido: na 52.ª tabulação o foco
   caía no link "Política de Cookies", fora da janela e sem foco visível. */
#glf-cookie-aviso[hidden]{ display:none !important; }
#glf-cookie-aviso{
      position:fixed; left:16px; right:16px; bottom:16px; z-index:9999;
      max-width:880px; margin:0 auto;
      background:var(--glf-navy); color:var(--glf-cream);
      border-radius:14px; box-shadow:0 10px 30px rgba(0,0,0,.28);
      padding:18px 20px;
      display:flex; align-items:center; gap:18px; flex-wrap:wrap;
      font-family:'Hanken Grotesk',system-ui,sans-serif; font-size:12px; line-height:1.5;
      transform:translateY(140%); transition:transform .45s ease;
    }
    #glf-cookie-aviso.glf-visivel{ transform:translateY(0); }
    #glf-cookie-aviso p{ margin:0; flex:1 1 320px; }
    #glf-cookie-aviso a{ color:#fff; text-decoration:underline; text-underline-offset:2px;
      text-decoration-color:var(--glf-terracota); }
    #glf-cookie-aviso a:hover{ text-decoration-color:#fff; }
    #glf-cookie-aviso button{
      flex:0 0 auto; cursor:pointer; border:0; border-radius:8px;
      background:var(--glf-terracota); color:#fff; font-weight:600; font-size:12px;
      padding:10px 18px; transition:background .2s ease;
    }
    #glf-cookie-aviso button:hover{ background:var(--glf-terracota-hover); }
    #glf-cookie-aviso button:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
    @media (max-width:560px){
      #glf-cookie-aviso{ flex-direction:column; align-items:stretch; text-align:left; }
      #glf-cookie-aviso button{ width:100%; }
    }
    @media (prefers-reduced-motion:reduce){
      #glf-cookie-aviso{ transition:none; }
    }

/* ============================================================
   v39 — largura total (pedido Biba): título do hero da HOME e
   parágrafo abaixo do título dos heros internos ocupam a coluna inteira.
   ============================================================ */
/* HOME — título do hero deixa de travar em 22ch */
/* Heros internos (entenda, psiquiatria, 7 pilares, o-mapa) —
   parágrafo sob o título em largura cheia (antes 58ch) */
.u-7, .u-22, .ab-u7, .p7-u7{ max-width:none; }



/* ==== Rodapé: 3 colunas distribuídas na largura (mapa removido) ==== */
.glf-meio-in{ grid-template-columns:minmax(190px,1fr) minmax(300px,2fr) minmax(190px,1fr); gap:24px 32px; align-items:start; }
.glf-links{ grid-template-columns:1fr 1fr; gap:9px 32px; }
@media (max-width:820px){ .glf-meio-in{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .glf-meio-in{ grid-template-columns:1fr; } .glf-links{ grid-template-columns:1fr; } }


/* ── Rodapé: identidade como 1ª coluna (teste 4 colunas) ── */
.glf-ident{ display:flex; flex-direction:column; gap:14px; }
.glf-ident .glf-prof .glf-corpo{ margin-top:2px; }
.glf-ident .glf-redes{ margin-top:6px; }
.glf-mail{ word-break:break-word; }
.cta-note{ margin-top:14px; font-size:.95rem; line-height:1.5; opacity:.82; }

/* ── Rodapé: 4 colunas distribuídas, logo em 1 linha, links com fonte uniforme ── */
.glf-rodape .glf-meio{ padding:40px 0 22px; }
.glf-rodape .glf-links{ display:contents; }
.glf-rodape .glf-meio-in{ display:grid; grid-template-columns:auto 1fr 1fr 1fr; gap:24px 40px; align-items:start; }
.glf-rodape .glf-meio-in a{ font-size:13.5px; line-height:1.5; }
.glf-ident .glf-prof .glf-nome{ white-space:nowrap; }
.glf-mail{ word-break:normal; }
@media (max-width:1080px){ .glf-rodape .glf-meio-in{ grid-template-columns:1fr 1fr; } .glf-ident .glf-prof .glf-nome{ white-space:normal; } }
@media (max-width:560px){ .glf-rodape .glf-meio-in{ grid-template-columns:1fr; } }

/* P-13 · agrupamento temático da F.A.Q. — dá nível hierárquico às 15 perguntas */
.ct-faqgrupo{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--cinza);
  margin:34px 0 2px; padding-bottom:6px; }
.ct-faqgrupo:first-of-type{ margin-top:22px; }

/* ============================================================
   v8-3 — correções de revisão mobile (patches isolados)
   Consolidado no v10. Referências de linha atualizadas para ESTE arquivo.
   Todas as regras abaixo são aditivas e ficam no FIM do arquivo,
   de modo a vencer por ordem de cascata as regras sem media query
   que hoje anulam os blocos mobile anteriores.
   ============================================================ */

/* [M-01] SOBRE — hero volta a UMA coluna no mobile.
   A regra .person-hero-v061:not(.person-hero-photo-left) (l. 1474) fica fora
   de media query e, por ser posterior e mais específica, anulava o
   
/* [M-02] Aviso de cookies — flex-basis de 320px virava ALTURA ao trocar
   flex-direction para column (<=560px), inflando o banner para 408px. */
@media(max-width:560px){
  #glf-cookie-aviso p{ flex:1 1 auto; }
}

/* [M-03] Menu mobile — .site-header .nav-menu{align-items:center} (l. 685, sem
   media query) anulava o align-items:stretch do bloco mobile (l. 345), fazendo
   com que só a largura do texto respondesse ao toque. */
@media(max-width:1080px){
  .site-header .nav-menu{ align-items:stretch; }
  .site-header .nav-menu .navlink{ text-align:center; padding:15px 4px; }
  .site-header .nav-menu .nav-cta{ text-align:center; }
}

/* [M-04a] 7 PILARES — 1fr equivale a minmax(auto,1fr); o min-content dos DOIs
   forçava a trilha a 304px dentro de um contêiner de 282px. */
@media(max-width:720px){
  .source-list{ grid-template-columns:minmax(0,1fr); }
  .source-list a{ overflow-wrap:anywhere; }
}

/* [M-04b] Citações — white-space:nowrap impedia a quebra em telas estreitas. */
@media(max-width:560px){
  .cite-ref{ white-space:normal; }
}

/* ==== v11.1 — rodapé: padronização de fontes e espaçamentos ==== */
.glf-prof .glf-corpo{ font-size:12.5px; }                 /* subinfo da logo = tamanho do cabeçalho (.brand-sub) */
.glf-meio-in a, .glf-contato address a, .glf-contato address span{ font-size:13.5px; line-height:1.5; letter-spacing:0; }  /* links e endereço: mesmo tamanho/entrelinha/espaçamento */
.glf-links li{ line-height:1.5; letter-spacing:0; }
.glf-contato address a, .glf-contato address span{ display:block; margin:0 0 9px; }

/* ==== v15 — fusão dos blocos "arquitetura do cuidado" e "sete pilares" ====
   Um bloco só: cartola + título + lead + três cartões em ordem canônica + CTA.
   O antigo .p7-ponte foi removido; o cartão-ponte deixou de existir. */
.ab-lead-ph, .p7-lead-ph{ min-height:clamp(180px,26vw,300px); margin-bottom:clamp(26px,3vw,38px); }
.ab-cta-pilares{ margin-top:clamp(26px,3vw,38px); }
/* v14 — ponte da Primeira consulta para o Mapa do tratamento */
/* v30.12 — os dois blocos de nota da Primeira Consulta passam ao padrão
   .science-note (filete de 4px em terracota, fundo areia-clara, canto de
   12px), o mesmo de "Camada técnica, em linguagem simples" na Psiquiatria.
   Antes eram um traço reto de 2px, sem fundo. A classe .science-note foi
   acrescentada no HTML; aqui só restam os ajustes próprios de cada um. */
/* Seletor qualificado pelo mesmo motivo de .tm-normas: .container-v05 p
   tem especificidade (0,1,1) e venceria .pc-proximo (0,1,0) — foi o que
   aconteceu na primeira tentativa, medida em 16px/27,52px. */
.container-v05 p.pc-proximo{ margin-top:30px; font-size:15px; line-height:1.7; }
.pc-proximo a{ color:var(--argila); font-weight:600; text-decoration:underline; text-underline-offset:2px; }
.pc-proximo a:hover{ color:var(--argila-escura); }

/* ==== v17 — aproximação dos itens do menu superior ====
   Vinha de `clamp(10px,1.1vw,18px)` (raiz, l. 601) no desktop e de 12px abaixo
   de 1180px. Estas duas regras são as últimas do arquivo e por isso vencem sem
   depender da ordem das media queries anteriores, que se sobrepõem entre si. */
@media (min-width:1081px){
  .site-header .nav-menu{ gap:clamp(8px,0.7vw,12px); }
}
/* A gaveta vertical (<=1080px) precisa de gap 0: com espaço entre as linhas,
   sobra faixa morta entre alvos de toque adjacentes. A regra de raiz da l. 601
   estava anulando o `gap:0` declarado na media query da l. 355, porque vem
   depois no arquivo. */
@media (max-width:1080px){
  .site-header .nav-menu{ gap:0; }
}
/* ============================================================
   v22 — PROPORÇÃO FIXA DO HERO FULL-BLEED
   Contexto: ".u-1, .ab-u1, .p7-u1" recebe min-height:60vh na linha
   87509 e depois min-height:auto na 109197, ambas em nível raiz —
   a segunda vence, então hoje o hero não tem piso e a altura vem
   só do conteúdo. Resultado: a proporção muda de página para
   página, e foi por isso que cada uma precisou de um
   object-position calibrado à mão (35%, 38%, 32%, 55%).
   Aqui a caixa passa a ter proporção declarada: o corte fica
   previsível e as fotos podem ser encomendadas num formato só.

   Por que o teto é em px e não em vh: um teto em vh depende da
   ALTURA da janela, enquanto aspect-ratio depende da LARGURA — são
   grandezas independentes, então qualquer teto em vh acaba vencendo
   a proporção em alguma combinação. Um teto de 78vh, por exemplo,
   estoura em 1920x800 (a razão pediria 823px; o teto dá 624px), e
   nesses casos a altura volta a flutuar com a janela, que é o
   problema que este bloco existe para resolver.
   Com max-height em px o teto passa a ser função só da largura:
   1280->549  1440->617  1680->720  1920->823 (capado em 820, razão
   2,34 - diferença imperceptível). A partir de ~1913px de largura
   o hero para de crescer e vira letterbox, que era a intenção
   original do teto.
   ============================================================ */
.u-1, .ab-u1, .p7-u1{
  min-height:340px;          /* piso: protege o H1 em janela muito baixa */
  aspect-ratio:21/9;         /* a faixa larga que o site já tem hoje */
  max-height:485px;          /* v30.6: teto rebaixado para a altura da hero da Home (era 820) */
}
/* ---------------------------------------------------------------------
   v30.10 — REGRESSÃO DA v30.7, CORRIGIDA
   `aspect-ratio` + `max-height` controla a altura, mas também estrangula a
   LARGURA: quando o teto caiu de 820px para 485px, o navegador passou a
   derivar a largura da razão (485 x 21/9 = 1131,7px) e a faixa deixou de
   ocupar a tela. Medido: 1132px de largura tanto a 1280 quanto a 1440 —
   daí a queixa "a foto e o bloco de conteúdo não ocupam toda largura".
   Com 820px o problema não aparecia porque 820 x 21/9 = 1913px, acima da
   janela na maioria dos casos.
   Correção: altura definida diretamente, sem razão de aspecto no desktop.
   A largura volta a 100% e a altura fica travada em 485px, que é a
   padronização da v30.7. O comportamento mobile (4:3) não é tocado.
   --------------------------------------------------------------------- */
/* O bloco de texto é item de um flex em linha: sem base de largura, ele
   encolhe até o conteúdo. Em Os 7 Pilares, cujo H1 é curto, media 758px
   contra os 1440px das demais páginas — o mesmo sintoma, outra causa. */
@media (max-width:900px){
  /* ---------------------------------------------------------------------
     C-01 — PISO, NÃO ALTURA RÍGIDA. Reaplicada aqui: a correção existia na
     v30.2 e desapareceu entre a v30.2 e a v30.7.
     `aspect-ratio:4/3` fixa a altura. Como a faixa é flex com
     `align-items:flex-end` e `overflow:hidden`, conteúdo mais alto que a
     caixa NÃO a empurra — transborda por cima e é recortado. Medido a
     390px na v30.12: H1 visível em 0% (Entenda), 32% (Primeira Consulta),
     54% (Sobre) e 82% (Psiquiatria).
     `min-height:75vw` é a MESMA proporção 4/3 (altura = largura × 3/4),
     porém como mínimo: se o conteúdo cresce, a caixa cresce junto.
     NÃO simplificar de volta para aspect-ratio.
     --------------------------------------------------------------------- */
}

/* ==== v19 — texto só para leitor de tela (técnica G201: aviso de nova aba) ==== */
.sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }

/* ==== v19 — voltar ao topo ====
   Alvo de 48px (acima do mínimo de 24px do critério 2.5.8). Fica atrás do
   banner de consentimento e à frente do conteúdo. Some com [hidden]. */
.voltar-topo{
  position:fixed; right:clamp(14px,2.2vw,28px); bottom:clamp(14px,2.2vw,28px); z-index:900;
  width:48px; height:48px; border:0; border-radius:50%; cursor:pointer;
  background:var(--argila); color:var(--marfim);
  font-family:'Hanken Grotesk',sans-serif; font-size:20px; line-height:1;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 18px rgba(15,28,46,.22);
  opacity:0; transform:translateY(8px);
  transition:opacity .2s ease, transform .2s ease, background .15s ease;
}
.voltar-topo.on{ opacity:1; transform:translateY(0); }
.voltar-topo:hover{ background:var(--argila-escura); }
.voltar-topo:focus-visible{ outline:3px solid var(--argila-escura); outline-offset:3px; }
.voltar-topo[hidden]{ display:none; }
@media (prefers-reduced-motion:reduce){
  .voltar-topo{ transition:none; transform:none; }
}
@media print{ .voltar-topo{ display:none; } }

/* ==== v19 — bloco "Canais de contato" (página Contato) ==== */
.ct-canais{ padding:clamp(56px,8vw,100px) var(--inset) clamp(50px,7vw,80px);
  background:var(--papel); }
.ct-canais-in{ max-width:var(--conteudo); margin:0 auto; }
.ct-canais-h{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(24px,2.6vw,34px);
  line-height:1.1; color:var(--azul-profundo); margin:0 0 10px; }
.ct-canais-intro{ font-size:16px; line-height:1.72; color:var(--grafite-quente); margin:0 0 26px; }
.ct-canais-lista{ list-style:none; margin:0; padding:0; display:grid; gap:2px; }
.ct-canais-lista li{ padding:18px 0; border-top:1px solid rgba(15,28,46,.12); }
.ct-canais-lista li:last-child{ border-bottom:1px solid rgba(15,28,46,.12); }
.ct-canais-lista b{ display:block; font-family:'Hanken Grotesk',sans-serif; font-size:15.5px;
  font-weight:600; color:var(--azul-profundo); }
.ct-canais-lista span:not(.sr-only){ display:block; font-size:14.5px; line-height:1.6;
  color:var(--cinza); margin:3px 0 8px; }
.ct-canais-lista a{ display:inline-block; min-height:28px; padding:5px 0;
  font-family:'Hanken Grotesk',sans-serif; font-size:15px; font-weight:600;
  color:var(--argila); text-decoration:underline; text-underline-offset:2px; overflow-wrap:anywhere; }
.ct-canais-lista a:hover{ color:var(--argila-escura); }

/* v22 — alerta único de emergência, no topo do bloco de canais */
.ct-emergencia{ background:var(--areia); border:1px solid rgba(166,73,46,.30);
  border-left:4px solid var(--argila); border-radius:10px;
  padding:20px clamp(18px,2.4vw,26px); margin:0 0 30px; }
.ct-emergencia-h{ font-family:'Hanken Grotesk',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--argila); margin:0 0 8px; }
.ct-emergencia p{ font-size:15px; line-height:1.7; color:var(--grafite-quente); margin:0 0 12px; }
.ct-emergencia p:last-child{ margin-bottom:0; }
.ct-emergencia-ico{ font-size:14px; }

/* ============================================================
   v26 — reestruturação da página CONTATO e seção de telemedicina
   ============================================================ */

/* Abertura: lead e bloco de ação primária ------------------- */
.ct-lead{ max-width:60ch; margin:14px 0 0; font-size:clamp(16px,1.5vw,18px);
  line-height:1.7; color:var(--grafite-quente); }
.ct-acao{ margin-top:clamp(28px,3.4vw,40px); padding:clamp(22px,2.6vw,30px);
  background:var(--areia-clara); border-radius:14px; border:1px solid var(--linha-suave);
  max-width:640px; }
.ct-acao-txt{ margin:0 0 18px; font-size:16px; line-height:1.72; color:var(--grafite-quente); }
.ct-acao .ct-cta{ margin:0; }
.ct-acao-nota{ margin:14px 0 0; font-size:13.5px; color:var(--cinza); }

/* Banda "Onde fica e como é o atendimento" ------------------ */
.ct-visita{ padding:clamp(56px,8vw,100px) var(--inset) clamp(50px,7vw,80px);
  background:var(--areia); }
.ct-visita-in{ max-width:var(--conteudo); margin:0 auto; }
.ct-visita-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(0,1fr));
  gap:clamp(22px,3vw,44px); margin-top:clamp(22px,2.6vw,32px); }
@media(min-width:760px){ .ct-visita-grid{ grid-template-columns:1fr 1fr; } }

/* Hierarquia tipográfica da lista de canais ------------------
   Mais ar entre os itens; o assunto ganha peso sobre o endereço. */
.ct-canais-lista li{ padding-top:clamp(18px,2vw,24px); padding-bottom:clamp(18px,2vw,24px); }
.ct-canais-lista li:last-child{ border-bottom:none; padding-bottom:0; }
.ct-canais-lista li > b{ font-size:clamp(16px,1.6vw,18px); letter-spacing:-.005em; }
.ct-canais-lista li > a{ font-size:14.5px; }

/* Afordância de abrir/fechar na F.A.Q. ---------------------- */
.ct-faqrow > summary.ct-u19{ display:flex; align-items:flex-start; gap:14px;
  justify-content:space-between; list-style:none; }
.ct-faqrow > summary.ct-u19::-webkit-details-marker{ display:none; }
.ct-faqrow > summary.ct-u19::after{ content:"+"; flex:0 0 auto; font-weight:600;
  font-size:22px; line-height:1; color:var(--argila); transform:translateY(1px);
  transition:transform .18s ease; }
.ct-faqrow[open] > summary.ct-u19::after{ content:"\2212"; }
@media(prefers-reduced-motion:reduce){ .ct-faqrow > summary.ct-u19::after{ transition:none; } }

/* Seção de telemedicina (Primeira consulta) ----------------- */
.tm-grid{ margin-top:clamp(22px,2.6vw,32px); }
.tm-normas{ margin:clamp(18px,2vw,24px) 0 0; font-size:13px; color:var(--cinza); }

/* ============================================================
   v29 — abertura do CONTATO
   ------------------------------------------------------------
   O v27 e o v28 tentaram um herói de impacto (banda navy, depois
   cartão .dark-arrival). As duas versões erraram o mesmo ponto:
   as páginas internas do site NÃO abrem com bloco escuro nem com
   conteúdo em caixa. Abrem claras, na largura de conteúdo, com
   cartola + H1 + lead. É o que se faz aqui, reusando .ct-u2,
   .ct-u3 e .ct-cta, que já existiam.
   Nenhuma restrição de medida em ch: o site não usa max-width em
   parágrafo de corpo (.container-v05 p e .lead-v05 não têm), e a
   largura útil é a --conteudo, de 1180px.
   ============================================================ */
.ct-abertura{ padding:clamp(58px,8vw,110px) var(--inset) clamp(40px,5vw,60px);
  background:var(--areia); }
.ct-abertura-in{ max-width:var(--conteudo); margin:0 auto; }
.ct-abertura-lead{ margin:18px 0 0; font-size:16px; line-height:1.74; color:var(--grafite-quente); }
.ct-abertura-acao{ margin:16px 0 0; font-size:16px; line-height:1.74; color:var(--grafite-quente); }
.ct-abertura-acao a{ color:var(--argila); font-weight:600; }
.ct-abertura .ct-cta{ margin-top:26px; }

/* Nota de emergência ao pé da lista — respiro depois do último e-mail */
.ct-canais-lista + .ct-emergencia{ margin:clamp(38px,4.5vw,56px) 0 0; scroll-margin-top:96px; }

/* Lista enumerada da telemedicina --------------------------- */
.tm-lista{ list-style:none; counter-reset:tm; margin:clamp(24px,3vw,34px) 0 0; padding:0; }
.tm-lista > li{ counter-increment:tm; position:relative;
  padding:0 0 clamp(20px,2.4vw,26px) clamp(40px,4.2vw,54px);
  margin-bottom:clamp(20px,2.4vw,26px); border-bottom:1px solid var(--linha-suave); }
.tm-lista > li:last-child{ border-bottom:none; margin-bottom:0; padding-bottom:0; }
.tm-lista > li::before{ content:counter(tm) ")"; position:absolute; left:0; top:0;
  font-family:'Newsreader',serif; font-size:20px; line-height:1.18; font-weight:500; color:var(--terracota); }
.tm-lista h3.tm-t{ font-family:'Newsreader',serif; font-weight:500; color:var(--azul-profundo); margin:0 0 8px; }
.tm-lista p{ margin:0; font-size:16px; line-height:1.74; color:var(--grafite-quente); }
.tm-ref{ text-decoration:none; color:var(--argila); font-weight:600; padding:0 2px; }

/* Base normativa — padrão .science-note, e MENOR que o corpo.
   Sem o seletor qualificado, .container-v05 p (0,1,1) vence .tm-normas (0,1,0). */
/* v30.12 — passa ao padrão .science-note (ver .pc-proximo). O seletor segue
   qualificado porque .container-v05 p (0,1,1) vence .tm-normas (0,1,0). */
.container-v05 p.tm-normas{ margin:clamp(26px,3vw,34px) 0 0; font-size:14px; line-height:1.7; }
.container-v05 p.tm-normas .tm-voltar{ color:var(--argila); }

/* v30.6 — dropdown padrão e link 'saiba mais' da roda (append; sem override de regra aprovada) */
/* v30.11 — o bloco .glf-dropdown foi removido: os dois dropdowns que o usavam
   (Entenda "Por que -like?" e Sobre "Supervisão") adotaram .disclosure, o padrão
   da Home. Uma aparência a menos para o mesmo componente. */
.wp-saibamais{ display:inline-flex; margin-top:16px; }

/* =====================================================================
   v30.9 — SOBRE: "Princípios e valores" deixa de repetir o cartão
   ---------------------------------------------------------------------
   O bloco usava .value-grid, que a linha ~1551 vestiu com o mesmo cartão
   de .sync-card (fundo areia-clara, filete, raio 18px, sombra e hover
   idêntico). Resultado: dois blocos seguidos com a mesma aparência.
   Aqui a apresentação muda de natureza — lista editorial numerada, sem
   caixa: numeral em mono terracota, filete superior, texto ao lado.
   Sem iconografia (o projeto não tem sistema de ícones).
   ===================================================================== */
.principios{ list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 52px; }
.principios > li{ position:relative;
  border-top:1px solid rgba(198,94,66,.32); padding-top:18px; }
/* v30.10 — enumeração removida a pedido da coordenação. O filete terracota
   sozinho já diferencia este bloco dos cartões de "Uma abordagem autoral". */
.principios > li h3{ font-family:'Newsreader',serif; font-weight:500; font-size:21px;
  line-height:1.2; color:var(--azul-profundo); margin:0; }
.principios > li p{ font-size:15px; line-height:1.68; color:var(--grafite-quente); margin:8px 0 0; }
@media (max-width:780px){ .principios{ grid-template-columns:1fr; gap:26px; } }

/* SOBRE: supervisão profissional agora é dropdown ao pé de "A trajetória" */
.sb-superv{ margin-top:34px; }
.sb-superv > summary{ text-wrap:pretty; }
.sb-superv{ max-width:none; }
.sb-superv .disc-body{ padding-bottom:14px; }


/* =====================================================================
   v30.9 — HOME: a foto do Dr. cortada à direita
   ---------------------------------------------------------------------
   MEDIÇÃO (canal alfa de images/dr-hero-home.png, 2560x1440):
   o recorte do Dr. vai de 52% a 100% da largura e a última coluna do
   arquivo (x=2559) ainda tem 19,9% de altura opaca — o braço/paletó SAI
   pela borda direita do próprio arquivo. Ou seja: o corte está no ativo,
   não no CSS. Nenhum valor de object-position devolve pixels que não
   existem.
   MITIGAÇÃO (não é a correção definitiva): em vez de terminar a foto no
   inset e produzir uma borda dura, a figura sangra até a borda da tela —
   a mesma linguagem das heros internas (.u-1), em que a faixa fotográfica
   é de ponta a ponta. Um sujeito que sai pelo limite da tela lê como
   enquadramento; o mesmo sujeito interrompido por uma margem lê como erro.
   Efeito colateral favorável: a caixa alarga de 469 para ~599px @1440, a
   razão sobe de 1,22 para 1,56 (mais perto de 1,78) e passa-se a mostrar
   ~88% da largura da foto, contra 69% antes.
   DEFINITIVO: novo ativo com folga à direita (gate de coordenação).
   REVERSÍVEL: basta remover este bloco.
   ===================================================================== */
/* A coluna de texto alarga com a sangria e o título passa a quebrar em menos
   linhas; sem trava, a hero encolheria de 485px para 454px acima de ~1700px e
   deixaria de casar com as heros internas (padronização da v30.7). */
@media (min-width:1281px){
  /* Com `picture{display:contents}`, a img é filha direta do flex e, sem altura
     definida, volta a se dimensionar pela razão nativa (2560/1440). Acima de
     ~2340px a figura ficava mais alta que a faixa e empurrava a hero para 518px.
     Altura fixa de 385px (= 485 − 100 de respiro) trava a faixa; o recorte fica
     por conta do object-fit:cover, que já estava no lugar. */
  /* (a altura da img passou a ser tratada no bloco v30.10, fora do fluxo) */
}

/* =====================================================================
   v30.9 — HOME: referências dos cartões de evidência
   ---------------------------------------------------------------------
   O painel da roda (.wp-src) já saía em terracota, com a flecha ↗ e link
   real para o DOI. Os 7 cartões abaixo (.evcard .src) ficaram em cinza,
   sem flecha — e são a ÚNICA superfície de referência abaixo de 1024px,
   onde a roda é ocultada (.wheel-wrap{display:none}). Aqui se equaliza a
   aparência com o padrão do site.
   LIMITE ESTRUTURAL, declarado: .evcard é um <button>. Âncora dentro de
   botão é HTML inválido e quebra foco e leitor de tela. O hyperlink da
   referência no cartão exigiria converter o cartão em <div> com botão
   interno — decisão de coordenação, não aplicada aqui. Enquanto isso, o
   DOI continua a um clique: abrir o cartão leva ao modal, onde #pmsrc e
   #pmdoi são âncoras reais.
   ===================================================================== */
.evcard .bd .src{ color:var(--argila); }
.evcard .bd .src::before{ content:"\2197 "; font-size:.9em; }

/* v30.10 — o cartão virou <div> para que a referência seja âncora real.
   Padrão de "cartão com ação estendida": o botão .cta cobre o cartão inteiro
   por ::after, de modo que clicar em qualquer ponto abre o modal, como antes;
   o link da referência fica acima no empilhamento e permanece clicável. A
   ordem de foco é referência → "Entenda", ambos anunciados separadamente. */
.evcard{ position:relative; }
.evcard .cta{ display:inline-block; margin-top:13px;
  background:none; border:none; padding:0; font:inherit; text-align:left;
  color:var(--argila); font-weight:700; font-size:13px; cursor:pointer; }
.evcard .cta::after{ content:""; position:absolute; inset:0; z-index:1; } /* contentor = .evcard */
.evcard .bd .src{ position:relative; z-index:2; text-decoration:none; }
.evcard .bd .src:hover{ text-decoration:underline; text-underline-offset:2px; }
.evcard:hover .cta{ text-decoration:underline; text-underline-offset:2px; }
.evcard:focus-within{ outline:3px solid rgba(198,94,66,.45); outline-offset:4px; }
.evcard .cta:focus-visible, .evcard .src:focus-visible{ outline:none; }

/* =====================================================================
   v30.9.1 — HOME: os cartões de evidência ocupam a largura disponível
   ---------------------------------------------------------------------
   Abaixo de 1024px a roda é ocultada e os 7 cartões entram no lugar dela.
   `.evcards` trazia `max-width:560px; margin:0 auto`, o que os deixava
   centralizados com sobra lateral — medida: 170px @1023, 116px @900,
   58px @768 (abaixo de ~565px não havia sobra, por isso o defeito não
   aparecia no celular).
   Removida a trava de largura. Acima de 620px passa a duas colunas: um
   cartão único esticado a ~900px com a foto de 150px de altura viraria
   uma faixa de 6:1, pior do que o problema que se está corrigindo.
   ===================================================================== */
.evcards{ max-width:none; margin:0; }
@media (min-width:620px) and (max-width:1023px){
  .evcards{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
  .evcard .ph{ height:170px; }
  /* São 7 cartões: em duas colunas sobraria um órfão na última linha —
     o mesmo defeito de composição apontado na página Os 7 Pilares. O
     primeiro cartão abre a grade em largura inteira e os seis restantes
     fecham três pares exatos. Reversível: basta remover estas 2 linhas. */
  .evcards > .evcard:first-child{ grid-column:1 / -1; }
  .evcards > .evcard:first-child .ph{ height:210px; }
}


/* =====================================================================
   v30.10 — HOME: o Dr. encaixado na linha da cartola, legenda sobre ele
   ---------------------------------------------------------------------
   GEOMETRIA MEDIDA (canal alfa de dr-hero-home.png, 2560x1440):
     · topo da cabeça .................. y = 111  (7,71% da altura)
     · sujeito ......................... x = 52% a 100%
     · centro de massa horizontal ...... x = 76,2%
   A faixa tem 385px de altura (485 − 100 de respiro) e a cartola
   "PSIQUIATRIA DO ESTILO DE VIDA" começa no mesmo y. Com `cover`, a escala
   era 385/1440 = 0,2674 e o topo da cabeça caía 29,7px abaixo da cartola —
   daí a leitura de "foto menor do que deveria".
   Para encaixar, a região [111 … 1439] (1328px de origem) precisa ocupar
   os 385px: escala 385/1328 = 0,28991, ou seja a img renderiza a 417,5px
   de altura. Como a figura é flex com `align-items:flex-end`, os 32,5px
   excedentes transbordam por cima e são cortados pelo overflow — o topo da
   cabeça passa a coincidir com o topo da faixa. O sujeito cresce 8,4%.

   LEGENDA. Com a img a 417,5px de altura, a largura renderizada é fixa em
   742px em qualquer viewport; o sujeito ocupa 48% dessa largura = 356px, e
   está sempre encostado à direita (object-position:right). Logo, ele ocupa
   SEMPRE os 356px mais à direita da faixa, independentemente da largura da
   tela. A legenda passa a se centrar nessa janela — não no meio da faixa,
   onde caía 119px à esquerda dele. O degradê continua de ponta a ponta,
   para não virar um painel solto.
   ===================================================================== */
@media (min-width:1081px){
  /* --faixa é a altura útil da hero (485 − 100 de respiro). A escala que
     encaixa o topo da cabeça na linha da cartola é --faixa/1328, porque
     1328 = 1439 − 111 é a altura do sujeito na origem. A img sai do fluxo
     para poder transbordar por cima sem empurrar a faixa: em fluxo, ela
     esticava o flex e a hero subia de 485px para 518px. */
  .hero-dr-figure img{
    position:absolute; left:0; right:0; top:calc(-111 * var(--esc));
    width:100%; height:calc(1440 * var(--esc));
    object-fit:cover; object-position:right top; z-index:0;
  }
  .hero-dr-figure .hero-signature{
    z-index:1; padding-left:calc(100% - 356px); padding-right:0;
  }
}

/* =====================================================================
   v30.10 — blocos de abertura com mídia 4:5 à direita
   ---------------------------------------------------------------------
   Psiquiatria ("A mudança de paradigma") e Os 7 Pilares ("Antes de
   começar") passam ao mesmo arranjo do bloco "Psiquiatria de Precisão" da
   Home: texto à esquerda, mídia à direita, na mesma proporção de colunas
   (.precisao-grid). A vaga de imagem é 4:5, como pedido.
   ===================================================================== */
.lead-split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(240px,.42fr);
  gap:clamp(28px,4vw,56px); align-items:start; }
.lead-copy > :first-child{ margin-top:0; }
.lead-ph-45{ aspect-ratio:4/5; width:100%; }
@media (max-width:820px){
  .lead-split{ grid-template-columns:1fr; }
  /* no empilhamento a imagem vem primeiro, como em .precisao-media */
  .lead-ph-45{ order:-1; aspect-ratio:4/3; }
}

/* =====================================================================
   v30.11 — PADRÃO ÚNICO DE CTA GHOST (site inteiro)
   ---------------------------------------------------------------------
   Definição da coordenação: terracota, bold, com flechinha e sublinhado
   em terracota. Até aqui havia seis aparências diferentes para o mesmo
   papel — .btn-ghost (marfim), .btn-ghost.dark (azul), .wp-open e .pm-doi
   (argila sem filete), .u-13 e .p7-navlink (azul com filete azul),
   .ct-u11 (argila sem filete) e o "Entenda" dos cartões.

   CONTRASTE — por que a hero escura não usa a mesma terracota:
     --terracota #C65E42 sobre navy #0F1C2E ....... 4,15:1  (reprova AA)
     --pessego   #F0B095 sobre navy #0F1C2E ....... 9,23:1  (aprova AAA)
     --argila    #A6492E sobre papel  #FAF6EE ..... 5,39:1  (aprova AA)
   Em fundo claro vale a argila, que é o token de TEXTO da paleta; em
   fundo escuro vale o pêssego, que é o token da mesma família para fundo
   escuro e já é usado nas cartolas sobre foto. Manter a terracota pura
   sobre o navy deixaria o link abaixo do mínimo legal de acessibilidade.
   ===================================================================== */
.btn-ghost.dark, .wp-open, .pm-doi, .u-13, .p7-navlink, .ct-u11,
.evcard .cta, .ab-cta-pilares, .pc-ghost{
  display:inline-block; background:none; border:none; border-radius:0;
  padding:0 0 4px; box-shadow:none;
  font-family:var(--sans); font-weight:700; font-size:13px; letter-spacing:.01em;
  color:var(--argila); text-decoration:none;
  border-bottom:2px solid var(--argila);
  transition:color .18s ease, border-color .18s ease;
}
.btn-ghost.dark:hover, .wp-open:hover, .pm-doi:hover, .u-13:hover,
.p7-navlink:hover, .ct-u11:hover, .evcard:hover .cta, .ab-cta-pilares:hover,
.pc-ghost:hover{
  background:none; color:var(--argila-escura); border-bottom-color:var(--argila-escura);
  text-decoration:none;
}
/* Sobre fundo escuro, a mesma família em pêssego (ver contraste acima) */
.btn-ghost{
  display:inline-block; padding:0 0 4px;
  font-family:var(--sans); font-weight:700; font-size:13px; letter-spacing:.01em;
  color:var(--pessego); text-decoration:none;
  border-bottom:2px solid var(--pessego);
  transition:color .18s ease, border-color .18s ease;
}
.btn-ghost:hover{ color:var(--marfim); border-bottom-color:var(--marfim); }
.dark-arrival .btn-ghost.dark, .sync-section.dark .btn-ghost.dark{
  color:var(--pessego); border-bottom-color:var(--pessego);
}
/* o "Entenda" do painel da roda é <button>: zera resquícios de botão */
.wp-open{ align-self:flex-start; cursor:pointer; text-align:left; }
.evcard .cta{ cursor:pointer; text-align:left; margin-top:13px; }
@media (max-width:1120px){ .wp-open{ align-self:center; } }

/* v30.11 — a CTA de "Quem cuida de você" estava colada no conteúdo */
.care-refs + .btn-ghost.dark, .care-timeline + .btn-ghost.dark{ margin-top:26px; }

/* =====================================================================
   v30.11 — citações inline com tamanho estável
   ---------------------------------------------------------------------
   .cite-ref era .72em, então herdava o corpo do parágrafo: 11,52px onde o
   texto é 16px e 12,96px no lead de 18px da página Entenda — daí a leitura
   de "fonte maior do que no resto do site". Tamanho fixo resolve.
   ===================================================================== */
.cite-ref{ font-size:11.5px; }

/* Bloco de referências verificadas abaixo de um parágrafo */
.ref-bloco{ margin-top:16px; display:flex; flex-direction:column; gap:6px; }
.ref-linha{ font-family:var(--mono); font-size:11.5px; line-height:1.55;
  color:var(--argila); text-decoration:none; }
.ref-linha::before{ content:"\2197 "; font-size:.9em; }
.ref-linha:hover{ text-decoration:underline; text-underline-offset:2px; }

/* =====================================================================
   v30.11 — "As redes por trás dos sintomas": filete claro como separador,
   o mesmo tratamento de "O que orienta a prática" (Sobre).
   ===================================================================== */
.ab-u20 > div{ border-top:1px solid rgba(198,94,66,.32); padding-top:18px; }

/* C-04 — a tabela de cookies rola na horizontal. No Chromium ela recebe foco
   pelo recurso de rolagem focável por teclado; no WebKit e no Gecko, não — e a
   coluna cortada ficava inalcançável (falha do critério 2.1.1, nível A).
   `tabindex="0"` + `role="region"` + rótulo resolvem nos três motores.
   O <caption> dá o rótulo visível e é a construção idiomática para tabela. */
.lg-table-cap{ caption-side:top; text-align:left; font-family:var(--sans);
  font-size:13px; font-weight:600; color:var(--argila); padding-bottom:10px; }
.lg-table:focus-visible{ outline:3px solid var(--argila); outline-offset:3px; }

/* =====================================================================
   v30.13 — M-01 e M-02: contraste. Correções de piso de acessibilidade,
   todas dentro da paleta e reversíveis linha a linha.
   ---------------------------------------------------------------------
   Medições (WCAG 2.1, AA = 4,5:1 para texto normal):
     · #A6492E sobre navy #0F1C2E ....... 2,95:1   ✖ nome do médico no rodapé
     · #C65E42 sobre navy #0F1C2E ....... 4,14:1   ✖ WhatsApp e "Como chegar"
     · #D46A4D sobre navy #0F1C2E ....... 4,87:1   ✔ solução já registrada (D-13)
     · #7E8A95 sobre papel #FAF6EE ...... 3,27:1   ✖ "Última atualização"
     · #5E6368 sobre papel #FAF6EE ...... 5,63:1   ✔ (--cinza, token existente)
     · #FFFFFF sobre #C65E42 ............ 4,13:1   ✖ botão "Entendi!"
     · #FFFFFF sobre #A6492E ............ 5,81:1   ✔ (--argila é, por definição
       da paleta, "cor de TEXTO e de fundo de ação (AA)" — D-8)
   O nome no rodapé não é ornamento: é a identificação exigida pelo art. 4º
   da Res. CFM 2.336/2023. Ilegível, ela deixa de cumprir a função.
   Nada disso muda a família cromática. Se a direção de design preferir
   outro caminho, basta remover este bloco.
   ===================================================================== */
.glf-rodape .glf-prof .glf-nome{ color:#D46A4D; }
.glf-rodape a.glf-cta-ghost, .glf-cta-ghost{ color:#D46A4D; }
.lg-date, .u-14{ color:var(--cinza); }
#glf-cookie-aviso button{ background:var(--argila); }
#glf-cookie-aviso button:hover{ background:var(--argila-escura); }
/* Os três ícones sociais são SVG em `currentColor` herdando #A6492E: 2,95:1
   sobre o navy, abaixo dos 3:1 que o critério 1.4.11 (componentes não
   textuais) exige. Mesma cor de saída das linhas acima. */
.glf-rodape .glf-redes a{ color:#D46A4D; }

/* =====================================================================
   v30.16 — D-21 · alvos de toque, DOSE MÍNIMA (24px)
   ---------------------------------------------------------------------
   Decisão da coordenação: dose mínima, que é o piso do critério 2.5.8
   (Target Size Minimum, AA na WCAG 2.2) — 24×24 CSS px —, e não os 44px
   recomendados por Apple e Google.
   Medido a 390px, antes: 19 alvos no rodapé, 16 abaixo de 24px, o menor
   com 18px; e os CTAs de passagem do corpo com 23px.
   Só a altura cresce: `padding-block`, sem tocar em largura, fonte ou cor.
   O espaçamento entre os itens da lista do rodapé foi reduzido na mesma
   medida em que o alvo cresceu, para o rodapé não inflar duas vezes.

   NÃO TOCADO, por exceção prevista na própria norma: `.cite-ref` quando
   corre dentro de um parágrafo. O critério 2.5.8 dispensa alvo "em uma
   sentença ou cuja dimensão é determinada pela entrelinha do texto que
   não é alvo". Engordá-lo criaria alvos sobrepostos dentro do parágrafo
   e quebraria a linha. As citações que vivem soltas — em cartão, em nota
   de evidência ou em bloco de referências — não têm essa dispensa e
   entram abaixo.
   ===================================================================== */
.glf-links li{ margin-bottom:3px; }
.glf-links li a,
.glf-legal-in a,
.glf-rodape .glf-mail{ display:inline-block; padding-block:4px; }
.glf-rodape .glf-cta-ghost{ padding-block:2px; }

/* CTAs de passagem: a regra unificada da v30.11 dava 23px */
.btn-ghost, .btn-ghost.dark, .wp-open, .pm-doi, .u-13, .p7-navlink, .ct-u11,
.evcard .cta, .ab-cta-pilares, .pc-ghost{ padding-block:2px 4px; }

/* Referências que não correm dentro de parágrafo */
.ab-citelink, .evcard .bd .src, .ev-note-ref, .ref-linha{
  display:block; padding-block:4px;
}
/* .care-refs empilha três citações soltas, uma por linha — não é sentença,
   logo não cabe a dispensa de alvo em linha. */
.care-refs .cite-ref{ display:inline-block; padding-block:4px; }
/* A linha de referência das notas de evidência é um <div>; o alvo é a
   âncora dentro dela. Duas âncoras podem dividir a mesma linha (Boyle ·
   Ryff), lado a lado — crescer na vertical não as faz colidir. */
.ev-note-ref .ref{ display:inline-block; padding-block:5px; }

/* v30.19 — segunda fonte de um pilar, na camada "por que isso importa para o
   corpo todo" do modal. Herda .pm-anchor-src inteiro — mono, terracota, ↗ —
   sem redução de corpo nem opacidade: é referência, e referência no site tem
   um desenho só. O `padding-block` cumpre os 24px do critério 2.5.8 (D-21),
   já que aqui o link fica solto na própria linha, sem a dispensa de alvo em
   sentença. */
/* Seletor qualificado: `.pm-layer p` tem especificidade (0,1,1) e vencia
   `.pm-anchor-src` (0,1,0) — a segunda referência saía em Hanken 15px cinza
   em vez de mono 11,5px terracota. Terceira vez que esta armadilha aparece
   no projeto (antes em .tm-normas e .pc-proximo); medir o valor computado,
   e não ler a folha, é o que a pega. */
.pm-layer p.pm-src2{
  font-family:var(--mono); font-size:11.5px; line-height:1.55;
  letter-spacing:.01em; color:var(--argila); margin:10px 0 0;
}
.pm-src2 a{ display:inline-block; padding-block:4px; }
.pm-src2[hidden]{ display:none; }

/* =====================================================================
   v30.20 — ENTENDA: as quatro dimensões deixam de ser cartões e passam ao
   arranjo de "As redes por trás dos sintomas" (Psiquiatria): parágrafos
   separados por filete claro em terracota, dois por linha. Os valores são
   os mesmos de .ab-u20 e de .principios (Sobre) — um separador só no site.
   ===================================================================== */
.redes-lista{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:30px clamp(28px,4vw,52px); margin-top:clamp(30px,4vw,44px); }
.redes-lista > div{ border-top:1px solid rgba(198,94,66,.32); padding-top:18px; }
.redes-h{ font-family:'Newsreader',serif; font-weight:500; font-size:19px;
  line-height:1.25; color:var(--azul-profundo); }
.redes-meta{ font-family:var(--sans); font-weight:400; font-size:15px; color:var(--argila); }
.redes-lista > div p{ font-size:15px; line-height:1.68; color:var(--grafite-quente); margin:8px 0 0; }
@media (max-width:640px){ .redes-lista{ grid-template-columns:1fr; gap:24px; } }

/* O bloco de referências, aqui, fecha o parágrafo de abertura */
.sync-head .ref-bloco{ margin-top:14px; }

/* v30.20 — PRIMEIRA CONSULTA: o CTA da hero encostava no parágrafo (vão
   medido: 0px, em 1440 e em 390). Respiro proporcional ao da faixa. */

/* As referências do bloco de abertura ficam soltas, uma por linha — sem a
   dispensa de alvo em sentença do critério 2.5.8 (D-21, dose mínima). */
.sync-head .ref-bloco a{ display:inline-block; padding-block:5px; width:fit-content; }

/* =====================================================================
   v30.21 — alternância de fundo: nenhum bloco encosta em outro do mesmo tom
   ---------------------------------------------------------------------
   Medido no v30.20: em Psiquiatria, "A arquitetura do cuidado" e "Precisão
   clínica" eram os dois transparentes (papel) e se fundiam; em Entenda, o
   bloco de redes e o fechamento eram os dois areia (#F1EADB).
   Correção: alternar os dois tons da paleta na sequência inteira. O bloco
   de fecho de Psiquiatria troca a faixa areia por papel e recebe o filete
   terracota — o mesmo separador de .principios, .redes-lista e .ab-u20 —,
   para continuar lendo como fecho sem repetir o tom do bloco acima.
   Sequência resultante em Psiquiatria: hero · papel · areia · papel · areia · papel.
   Em Entenda: hero · papel · areia · papel.
   ===================================================================== */
/* v30.34 — o fio terracota de topo saiu: ele foi criado na v30.21 para separar
   este fecho do bloco de cima quando os dois eram papel. Desde a v30.30 o bloco
   alterna em areia, então a separação já vem da cor — e o fio virava um traço a
   mais, fora do padrão. A aspa de fechamento (.closing-quote) mantém o filete
   esquerdo, que é o padrão do site e existe também em Os 7 Pilares. */
.ab-fecho{ padding:clamp(48px,6vw,76px) var(--inset); margin:0 auto; }

/* v30.21 — as quatro dimensões recuperam o que a Entenda tinha antes dos
   cartões: o apelido, o nome técnico da rede e a fala em primeira pessoa.
   O texto descritivo funde o que havia nas duas páginas, sem repetir. */
.redes-tec{ font-family:var(--mono); font-size:11.5px; letter-spacing:.02em;
  color:var(--cinza); margin-top:6px; }
.redes-fala{ font-family:'Newsreader',serif; font-style:italic; font-size:16px;
  line-height:1.45; color:var(--argila); margin:10px 0 0; }

/* v30.21 — a grade passa a duas colunas: com 10 cards, dá 5 por coluna, que
   é o arranjo pedido. Em auto-fit ela resolvia em 3+3+3+1, deixando um órfão
   na última linha — a mesma composição rejeitada em Os 7 Pilares. */
.explorando-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:760px){ .explorando-grid{ grid-template-columns:1fr; } }

/* =====================================================================
   v30.23 — SISTEMA DE HEROS · TIPO 1c "EDITORIAL"
   ---------------------------------------------------------------------
   Base promovida de .ct-abertura (Contato), com seletores neutros porque
   passa a servir nove páginas — `ct-` sugeriria Contato e confundiria a
   manutenção. Acrescentados ao que Contato já tinha: filete terracota de
   5px na borda esquerda e fio de 1px entre o H1 e o parágrafo de apoio.
   Sem fotografia — é o que o torna aplicável a tudo.
   ===================================================================== */
.hero-ed{ position:relative; background:var(--areia);
  padding:clamp(58px,8vw,110px) var(--inset) clamp(44px,5.5vw,64px); }
.hero-ed::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px;
  background:var(--terracota); }
.hero-ed-in{ max-width:var(--conteudo); margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(26px,4vw,56px); align-items:start; }
.hero-ed-cartola{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--argila); margin:0 0 16px; }
.hero-ed h1{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(30px,3.6vw,46px);
  line-height:1.04; margin:0; color:var(--azul-profundo); max-width:20ch; }
.hero-ed-fio{ height:1px; background:var(--linha-suave,rgba(15,28,46,.14));
  margin:clamp(22px,2.6vw,30px) 0 0; max-width:520px; }
.hero-ed-lead{ margin:clamp(18px,2vw,24px) 0 0; font-size:16px; line-height:1.74;
  color:var(--grafite-quente); max-width:62ch; }
/* Coluna direita opcional: a estrutura da página em mono. Ocupa sem enfeitar. */
.hero-ed-estrutura{ margin:0; padding:0; list-style:none; font-family:var(--mono);
  font-size:12px; line-height:1.5; color:var(--argila); }
.hero-ed-estrutura li b{ display:block; font-weight:500; color:var(--azul-profundo);
  font-family:var(--sans); font-size:14px; margin-top:3px; }
/* Versão curta — páginas legais */

/* =====================================================================
   v30.23 — TIPO 1a "PRESENÇA" · Home e Sobre
   ---------------------------------------------------------------------
   A hero deixa de ser texto claro sobre azul e passa a texto escuro sobre
   creme, com a fotografia num painel à direita. A foto NÃO é recortada por
   máscara: entra inteira no retângulo, com object-fit:cover.
   INVERSÃO DE CONTRASTE — cada par foi remedido, não herdado:
     cartola   --argila  #A6492E sobre --papel #FAF6EE ....... 5,39:1 ✔
     h1 e lead --azul-profundo / --grafite-quente sobre papel . >8:1  ✔
     ghost     .btn-ghost.dark (argila, filete argila) ........ 5,39:1 ✔
   O antigo .hero-dr-bg saiu do HTML e da folha: não havia mais o que velar.
   ===================================================================== */
/* a grade de duas colunas do tipo 1a vale só no desktop — ver o bloco de
   media queries adiante; sem escopo, esta regra vencia o empilhamento de 1080px. */
.hero-dr-figure .hero-signature{
  color:var(--marfim);
  background:linear-gradient(to top, rgba(15,28,46,.82) 0%, rgba(15,28,46,.42) 58%, rgba(15,28,46,0) 100%);
}
@media (min-width:1081px){
  /* a foto volta a caber inteira no painel: sem transbordo, sem sangria */
  .hero-dr-figure img{ position:absolute; inset:0; width:100%; height:100%;
    top:auto; object-fit:cover; object-position:center; }
}

/* =====================================================================
   v30.23 — TIPO 1b "IMERSÃO" · só Entenda e Psiquiatria
   ---------------------------------------------------------------------
   O véu vertical chegava a 0,95 de opacidade na base: o terço inferior da
   foto virava azul sólido, e era daí que vinha a sensação de imagem
   estourada. Reorientado em diagonal, o peso vai para o lado do texto e a
   metade direita da fotografia volta a existir.
   ===================================================================== */
.u-3, .ab-u3, .p7-u3{
  background:linear-gradient(100deg, rgba(9,16,28,.86) 0%, rgba(9,16,28,.66) 42%, rgba(9,16,28,.12) 78%);
}


/* v30.23 — altura do tipo 1a e comportamento abaixo de 1081px.
   O teto de 485px existia para casar com a faixa full-bleed das heros
   internas; com o painel vertical (~0,83) o acoplamento perdeu a razão.
   620px = 520 de painel + 100 de respiro.
   Abaixo de 1081px o layout empilha: o painel lateral vira FAIXA acima do
   texto, com razão 3/2, senão a coluna estreita o esmaga (medido: 70×468px
   a 390px, antes desta regra). */
@media (max-width:1080px){
  .hero-dr-figure{ order:-1; width:100%; max-width:none; max-height:none;
    aspect-ratio:3/2; border-radius:0; padding-top:0; }
  .hero-dr-figure img{ position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; object-position:center 30%; max-width:none; max-height:none; }
}

/* v30.25 — o bloco de heros fundidas da v30.24 foi removido: a coordenação
   reverteu as heros ao estado da v30.23. A correção de entrelinha dos cards
   de Psiquiatria, abaixo, NÃO faz parte da reversão e permanece. */

/* v30.24 — as referências dos cards de "A arquitetura do cuidado" ganharam
   16px de respiro acima quando viraram bloco (touch target, D-21). Empilhadas,
   três ou quatro por card, isso inflava o card sem necessidade. A entrelinha
   volta ao padrão; o alvo de 24px é mantido por padding simétrico menor. */
.ab-card .ab-citelink{ margin-top:0; padding-block:5px; }
.ab-card .ab-citelink:first-of-type{ margin-top:14px; }

/* =====================================================================
   v30.26 — SISTEMA DE HERO ÚNICO · painel retrato + faixa de título
   ---------------------------------------------------------------------
   Substitui o sistema de três tipos da v30.23. Um modelo de abertura em
   duas variações: painel (5 páginas com foto) e faixa (7 sem foto).
   A faixa não é um segundo hero — é a ausência de hero assumida.
   ===================================================================== */
.hero-p{ background:var(--papel); }
.hero-p--home{ background:var(--azul-profundo); }
.hero-p-in{ display:grid; grid-template-columns:1fr 380px; height:485px; align-items:stretch; }
.hero-p-txt{ padding:52px 30px 52px var(--inset); display:flex; flex-direction:column; justify-content:center; }
.hero-p-cartola{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--argila); margin:0 0 14px; }
.hero-p--home .hero-p-cartola{ color:var(--pessego); }
.hero-p h1{ font-family:'Newsreader',serif; font-weight:500; font-size:42px; line-height:1.08;
  letter-spacing:-.019em; color:var(--azul-profundo); margin:0; max-width:26ch; text-wrap:pretty; }
.hero-p--home h1{ color:var(--marfim); }
.hero-p-lead{ font-size:16.5px; line-height:1.7; color:var(--grafite-quente); margin:18px 0 0; max-width:64ch; }
.hero-p--home .hero-p-lead{ color:var(--nevoa); }
.hero-p .cta-row{ margin-top:26px; }
/* sem border-radius (caixa é proibida desde a v29), sem calha à direita
   (a foto encosta na janela) e sem véu — só a legenda tem gradiente. */
.hero-p-fig{ position:relative; overflow:hidden; background:var(--areia); }
.hero-p-fig img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.hero-p--home  .hero-p-fig img{ object-position:center 26%; }
.hero-p--sobre .hero-p-fig img{ object-position:center 42%; }

/* Legenda médica — só Home e Sobre */
.hero-p-cap{ position:absolute; left:0; right:0; bottom:0; padding:44px 22px 15px; text-align:center;
  font-family:var(--mono); font-size:11.5px; line-height:1.5; letter-spacing:.03em; color:var(--nevoa);
  background:linear-gradient(to top, rgba(15,28,46,.74) 0%, rgba(15,28,46,.30) 55%, rgba(15,28,46,0) 100%);
  pointer-events:none; }
.hero-p-cap b{ display:block; font-weight:500; color:var(--marfim); }

/* Faixa de título — 7 páginas */
.hero-f{ background:var(--areia); position:relative; padding:46px var(--inset) 40px; }
.hero-f::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--terracota); }
.hero-f-in{ max-width:var(--conteudo); }
.hero-f-cartola{ font-family:var(--mono); font-size:12px; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--argila); margin:0 0 14px; }
.hero-f h1{ font-family:'Newsreader',serif; font-weight:500; font-size:42px; line-height:1.08;
  letter-spacing:-.019em; color:var(--azul-profundo); margin:0; max-width:28ch; text-wrap:pretty; }
.hero-f-fio{ height:1px; background:rgba(15,28,46,.14); max-width:520px; margin:22px 0 0; }
.hero-f-lead{ font-size:16.5px; line-height:1.7; color:var(--grafite-quente); margin:18px 0 0; max-width:72ch; }
.hero-f--curto{ padding-block:38px 32px; }
.hero-f .cta-row{ margin-top:26px; }

/* Fantasma sobre o navy da Home */
.hero-p--home .btn-ghost, .hero-p--home .btn-ghost.dark{
  color:var(--marfim); border-bottom-color:var(--marfim); }

/* Celular: o painel empilha ACIMA do texto e continua retrato.
   `aspect-ratio` com `max-height`, nunca `height` fixa — foi assim que uma
   regra de hero se perdeu entre a v30.2 e a v30.7, e de novo na v30.23,
   que virava o retrato numa faixa 3/2 deitada. */
@media (max-width:1080px){
  .hero-p-in{ grid-template-columns:1fr; height:auto; }
  .hero-p-fig{ order:-1; width:100%; aspect-ratio:4/5; max-height:56vh; }
  .hero-p-txt{ padding:32px var(--inset) 40px; }
}
@media (max-width:640px){
  .hero-p h1, .hero-f h1{ font-size:clamp(28px,7.4vw,42px); }
}

/* =====================================================================
   v30.27 — ajustes de abertura pedidos pela coordenação
   ===================================================================== */
/* 1. Alternância de fundo: a hero com painel fica em papel, e o primeiro
      bloco de cada página passa a areia, para nunca encostarem iguais. */
.hero-p + .sync-section:not(.cream),
.hero-p + .ab-u8,
.hero-p + .u-15{ background:var(--areia); }

/* 2. Os 7 Pilares com a mesma altura de Primeira Consulta: as duas faixas
      passam a ter piso comum. `min-height`, nunca `height` — foi assim que
      uma regra de hero se perdeu duas vezes neste projeto. */
/* 443px é a altura natural da faixa de Primeira Consulta, que é a maior
   das duas — piso comum, para Os 7 Pilares casar com ela. */
.hero-f--par{ min-height:443px; display:flex; align-items:center; }

/* 3. O filete da faixa deixa o cinza e passa ao terracota suave, o mesmo
      valor dos separadores de .redes-lista, .principios e .ab-u20. */
.hero-f-fio{ background:rgba(198,94,66,.32); }

/* 4. Contato: o CTA estava colado no parágrafo. */
.hero-f-lead + .cta-row,
.hero-f .cta-row{ margin-top:clamp(22px,2.6vw,30px); }
/* Contato: o botão vem logo depois do parágrafo de ação, sem cta-row, e
   media 0px de vão. `.ct-cta` é âncora inline — precisa virar bloco para a
   margem valer. */
.hero-f .ct-abertura-acao + .ct-cta{ display:inline-block; margin-top:clamp(22px,2.6vw,30px); }

/* =====================================================================
   v30.27 — RODAPÉ: ícone do WhatsApp e ritmo do endereço
   ---------------------------------------------------------------------
   Os dois defeitos vêm da MESMA regra: `.glf-links li a{ display:inline-block;
   padding-block:4px }`, escrita na v30.16 para os alvos de toque (D-21).
   Especificidade (0,2,1) contra (0,1,0) de `.glf-whats` — quinta vez que
   esta armadilha aparece no projeto.

   1) ÍCONE. `.glf-whats` declarava `inline-flex` + `align-items:center`, mas
      o valor computado era `inline-block`: o `align-items` deixava de valer e
      o SVG voltava à baseline, subindo em relação ao número. Medido: ícone em
      y=5571 contra a caixa do link em y=5569, altura 18 contra 27.
   2) RITMO. Cada item da lista somava 8px de respiro do alvo de toque; o
      endereço, não. Diferença de 8px por linha — daí as colunas não
      alinharem. O endereço recebe o mesmo respiro, o que também põe os
      spans acima dos 24px do critério 2.5.8 quando forem link.
   ===================================================================== */
.glf-rodape .glf-links li a.glf-whats{ display:inline-flex; align-items:center; gap:8px; }
.glf-rodape .glf-links li a.glf-whats svg{ flex:0 0 auto; width:19px; height:19px; }
/* A margem também precisa casar: a lista foi para 3px na v30.16, quando o
   alvo de toque engordou ocupando o vão que já existia. Medido: passo de
   31px na lista contra 37px no endereço, antes desta linha. */
.glf-contato address span, .glf-contato address a{ padding-block:4px; margin-bottom:3px; }

/* =====================================================================
   v30.28 — PÁGINA DE REFERÊNCIAS CIENTÍFICAS
   ---------------------------------------------------------------------
   Uma lista de 820 entradas precisa de duas coisas que uma lista curta
   dispensa: âncora por tema no topo e ritmo de leitura que não canse.
   Blocos alternam papel e areia, como o resto do site.
   ===================================================================== */
.ref-topo{ background:var(--papel); padding:clamp(30px,4vw,44px) var(--inset); }
.ref-in{ max-width:var(--conteudo); margin:0 auto; }
.ref-nota{ font-size:15px; line-height:1.7; color:var(--grafite-quente); margin:0 0 24px; max-width:78ch; }
.ref-indice ul{ list-style:none; margin:0; padding:0; display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:0 26px; }
.ref-indice li{ border-top:1px solid rgba(198,94,66,.32); }
.ref-indice a{ display:flex; justify-content:space-between; gap:12px; align-items:baseline;
  padding:11px 0; color:var(--argila); font-weight:600; font-size:14px; text-decoration:none; }
.ref-indice a span{ font-family:var(--mono); font-size:11.5px; color:var(--cinza); }
.ref-indice a:hover{ text-decoration:underline; text-underline-offset:2px; }

.ref-bloco{ background:var(--papel); padding:clamp(44px,5.5vw,72px) var(--inset); scroll-margin-top:calc(var(--header-h) + 12px); }
.ref-bloco--areia{ background:var(--areia); }
.ref-bloco h2{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(24px,2.6vw,31px);
  line-height:1.12; color:var(--azul-profundo); margin:0; }
.ref-conta{ font-family:var(--mono); font-size:11.5px; letter-spacing:.02em; color:var(--argila); margin:10px 0 0; }
.ref-lista{ margin:clamp(22px,2.6vw,30px) 0 0; padding:0; list-style:none; counter-reset:ref; }
/* v30.33 — a coluna da marca ✓/◻ saiu: a distinção é controle interno. */
.ref-lista li{ display:block; padding:12px 0; border-top:1px solid rgba(15,28,46,.08); }
.ref-lista li:first-child{ border-top:none; }
.ref-marca{ font-family:var(--mono); font-size:12px; line-height:1.7; color:var(--cinza); }
.ref-marca--ok{ color:var(--argila); }
.ref-txt{ font-size:14.5px; line-height:1.7; color:var(--grafite-quente); }
.ref-doi{ display:inline-block; justify-self:start; margin-top:5px; padding-block:4px;
  font-family:var(--mono); font-size:11.5px; line-height:1.55; color:var(--argila); text-decoration:none; }
.ref-doi::before{ content:"\2197 "; font-size:.9em; }
.ref-doi:hover{ text-decoration:underline; text-underline-offset:2px; }


/* Rodapé — Contato · E-mail na mesma linha */
.glf-links li.glf-par{ display:flex; align-items:center; gap:8px; }
.glf-links li.glf-par span{ color:var(--glf-cream-dim,#A79F90); }

/* As citações trazem DOI e URLs longos, que não quebram sozinhos e estouravam
   a janela a 320 e 390px (medido: 228px e 162px de excesso). */
.ref-txt, .ref-doi, .ref-lista li{ overflow-wrap:anywhere; word-break:break-word; }
.ref-indice a{ overflow-wrap:anywhere; }

/* =====================================================================
   v30.32 — CABEÇALHO: corpo da logo em degraus, no celular
   ---------------------------------------------------------------------
   A v30.29 usava clamp() fluido. A coordenação pediu degraus fixos, e com
   razão prática: perto de 420px o clamp ainda entregava ~20,6px, que é
   grande demais para a proporção do cabeçalho.
   O ponto de partida é o valor que a coordenação indicou — 18px abaixo de
   420px. Medido, 18px cabe de 375px para cima; abaixo disso volta a cortar
   (360px: 2px · 344px: 16px · 320px: 37px · 300px: 55px). Daí os degraus.

   CORPO MÁXIMO QUE CABE, medido largura a largura:
     420px 18,0 · 390px 18,0 · 375px 18,0 · 360px 17,9
     344px 16,9 · 320px 15,3 · 300px 14,1
   Cada degrau fica abaixo do máximo da faixa que cobre.
   ===================================================================== */
@media (max-width:420px){ .site-header .brand-name{ font-size:18px; } }
@media (max-width:374px){ .site-header .brand-name{ font-size:17px; } }
@media (max-width:359px){ .site-header .brand-name{ font-size:16px; } }
@media (max-width:329px){ .site-header .brand-name{ font-size:15px; } }
@media (max-width:319px){ .site-header .brand-name{ font-size:14px; } }

/* A descrição NÃO encolhe junto. Ela carrega CRM e RQE, que o art. 4º da
   Res. CFM nº 2.336/2023 exige legíveis — reduzir para os ~9,7px que
   caberiam em uma linha a 320px trocaria um defeito por outro. Abaixo de
   390px ela quebra em duas linhas, mantendo o corpo. */
@media (max-width:389px){
  .site-header .brand-sub{ white-space:normal; line-height:1.35; }
}

/* v30.30 — utilitário de alternância. Vários blocos do site não têm uma
   variante "creme" própria; esta classe dá o tom areia sem inventar
   modificador em cada família (u-8, p7-u12, ab-u12, sec-band, endcta). */
.bloco-areia{ background:var(--areia); }

/* v30.31 — Sumário da página de referências: título e itens sem contagem.
   O fecho mantém a regra de ouro do projeto — nenhuma página termina sem
   próximo passo. Alterna com o bloco de cima, como todo o site. */
.ref-sumario-h{ font-family:'Newsreader',serif; font-weight:500; font-size:clamp(21px,2.2vw,26px);
  line-height:1.15; color:var(--azul-profundo); margin:0 0 18px; }
/* v30.33 — a contagem volta ao item do sumário; o justify volta a separar
   rótulo e número nas pontas. */
.ref-indice a{ justify-content:space-between; }
.ref-fecho{ background:var(--areia); padding:clamp(38px,4.5vw,58px) var(--inset); }
.ref-fecho p{ font-size:16px; line-height:1.74; color:var(--grafite-quente); margin:0; }
/* o link do fecho usa a norma de CTA ghost da v30.11 (.btn-ghost.dark) */
.ref-fecho .cta-row{ margin-top:16px; }

/* =====================================================================
   v30.36 — foco visível: rede de segurança
   ---------------------------------------------------------------------
   A auditoria final mediu 818 controles focáveis e encontrou 4 sem
   indicação alguma de foco (3 em Contato, 1 em Sobre) — falha do critério
   2.4.7 (Focus Visible, AA). Eram links e um botão que não casavam com
   nenhuma das regras de foco existentes, escritas classe a classe.
   Esta regra é a rede: qualquer elemento focável que chegue sem contorno
   próprio recebe um. Vem antes das específicas na ordem de cascata por
   estar no fim da folha com a mesma especificidade — as regras de classe
   com seletor mais específico continuam vencendo onde já existem.
   ===================================================================== */
a:focus-visible, button:focus-visible, summary:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid var(--argila); outline-offset:3px; border-radius:2px;
}
.hero-p--home a:focus-visible, .glf-rodape a:focus-visible, .glf-rodape button:focus-visible{
  outline-color:var(--pessego);
}

/* =====================================================================
   v30.36 — FAQ de Contato: conteúdo tabulável com o acordeão FECHADO
   ---------------------------------------------------------------------
   MEDIDO: `<details class="ct-faqrow">` com `open=false`, mas a resposta
   `.ct-faqa` renderizando com `display:block`, altura 75px e o link com
   caixa de 75×21px — ou seja, o navegador NÃO estava escondendo o
   conteúdo fechado. Acontece quando o `<details>` recebe `display:flex`
   ou `grid`: a ocultação automática do agente de usuário deixa de valer.
   Consequência: o teclado entrava em conteúdo invisível e o anel de foco
   caía fora da tela — o mesmo defeito de classe do banner de cookies
   (C-02, v30.13). Falha dos critérios 2.4.3 e 2.4.7.
   ===================================================================== */
.ct-faqrow:not([open]) .ct-faqa{ display:none; }
/* Mesmo defeito em `.disclosure` (Home, Entenda, Sobre): com o bloco fechado,
   o corpo continuava renderizado e o CTA de supervisão ficava tabulável. */
.disclosure:not([open]) .disc-body{ display:none; }
