/* Clínica Sorriclin Itapevi, modelo CAT N'CLAW (mesma base do modelo Oral Unic).
   Uma direção só: a luz da clínica. O azul-marinho e o laranja do logo da Sorriclin, nunca preto puro
   nem branco puro. O fundo de fibras atravessa a página inteira e é o mesmo ambiente do começo ao fim.
   Regra da casa: só transform e opacity animam, e nada mede elemento durante o movimento do mouse. */
/* fontes servidas pelo próprio site (antes vinham do Google Fonts: duas conexões a menos no carregamento) */
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/fraunces-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/plexmono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Karla';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/karla-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}


:root{
  --tinta:#0a1220;
  --tinta-2:#0e182a;
  --superficie:#152238;
  --superficie-2:#1b2b45;
  --roxo:#2f5fc4;
  --roxo-claro:#8fb0ee;
  --roxo-fundo:#0f2150;
  --teal:#ef7d3c;
  --teal-2:#d4652a;
  --areia:#f6f7fb;
  --texto:#c9d3e3;
  --texto-2:#93a3bd;
  --linha:rgba(246,247,251,.12);
  --linha-2:rgba(246,247,251,.22);
  --papel:#e8ebf1;
  --papel-texto:#1c2740;
  --f-titulo:Fraunces,Georgia,serif;
  --f-texto:Karla,"Segoe UI",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --tshadow:0 1px 2px rgba(3,6,14,.95),0 3px 12px rgba(3,6,14,.7),0 10px 44px rgba(3,6,14,.6);
  --r:14px;
  --r-g:22px;
  --gutter:clamp(18px,4vw,40px);
  --largura:1200px;
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--tinta);color:var(--texto);
  font:400 16.5px/1.65 var(--f-texto);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip;
}
img{max-width:100%;display:block}
h1,h2,h3{font-family:var(--f-titulo);font-weight:600;color:var(--areia);letter-spacing:-.02em;line-height:1.08;margin:0;text-wrap:balance}
h1{font-size:clamp(38px,5.6vw,68px);letter-spacing:-.035em}
h2{font-size:clamp(28px,3.6vw,46px);position:relative}
h3{font-size:19px;font-family:var(--f-texto);font-weight:700;letter-spacing:-.01em}
p{margin:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:4px}
.so-leitor{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- o ambiente: uma camada de luz fixa atrás da página inteira ---------- */
.ambiente{position:fixed;inset:0;z-index:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.6s ease;pointer-events:none}
.ambiente.is-pronto{opacity:1}
.veu{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(130% 80% at 50% 0,rgba(10,18,32,0) 42%,rgba(10,18,32,.5) 100%)}
.topo,main,.rodape,.zap-flutua,.pular{position:relative;z-index:1}

.container{width:min(var(--largura),100% - var(--gutter)*2);margin-inline:auto;position:relative;z-index:1}
.estreito{max-width:820px}
/* as seções escuras deixam a luz passar por baixo, em dose calma */
.secao{padding-block:clamp(70px,9vw,124px);position:relative;isolation:isolate;background:rgba(10,18,32,.62)}
.secao-papel{color:var(--papel-texto);
  background:
    radial-gradient(120% 90% at 50% -10%,rgba(255,255,255,.85),rgba(255,255,255,0) 62%),
    radial-gradient(80% 70% at 100% 100%,rgba(15,33,80,.05),rgba(15,33,80,0) 60%),
    var(--papel)}
.secao-papel::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(125% 105% at 50% 38%,rgba(232,235,241,0) 26%,rgba(232,235,241,.6) 68%,var(--papel) 100%),
    radial-gradient(rgba(15,33,80,.19) 1.15px,transparent 1.25px),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");
  background-size:auto,24px 24px,120px 120px}
.secao-papel h2,.secao-papel h3{color:#122038}
.secao-duvidas{background:rgba(14,24,42,.78)}
.olho{font:500 12px/1 var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin-bottom:16px}
.secao-papel .olho{color:var(--roxo)}
.lede{font-size:clamp(16.5px,1.5vw,19px);line-height:1.7;color:var(--texto-2);max-width:60ch}
.secao-papel .lede,.secao-papel>.container>p{color:#3f4a60}
.mini{font-size:14px;color:var(--texto-2);margin-top:16px}
.secao-papel .mini{color:#4d5a72}
.cabeca{max-width:760px;margin-bottom:clamp(36px,5vw,60px)}
.cabeca .lede{margin-top:18px}
.confirmar{display:inline-block;padding:1px 8px;border-radius:999px;background:rgba(239,125,60,.14);border:1px dashed rgba(239,125,60,.5);color:#ffb07c;font:600 12.5px/1.5 var(--f-texto)}
.secao-papel .cartao-endereco .confirmar,.secao-papel .dupla-texto .confirmar{background:rgba(47,95,196,.08);border-color:rgba(47,95,196,.4);color:#2f5fc4}

.pular{position:absolute;left:-9999px;top:0;z-index:60;background:var(--teal);color:#2e1406;padding:10px 16px;border-radius:0 0 10px 0;font-weight:700}
.pular:focus{left:0}


/* ---------- botões ---------- */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:0 22px;border-radius:999px;border:1px solid transparent;
  font:700 14.5px/1 var(--f-texto);letter-spacing:.01em;text-decoration:none;cursor:pointer;
  transition:transform .3s var(--ease),background-color .25s,border-color .25s,color .25s;
}
.btn .i{width:18px;height:18px;fill:currentColor;flex:none}
.btn-g{min-height:56px;padding:0 28px;font-size:15.5px}
.btn-zap{background:var(--teal);color:#2a1204;box-shadow:0 14px 30px -18px rgba(239,125,60,.9)}
.btn-zap:hover{background:#ff9150;transform:translateY(-2px)}
.btn-linha{border-color:var(--linha-2);color:var(--areia)}
.btn-linha:hover{border-color:var(--teal);color:#ffe0cc;transform:translateY(-2px)}
.secao-papel .btn-linha{border-color:rgba(15,33,80,.3);color:#1c2740}
.secao-papel .btn-linha:hover{border-color:var(--roxo);color:var(--roxo)}

.btn-grande{
  position:relative;display:inline-flex;align-items:center;gap:16px;margin-top:34px;
  padding:16px 24px 16px 20px;border-radius:20px;overflow:hidden;text-decoration:none;color:#fff;
  background:linear-gradient(118deg,#274f9f 0%,#3b6fd6 42%,#e0702f 100%);
  box-shadow:0 22px 44px -22px rgba(47,95,196,.9);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
}
.btn-grande:hover{transform:translateY(-3px);box-shadow:0 32px 56px -24px rgba(47,95,196,.95)}
.btn-grande .i{width:30px;height:30px;fill:#fff;flex:none;opacity:.95}
.btn-grande-texto{display:grid;gap:3px;text-align:left}
.btn-grande b{font-size:17.5px;font-weight:700;letter-spacing:-.01em;color:#fff}
.btn-grande em{font-style:normal;font-size:13px;color:rgba(255,255,255,.84)}
.btn-grande .seta{width:20px;height:20px;stroke:#fff;fill:none;flex:none;transition:transform .35s var(--ease)}
.btn-grande:hover .seta{transform:translateX(5px)}
.btn-grande-luz{
  position:absolute;left:0;top:0;width:45%;height:100%;pointer-events:none;
  background:linear-gradient(104deg,transparent,rgba(255,255,255,.3),transparent);
  transform:translateX(-140%);will-change:transform;
}
.btn-grande.is-vivo .btn-grande-luz{animation:varre 5s var(--ease-io) 1s infinite}
@keyframes varre{0%{transform:translateX(-140%)}42%,100%{transform:translateX(320%)}}

/* ---------- topo ---------- */
.topo{position:sticky;top:0;z-index:40;background:rgba(10,18,32,.86);border-bottom:1px solid transparent;transition:border-color .3s,background-color .3s}
.topo.is-rolando{border-bottom-color:var(--linha);background:rgba(10,18,32,.97)}
.faixa-topo{display:flex;align-items:center;gap:clamp(14px,3vw,34px);min-height:76px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.marca img{width:176px;height:32px;object-fit:contain}
.marca span{font:500 11px/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--teal);padding-left:10px;border-left:1px solid var(--linha-2)}
.menu{display:flex;gap:clamp(12px,2vw,26px);margin-left:auto;font-size:14.5px;font-weight:600}
.menu a{display:inline-flex;align-items:center;text-decoration:none;color:var(--texto);padding:6px 2px;position:relative}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.menu a:hover{color:var(--areia)}
.menu a:hover::after{transform:scaleX(1)}
.topo-zap{min-height:42px;padding:0 18px;font-size:13.5px}
.abrir{display:none;width:44px;height:44px;border:1px solid var(--linha-2);border-radius:12px;background:none;padding:12px 11px;cursor:pointer;flex-direction:column;justify-content:space-between}
.abrir span{display:block;height:2px;background:var(--areia);border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
.menu-aberto .abrir span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-aberto .abrir span:nth-child(2){opacity:0}
.menu-aberto .abrir span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- topo da página ---------- */
.hero{position:relative;isolation:isolate;padding-block:clamp(48px,7vw,86px) clamp(64px,9vw,120px)}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(7,12,22,.86) 0 38%,rgba(7,12,22,.5) 60%,rgba(7,12,22,.12) 80%,transparent)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,5vw,70px);align-items:center}
.hero-texto{text-shadow:0 2px 24px rgba(6,11,20,.5)}
.selo{display:inline-flex;align-items:center;gap:9px;padding:7px 15px 7px 11px;border-radius:999px;border:1px solid rgba(239,125,60,.35);background:rgba(40,18,6,.55);color:#ffb98a;font:600 13px/1 var(--f-texto);margin-bottom:22px}
.ponto{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(239,125,60,.6);animation:pulso 2.6s ease-out infinite}
@keyframes pulso{0%{box-shadow:0 0 0 0 rgba(239,125,60,.55)}70%,100%{box-shadow:0 0 0 12px rgba(239,125,60,0)}}
.marcado{font-style:normal;position:relative;display:inline-block;color:transparent;background:linear-gradient(105deg,var(--roxo-claro) 0 42%,#ffffff 50%,var(--roxo-claro) 58% 100%);background-size:250% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text}
.hero.is-dentro .marcado{animation:brilho 6.5s var(--ease-io) 1.6s infinite}
@keyframes brilho{0%{background-position:100% 0}34%,100%{background-position:0 0}}
.hero .lede{margin-top:22px;color:#b7c3d6}
.hero .lede strong{color:var(--areia);font-weight:600}
.acoes{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.rail{display:grid;grid-template-columns:repeat(4,auto);gap:clamp(14px,3vw,34px);justify-content:start;list-style:none;margin:40px 0 0;padding:26px 0 0;border-top:1px solid var(--linha)}
.rail strong{display:block;font-family:var(--f-titulo);font-weight:600;font-size:clamp(22px,2.4vw,30px);color:var(--areia);line-height:1}
.rail span{display:block;margin-top:6px;font-size:12.5px;color:var(--texto-2);max-width:16ch}

.cena{perspective:880px}
.hero-foto{position:relative;margin:0;border-radius:var(--r-g);transform-style:preserve-3d;
  transition:transform .55s var(--ease);will-change:transform}
.hero-foto.is-pegando{transition:none}
.foto-quadro{display:block;position:relative;border-radius:var(--r-g);overflow:hidden;background:var(--superficie);box-shadow:0 0 0 1px var(--linha),0 44px 84px -44px rgba(0,0,0,.95)}
.hero-foto img{width:100%;height:auto}
.foto-brilho{position:absolute;left:0;top:0;width:560px;height:560px;margin:-280px 0 0 -280px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,255,255,.26),rgba(255,255,255,.07) 55%,transparent);
  opacity:0;translate:var(--gx,50%) var(--gy,50%);transition:opacity .45s ease;will-change:translate}
.hero-foto.is-pegando .foto-brilho{opacity:1}
.hero-foto figcaption{position:relative;justify-self:end;width:max-content;max-width:100%;margin:14px 0 0 auto;padding:8px 14px;border-radius:999px;background:rgba(6,10,20,.86);font-size:12.5px;color:var(--areia);
  box-shadow:0 10px 24px -14px rgba(0,0,0,.9);transition:transform .45s var(--ease)}

/* ---------- tarja ---------- */
.tarja{position:relative;background:rgba(21,34,56,.9);border-block:1px solid var(--linha)}
.tarja-inner{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,40px);padding-block:26px}
.tarja p{display:flex;flex-direction:column;gap:3px;font-size:14px;color:var(--texto-2)}
.tarja b{font-size:16.5px;color:var(--areia);font-weight:700}

/* ---------- cartões que viram ---------- */
.giros{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.giro{position:relative;height:clamp(300px,26vw,344px);perspective:1500px}
.giro-eixo{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateY(0deg);transition:transform .85s var(--ease-io)}
.giros:not(.is-fora) .giro-eixo,.giros:not(.is-fora) .verso{will-change:transform}
.giro:is(.is-morno,.is-girando,.is-virado,.is-espia) .nevoa i{will-change:transform}
.giro.is-virado .giro-eixo{transform:rotateY(180deg)}
@keyframes giro-espia{0%,100%{transform:none}38%{transform:rotateY(-26deg)}72%{transform:rotateY(7deg)}}
.giro.is-espia .giro-eixo{animation:giro-espia 1.15s var(--ease-io)}
.face{position:absolute;inset:0;overflow:hidden;border-radius:var(--r-g);border:1px solid transparent;
  background-origin:border-box;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.frente{background:linear-gradient(#101c30,#101c30) padding-box,
  linear-gradient(150deg,rgba(143,176,238,.62),rgba(239,125,60,.34) 58%,rgba(143,176,238,.2)) border-box}
.frente img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sombra{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,12,22,.24) 0,rgba(7,12,22,.52) 44%,rgba(7,12,22,.94) 100%)}
.n{position:absolute;left:20px;top:18px;padding:7px 11px;border-radius:999px;
  font:500 12px/1 var(--f-mono);letter-spacing:.14em;color:#fff;
  background:rgba(6,10,20,.55);border:1px solid rgba(255,255,255,.2)}
.frente-texto{position:absolute;left:24px;right:24px;bottom:24px;text-shadow:var(--tshadow)}
.frente-texto h3{color:#fff;margin-bottom:8px}
.frente-texto p{font-size:15px;line-height:1.55;color:#dfe6f2}
.giro-dica{position:absolute;right:18px;top:18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:42px;height:42px;padding:0 13px;border-radius:999px;font-style:normal;
  border:1px solid rgba(255,255,255,.26);background:rgba(6,10,20,.5);color:#fff;
  font:700 12px/1 var(--f-texto)}
.giro-dica svg{width:17px;height:17px;transition:transform .7s var(--ease)}
.giro-dica b{font-weight:700;letter-spacing:.02em}
.giro:hover .giro-dica svg{transform:rotate(180deg)}
.giro-dica-verso{border-color:rgba(239,125,60,.42);background:rgba(40,18,6,.5);color:#ffb98a}
.verso{transform:rotateY(180deg);
  background:linear-gradient(#0d1728,#0d1728) padding-box,
  linear-gradient(150deg,rgba(239,125,60,.5),rgba(143,176,238,.4) 60%,rgba(239,125,60,.18)) border-box}
.verso::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(9,15,27,0) 16%,rgba(9,15,27,.82) 72%)}
.verso-texto{position:absolute;left:26px;right:26px;bottom:26px;z-index:1}
.verso-texto h3{color:var(--areia);margin-bottom:9px}
.verso-texto p{font-size:15px;line-height:1.62;color:#c6d1e2}
.verso-texto small{display:block;margin-top:14px;font:500 11.5px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#ffb07c}
.verso .confirmar{margin-top:6px}
/* névoa fosca passando atrás do verso */
.nevoa{position:absolute;inset:-32%;z-index:0;overflow:hidden;pointer-events:none}
.nevoa i{position:absolute;width:70%;height:70%;border-radius:50%;background:radial-gradient(circle closest-side,var(--b) 52%,transparent);opacity:.8}
.nevoa i:nth-child(1){--b:#2f5fc4;top:0;left:-8%;animation:nuvem-v 9s ease-in-out infinite}
.nevoa i:nth-child(2){--b:#8fb0ee;top:12%;right:-14%;opacity:.5;transform-origin:10% 80%;animation:nuvem-c 11s linear infinite reverse}
.nevoa i:nth-child(3){--b:#d4652a;bottom:-12%;left:4%;opacity:.55;transform-origin:85% 15%;animation:nuvem-c 14s linear infinite}
.nevoa i:nth-child(4){--b:#1c3a78;right:0;bottom:-6%;opacity:.6;animation:nuvem-h 10s ease-in-out infinite}
.nevoa i:nth-child(5){--b:#ef7d3c;top:28%;left:26%;width:56%;height:56%;opacity:.38;transform-origin:-10% 50%;animation:nuvem-c 8s linear infinite}
@keyframes nuvem-v{0%,100%{transform:translate3d(0,-6%,0)}50%{transform:translate3d(4%,10%,0)}}
@keyframes nuvem-h{0%,100%{transform:translate3d(-8%,0,0)}50%{transform:translate3d(10%,-4%,0)}}
@keyframes nuvem-c{to{transform:rotate(360deg)}}
.giro:not(.is-virado,.is-girando,.is-morno) .nevoa i,.giros.is-fora .nevoa i{animation-play-state:paused}
/* a área de clique fica vazia: o anel nunca repinta o conteúdo do cartão */
.giro-hit{position:absolute;inset:0;z-index:2;border:0;border-radius:var(--r-g);background:none;padding:0;cursor:pointer}
.giro-hit::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:0 0 0 1px rgba(239,125,60,.5),0 26px 54px -34px rgba(0,0,0,.95);
  opacity:0;transition:opacity .35s var(--ease)}
.giro:hover .giro-hit::after,.giro.is-virado .giro-hit::after{opacity:1}
/* enquanto o cartão está girando o anel sai de cena, senão ele fica parado em volta de uma coisa que gira */
.giro.is-girando .giro-hit::after,.giro.is-espia .giro-hit::after{opacity:0;transition-duration:.12s}
.giro-hit:focus-visible{outline-offset:3px}

/* ---------- tratamentos presos à rolagem ---------- */
.trilha{position:relative;background:rgba(10,18,32,.4)}
.trilha-rolagem{position:relative;height:470vh}
.trilha-palco{position:sticky;top:0;min-height:100svh;display:flex;align-items:center;padding-block:clamp(36px,5vh,80px)}
.trilha-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);gap:clamp(34px,6vw,80px);align-items:center;width:min(var(--largura),100% - var(--gutter)*2);margin-inline:auto}
.trilha-texto h2{margin-bottom:10px;max-width:14ch}
.trilha-lista{list-style:none;margin:clamp(22px,3vw,34px) 0 0;padding:0;display:grid;gap:clamp(6px,1vw,12px)}
.trilha-lista button{
  display:flex;align-items:baseline;gap:18px;width:100%;text-align:left;cursor:pointer;
  padding:clamp(11px,1.4vw,16px) 0 clamp(11px,1.4vw,16px) 26px;
  border:0;border-left:2px solid var(--linha);background:none;color:inherit;font:inherit;
  opacity:.3;transition:opacity .45s var(--ease),border-color .45s var(--ease),padding-left .45s var(--ease)}
.trilha-lista i{font:500 12px/1 var(--f-mono);letter-spacing:.12em;color:var(--teal);flex:none}
.trilha-lista b{font-family:var(--f-titulo);font-size:clamp(19px,2vw,26px);font-weight:600;color:var(--areia);letter-spacing:-.02em}
.trilha-lista button:hover{opacity:.62}
.trilha-lista li.is-ativa button{opacity:1;border-color:var(--teal);padding-left:32px}
.trilha-foto{display:grid;gap:20px}
.trilha-pilha{position:relative;aspect-ratio:3/2;border-radius:var(--r-g);overflow:hidden;background:var(--superficie);box-shadow:0 40px 80px -46px rgba(0,0,0,.95),0 0 0 1px var(--linha)}
.quadro{position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.05);transition:opacity .7s var(--ease),transform 1.1s var(--ease);will-change:opacity,transform}
.quadro img{width:100%;height:100%;object-fit:cover}
.quadro.is-ativa{opacity:1;transform:none}
.quadro-conta{position:absolute;right:14px;top:14px;padding:7px 13px;border-radius:999px;background:rgba(6,10,20,.78);
  font:500 12px/1 var(--f-mono);letter-spacing:.1em;color:var(--texto-2)}
.quadro-conta b{color:var(--areia);font-weight:500}
.trilha-legenda{position:relative;min-height:84px}
.trilha-legenda p{position:absolute;inset:0;font-size:15.5px;line-height:1.6;color:var(--texto-2);opacity:0;transition:opacity .45s var(--ease)}
.trilha-legenda p.is-ativa{opacity:1}
.trilha-pontos{display:flex;gap:7px}
.trilha-pontos i{display:block;height:3px;flex:1;border-radius:2px;background:var(--linha);transition:background-color .4s}
.trilha-pontos i.is-ativa{background:var(--teal)}
.trilha-btn{justify-self:start}

/* ---------- a dentista ---------- */
.dentista-caixa{position:relative;display:flex;align-items:center;padding-block:clamp(10px,2vw,30px)}
@media (hover:hover) and (pointer:fine) and (min-width:1001px){
  #equipe .container{perspective:1600px}
  .dentista-caixa{transform-style:preserve-3d;transition:transform .6s var(--ease);will-change:transform}
  .dentista-caixa.is-pegando{transition:none}
  #equipe .retrato{transition:transform .45s var(--ease)}
  .dentista-caixa.is-pegando .retrato{transform:translateZ(58px)}
}
.retrato{position:absolute;left:0;top:0;bottom:0;margin-block:auto;height:-moz-fit-content;height:fit-content;
  z-index:2;width:min(30%,300px);border-radius:24px;overflow:hidden;background:#fff;
  box-shadow:0 40px 70px -40px rgba(15,33,80,.75)}
.retrato img{width:100%;height:auto}
.retrato figcaption{position:absolute;left:0;right:0;bottom:0;padding:38px 18px 16px;
  background:linear-gradient(0deg,rgba(11,19,34,.93),transparent);color:#fff;display:grid;gap:3px}
.retrato figcaption b{font-size:16px;line-height:1.25}
.retrato figcaption span{font:500 11px/1.4 var(--f-mono);letter-spacing:.08em;color:#d8e2f2}
.painel{position:relative;flex:1;overflow:hidden;border-radius:28px;background:#0b1424;
  padding:clamp(34px,4.4vw,58px) clamp(26px,4vw,56px) clamp(34px,4.4vw,58px) clamp(26px,33%,392px);
  box-shadow:0 50px 90px -50px rgba(16,30,66,.85)}
.painel-fundo{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.4s ease}
.painel-fundo.is-pronto{opacity:1}
.painel::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,rgba(9,15,27,.93) 20%,rgba(9,15,27,.66) 60%,rgba(9,15,27,.36))}
.painel-texto{position:relative;z-index:2;max-width:56ch}
.painel-texto .olho{color:#ffb07c}
.painel-texto h2{color:var(--areia);margin-bottom:18px}
.painel-texto>p{color:#b7c3d6}
.lista{list-style:none;margin:26px 0 0;padding:0;display:grid;gap:14px}
.lista li{position:relative;padding-left:30px;font-size:15.5px;line-height:1.6;color:#b7c3d6}
.lista li::before{content:"";position:absolute;left:0;top:9px;width:14px;height:14px;border-radius:50%;border:2px solid var(--teal);background:rgba(239,125,60,.18)}
.lista b{color:var(--areia)}

/* ---------- vídeos e galeria ---------- */
.videos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;margin:0;padding:0}
.videos a{position:relative;display:block;border-radius:var(--r-g);overflow:hidden;text-decoration:none;background:#000;border:1px solid var(--linha)}
.videos img{width:100%;height:auto;opacity:.82;transition:opacity .35s,transform .6s var(--ease)}
.videos a:hover img{opacity:1;transform:scale(1.04)}
.play{position:absolute;left:50%;top:50%;width:62px;height:62px;margin:-31px 0 0 -31px;border-radius:50%;background:rgba(239,125,60,.92);transition:transform .35s var(--ease)}
.play::after{content:"";position:absolute;left:24px;top:19px;border-style:solid;border-width:12px 0 12px 18px;border-color:transparent transparent transparent #2a1204}
.videos a:hover .play{transform:scale(1.08)}
.rot{position:absolute;left:14px;bottom:12px;font-size:12.5px;color:#fff;background:rgba(6,10,20,.7);padding:5px 11px;border-radius:999px}
.galeria{margin-top:clamp(44px,6vw,72px)}
.molduras{display:grid;grid-template-columns:1.25fr .875fr .875fr;gap:16px}
.foto-clinica{position:relative;margin:0;aspect-ratio:3/2;border-radius:var(--r-g);overflow:hidden;background:var(--superficie);border:1px solid var(--linha)}
.foto-clinica img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.foto-clinica:hover img{transform:scale(1.045)}
.foto-clinica figcaption{position:absolute;left:12px;bottom:12px;padding:6px 12px;border-radius:999px;background:rgba(6,10,20,.78);font-size:12.5px;color:var(--areia)}

/* ---------- dúvidas ---------- */
.faq{display:grid;gap:10px}
.faq details{border:1px solid var(--linha);border-radius:var(--r);background:rgba(21,34,56,.82);overflow:hidden}
.faq summary{list-style:none;cursor:pointer;padding:20px 54px 20px 22px;font-weight:700;color:var(--areia);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:22px;top:50%;width:11px;height:11px;margin-top:-7px;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:-3px}
.faq p{padding:0 22px 22px;font-size:15.5px;color:var(--texto-2);max-width:70ch}

/* ---------- formulário ---------- */
.dupla{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(30px,5vw,72px);align-items:center}
.dupla-texto h2{margin-bottom:18px}
.forma{display:grid;gap:16px;padding:clamp(24px,3vw,34px);border-radius:var(--r-g);background:#fff;border:1px solid rgba(15,33,80,.14);box-shadow:0 30px 60px -44px rgba(15,33,80,.5)}
.campo{display:grid;gap:7px}
.campo label{font-size:13.5px;font-weight:700;color:#3f4a60}
.campo input,.campo select{width:100%;min-height:50px;padding:12px 14px;border:1px solid rgba(15,33,80,.32);border-radius:var(--r);background:#fbfcfe;color:#122038;font:inherit;font-size:16px}
.campo input:focus,.campo select:focus{outline:none;border-color:var(--roxo);box-shadow:0 0 0 4px rgba(47,95,196,.12)}
.forma .btn{width:100%}
.forma-nota{font-size:13px;color:#4d5a72;text-align:center}
.erro{margin:0;font-size:14px;color:#a8103a;font-weight:600}
.contatos{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:20px;font-weight:700}
.contatos a{text-decoration:none;color:var(--roxo);border-bottom:1px solid rgba(47,95,196,.35)}

/* ---------- a visita: mapa de ponta a ponta com o cartão por cima ---------- */
.visita{position:relative;padding-bottom:clamp(60px,8vw,110px);background:rgba(10,18,32,.62)}
.visita .mapa{height:clamp(320px,42vw,480px);border-bottom:1px solid var(--linha);background:var(--superficie)}
.visita .mapa iframe{display:block;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.05) brightness(.92)}
.cartao-endereco{position:relative;margin-top:clamp(-150px,-12vw,-90px);max-width:520px;
  padding:clamp(26px,3vw,38px);border-radius:26px;background:rgba(15,25,44,.96);border:1px solid var(--linha-2);
  box-shadow:0 40px 80px -46px rgba(0,0,0,.95)}
.endereco{margin-top:12px;font-size:19px;font-weight:600;color:var(--areia);line-height:1.5}
.cartao-endereco .acoes{margin-top:26px}

/* ---------- rodapé ---------- */
.rodape{background:rgba(14,24,42,.93);border-top:1px solid var(--linha);padding-block:48px 28px}
.rodape-inner{display:flex;flex-wrap:wrap;gap:30px;justify-content:space-between;align-items:flex-start}
.rodape-logo{width:200px;height:37px;object-fit:contain;margin-bottom:14px}
.rodape p{font-size:14px;color:var(--texto-2);line-height:1.7}
.rodape nav{display:grid;gap:10px;font-size:14.5px}
.rodape nav a{text-decoration:none;color:var(--texto)}
.rodape nav a:hover{color:var(--teal)}
.creditos{margin-top:34px;padding-top:18px;border-top:1px solid var(--linha);font-size:12.5px;color:var(--texto-2)}

/* ---------- WhatsApp flutuante ---------- */
.zap-flutua{position:fixed;right:20px;bottom:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:45;
  display:inline-flex;align-items:center;gap:10px;padding:14px 20px 14px 16px;border-radius:999px;
  background:var(--teal);color:#2a1204;text-decoration:none;font-weight:700;font-size:14.5px;
  box-shadow:0 18px 40px -18px rgba(239,125,60,.9);transition:transform .3s var(--ease),background-color .25s}
.zap-flutua svg{width:24px;height:24px;fill:currentColor}
.zap-flutua:hover{transform:translateY(-3px);background:#ff9150}
/* some enquanto o botão do topo está na tela, para não tampar o título no celular */
.zap-flutua{transition:transform .3s var(--ease),background-color .25s,opacity .3s,visibility 0s}
.zap-flutua.is-oculto{opacity:0;visibility:hidden;transform:translateY(14px);transition:transform .3s var(--ease),opacity .3s,visibility 0s linear .3s}

/* ---------- entradas ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-dentro{opacity:1;transform:none}
.videos .reveal:nth-child(2),.molduras>.reveal:nth-child(2){transition-delay:.09s}
.videos .reveal:nth-child(3),.molduras>.reveal:nth-child(3){transition-delay:.18s}
.videos .reveal.is-pronta,.molduras>.reveal.is-pronta{transition-delay:0s}

/* aba escondida: nada anima */
body.is-parado *,body.is-parado *::before,body.is-parado *::after{animation-play-state:paused!important}

/* ---------- telas menores ---------- */
@media (pointer:coarse){
  .btn{min-height:44px}
  .menu a{min-height:44px}
}
@media (max-width:1000px){
  .hero-grid,.dupla,.trilha-grid{grid-template-columns:1fr}
  .cena{order:-1}
  .giros,.videos,.molduras,.tarja-inner{grid-template-columns:repeat(2,1fr)}
  .trilha-rolagem{height:430vh}
  .trilha-texto h2{font-size:clamp(26px,4.4vw,34px);max-width:none}
  .trilha-btn{display:none}
  .dentista-caixa{display:block}
  .retrato{position:relative;inset:auto;margin:0 0 -70px 22px;width:min(280px,62%);height:auto}
  .painel{padding:clamp(80px,10vw,100px) clamp(24px,5vw,44px) clamp(30px,5vw,48px)}
  .cartao-endereco{max-width:none;margin-top:clamp(-90px,-10vw,-60px)}
}
@media (min-width:1001px) and (max-height:760px){
  .trilha-texto h2{font-size:clamp(24px,2.6vw,33px)}
  .trilha-lista{margin-top:16px}
  .trilha-lista button{padding-block:8px}
  .trilha-lista b{font-size:clamp(18px,1.7vw,21px)}
  .trilha-btn{display:none}
  .trilha-legenda{min-height:72px}
}
@media (max-width:760px){
  .menu{position:fixed;inset:76px 0 auto;flex-direction:column;gap:0;padding:10px var(--gutter) 24px;background:rgba(10,18,32,.99);border-bottom:1px solid var(--linha);transform:translateY(-12px);opacity:0;pointer-events:none;transition:opacity .25s,transform .3s var(--ease)}
  .menu a{padding:14px 0;border-bottom:1px solid var(--linha);font-size:16px}
  .menu-aberto .menu{opacity:1;transform:none;pointer-events:auto}
  .abrir{display:flex;margin-left:auto}
  .topo-zap{display:none}
  .giros,.videos,.molduras,.tarja-inner{grid-template-columns:1fr}
  .giro{height:clamp(280px,74vw,320px)}
  .rail{grid-template-columns:repeat(2,1fr);gap:20px}
  .rail span{max-width:none}
  .zap-flutua span{display:none}
  .zap-flutua{padding:15px;border-radius:50%}
  .rodape{padding-bottom:96px}
  .trilha-palco{padding-block:26px}
  .trilha-lista li{display:none}
  .trilha-lista li.is-ativa{display:block}
  .trilha-lista button{padding-left:16px;opacity:1}
  .trilha-lista li.is-ativa button{padding-left:20px}
  .trilha-legenda{min-height:112px}
  .btn-grande{width:100%}
  .retrato{width:min(260px,72%);margin-left:0}
}
@media (max-height:560px){.zap-flutua span{display:none}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .reveal{opacity:1;transform:none}
  .quadro{opacity:0;transform:none}
  .quadro.is-ativa{opacity:1}
  .giro.is-virado .giro-eixo{transform:rotateY(180deg)}
}

/* ---------- Sorriclin: o que muda em relação ao modelo ---------- */
/* espaço reservado de foto: fica bonito sozinho e diz exatamente qual foto falta */
.espera{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;text-align:center;
  background:radial-gradient(120% 90% at 30% 20%,rgba(47,95,196,.28),transparent 60%),repeating-linear-gradient(135deg,rgba(246,247,251,.035) 0 12px,transparent 12px 24px),var(--superficie);
  color:var(--texto-2)}
.espera::after{content:"";position:absolute;inset:12px;border:1.5px dashed rgba(239,125,60,.4);border-radius:calc(var(--r-g) - 8px);pointer-events:none}
.espera svg{width:34px;height:34px;color:var(--teal);margin-bottom:4px}
.espera b{font:600 15px/1.3 var(--f-texto);color:var(--areia)}
.espera small{font:500 11px/1.4 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#ffb07c}
.espera-cartao{justify-content:flex-start;padding-top:44px}
.espera-retrato{position:relative;inset:auto;aspect-ratio:1;border-radius:inherit}
.retrato .espera-retrato{padding-bottom:70px}
/* a foto do topo é a da equipe, deitada */
.hero-foto .foto-quadro img{aspect-ratio:3/4;object-fit:cover}
/* avaliações do Google em texto, no lugar dos vídeos do modelo */
.notas{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;list-style:none;margin:0;padding:0}
.nota{height:100%;margin:0;display:flex;flex-direction:column;gap:14px;padding:24px 24px 22px;border-radius:var(--r-g);border:1px solid var(--linha);
  background:linear-gradient(180deg,rgba(21,34,56,.92),rgba(14,24,42,.92))}
.estrelas{color:var(--teal);letter-spacing:3px;font-size:15px}
.nota blockquote{margin:0;flex:1}
.nota blockquote p{margin:0;font-size:15.5px;line-height:1.65;color:var(--texto)}
.nota figcaption{font:600 15px/1.3 var(--f-texto);color:var(--areia)}
.nota figcaption span{display:block;margin-top:4px;font:500 10.5px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--texto-2)}
.notas .reveal:nth-child(3n+2){transition-delay:.09s}
.notas .reveal:nth-child(3n+3){transition-delay:.18s}
.notas .reveal.is-pronta{transition-delay:0s}
/* galeria da odontopediatria: fotos em pé */
.molduras-kids{grid-template-columns:repeat(4,1fr)}
.foto-kids{aspect-ratio:413/600}
@media (max-width:980px){.notas{grid-template-columns:repeat(2,1fr)}.molduras-kids{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.notas{grid-template-columns:1fr}.molduras-kids{grid-template-columns:repeat(2,1fr)}.marca img{width:150px;height:28px}}
.retrato .espera small{display:none}
/* bloco "A clínica": retrato da responsável técnica */
.retrato>img{aspect-ratio:4/5;object-fit:cover}
.link-ig{display:flex;align-items:center;gap:10px;margin-top:18px;font-size:14.5px;color:#b7c3d6;text-decoration:none;transition:color .25s ease}
.link-ig svg{flex:none;width:18px;height:18px;color:var(--teal)}
.link-ig b{color:var(--areia);font-weight:600}
.link-ig:hover{color:var(--areia)}
.rodape-ig{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:14px;color:var(--areia);text-decoration:none}
.rodape-ig svg{flex:none;width:18px;height:18px;color:var(--teal)}
/* depoimentos: fotos das crianças primeiro, avaliações passando embaixo (mesma esteira do modelo do advogado) */
.galeria-kids{margin-top:clamp(26px,4vw,40px)}
.olho-notas{margin:clamp(48px,6vw,72px) 0 0}
.esteira{margin-top:clamp(18px,2.6vw,28px);display:grid;gap:16px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.trilho{display:flex;gap:16px;width:max-content;will-change:transform;animation:desfile 70s linear infinite}
.trilho-volta{animation-direction:reverse;animation-duration:84s}
.esteira:hover .trilho,.esteira.is-fora .trilho{animation-play-state:paused}
@keyframes desfile{to{transform:translate3d(-50%,0,0)}}
.trilho .nota{flex:none;width:min(380px,82vw);height:auto}
@media (prefers-reduced-motion:reduce){
  .esteira{-webkit-mask-image:none;mask-image:none}
  .trilho{animation:none;width:auto;overflow-x:auto;padding:0 20px 8px;scroll-snap-type:x mandatory}
  .trilho .nota{scroll-snap-align:start}
  .trilho-volta,.trilho [aria-hidden="true"]{display:none}
}
/* laser CO2: tabela de protocolos com o valor por sessão (informações enviadas pela clínica) */
.laser-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,5vw,72px);align-items:center}
.laser-texto .lede{margin-top:18px}
.laser-selos{list-style:none;margin:24px 0 30px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.laser-selos li{padding:7px 13px;border-radius:999px;border:1px solid rgba(239,125,60,.35);background:rgba(239,125,60,.08);font-size:13.5px;color:#ffd2b5}
.precos{position:relative;padding:clamp(22px,3vw,34px);border-radius:var(--r-g);border:1px solid var(--linha);
  background:linear-gradient(180deg,rgba(27,43,69,.95),rgba(14,24,42,.95));box-shadow:0 40px 80px -50px rgba(0,0,0,.95)}
.precos::before{content:"";position:absolute;left:24px;right:24px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--teal),transparent)}
.precos-topo{display:flex;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--linha);
  font:500 11px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--texto-2)}
.precos-lista{list-style:none;margin:0;padding:0}
.precos-lista li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 4px;border-bottom:1px solid var(--linha);transition:background-color .3s ease}
.precos-lista li:hover{background:rgba(246,247,251,.03)}
.preco-nome b{display:block;font-size:16.5px;color:var(--areia);font-weight:600}
.preco-nome small{display:block;margin-top:3px;font-size:13.5px;color:var(--texto-2)}
.preco-valor{flex:none;font:600 clamp(22px,2.2vw,28px)/1 var(--f-titulo);color:var(--areia);white-space:nowrap}
.preco-valor small{font:500 12px/1 var(--f-mono);color:var(--teal);margin-right:5px;vertical-align:.35em}
.precos-nota{margin:16px 0 0;font-size:13px;color:var(--texto-2)}
@media (max-width:900px){.laser-grid{grid-template-columns:1fr}}
/* topo: foto da Dra. Diana, um pouco mais estreita que a coluna, e legenda em duas linhas */
.cena{justify-self:end;width:min(100%,440px)}
.hero-foto figcaption{display:grid;gap:3px;border-radius:14px;padding:11px 16px;background:rgba(8,14,26,.9);text-align:right}
.hero-foto figcaption b{font-size:14px;color:#fff}
.hero-foto figcaption span{font:500 11px/1.4 var(--f-mono);letter-spacing:.06em;color:#dfe6f2}
@media (max-width:1000px){.cena{justify-self:center;width:min(100%,420px)}}

/* odontologia: quadradão com o fundo animado (o mesmo do bloco "A clínica"), abas coloridas e painel por área */
.quadrao{position:relative;overflow:hidden;isolation:isolate;border-radius:30px;background:#0b1424;padding:clamp(20px,3vw,44px);min-height:600px;
  box-shadow:0 50px 90px -50px rgba(16,30,66,.85)}
.quadrao::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:linear-gradient(100deg,rgba(9,15,27,.55),rgba(9,15,27,.25) 55%,rgba(9,15,27,.6))}
.quadrao .painel-fundo{z-index:0}
.sorr{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,320px) 1fr;gap:clamp(18px,2.6vw,34px);align-items:stretch}
.sorr-lado{display:flex;flex-direction:column;gap:22px}
.sorr-lado .sorr-cta{margin-top:auto;align-self:flex-start}
.sorr-abas{display:grid;gap:8px;align-content:start}
.sorr-abas button{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 18px;border-radius:14px;
  border:1px solid rgba(143,176,238,.16);background:rgba(21,34,56,.88);color:#dfe6f2;font:600 16px/1.25 var(--f-texto);text-align:left;cursor:pointer;
  transition:border-color .25s ease,background-color .25s ease,transform .25s var(--ease),box-shadow .25s ease}
.sorr-abas button small{flex:none;min-width:30px;padding:3px 9px;border-radius:999px;border:1px solid rgba(239,125,60,.55);background:rgba(239,125,60,.14);
  font:600 11.5px/1.4 var(--f-mono);text-align:center;color:#ffb07c;transition:background-color .25s ease,color .25s ease}
.sorr-abas button:hover{border-color:rgba(239,125,60,.5);background:rgba(27,43,69,.95)}
.sorr-abas button[aria-selected="true"]{border-color:var(--teal);background:linear-gradient(90deg,rgba(239,125,60,.2),rgba(27,43,69,.95) 70%);
  box-shadow:0 0 0 1px rgba(239,125,60,.35),0 16px 34px -20px rgba(239,125,60,.8);transform:translateX(6px)}
.sorr-abas button[aria-selected="true"]::before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--teal)}
.sorr-abas button[aria-selected="true"] small{background:var(--teal);color:#2a1204;border-color:var(--teal)}
.sorr-abas button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.sorr-paineis{position:relative;display:grid}
.sorr-painel{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:26px;min-height:100%;padding:clamp(24px,3.4vw,46px);border-radius:20px;
  border:1px solid rgba(143,176,238,.14);background:rgba(10,18,32,.84);animation:sorr-entra .5s var(--ease)}
.sorr-painel[hidden]{display:none}
.sorr-painel::before{content:"";position:absolute;left:28px;right:28px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--teal),transparent)}
.sorr-marca{position:absolute;right:-6px;bottom:-40px;font:600 clamp(150px,16vw,230px)/1 var(--f-titulo);color:rgba(143,176,238,.06);pointer-events:none;letter-spacing:-.04em}
.sorr-topo{position:relative;max-width:58ch}
.sorr-conta{font:500 11px/1 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:#ffb07c;margin-bottom:12px}
.sorr-topo h3{font:600 clamp(28px,3vw,40px)/1.1 var(--f-titulo);color:var(--areia);margin-bottom:10px}
.sorr-topo p:last-child{color:#b7c3d6;font-size:16px;line-height:1.6}
.sorr-itens{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}
.sorr-itens li{display:flex;align-items:center;gap:12px;padding:17px 18px;border-radius:14px;border:1px solid rgba(246,247,251,.09);background:rgba(246,247,251,.04);
  font-size:16px;line-height:1.35;color:var(--texto)}
.sorr-itens svg{flex:none;width:16px;height:16px;padding:4px;box-sizing:content-box;border-radius:50%;background:rgba(239,125,60,.16);color:#ffb07c}
.sorr-cta .i{width:18px;height:18px;fill:currentColor}
@keyframes sorr-entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:900px){
  .sorr{grid-template-columns:1fr}
  .sorr-abas{display:flex;overflow-x:auto;gap:8px;margin-inline:calc(clamp(18px,2.6vw,34px)*-1);padding:2px clamp(18px,2.6vw,34px) 8px;
    scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:clamp(18px,2.6vw,34px)}
  .sorr-abas::-webkit-scrollbar{display:none}
  .sorr-abas button{width:auto;flex:none;white-space:nowrap;padding:11px 14px;scroll-snap-align:start}
  .sorr-abas button[aria-selected="true"]{transform:none}
  .sorr-abas button[aria-selected="true"]::before{left:10px;right:10px;top:auto;bottom:-1px;width:auto;height:3px;border-radius:3px 3px 0 0}
  .sorr-itens{grid-template-columns:1fr}
  .sorr-lado{display:contents}
  .sorr-abas{order:1}.sorr-paineis{order:2}
  .sorr-lado .sorr-cta{order:3;margin-top:0;align-self:stretch;justify-content:center}
  .quadrao{min-height:0}
}
@media (prefers-reduced-motion:reduce){.sorr-painel{animation:none}}

/* estética facial: três cartões grandes e parados. A borda é um gradiente azul que anda (a técnica dos cartões da CAT N'CLAW)
   e por dentro correm duas luzes, laranja e azul. Cada cartão tem só três camadas animadas e pausa fora da tela. */
.secao-face .container,.secao-sorriso .container{width:min(1360px,100% - var(--gutter)*2)}
.face-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2vw,26px);align-items:stretch}
.face-card{position:relative;display:grid;border-radius:26px;padding:4px;min-height:520px;
  box-shadow:0 0 28px 1px rgba(61,123,255,.34),0 0 70px 6px rgba(42,95,214,.14),0 40px 70px -40px rgba(15,33,80,.75)}
.face-borda{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;container-type:size;background:#10245a}
/* um quadrado com gradiente cônico gira atrás do cartão: na fresta de 3px aparece a luz azul correndo pela borda */
.face-folha{position:absolute;left:50%;top:50%;width:250%;width:hypot(100cqw,100cqh);aspect-ratio:1;will-change:transform;
  background:conic-gradient(from 0deg,#0c1d4d 0deg,#1f4bb8 40deg,#5c95ff 72deg,#e3eeff 90deg,#5c95ff 108deg,#1f4bb8 140deg,#0c1d4d 180deg,
    #173a8f 220deg,#3d7bff 250deg,#9fc0ff 270deg,#3d7bff 290deg,#173a8f 320deg,#0c1d4d 360deg);
  transform:translate(-50%,-50%);animation:face-folha 6s linear infinite}
@keyframes face-folha{to{transform:translate(-50%,-50%) rotate(1turn)}}
/* o fundo fixo já traz as manchas de cor pintadas: só as duas luzes se mexem */
.face-corpo{position:relative;overflow:hidden;isolation:isolate;border-radius:22px;
  background:radial-gradient(60% 45% at 8% 4%,rgba(47,95,196,.55),transparent 70%),radial-gradient(55% 40% at 100% 100%,rgba(28,58,120,.7),transparent 70%),
    radial-gradient(45% 35% at 95% 10%,rgba(143,176,238,.16),transparent 70%),linear-gradient(170deg,#0e1a33,#0a1222)}
.face-luz{position:absolute;inset:0;z-index:0;pointer-events:none}
.face-luz i{position:absolute;border-radius:50%;will-change:transform}
.face-luz i:nth-child(1){width:95%;aspect-ratio:1;left:-20%;bottom:-30%;background:radial-gradient(circle closest-side,rgba(239,125,60,.5),rgba(212,101,42,.22) 55%,transparent);animation:face-luz-a 11s ease-in-out infinite}
.face-luz i:nth-child(2){width:80%;aspect-ratio:1;right:-25%;top:-18%;background:radial-gradient(circle closest-side,rgba(61,123,255,.42),transparent);animation:face-luz-b 13s ease-in-out infinite}
@keyframes face-luz-a{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(38%,-42%,0)}}
@keyframes face-luz-b{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-30%,36%,0)}}
.face-conteudo{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;padding:clamp(26px,2.6vw,36px)}
.face-n{font:600 52px/1 var(--f-titulo);color:rgba(143,176,238,.3);margin-bottom:14px}
.face-card h3{font:600 clamp(23px,1.9vw,28px)/1.2 var(--f-titulo);color:#fff}
.face-conta{margin:8px 0 22px;font:500 11.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#ffb07c}
.face-itens{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.face-itens li{display:inline-flex;align-items:center;gap:9px;padding:10px 15px;border-radius:999px;font-size:15px;line-height:1.3;color:#f1f4fa;
  background:rgba(15,26,46,.72);border:1px solid rgba(143,176,238,.28);transition:border-color .25s ease,background-color .25s ease}
.face-itens li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px rgba(239,125,60,.9)}
.face-itens li:hover{border-color:rgba(239,125,60,.7);background:rgba(239,125,60,.14)}
.face-card.is-fora .face-folha,.face-card.is-fora .face-luz i{animation-play-state:paused}
.face-cta{margin-top:clamp(28px,3vw,40px)}
.face-cta .i{width:18px;height:18px;fill:currentColor}
.face-grid .reveal:nth-child(2){transition-delay:.08s}
.face-grid .reveal:nth-child(3){transition-delay:.16s}
@media (max-width:1100px){.face-grid{grid-template-columns:1fr}.face-card{min-height:0}}
@media (max-width:640px){.face-card{border-radius:22px;padding:3px}.face-corpo{border-radius:19px}.face-card{box-shadow:0 0 22px 0 rgba(61,123,255,.32),0 30px 50px -34px rgba(15,33,80,.75)}}
@media (prefers-reduced-motion:reduce){.face-folha,.face-luz i{animation:none}}
/* áreas com poucos procedimentos: cada um vira um cartão maior, sem deixar o painel vazio */
.sorr-itens.poucos{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.sorr-itens.poucos li{flex-direction:column;align-items:flex-start;justify-content:space-between;gap:26px;min-height:170px;padding:24px;font:600 20px/1.3 var(--f-titulo);color:var(--areia);
  background:linear-gradient(160deg,rgba(47,95,196,.16),rgba(246,247,251,.03));border-color:rgba(143,176,238,.2)}
.sorr-itens.poucos svg{width:20px;height:20px;padding:7px}
