/* ==========================================================================
   Dr. Fernando Cini Freitas · Neurologista
   Design system derivado do Manual da Marca (Miroh Studio)
   Paleta e tipografia oficiais. Nenhum elemento da marca Clinica Sinapse.
   ========================================================================== */

/* --- Fontes da marca (self-hosted, subset latin) ------------------------- */
@font-face{font-family:'Raleway';src:url('../fonts/raleway-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Raleway';src:url('../fonts/raleway-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Raleway';src:url('../fonts/raleway-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Raleway';src:url('../fonts/raleway-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Raleway';src:url('../fonts/raleway-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Baskervville';src:url('../fonts/baskervville-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Baskervville';src:url('../fonts/baskervville-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Baskervville';src:url('../fonts/baskervville-400i.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}

/* --- Tokens -------------------------------------------------------------- */
:root{
  /* cores oficiais do manual */
  --navy:#2F4157;
  --teal:#8AB0B8;
  --azul:#C8DAE5;
  --nude:#AE9D8F;
  --cinza:#DFDFDF;

  /* superficies derivadas */
  --navy-fundo:#24313F;
  --papel:#F7F6F3;
  --branco:#FFFFFF;
  --azul-suave:#E4EDF3;

  /* tinta */
  --tinta:#1E2A38;
  --tinta-media:#4A5866;
  --tinta-suave:#5D6A77; /* 4.5:1 minimo sobre --papel, textos de 0.78rem a 0.86rem */
  --sobre-navy:#E8EDF2;
  --sobre-navy-suave:#A9B8C6;

  /* acao (verde WhatsApp, tom fechado para conviver com a paleta da marca) */
  --wa:#1FA855;
  --wa-escuro:#17803F;

  /* tipografia */
  --serif:'Baskervville',Georgia,'Times New Roman',serif;
  --sans:'Raleway',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --t-display:clamp(2.35rem,1.5rem + 3.6vw,4.35rem);
  --t-h2:clamp(2rem,1.3rem + 3vw,3.6rem);
  --t-h3:clamp(1.15rem,1.02rem + 0.55vw,1.4rem);
  --t-lead:clamp(1.05rem,0.98rem + 0.4vw,1.25rem);
  --t-corpo:clamp(1rem,0.96rem + 0.2vw,1.075rem);
  --t-mini:0.78rem;

  /* ritmo */
  --secao-y:clamp(4.5rem,3rem + 6vw,8.5rem);
  --gutter:clamp(1.25rem,0.6rem + 2.6vw,2.75rem);
  --max:1200px;
  --max-texto:66ch;

  --linha:1px solid color-mix(in srgb,var(--navy) 14%,transparent);
  --linha-clara:1px solid color-mix(in srgb,#FFF 18%,transparent);
  --transicao:280ms cubic-bezier(.22,.61,.36,1);
}

/* --- Reset --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--branco);color:var(--tinta);
  font-family:var(--sans);font-size:var(--t-corpo);font-weight:400;
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:2px}

/* --- Utilitarios --------------------------------------------------------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.secao{padding-block:var(--secao-y)}
/* header fixo nao pode cobrir o titulo ao pular por ancora */
section[id]{scroll-margin-top:clamp(72px,66px + 1.4vw,96px)}
.secao--papel{background:var(--papel)}
.secao--azul{background:var(--azul-suave)}
.secao--navy{background:var(--navy);color:var(--sobre-navy)}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.rotulo{
  font-size:var(--t-mini);font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--teal);
  display:flex;align-items:flex-start;gap:.85rem;margin-bottom:1.25rem;
}
.rotulo::before{content:'';width:2rem;height:1px;background:currentColor;flex:none;margin-top:.62em}
.secao--navy .rotulo{color:var(--azul)}

.titulo{
  font-family:var(--sans);font-weight:800;font-size:var(--t-h2);
  line-height:1.04;letter-spacing:-.032em;color:var(--navy);
  max-width:19ch;text-wrap:balance;
}
.titulo em{font-style:normal;color:var(--teal)}
.secao--navy .titulo{color:#FFF}
.lead{
  font-size:var(--t-lead);line-height:1.62;color:var(--tinta-media);
  max-width:var(--max-texto);margin-top:1.5rem;
}
.secao--navy .lead{color:var(--sobre-navy-suave)}

.cabeca-secao{margin-bottom:clamp(2.5rem,1.5rem + 3vw,4rem)}
.cabeca-secao--centro{text-align:center;display:flex;flex-direction:column;align-items:center}
.cabeca-secao--centro .rotulo{justify-content:center}
.cabeca-secao--centro .titulo{max-width:24ch}
.cabeca-secao--centro .lead{margin-inline:auto;text-align:center}

/* --- Botoes -------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95rem 1.6rem;border-radius:999px;font-weight:600;font-size:.95rem;
  letter-spacing:.01em;transition:var(--transicao);white-space:nowrap;
}
.btn svg{width:1.15em;height:1.15em;flex:none}
.btn--wa{background:var(--wa);color:#FFF}
.btn--wa:hover{background:var(--wa-escuro);color:#FFF;transform:translateY(-2px)}
.btn--linha{border:1px solid color-mix(in srgb,var(--navy) 30%,transparent);color:var(--navy)}
.btn--linha:hover{background:var(--navy);color:#FFF;border-color:var(--navy)}
.secao--navy .btn--linha{border-color:color-mix(in srgb,#FFF 35%,transparent);color:#FFF}
.secao--navy .btn--linha:hover{background:#FFF;color:var(--navy)}
/* botao claro sobre foto escura, par do CTA verde */
.btn--fantasma{background:rgba(255,255,255,.92);color:var(--navy)}
.btn--fantasma:hover{background:#FFF;transform:translateY(-2px)}
.btn--peq{padding:.62rem 1.15rem;font-size:.85rem}

/* --- Header -------------------------------------------------------------- */
/* fundo SOLIDO desde o topo. Transparente ele atravessava a divisa entre a coluna
   navy e a foto do hero, e "Localizacao" + botao ficavam sobre a foto clara. */
.topo{
  position:fixed;inset:0 0 auto;z-index:60;background:var(--navy);
  transition:background var(--transicao),box-shadow var(--transicao),border-color var(--transicao);
  border-bottom:1px solid transparent;
}
.topo.sticky{background:color-mix(in srgb,var(--papel) 94%,transparent);backdrop-filter:blur(12px);border-bottom-color:color-mix(in srgb,var(--navy) 10%,transparent)}
.topo__linha{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;height:clamp(64px,58px + 1.2vw,84px)}
.topo__marca{position:relative;display:block}
.topo__marca img{height:clamp(42px,36px + 1.5vw,58px);width:auto;transition:opacity var(--transicao)}
/* sobre o hero escuro entra a versao clara do logo; depois do scroll, a navy */
.topo__marca img.logo--escuro{position:absolute;inset:0;opacity:0}
.topo.sticky .topo__marca img.logo--claro{opacity:0}
.topo.sticky .topo__marca img.logo--escuro{opacity:1}
.topo__nav{display:none;gap:clamp(1.1rem,.4rem + 1.3vw,2rem);font-size:.88rem;font-weight:500}
.topo__nav a{color:rgba(255,255,255,.86);transition:color var(--transicao);position:relative;padding-block:.35rem}
.topo.sticky .topo__nav a{color:var(--tinta-media)}
.topo:not(.sticky) .topo__nav a:hover{color:#FFF}
.topo__nav a::after{content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--teal);transition:right var(--transicao)}
.topo__nav a:hover{color:var(--navy)}
.topo__nav a:hover::after{right:0}
.topo__acao{display:none}
@media(min-width:900px){.topo__nav{display:flex}.topo__acao{display:inline-flex}}

/* --- Hero em duas colunas -------------------------------------------------
   Texto num lado, foto no outro. Nada de texto em cima do rosto: com foto de
   RETRATO o overlay nunca resolve, o rosto sempre cai onde o texto esta.    */
.hero{background:var(--navy);color:#fff;overflow:hidden}
.hero__grade{display:grid}
.hero__foto{position:relative;min-height:clamp(360px,88vw,520px);background:var(--navy-fundo)}
.hero__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%}
/* so amarra a foto ao fundo navy, sem escurecer o rosto */
.hero__foto::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(20,29,40,.28),rgba(20,29,40,0) 34%);
}
.hero__conteudo{
  display:flex;align-items:center;
  padding-block:clamp(6.5rem,5rem + 5vw,8.5rem) clamp(2.5rem,1.5rem + 2vw,3.5rem);
  padding-inline:var(--gutter);
}

@media(min-width:960px){
  .hero__grade{grid-template-columns:1.06fr .94fr;align-items:stretch;min-height:min(94svh,780px)}
  .hero__foto{min-height:0;order:2}
  .hero__foto img{object-position:50% 12%}
  .hero__foto::after{background:linear-gradient(to right,rgba(20,29,40,.34),rgba(20,29,40,0) 22%)}
  .hero__conteudo{
    order:1;
    /* alinha o texto com a coluna do .wrap do resto da pagina */
    padding-left:max(var(--gutter),calc((100vw - var(--max))/2 + var(--gutter)));
    padding-right:clamp(2.5rem,1rem + 3.5vw,4.5rem);
  }
  .hero__conteudo > div{max-width:34rem;margin-right:auto}
}
.hero .rotulo{color:var(--azul)}
.hero__nome{
  font-family:var(--sans);font-weight:800;font-size:var(--t-display);
  line-height:1.02;letter-spacing:-.035em;color:#fff;margin-bottom:1.5rem;text-wrap:balance;
}
.hero__nome em{font-style:normal;color:var(--teal)}
.hero__sub{font-size:var(--t-lead);color:#D3DDE6;max-width:52ch;line-height:1.58}
.hero__sub strong{color:#fff;font-weight:600}
.hero__acoes{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2.25rem}
.hero__registro{
  margin-top:1.5rem;font-size:var(--t-mini);letter-spacing:.15em;text-transform:uppercase;
  color:#9FB1C2;font-weight:500;
}

/* barra de numeros: atravessa a largura toda, por baixo das duas colunas */
.hero__stats{border-top:1px solid rgba(255,255,255,.22);padding-block:clamp(2rem,1.4rem + 1.6vw,2.75rem)}
.stats{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.75rem 1rem;
}
@media(min-width:820px){.stats{grid-template-columns:repeat(3,1fr);gap:2rem}}
.stat__num{
  display:block;font-family:var(--sans);font-weight:800;color:#fff;
  font-size:clamp(1.85rem,1.2rem + 2vw,2.9rem);line-height:1;letter-spacing:-.035em;margin-bottom:.55rem;
}
.stat__num small{font-size:.42em;font-weight:700;letter-spacing:0;color:var(--teal);margin-left:.15em}
.stat__txt{font-size:.84rem;line-height:1.45;color:#A9BACA}

/* --- Split: foto sangra ate a borda da tela, ocupando metade da secao -------
   Componente unico usado por Citacao, Sobre e Como e a consulta.
   Nada de card nem moldura: a foto e a propria metade da secao.            */
.split{display:grid;overflow:hidden}
.split__foto{position:relative;min-height:clamp(340px,56vw,520px);background:var(--navy-fundo)}
.split__foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* o mapa entra no lugar da foto e preenche a coluna toda.
   flex (e nao position:absolute): o embed do Maps precisa de altura JA RESOLVIDA
   no primeiro layout, senao renderiza os tiles torto e nunca recalcula.
   Ver feedback_iframe_maps_precisa_altura_concreta. */
.split__foto--mapa{background:var(--cinza);display:flex}
.split__foto--mapa iframe{flex:1 1 auto;align-self:stretch;width:100%;border:0;display:block;filter:grayscale(.28) contrast(1.04)}
.split__foto--mapa::after{display:none}
.split__corpo{padding-block:var(--secao-y);padding-inline:var(--gutter);display:flex;align-items:center}
.split__interno{width:100%;max-width:34rem}
/* o titulo do split nao tem .cabeca-secao pra dar o respiro */
.split__interno .titulo + *{margin-top:clamp(1.5rem,1rem + 1.6vw,2.25rem)}

@media(min-width:900px){
  .split{grid-template-columns:1fr 1fr;align-items:stretch}
  .split__foto{min-height:min(88vh,760px)}
  /* foto a esquerda: o texto encosta na coluna do wrap */
  .split--esq .split__corpo{padding-left:clamp(2.5rem,1rem + 3.5vw,4.5rem);padding-right:var(--gutter)}
  .split--esq .split__interno{margin-right:auto}
  /* foto a direita: inverte a ordem visual sem mexer no DOM */
  .split--dir .split__foto{order:2}
  .split--dir .split__corpo{order:1;justify-content:flex-end;padding-right:clamp(2.5rem,1rem + 3.5vw,4.5rem);padding-left:var(--gutter)}
  .split--dir .split__interno{margin-left:auto}
}
/* no mobile a foto vira faixa larga em cima: caixa baixa + foto 2:3 = corte vertical
   agressivo. O default (50% 50%) pega o tronco e decapita. Enquadrar por foto. */
@media(max-width:899px){
  .split__foto{min-height:clamp(340px,84vw,460px)}
  .split__foto img{object-position:50% 20%}
  #sobre .split__foto img{object-position:50% 12%}
  #consulta .split__foto img{object-position:50% 22%}
  #contato .split__foto img{object-position:50% 25%}
}

/* degrade sutil na juncao, pra foto e texto nao brigarem */
.split__foto::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,29,40,.35),rgba(20,29,40,0) 45%);
}
@media(min-width:900px){
  .split--esq .split__foto::after{background:linear-gradient(to right,rgba(20,29,40,0) 70%,rgba(47,65,87,.35))}
  .split--dir .split__foto::after{background:linear-gradient(to left,rgba(20,29,40,0) 70%,rgba(47,65,87,.35))}
}


/* --- Citacao ------------------------------------------------------------- */
/* faixa de respiro entre os blocos com foto: so a fala dele, centralizada */
.citacao{text-align:center}
.citacao__bloco{max-width:46rem;margin-inline:auto}  /* rem, nao ch: o ch da serifa e estreito e virava coluna de 14 linhas */
.citacao__texto{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,1rem + 1.9vw,2.35rem);line-height:1.38;color:#FFF;letter-spacing:-.01em;text-wrap:balance}
.citacao__assina{
  margin-top:2.25rem;padding-top:1.5rem;border-top:var(--linha-clara);
  display:flex;flex-direction:column;gap:.3rem;align-items:center;
  max-width:26rem;margin-inline:auto;
}
.citacao__assina strong{font-weight:600;font-size:.95rem;letter-spacing:.02em;color:#FFF}
.citacao__assina span{font-size:var(--t-mini);letter-spacing:.15em;text-transform:uppercase;color:var(--azul)}

/* --- Grade de cards ------------------------------------------------------ */
.cards{display:grid;gap:1px;background:color-mix(in srgb,var(--navy) 12%,transparent);border:var(--linha)}
@media(min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.cards--3{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--branco);padding:clamp(1.75rem,1.2rem + 1.4vw,2.5rem);display:flex;flex-direction:column;gap:.9rem;transition:background var(--transicao)}
.secao--papel .card{background:var(--papel)}
.card:hover{background:var(--azul-suave)}
.card__icone{color:var(--teal);width:38px;height:38px}
.card__icone svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.card__titulo{font-family:var(--sans);font-size:var(--t-h3);line-height:1.2;color:var(--navy);font-weight:700;letter-spacing:-.018em}
.card__txt{font-size:.94rem;line-height:1.62;color:var(--tinta-media)}

/* --- Tratamentos (lista numerada) ---------------------------------------- */
.trat{display:grid;gap:0;border-top:var(--linha)}
.trat__item{display:grid;gap:.6rem 2rem;padding-block:clamp(1.75rem,1.2rem + 1.5vw,2.5rem);border-bottom:var(--linha);align-items:start}
@media(min-width:820px){.trat__item{grid-template-columns:4rem 1fr 1.15fr;gap:2.5rem}}
.trat__num{font-family:var(--sans);font-weight:800;font-size:1.35rem;color:var(--nude);line-height:1.1;letter-spacing:-.02em}
.trat__nome{font-family:var(--sans);font-size:var(--t-h3);color:var(--navy);line-height:1.22;font-weight:700;letter-spacing:-.018em}
.trat__txt{font-size:.94rem;line-height:1.65;color:var(--tinta-media)}

/* --- Trajetoria ---------------------------------------------------------- */
.traj__texto p+p{margin-top:1.1rem}
.traj__texto p{color:var(--tinta-media);line-height:1.72}
.linha-tempo{margin-top:clamp(2.5rem,1.5rem + 2vw,3.5rem);border-top:var(--linha);padding-top:2rem}
.linha-tempo li{display:grid;gap:.15rem 1.5rem;padding-block:1rem;border-bottom:var(--linha)}
@media(min-width:600px){.linha-tempo li{grid-template-columns:6.5rem 1fr;align-items:baseline}}
.linha-tempo li:last-child{border-bottom:0;padding-bottom:0}
.lt__quando{font-size:var(--t-mini);letter-spacing:.13em;text-transform:uppercase;color:var(--teal);font-weight:600}
.lt__o-que{color:var(--tinta);font-size:.95rem;line-height:1.55}
.lt__o-que span{display:block;color:var(--tinta-suave);font-size:.86rem;margin-top:.15rem}

/* --- Sinais (quando procurar) -------------------------------------------- */
.sinais{display:grid;gap:1px;background:color-mix(in srgb,var(--navy) 12%,transparent);border:var(--linha);margin-top:0}
@media(min-width:600px){.sinais{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.sinais{grid-template-columns:repeat(3,1fr)}}
.sinal{background:var(--azul-suave);padding:1.5rem clamp(1.25rem,1rem + .8vw,1.75rem);display:flex;gap:.9rem;align-items:flex-start;font-size:.94rem;line-height:1.55;color:var(--tinta)}
.sinal svg{width:1.2rem;height:1.2rem;flex:none;margin-top:.22rem;stroke:var(--teal);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.aviso{margin-top:1.75rem;font-size:.86rem;color:var(--tinta-suave);font-style:italic;max-width:var(--max-texto)}

/* --- Consulta (passos) --------------------------------------------------- */
.passos{counter-reset:passo}
.passos li{counter-increment:passo;display:grid;grid-template-columns:2.6rem 1fr;gap:.25rem 1.25rem;padding-block:1.35rem;border-bottom:var(--linha)}
.passos li:first-child{border-top:var(--linha)}
.passos li::before{
  content:counter(passo,decimal-leading-zero);grid-row:1/3;font-family:var(--sans);font-weight:800;
  font-size:1.05rem;color:var(--nude);line-height:1.55;letter-spacing:-.02em;
}
.passos h3{font-size:.95rem;font-weight:600;color:var(--navy);letter-spacing:.01em}
.passos p{font-size:.93rem;line-height:1.62;color:var(--tinta-media);margin-top:.3rem}

/* --- Localizacao --------------------------------------------------------- */
.local__end{font-family:var(--sans);font-weight:800;font-size:clamp(1.45rem,1.15rem + 1.2vw,2rem);color:var(--navy);line-height:1.2;letter-spacing:-.028em}
.local__det{margin-top:1.35rem;display:flex;flex-direction:column;gap:.8rem}
.local__det li{display:flex;gap:.75rem;align-items:flex-start;font-size:.94rem;color:var(--tinta-media);line-height:1.55}
.local__det svg{width:1.15rem;height:1.15rem;flex:none;margin-top:.2rem;stroke:var(--teal);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* --- FAQ ----------------------------------------------------------------- */
.faq{max-width:820px;margin-inline:auto;border-top:var(--linha)}
.faq details{border-bottom:var(--linha)}
.faq summary{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;
  padding-block:1.4rem;cursor:pointer;list-style:none;
  font-family:var(--sans);font-size:clamp(1.02rem,.97rem + .3vw,1.16rem);
  color:var(--navy);line-height:1.4;font-weight:700;letter-spacing:-.012em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:'';flex:none;width:1rem;height:1rem;margin-top:.35rem;
  background:linear-gradient(var(--teal),var(--teal)) center/100% 1.5px no-repeat,
             linear-gradient(var(--teal),var(--teal)) center/1.5px 100% no-repeat;
  transition:transform var(--transicao);
}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding-bottom:1.5rem;color:var(--tinta-media);font-size:.95rem;line-height:1.7;max-width:62ch}

/* --- CTA final ----------------------------------------------------------- */
.cta__tel{
  display:inline-flex;align-items:center;gap:.7rem;margin-top:1.75rem;
  font-family:var(--sans);font-weight:800;letter-spacing:-.03em;font-size:clamp(1.6rem,1.25rem + 1.4vw,2.35rem);color:#FFF;
}
.cta__tel svg{width:1.4rem;height:1.4rem;stroke:var(--azul);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.cta__acoes{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}

/* --- Rodape -------------------------------------------------------------- */
.rodape{background:var(--navy-fundo);color:var(--sobre-navy-suave);padding-block:clamp(3rem,2rem + 3vw,4.5rem);font-size:.88rem}
.rodape__topo{display:grid;gap:2.25rem;padding-bottom:2.5rem;border-bottom:var(--linha-clara)}
@media(min-width:820px){.rodape__topo{grid-template-columns:1.2fr 1fr 1fr;gap:3rem}}
.rodape img{height:56px;width:auto;margin-bottom:1.25rem}
.rodape h4{font-size:var(--t-mini);letter-spacing:.18em;text-transform:uppercase;color:var(--azul);font-weight:600;margin-bottom:1rem}
.rodape li+li{margin-top:.55rem}
.rodape a:hover{color:#FFF}
.rodape__base{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;padding-top:2rem;font-size:.8rem;color:#96A5B3}
.rodape__aviso{max-width:52ch;line-height:1.6}

/* --- WhatsApp flutuante (mobile) ----------------------------------------- */
.wa-flutua{
  position:fixed;right:1rem;bottom:1rem;z-index:70;display:inline-flex;
  align-items:center;gap:.6rem;background:var(--wa);color:#0B2E1A;font-weight:600;font-size:.92rem;
  padding:.9rem 1.35rem;border-radius:999px;box-shadow:0 8px 24px rgba(15,35,20,.28);
  transform:translateY(150%);transition:transform var(--transicao);
}
.wa-flutua svg{width:1.3rem;height:1.3rem}
.wa-flutua.visivel{transform:translateY(0)}
.wa-flutua.oculto{transform:translateY(150%);pointer-events:none}
@media(min-width:900px){.wa-flutua{display:none}}

/* --- Reveal no scroll ---------------------------------------------------- */
.rv{opacity:0;transform:translateY(24px);transition:opacity 700ms ease,transform 700ms cubic-bezier(.22,.61,.36,1)}
.rv.vis{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
