/* ============================================================
   BASE v3 — clone da página /cirurgia do Dr. Benie Goldman.
   Só o bloco :root muda de cliente para cliente (paleta e fontes).
   As medidas abaixo foram lidas do site publicado (computed style em
   1440px e 390px) e não devem ser alteradas.
   ============================================================ */

/* ---------- FONTES (cole aqui o fontes.css gerado por scripts/fontes.py) ---------- */
@font-face{font-family:'Metropolis';src:url('assets/fonts/Metropolis-SemiBold.woff2') format('woff2');font-weight:600 900;font-display:swap}
@font-face{font-family:'Manrope';src:url('assets/fonts/Manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
/* Hering Sans é comercial (hero: subtítulo e etiqueta). Se o cliente não tiver, --f-hero cai na sans do corpo. */

:root{
  /* ---- PALETA (5 papéis; troque pela marca do cliente) ---- */
  --navy:#0E2A47;      /* fundos escuros: caixa "por que", FAQ, rodapé, menu mobile */
  --azul:#1E6FE8;      /* botões, destaque .pb em fundo claro, h3 dos benefícios */
  --claro:#DDF1FF;     /* destaque .pc no hero e títulos dentro da caixa escura */
  --gelo:#F6F9FC;      /* texto sobre escuro e fundo das faixas claras */
  --pulso:#35C6A7;     /* ponto pulsante da etiqueta do hero */

  /* derivados (não mexa) */
  --azul-texto:#1B5D80;/* o azul escurecido para texto pequeno: o azul dos botoes costuma
                          reprovar contraste no Lighthouse quando vira texto */
  --texto:#7A7A7A;     /* corpo em fundo claro */
  --titulo:#54595F;    /* h2 em fundo claro */
  --negrito:#555555;   /* <b> em fundo claro */
  --borda:#EEEEEE;
  --card-outro:rgba(20,79,111,.06);
  --grad-faixa:linear-gradient(130deg,var(--navy) 0%,var(--azul) 100%);
  --grad-btn:radial-gradient(165.91% 647.63% at 45.92% -308.33%,var(--azul) 0%,var(--azul) 100%);
  --grad-btn-escuro:radial-gradient(165.91% 647.63% at 45.92% -308.33%,#0B3850 0%,#35779B 100%);

  /* ---- FONTES ---- */
  --f-titulo:'Metropolis',sans-serif;         /* h1, h2, h3, botão do hero, menu */
  --f-texto:'Manrope',sans-serif;             /* corpo, cards, botões, faixa */
  --f-hero:'Hering Sans',var(--f-texto);      /* subtítulo e etiqueta do hero */

  /* ---- MEDIDAS FIXAS ---- */
  --raio:20px;
  --largura:1300px;
  --largura-proc:1280px;
  --largura-sobre:1400px;
  --topo-h:96px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f-texto);font-size:16px;line-height:1.3;color:var(--texto);background:#fff;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
h1,h2,h3,p{margin:0}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
section{position:relative;overflow-x:clip}
.pb{color:var(--azul-texto);font-weight:600}
.pc{color:var(--claro);font-weight:900}
b,strong{color:var(--negrito);font-weight:700}

/* ---------- BOTÃO (idêntico em todas as seções) ---------- */
.btn{
  position:relative;z-index:0;display:inline-flex;align-items:center;justify-content:center;gap:12px;
  width:fit-content;overflow:hidden;
  font-family:var(--f-texto);font-size:17px;font-weight:600;line-height:1;text-transform:uppercase;
  color:var(--gelo);padding:20px 70px;border-radius:100px;
  border:2px solid rgba(255,255,255,.125);background:var(--grad-btn);
  transition:transform .3s var(--ease);will-change:transform
}
.btn:hover{transform:scale(.9)}                   /* hover "shrink" do Elementor */
.btn::before{                                     /* brilho varrendo a cada 3s (snippet do cliente, 2026-09-08) */
  content:"";position:absolute;top:0;left:0;height:100%;width:0;opacity:0;z-index:-1;
  background:#fff;box-shadow:0 0 60px 10px #ffffffaa;transform:skewX(-10deg);
  mix-blend-mode:plus-lighter;animation:brilho 3s linear infinite
}
@keyframes brilho{0%{opacity:0;left:0}50%{opacity:1}100%{opacity:0;left:100%}}
.btn .ico-wa{width:20px;height:20px;flex:none}
.btn-escuro{background:var(--grad-btn-escuro);color:#fff}
.btn-hero{font-family:var(--f-titulo)}
.btn-topo{font-size:15px;padding:15px 22px 15px 27px;line-height:1}
.btn-topo .ico-wa{width:18px;height:18px}

/* ---------- ANIMAÇÕES DE ENTRADA (animate.css, como o Elementor) ---------- */
.an{opacity:0}
.an.animado{animation-duration:1.25s;animation-fill-mode:both}
.an[data-dur="slow"].animado{animation-duration:2s}
.an[data-an="fadeIn"].animado{animation-name:fadeIn}
.an[data-an="fadeInUp"].animado{animation-name:fadeInUp}
.an[data-an="fadeInDown"].animado{animation-name:fadeInDown}
.an[data-an="fadeInLeft"].animado{animation-name:fadeInLeft}
.an[data-an="fadeInRight"].animado{animation-name:fadeInRight}
/* entrada terminada: solta a animation, senao ela segura o transform e mata
   qualquer transicao de hover no elemento (cards do "por que") */
.an.fim{animation:none!important;opacity:1}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,100%,0)}to{opacity:1;transform:none}}
@keyframes fadeInDown{from{opacity:0;transform:translate3d(0,-100%,0)}to{opacity:1;transform:none}}
@keyframes fadeInLeft{from{opacity:0;transform:translate3d(-100%,0,0)}to{opacity:1;transform:none}}
@keyframes fadeInRight{from{opacity:0;transform:translate3d(100%,0,0)}to{opacity:1;transform:none}}
/* Entrada do hero: CSS puro, sem observer.
   O h1 do hero e o elemento LCP. Com .an ele nasce em opacity:0 e so
   aparece quando o main.js roda o IntersectionObserver, o que amarra o
   conteudo mais importante da pagina ao JavaScript. Com .entra a animacao
   dispara no primeiro quadro e o texto ja e pintado.
   Regra da casa desde 2026-09-09; ver references/otimizacao.md, passo 3. */
.entra{animation:fadeIn 2s both}
@media (prefers-reduced-motion:reduce){
  .an{opacity:1}.an.animado{animation:none}
  .entra{animation:none}
  .btn::before,.selo img,.faixa-trilho,.pulso{animation:none!important}
  .card{transition:none}.card:hover{transform:none}
}

/* ---------- HEADER ---------- */
.topo{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.04)}
.topo-inner{max-width:var(--largura);margin:0 auto;padding:22px 20px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.topo-logo img{width:206px;height:54px;object-fit:contain}   /* aceita lockup em PNG, nao so SVG */
.topo-dir{display:flex;align-items:center;justify-content:flex-end;gap:clamp(8px,1.6vw,20px);flex:1;min-width:0;max-width:1057px}
.menu{flex:1;min-width:0;display:flex;justify-content:center}   /* regra da casa: o menu ocupa o vao entre a logo e o botao */
.menu-lista{display:flex;align-items:center;justify-content:space-between;width:100%;flex-wrap:nowrap}
.menu-lista a{
  display:flex;align-items:center;padding:13px 11px;white-space:nowrap;
  font-family:var(--f-titulo);font-size:10px;font-weight:500;line-height:20px;letter-spacing:.9px;text-transform:uppercase;
  color:var(--navy);transition:transform .3s var(--ease),color .3s
}
.menu-lista a:hover{transform:scale(1.1);color:var(--azul)}   /* pointer "text" + animação grow */
.menu-toggle{display:none}

/* ---------- 1. HERO ---------- */
.hero{
  min-height:840px;display:flex;flex-direction:column;
  background:var(--navy) url('assets/img/hero-desktop.webp') center center / cover no-repeat;
  padding:0 10px
}
.hero-inner{max-width:var(--largura);width:100%;margin:0 auto;padding:10px 0;display:flex;justify-content:center;align-items:stretch;gap:20px;flex:1}
.hero-texto{flex:0 0 58.5%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;padding:80px 10px 10px}
.hero-kicker{font-size:17px;line-height:1.3;color:var(--gelo);max-width:600px}
.hero h1{font-family:var(--f-titulo);font-size:39px;font-weight:700;line-height:1.2;color:var(--gelo)}
.hero-sub{font-family:var(--f-hero);font-size:19px;line-height:1.3;color:var(--gelo)}
.hero-sub b{color:#fff}
.hero-tag{display:flex;align-items:center;font-family:var(--f-hero);font-size:14px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:#fff}
.pulso{width:10px;height:10px;border-radius:50%;background:var(--pulso);margin-right:15px;flex:none;animation:pulso 2s infinite}
@keyframes pulso{0%{transform:scale(1);box-shadow:0 0 0 0 var(--pulso)}70%{transform:scale(1.01);box-shadow:0 0 0 10px transparent}100%{transform:scale(1);box-shadow:0 0 0 0 transparent}}
.hero-selo{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding-top:120px}
.selo{position:relative;width:175px;height:175px;border-radius:50%;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.selo img{width:100%;height:100%}

/* Hero de fundo claro. A arte do hero segue o modelo do Figma no enquadramento,
   mas o fundo é criado pela identidade do médico e pode ser claro ou escuro
   (regra da casa 15, 2026-09-10). Com arte clara, acrescente a classe no
   elemento: <section class="hero claro">. O texto do hero inverte junto.
   Só isso muda: o resto da página não tem variante. */
.hero.claro{background-color:var(--gelo)}
.hero.claro .hero-kicker,
.hero.claro h1,
.hero.claro .hero-sub,
.hero.claro .hero-sub b,
.hero.claro .hero-tag{color:var(--navy)}
.hero.claro .pc{color:var(--azul-texto)}

/* ---------- 2. FAIXA ROLANTE ---------- */
.faixa{background:var(--grad-faixa);padding:5px 10px;overflow:hidden;white-space:nowrap}
.faixa-trilho{display:inline-flex;will-change:transform;animation:faixa var(--faixa-dur,25s) linear infinite}
.faixa-grupo{font-size:15px;font-weight:300;letter-spacing:1px;text-transform:uppercase;color:#fff;margin:15px 0;white-space:nowrap;flex:none}
@keyframes faixa{to{transform:translateX(-50%)}}

/* ---------- 3. POR QUE ESCOLHER ---------- */
.porque{background:#fff;padding:70px 10px 0}
.porque-caixa{
  max-width:var(--largura);margin:0 auto;background:linear-gradient(130deg,var(--navy) 0%,var(--navy) 100%);
  border-radius:var(--raio);padding:70px 50px;display:flex;flex-direction:column;align-items:center;gap:50px
}
.porque h2{font-family:var(--f-titulo);font-size:35px;font-weight:600;line-height:1.1;color:var(--claro);text-align:center;max-width:1180px}
.porque h2 .pb{color:#fff}
.porque-grade{display:grid;grid-template-columns:repeat(3,372px);justify-content:space-between;gap:32px 0;width:100%}
.card{border:1px solid var(--claro);border-radius:var(--raio);padding:30px;display:flex;flex-direction:column;justify-content:center;transition:transform .35s var(--ease)}
/* hover dos cards: giro de -2deg para a esquerda (padrão da casa, pedido do Gabriel em 2026-09-08) */
.card:hover{transform:rotate(-2deg)}
.card.fim:hover{transform:rotate(-2deg)}   /* depois da entrada, .fim solta o transform e a transicao roda */
.card h3{font-size:18px;font-weight:600;line-height:1.2;color:var(--claro);margin:0 0 14px;text-wrap:balance}
.card p{font-size:17px;line-height:1.3;color:var(--gelo)}

/* SEM AVALIACOES: quando a dobra de avaliacoes sai, o procedimento A fica
   colado na caixa do "por que" (a base sobe o procedimento 22px e o "por que"
   nao tem respiro embaixo). Sem a dobra entre os dois, a caixa ganha o espaco
   padrao de secao embaixo e o procedimento deixa de subir. Com avaliacoes,
   nada muda. Pedido do Gabriel em 2026-09-25. */
.porque:has(+ .proc){padding-bottom:70px}
.porque + .proc{margin-top:0}

/* ---------- 4. AVALIAÇÕES ----------
   Clone do widget de avaliações do site atual do médico: cartão branco com
   sombra suave, foto de perfil do Google, selo de verificado depois das
   estrelas e setas circulares nas laterais, centradas na vertical.
   Sem cabeçalho de nota — o widget dele não tem. */
.pacientes{background:#fff;padding:70px 10px 40px}   /* gutter de 10px, igual ao "por que": as bordas batem (regra da casa 20) */
.pacientes h2{font-family:var(--f-titulo);font-size:35px;font-weight:600;line-height:1.1;color:var(--titulo);text-align:center;max-width:1000px;margin:0 auto 36px}
.aval{position:relative;max-width:var(--largura);margin:0 auto;padding:0}   /* trilho na largura do conteudo; setas em cima da borda (regra da casa 20) */
.aval-trilho{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:6px 0 10px;-webkit-overflow-scrolling:touch}
.aval-trilho::-webkit-scrollbar{display:none}
.aval-card{
  flex:0 0 calc((100% - 40px) / 3);min-width:0;max-width:calc((100% - 40px) / 3);scroll-snap-align:start;   /* 3 por vez, largura travada: sem min-width:0 um nome longo em nowrap alarga o cartao (armadilha 44) */
  background:#fff;border-radius:12px;padding:20px;
  border:1px solid #ECECEC;box-shadow:0 2px 12px rgba(18,34,72,.07);
  display:flex;flex-direction:column;gap:12px
}   /* sem min-height: o trilho ja iguala a altura pelo cartao mais alto */
.aval-card header{display:flex;align-items:center;gap:12px}
.aval-card header div{flex:1;min-width:0}
.aval-card header b{display:block;font-size:15px;font-weight:600;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aval-card time{display:block;font-size:12px;color:#8A8A8A;margin-top:2px}
.aval-foto{width:40px;height:40px;border-radius:50%;flex:none;object-fit:cover}
.aval-inicial{background:var(--azul);color:#fff;display:grid;place-items:center;font-weight:700;font-size:17px}
.aval-g{width:22px;height:22px;flex:none}
.aval-nota{display:flex;align-items:center;gap:6px}
.aval-ok{width:15px;height:15px;flex:none}   /* selo azul de verificado do Google */
.estrelas{color:#F6BB06;letter-spacing:1px;font-size:15px;line-height:1}
/* :not(.aval-nota), nao :last-child: o main.js acrescenta o botao "Ler mais"
   depois do paragrafo, e o :last-child deixava de casar justamente nos
   cartoes cortados, que sao os que precisam do clamp */
.aval-card > p:not(.aval-nota){font-size:14px;line-height:1.5;color:var(--texto);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.aval-card.aberto > p:not(.aval-nota){-webkit-line-clamp:unset}
.aval-mais{align-self:flex-start;background:none;border:0;padding:0;color:var(--azul-texto);font-weight:600;font-size:13px;cursor:pointer;font-family:inherit}
/* setas nas laterais, fora dos cartões, centradas na altura do trilho */
.aval-nav{position:static}
.aval-seta{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:34px;height:34px;border-radius:50%;border:1px solid #E6E6E6;background:#fff;
  color:var(--navy);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center;
  box-shadow:0 2px 8px rgba(18,34,72,.10)
}
#aval-ant{left:-17px}   /* seta de 34px centrada na borda do primeiro cartao */
#aval-prox{right:-17px}
@media (max-width:1339px){#aval-ant{left:-10px}#aval-prox{right:-10px}}   /* margem de 10px: nao sai da tela */
.aval-seta:disabled{opacity:.35;cursor:default}
/* os pontos somem: o widget do cliente não tem. O elemento fica no DOM porque
   o main.js escreve nele — remover quebraria o script. */
.aval-pontos{display:none}

/* ---------- 5/6. PROCEDIMENTOS ---------- */
.proc{padding:0 10px;margin-top:-22px}
.proc-a{background:var(--gelo)}
.proc-b{background:#fff}
.proc-inner{max-width:var(--largura-proc);margin:0 auto;padding:70px 0;display:flex;justify-content:center;gap:10px;align-items:flex-start}
.proc-a .proc-inner{flex-direction:row-reverse}
.proc-b .proc-inner{gap:32px}
.proc-fotos{flex:0 0 calc(50% - 5px);align-self:stretch;display:flex}   /* regra da casa: a foto desce ate o fim da secao */
.galeria{position:relative;flex:1;min-height:750px;border-radius:var(--raio);overflow:hidden}
.galeria img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:var(--raio);opacity:0;transition:opacity 2s ease}
.galeria img.ativa{opacity:1}
.proc-card{flex:0 0 calc(50% - 5px);background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:40px;display:flex;flex-direction:column;gap:10px}
.proc-card h2{font-family:var(--f-titulo);font-size:32px;font-weight:600;line-height:1.2;color:var(--titulo)}
.proc-card h2 .pb{color:#0B3850}
.proc-card > p{font-size:16px;line-height:1.3;color:var(--texto)}
.proc-card strong{color:#134587}
.beneficio{border-left:2px solid var(--azul);padding:2px 5px 2px 15px;display:flex;flex-direction:column;gap:1px}
.beneficio h3{font-family:var(--f-titulo);font-size:17px;font-weight:600;line-height:1.3;color:var(--azul)}
.beneficio p{font-size:16px;line-height:1.3;color:var(--texto);margin:16px 0}
.proc-card .btn{margin-top:10px}

/* ---------- 7. OUTROS ---------- */
.outros{background:var(--gelo);padding:70px 20px 40px}
.outros-inner{max-width:var(--largura);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:40px}
.outros h2{font-family:var(--f-titulo);font-size:35px;font-weight:600;line-height:1.1;color:var(--titulo);text-align:center}
.outros-linha{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;width:100%}
.outro{background:var(--card-outro);border-radius:var(--raio);padding:20px;display:flex;flex-direction:column;gap:32px;text-align:center}
.outro img{width:100%;aspect-ratio:2/1;object-fit:cover;border-radius:var(--raio)}
.outro h3{font-family:var(--f-titulo);font-size:17px;font-weight:600;line-height:1.3;color:var(--navy)}
.outro details{border-top:1px solid rgba(29,47,84,.12);margin-top:auto}   /* regra da casa: o filete alinha entre os cards, independente do tamanho do titulo */
.outro summary{
  list-style:none;cursor:pointer;display:flex;justify-content:center;align-items:center;gap:10px;padding:10px;
  font-family:var(--f-titulo);font-size:16px;font-weight:600;color:var(--azul)
}
.outro summary::-webkit-details-marker{display:none}
.outro summary svg{width:16px;height:16px;transition:transform .3s}
.outro details[open] summary svg{transform:rotate(180deg)}
.outro details p{margin:0;font-size:15px;line-height:1.35;color:var(--texto);padding:0 4px 8px;text-align:left}

/* ---------- 8. SOBRE ---------- */
.sobre{background:#fff;padding:50px 20px 10px}   /* NAO MEXA: a colagem encosta na secao de baixo. folga = 0, nunca positiva nem negativa (regra da casa 10) */
.sobre-inner{max-width:var(--largura-sobre);margin:0 auto;display:flex;justify-content:center;align-items:stretch;gap:20px;min-height:700px;padding:10px}
.sobre-foto{flex:0 0 calc(50% - 10px);position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:700px}
.sobre-marca{position:absolute;top:0;left:0;width:60%;height:auto;opacity:.06;pointer-events:none}
.sobre-colagem{position:relative;z-index:1;width:100%;max-width:640px;height:auto;margin-top:auto;border-radius:var(--raio)}   /* o raio so aparece quando a colagem e foto retangular, e nao PNG recortado */
.selo-sobre{position:absolute;z-index:2;right:8%;bottom:14%;width:170px;height:170px}
.sobre-card{flex:0 0 calc(50% - 10px);background:#fff;border-radius:var(--raio);padding:40px;display:flex;flex-direction:column;gap:20px}
.sobre h2{font-family:var(--f-titulo);font-size:35px;font-weight:600;line-height:1.1;color:var(--titulo)}
.sobre-card > p{font-size:16px;line-height:1.3;color:var(--texto)}
.marco{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 5px 0 0}
.marco h3{font-family:var(--f-titulo);font-size:17px;font-weight:600;line-height:1.3;color:var(--navy)}
.marco p{font-size:16px;line-height:1.3;color:var(--texto);padding-left:16px;margin:16px 0}
.sobre-fecho{margin-top:10px}

/* ---------- 9. FAQ ---------- */
.faq{background:var(--navy);margin-top:-20px;padding:30px 20px}
.faq-inner{max-width:var(--largura);margin:0 auto;display:flex;gap:32px;padding:70px 50px;border-radius:var(--raio)}
.faq-titulo{flex:1;position:relative;display:flex;align-items:center;justify-content:center;min-height:280px}
.faq-marca{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-titulo);font-size:150px;font-weight:700;letter-spacing:6px;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.12);pointer-events:none;user-select:none}
.faq h2{position:relative;font-family:var(--f-titulo);font-size:37px;font-weight:700;line-height:1.2;letter-spacing:.5px;color:var(--gelo);text-align:center}
.faq-lista{flex:1;display:flex;flex-direction:column}
.faq-lista details{border-bottom:1px solid var(--azul)}
.faq-lista summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;
  font-size:19px;font-weight:500;letter-spacing:-.5px;color:var(--gelo);line-height:1.35
}
.faq-lista summary::-webkit-details-marker{display:none}
.faq-lista summary svg{width:18px;height:18px;flex:none;transition:transform .3s}
.faq-lista details[open] summary svg{transform:rotate(180deg)}
.faq-lista details p{margin:0;font-size:16px;line-height:1.4;color:var(--gelo);padding:0 10px 16px}

/* ---------- 10. CONTATO ---------- */
.contato{background:#fff;padding:10px 20px 40px}
.contato-inner{max-width:var(--largura);margin:0 auto;padding:50px 10px 10px;display:flex;justify-content:center;align-items:center;gap:15px}
.contato-texto{flex:0 0 45%;display:flex;flex-direction:column;gap:20px}
.contato h2{font-family:var(--f-titulo);font-size:37px;font-weight:600;line-height:1.1;color:var(--titulo)}
.contato-texto > p{font-size:16px;line-height:1.3;color:var(--texto)}
.contato-lista{display:flex;flex-direction:column;gap:20px}
.contato-lista li{display:flex;align-items:center;gap:5px;font-size:17px;font-weight:700;line-height:1.3;color:var(--titulo)}
.contato-lista svg{width:30px;height:24px;flex:none;color:var(--azul)}
.contato-mapa{flex:1;padding:10px}
.contato-mapa iframe{width:100%;height:300px;border:0;border-radius:var(--raio);display:block}
/* DUAS OU TRES UNIDADES (maximo tres): no desktop os mapas ficam UM ACIMA DO
   OUTRO, numa coluna estreita, e a coluna de texto cresce para 58%: o titulo
   plural cabe em uma linha e cada endereco cabe na sua. Acrescente a classe
   `dois` ou `tres` no `.contato-mapa` e ponha um <figure> por unidade, com
   <figcaption> nomeando o bairro ou a cidade. No tablet, com a secao empilhada,
   os mapas voltam para o lado a lado; no telefone, uma coluna.
   Regra da casa 18, formato aprovado pelo Gabriel em 2026-09-25 no site da
   Dra. Eduarda Tabosa (substitui o lado a lado de 2026-09-16). */
.contato-mapa.dois,.contato-mapa.tres{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}
.contato-mapa figure{margin:0;display:flex;flex-direction:column;gap:6px}
.contato-mapa figcaption{font-family:var(--f-texto);font-size:14px;font-weight:700;line-height:1.2;color:var(--titulo);text-align:center}
.contato-mapa.dois iframe{height:200px}
.contato-mapa.tres iframe{height:150px}
@media (min-width:1025px){
  .contato-inner:has(.contato-mapa.dois,.contato-mapa.tres) .contato-texto{flex:0 0 58%}
  .contato-inner:has(.contato-mapa.dois,.contato-mapa.tres) h2{white-space:nowrap}
}

/* ---------- 11. RODAPÉ ---------- */
.rodape{background:var(--navy);padding:15px 20px}
.rodape-inner{max-width:var(--largura-proc);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px}
.rodape-logo{width:150px;height:auto}
.rodape p{font-size:16px;font-weight:200;color:#fff;text-align:center;flex:1}
.rodape img[alt="Dokta"]{width:115px;height:47px}

/* ============================================================
   RESPONSIVO (breakpoints do Elementor: 1024 tablet, 767 mobile)
   ============================================================ */
@media (max-width:1200px){
  .porque-grade{grid-template-columns:repeat(3,1fr);gap:24px}
  .outros-linha{grid-template-columns:repeat(3,1fr)}
  .menu-lista a{padding:13px 8px}
}
/* ---------- HERO NO TABLET (768..1024) ----------
   A arte desktop é 2560×754 (3,4:1) e entra com `cover`. Numa caixa de
   768×840 (0,91:1) o `cover` escala por ALTURA (1,11×) e mostra só 27% da
   largura da arte: o médico aparece ampliado, cortado na direita, e o selo
   pousa no rosto dele. A arte de tablet é 1280×840 (1,52:1) e nessa faixa
   não sofre ampliação nenhuma — o navegador só recorta parede nas laterais.
   Regra da casa desde 2026-09-09; receita em assets-do-cliente.md. */
@media (min-width:768px) and (max-width:1024px){
  .hero{background-image:url('assets/img/hero-tablet.webp')}
  /* nesta largura não existe vão entre o texto e o médico: o selo desce para
     o canto, como no telefone */
  .hero-selo{position:absolute;right:20px;bottom:28px;padding:0;flex:none}
  .selo{width:132px;height:132px}
  /* com o selo fora do fluxo sobra só a coluna de texto, e o `center` do
     .hero-inner a empurrava para o meio, abrindo um vão morto à esquerda */
  .hero-inner{justify-content:flex-start}
}
@media (max-width:1024px){
  .topo-inner{padding:16px 20px}
  .menu-lista{display:none}
  .menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:33px;height:33px;padding:5.5px;border:0;border-radius:3px;background:rgba(0,0,0,.05);cursor:pointer}
  .menu-toggle span{display:block;height:2px;background:var(--navy);border-radius:2px;transition:transform .3s,opacity .3s}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .topo-dir{justify-content:flex-end;gap:10px}
  .menu.aberto .menu-lista{display:flex;flex-direction:column;position:absolute;left:0;right:0;top:100%;margin-top:10px;background:var(--navy);padding:6px 0}
  .menu.aberto .menu-lista a{color:var(--gelo);font-size:12px;padding:10px 20px;width:100%}
  .menu.aberto .menu-lista a:hover{transform:none;background:rgba(255,255,255,.06)}
  .hero-texto{flex-basis:62%;padding:60px 10px 10px}
  .porque-caixa{padding:50px 30px}
  .porque-grade{grid-template-columns:repeat(2,1fr)}
  .aval-card{flex-basis:calc(50% - 10px);max-width:calc(50% - 10px)}
  .proc-inner{flex-direction:column!important;gap:30px}
  .proc-fotos,.proc-card{flex-basis:auto;width:100%}
  /* empilhado: a foto volta a ter proporcao propria; os 750px so valem lado a lado */
  .galeria{position:relative;top:auto;min-height:0;aspect-ratio:3/2}
  .sobre-inner{flex-direction:column-reverse}
  .sobre-foto,.sobre-card{flex-basis:auto;width:100%}
  .faq-inner{flex-direction:column;padding:40px 20px}
  .contato-inner{flex-direction:column;align-items:stretch}
  .contato-texto{flex-basis:auto}
  .contato-mapa.dois{grid-template-columns:1fr 1fr;gap:10px}
  .contato-mapa.tres{grid-template-columns:repeat(3,1fr);gap:10px}
  .contato-mapa.dois iframe{height:260px}
  .contato-mapa.tres iframe{height:220px}
}
@media (max-width:767px){
  :root{--topo-h:111px}
  .topo-inner{padding:30px 15px}
  .topo-logo img{width:196px;height:auto}
  .btn-topo{display:none}
  .btn{font-size:16px;padding:12px 40px 12px 16px;border-width:3px}
  .btn .ico-wa{width:18px;height:18px}

  .hero{padding:0 25px;background-image:url('assets/img/hero-mobile.webp');background-position:bottom center}
  .hero-inner{padding:50px 0 82vw;flex-direction:column;align-items:stretch}   /* a arte mobile escala pela largura, entao a reserva da foto tambem: 82vw = 320px em 390 */
  .hero-texto{flex-basis:auto;padding:10px 5px;gap:14px;align-items:center;text-align:center}
  .hero-kicker{font-size:14px;line-height:1.45;text-align:center;text-wrap:balance}
  .hero h1{font-size:29px;line-height:1.2;text-align:center;margin:8px 0 2px}
  .hero h1 br{display:none}
  .hero-sub{font-size:16px;line-height:1.5;text-align:center}
  .btn-hero{margin-top:4px}

  /* entrelinha de leitura no telefone: 1.3 do desktop fica apertado em coluna estreita */
  .card p,.proc-card > p,.beneficio p,.marco p,.sobre-card > p,.faq-lista p,.outro details p,.contato-texto > p{line-height:1.5}
  .card h3,.beneficio h3,.marco h3{line-height:1.25}
  .hero-tag{font-size:10px}
  .hero-selo{position:absolute;right:15px;bottom:30px;padding:0;flex:none}
  /* backdrop-filter e reprocessado a cada quadro de rolagem; em 115px de
     selo sobre a arte a diferenca e imperceptivel e o custo nao */
  .selo{width:115px;height:115px;backdrop-filter:none;-webkit-backdrop-filter:none}

  .faixa{padding:20px 25px 4px}

  .porque{padding:40px 20px 50px}
  .porque:has(+ .proc){padding-bottom:50px}
  .porque-caixa{padding:30px 16px;gap:18px}
  .porque h2{font-size:25px;line-height:1.2}
  .porque-grade{grid-template-columns:1fr;gap:15px}
  .card{padding:24px}
  .card h3{line-height:1.2;margin-bottom:12px}

  .pacientes{padding:50px 20px 20px}
  .pacientes h2{font-size:26px;line-height:1.2}
  .aval-card{flex-basis:100%;max-width:100%}
  .aval{padding:0 38px}
  #aval-ant{left:21px}   /* 38px de recuo menos meia seta: em cima da borda do cartao */
  #aval-prox{right:21px}
  .pacientes h2{margin-bottom:26px}

  .galeria{aspect-ratio:4/5}   /* no telefone a coluna e estreita: retrato le melhor */
  .proc{padding:0 10px}
  .proc-inner{padding:20px 0;gap:30px}
  .proc-card{padding:30px 25px 35px;gap:16px}
  .proc-card h2{font-size:24px;text-align:center}
  .beneficio{padding:5px 0 5px 15px}
  .beneficio h3{line-height:1.2}
  .proc-card .btn{align-self:center}

  .outros{padding:50px 20px 40px}
  .outros h2{font-size:26px;line-height:1.2}
  .outros-linha{grid-template-columns:1fr;gap:14px;padding:0}
  .outro h3{font-size:19px;margin:2px 0}

  .sobre{padding:0 0 20px}   /* idem no telefone: colagem colada no FAQ, folga 0 */
  .sobre-inner{padding:0 10px;min-height:0;gap:28px}
  .sobre-foto{min-height:0;padding-bottom:0}
  .sobre-marca{width:70%}
  .selo-sobre{width:91px;height:91px;right:4%;bottom:10%}
  .sobre-card{padding:30px 20px 35px}
  .sobre h2{font-size:26px;line-height:1.2}
  .marco{padding:5px 0 5px 15px}
  .sobre-card .btn{align-self:center}

  .faq{padding:50px 5px}
  .faq-inner{padding:20px;gap:20px}
  .faq-titulo{min-height:120px}
  .faq-marca{font-size:70px;letter-spacing:3px}
  .faq h2{font-size:25px}

  .contato{padding:10px 10px 0}
  .contato-inner{padding:40px 20px;gap:26px}
  .contato-texto{align-items:center;text-align:center}
  .contato h2{font-size:28px}
  .contato-lista li{font-size:16px;text-align:left}
  .contato-mapa{padding:10px 0}
  /* no telefone a coluna e estreita: um mapa por linha */
  .contato-mapa.dois,.contato-mapa.tres{grid-template-columns:1fr;gap:16px}
  .contato-mapa.dois iframe,.contato-mapa.tres iframe{height:220px}

  /* rodapé minimalista no celular: as duas marcas encolhem, o empilhamento
     ganha ar e o copyright vai para o fim, menor e mais apagado.
     Regra da casa desde 2026-09-10; ver references/referencia-benie.md. */
  .rodape{padding:28px 20px 24px}
  .rodape-inner{flex-direction:column;gap:20px}
  .rodape-logo{width:96px}
  .rodape img[alt="Dokta"]{width:76px;height:31px;opacity:.75}
  .rodape p{order:3;flex:none;font-size:11px;line-height:1.5;text-align:center;opacity:.7}
}
@media (max-width:360px){
  .hero h1{font-size:25px}
  .btn{padding:12px 28px 12px 14px;font-size:15px}
  .rodape-logo{width:84px}
  .rodape img[alt="Dokta"]{width:68px;height:28px}
}


/* ============================================================
   CARROSSEL DE RESULTADOS (antes e depois). Só aparece quando a página tem a
   dobra #resultados: markup e preparo das fotos em references/carrosseis.md.
   ============================================================ */
/* ---------- RESULTADOS (regra da casa 21; markup em references/carrosseis.md) ----------
   Antes e depois em carrossel: tres por vez no desktop, dois no tablet e um e
   pouco no telefone (o pedaço do proximo avisa que a faixa rola). Cada foto ja
   traz as duas metades lado a lado, antes a esquerda e depois a direita. */
.resultados{background:#fff;padding:70px 20px 50px}
.resultados-inner{max-width:var(--largura);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:30px}
.resultados h2{font-family:var(--f-titulo);font-size:35px;font-weight:600;line-height:1.1;color:var(--titulo);text-align:center;max-width:900px}
.resultados-intro{font-size:17px;line-height:1.5;color:#666;text-align:center;max-width:760px}
.res{position:relative;width:100%;padding:0 44px}
.res-trilho{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:4px 2px}
.res-trilho::-webkit-scrollbar{display:none}
.res-card{flex:0 0 calc((100% - 40px) / 3);min-width:0;max-width:calc((100% - 40px) / 3);scroll-snap-align:start;margin:0;position:relative;border-radius:var(--raio);overflow:hidden;background:#3C3C3C}
.res-card img{width:100%;aspect-ratio:1/1;object-fit:cover}
.res-card figcaption{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:space-around;pointer-events:none}
.res-card figcaption span{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.55);padding:6px 12px;border-radius:100px}
.res .aval-seta{top:50%}
#res-ant{left:0}
#res-prox{right:0}
.resultados-nota{font-size:13px;line-height:1.5;color:#707070;text-align:center;max-width:640px}


@media (max-width:1024px){
  .res-card{flex-basis:calc(50% - 10px);max-width:calc(50% - 10px)}
}
@media (max-width:767px){
  .resultados{padding:50px 0 40px}
  .resultados-inner{gap:22px}
  .resultados h2{font-size:26px;line-height:1.2;padding:0 20px}
  .resultados-intro{font-size:16px;padding:0 20px}
  .res{padding:0}
  .res-trilho{padding:4px 20px;scroll-padding:0 20px;gap:12px}
  .res-card{flex-basis:84%;max-width:84%}
  .res .aval-seta{display:none}
  .resultados-nota{padding:0 20px}
}

/* ---------- RESULTADOS EM DESTAQUE (regra da casa 21, aprovado em 2026-10-06) ----------
   Só vale com <div class="res res-destaque">. Cinco fotos à vista: a do centro
   maior e por cima; as vizinhas (±1) em 82%, esmaecidas e parcialmente cobertas;
   as das pontas (±2) em 66%, mais apagadas, com a borda externa encostando na
   largura do conteúdo (1300px), alinhada com as outras seções. O main.js gira em
   loop infinito. --c é o lado da foto central: a conta 1,217c + 0,33c = metade da
   largura dá c = largura / 3,1. Setas fora da largura do conteúdo. */
.res-destaque{padding:0;--c:min(420px,calc((100vw - 20px) / 3.1));touch-action:pan-y;-webkit-user-select:none;user-select:none}
.res-destaque img{-webkit-user-drag:none}
.res-destaque .res-trilho{display:block;position:relative;overflow:visible;height:var(--c);padding:0;scroll-snap-type:none}
.res-destaque .res-card{
  position:absolute;top:0;left:50%;width:var(--c);max-width:none;flex:none;margin:0;
  transform:translateX(-50%) scale(.5);opacity:0;z-index:0;pointer-events:none;
  transition:transform .7s var(--ease),opacity .7s var(--ease),box-shadow .7s var(--ease),filter .7s var(--ease);
  box-shadow:0 10px 30px rgba(0,0,0,.10)
}
.res-destaque .res-card.centro{transform:translateX(-50%) scale(1);opacity:1;z-index:3;pointer-events:auto;box-shadow:0 22px 50px rgba(0,0,0,.22)}
/* esmaecidas por um véu branco, não por opacidade: com opacidade a foto de trás
   aparecia através da da frente */
.res-destaque .res-card::after{content:"";position:absolute;inset:0;background:#fff;opacity:0;transition:opacity .7s var(--ease);pointer-events:none}
.res-destaque .res-card.esq,.res-destaque .res-card.dir{opacity:1;z-index:2;pointer-events:auto;cursor:pointer;filter:saturate(.7)}
.res-destaque .res-card.esq::after,.res-destaque .res-card.dir::after{opacity:.5}
.res-destaque .res-card.esq2::after,.res-destaque .res-card.dir2::after{opacity:.72}
.res-destaque .res-card.esq2,.res-destaque .res-card.dir2{opacity:1;z-index:1;pointer-events:auto;cursor:pointer;filter:saturate(.5)}
.res-destaque .res-card.esq{transform:translateX(calc(-50% - 72%)) scale(.82)}
.res-destaque .res-card.dir{transform:translateX(calc(-50% + 72%)) scale(.82)}
.res-destaque .res-card.esq2{transform:translateX(calc(-50% - 121.7%)) scale(.66)}
.res-destaque .res-card.dir2{transform:translateX(calc(-50% + 121.7%)) scale(.66)}
.res-destaque .res-card.fora-esq{transform:translateX(calc(-50% - 160%)) scale(.5)}
.res-destaque .res-card.fora-dir{transform:translateX(calc(-50% + 160%)) scale(.5)}
.res-destaque .res-card figcaption{transition:opacity .5s}
.res-destaque .res-card:not(.centro) figcaption{opacity:0}
.res-destaque .aval-seta{z-index:4;top:50%}
.res-destaque #res-ant{left:-17px}   /* seta centrada na borda da foto (34px) */
.res-destaque #res-prox{right:-17px}

/* a seção usa o mesmo respiro lateral do "por que" (10px), senão abaixo de
   1320px as bordas ficam 10px para dentro das outras seções */
@media (min-width:768px){
  .resultados:has(.res-destaque){padding-left:10px;padding-right:10px}
}
/* abaixo de 1340 a margem lateral é só 10px: a seta desloca para não sair da tela */
@media (max-width:1339px){
  .res-destaque #res-ant{left:-10px}
  .res-destaque #res-prox{right:-10px}
}
@media (max-width:767px){
  .res-destaque{--c:60vw}
  .res-destaque .res-card.esq{transform:translateX(calc(-50% - 64%)) scale(.78)}
  .res-destaque .res-card.dir{transform:translateX(calc(-50% + 64%)) scale(.78)}
  .res-destaque .res-card.esq2{transform:translateX(calc(-50% - 120%)) scale(.6);opacity:0}
  .res-destaque .res-card.dir2{transform:translateX(calc(-50% + 120%)) scale(.6);opacity:0}
}
@media (prefers-reduced-motion:reduce){.res-destaque .res-card{transition:none}}

/* ---------- CABEÇALHO NO CELULAR (regra da casa 22, aprovado em 2026-10-07) ----------
   <header class="topo topo-novo">, que a base já traz. Até 1024px: logo + botão "Agendar
   consulta" compacto (mesmo estilo dos botões da página) + sanduíche. O menu
   abre como gaveta lateral, vindo da direita, com o fundo escurecido; os itens
   entram em cascata. Fecha no X, no fundo, num item, ou com Esc. */
@media (max-width:1024px){
  .topo-novo .menu-toggle{position:relative;z-index:130;width:40px;height:40px;padding:10px 8px;gap:5px;background:transparent;border-radius:50%;transition:background .3s}
  .topo-novo .menu-toggle span{height:2px;transform-origin:center}
  .topo-novo .menu-toggle[aria-expanded="true"]{background:rgba(255,255,255,.1)}
  .topo-novo .menu-toggle[aria-expanded="true"] span{background:var(--gelo)}
  /* fundo escurecido: o ::before do .menu cobre a página */
  .topo-novo .menu::before{content:"";position:fixed;inset:0;z-index:110;background:rgba(20,22,24,.55);opacity:0;pointer-events:none;transition:opacity .4s var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  .topo-novo .menu.aberto::before{opacity:1;pointer-events:auto}
  /* a gaveta */
  .topo-novo .menu-lista,
  .topo-novo .menu.aberto .menu-lista{
    display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
    position:fixed;top:0;right:0;left:auto;bottom:0;margin:0;z-index:120;
    width:min(84vw,360px);height:100vh;height:100dvh;padding:96px 28px 32px;
    background:var(--navy);box-shadow:-20px 0 60px rgba(0,0,0,.25);
    border-radius:24px 0 0 24px;
    transform:translateX(105%);visibility:hidden;
    transition:transform .5s var(--ease),visibility 0s .5s
  }
  .topo-novo .menu.aberto .menu-lista{transform:none;visibility:visible;transition:transform .5s var(--ease),visibility 0s}
  .topo-novo .menu-lista li{opacity:0;transform:translateX(24px);transition:opacity .4s,transform .4s var(--ease)}
  .topo-novo .menu.aberto .menu-lista li{opacity:1;transform:none}
  .topo-novo .menu.aberto .menu-lista li:nth-child(1){transition-delay:.12s}
  .topo-novo .menu.aberto .menu-lista li:nth-child(2){transition-delay:.17s}
  .topo-novo .menu.aberto .menu-lista li:nth-child(3){transition-delay:.22s}
  .topo-novo .menu.aberto .menu-lista li:nth-child(4){transition-delay:.27s}
  .topo-novo .menu.aberto .menu-lista li:nth-child(5){transition-delay:.32s}
  .topo-novo .menu.aberto .menu-lista li:nth-child(6){transition-delay:.37s}
  .topo-novo .menu-lista a,
  .topo-novo .menu.aberto .menu-lista a{
    width:100%;padding:16px 4px;font-size:15px;letter-spacing:1.2px;line-height:1.3;color:var(--gelo);
    border-bottom:1px solid rgba(220,214,207,.14);justify-content:space-between
  }
  .topo-novo .menu-lista a::after{content:"›";font-size:20px;line-height:1;color:var(--claro);opacity:.6}
  .topo-novo .menu.aberto .menu-lista a:hover{background:none;color:var(--claro)}
  body.menu-aberto{overflow:hidden}
  /* marca d'água: o símbolo da logo em tom claro, grande e cortado no canto de
     baixo, quase transparente. Entra junto com a gaveta, com um leve atraso. */
  .topo-novo .menu-lista::after{
    content:"";position:absolute;right:-70px;bottom:-40px;width:300px;height:300px;z-index:-1;pointer-events:none;
    background:url('assets/img/marca-menu.png') center / contain no-repeat;
    opacity:0;transform:scale(.92) rotate(-6deg);transition:opacity .8s .25s,transform 1s .25s var(--ease)
  }
  .topo-novo .menu.aberto .menu-lista::after{opacity:.07;transform:none}
  .topo-novo .menu-lista{isolation:isolate;overflow:hidden}
}
@media (max-width:767px){
  .topo-novo .topo-inner{padding:14px 12px 14px 15px;gap:10px}
  .topo-novo .topo-logo img{width:150px;height:auto}   /* lockup horizontal: ajuste pela proporção real da logo do cliente */
  .topo-novo .topo-dir{gap:6px}
  .topo-novo .btn-topo{display:inline-flex;font-size:11px;letter-spacing:.3px;padding:11px 14px;border-width:2px;white-space:nowrap}
  .topo-novo .btn-topo .ico-wa{display:none}
}
@media (max-width:360px){
  .topo-novo .topo-logo img{width:126px}
  .topo-novo .btn-topo{font-size:10px;padding:10px 11px}
}

/* ---------- BOTÃO FLUTUANTE DO WHATSAPP (regra da casa 23, 2026-10-07) ----------
   Círculo verde no canto inferior direito. No hover (ou foco), escurece para o
   verde-petróleo do WhatsApp e mostra o balão "Agendar consulta" à esquerda.
   Em tela de toque, o balão aparece sozinho uma vez, alguns segundos depois de
   carregar (main.js). Fica abaixo do cabeçalho, da gaveta e do popup. */
.wa-flutuante{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:95;display:flex;align-items:center;gap:14px;text-decoration:none}
.wa-icone{width:60px;height:60px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 6px 20px rgba(0,0,0,.18);transition:background .3s,transform .3s var(--ease)}
.wa-icone svg{width:32px;height:32px}
.wa-bolha{position:relative;background:#fff;color:#333;font-family:var(--f-texto);font-size:15px;line-height:1;padding:11px 16px;border-radius:22px;white-space:nowrap;box-shadow:0 4px 18px rgba(0,0,0,.14);opacity:0;transform:translateX(10px);pointer-events:none;transition:opacity .3s,transform .3s var(--ease)}
.wa-bolha::after{content:"";position:absolute;right:-6px;top:50%;width:12px;height:12px;background:#fff;transform:translateY(-50%) rotate(45deg);border-radius:2px}
.wa-flutuante:hover .wa-icone,.wa-flutuante:focus-visible .wa-icone{background:#128C7E;transform:scale(1.05)}
.wa-flutuante:hover .wa-bolha,.wa-flutuante:focus-visible .wa-bolha,.wa-flutuante.mostra .wa-bolha{opacity:1;transform:none}
@media (max-width:767px){
  .wa-flutuante{right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .wa-icone{width:56px;height:56px}
  .wa-icone svg{width:30px;height:30px}
  .wa-bolha{font-size:14px;padding:10px 14px}
}
/* o selo do hero morava no canto inferior direito, o mesmo do botão flutuante:
   no tablet ele sobe e se afasta 100px da borda, no telefone vai para o canto
   esquerdo. So subir nao bastava: no tablet deitado (1024x768) o hero e mais
   alto que a tela e o flutuante, preso na base da tela, caia em cima do selo.
   Afastado para a esquerda, nao colide em nenhuma altura de tela (2026-10-15). */
@media (min-width:768px) and (max-width:1024px){.hero-selo{bottom:104px;right:100px}}
@media (max-width:767px){.hero-selo{right:auto;left:15px}}
@media print{.wa-flutuante{display:none}}

/* ---------- IMPRESSÃO (PDF da página) ---------- */
@media print{
  .topo,.menu-toggle,.aval-nav,.faixa{display:none}
  .an{opacity:1!important;animation:none!important;transform:none!important}
  .galeria img{position:static;opacity:1;height:auto}
  .galeria img:not(:first-child){display:none}
  details{display:block}details > *{display:block}
  .btn::before{display:none}
  section,.proc-inner,.sobre-inner{break-inside:avoid}
}
