/* Dra. Gabriella Piazza Maccarini · "Porcelanato e cobre"
   Gambetta (títulos) + Satoshi (texto). Mobile-first. */

@font-face{font-family:"Gambetta";src:url(assets/fontes/gambetta-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Gambetta";src:url(assets/fontes/gambetta-500i.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Satoshi";src:url(assets/fontes/satoshi-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url(assets/fontes/satoshi-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url(assets/fontes/satoshi-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --porcelana:#EEE8E1;
  --marfim:#F8F4EF;
  --areia:#E2D5C7;
  --espresso:#221812;
  --cafe:#3A2C24;
  --taupe:#6E5D51;
  --cobre:#A5642F;
  --cobre-escuro:#8A4F22;
  --cobre-claro:#D9A67C;
  --musgo:#323B29;
  --linha:rgba(58,44,36,.16);
  --linha-clara:rgba(248,244,239,.18);

  --serif:"Gambetta", "Times New Roman", serif;
  --sans:"Satoshi", system-ui, -apple-system, "Segoe UI", sans-serif;

  --gutter:clamp(16px, 4.4vw, 64px);
  --max:1360px;
  --sec:clamp(88px, 12vw, 176px);
  --ease:cubic-bezier(.2,.7,.1,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overflow-x:clip;scroll-padding-top:84px}
@media (prefers-reduced-motion:no-preference){html:not(.lenis){scroll-behavior:smooth}}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  margin:0;background:var(--porcelana);color:var(--cafe);
  font-family:var(--sans);font-size:17px;line-height:1.6;font-weight:400;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;color:var(--espresso);line-height:1.1}
p{margin:0 0 1em}
.ic{width:20px;height:20px;fill:currentColor;flex:none}
:focus-visible{outline:2px solid var(--cobre);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--espresso);color:var(--marfim);padding:10px 16px;z-index:100;border-radius:8px}
.skip:focus{left:8px}


/* ---------- tipografia base ---------- */
.titulo{
  font-size:clamp(2.6rem, 7vw, 5.6rem);line-height:.98;letter-spacing:-.03em;
  max-width:14ch;
}
.titulo--claro{color:var(--marfim)}
.rotulo{
  font-size:.95rem;font-weight:500;color:var(--cobre-escuro);margin:0 0 18px;
  display:flex;align-items:center;gap:12px;
}
.rotulo::before{content:"";width:28px;height:1px;background:currentColor}
.rotulo--claro{color:var(--cobre-claro)}
.aviso{font-size:.84rem;line-height:1.5;color:var(--taupe);max-width:62ch}
.aviso--claro{color:rgba(248,244,239,.62);margin-left:auto;margin-right:auto}

/* split de texto */
[data-split] .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
[data-split] .w > span{display:inline-block;will-change:transform}

/* ---------- botões ---------- */
.btn{
  --bg:var(--espresso);--fg:var(--marfim);
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 28px;border-radius:999px;
  background:var(--bg);color:var(--fg);text-decoration:none;
  font:500 1rem/1.1 var(--sans);letter-spacing:.005em;
  transition:background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .25s ease;
  border:1px solid transparent;cursor:pointer;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 22px -12px rgba(34,24,18,.55)}
.btn:active{transform:translateY(0);box-shadow:0 4px 10px -8px rgba(34,24,18,.5);transition-duration:.1s}
.btn:focus-visible{outline:2px solid var(--cobre);outline-offset:3px}
/* brilho prateado: um reflexo atravessa o botão principal a cada ~6s (só transform/opacity; reduced-motion desliga) */
.btn--brilho{position:relative;overflow:hidden;isolation:isolate}
.btn--brilho::after{
  content:"";position:absolute;top:-30%;bottom:-30%;left:0;width:34%;pointer-events:none;
  background:linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(232,236,242,.12) 30%, rgba(246,248,252,.58) 50%, rgba(232,236,242,.12) 70%, rgba(255,255,255,0) 100%);
  transform:translateX(-180%) skewX(-20deg);opacity:0;
  animation:brilho 6s cubic-bezier(.45,0,.2,1) var(--brilho-atraso, 2.4s) infinite;
}
@keyframes brilho{
  0%{transform:translateX(-180%) skewX(-20deg);opacity:0}
  3%{opacity:1}
  20%{transform:translateX(360%) skewX(-20deg);opacity:1}
  23%,100%{transform:translateX(360%) skewX(-20deg);opacity:0}
}
.btn--cobre{--bg:var(--cobre);--fg:#fff}
.btn--cobre:hover{--bg:var(--cobre-escuro)}
.btn--escuro:hover{--bg:var(--cobre)}
.btn--linha{--bg:transparent;--fg:var(--espresso);border-color:var(--espresso)}
.btn--linha:hover{--bg:var(--espresso);--fg:var(--marfim)}
.btn--pequeno{min-height:46px;padding:0 20px;font-size:.92rem}
.btn--grande{min-height:64px;padding:0 34px;font-size:1.08rem}
.link-seta{
  display:inline-flex;align-items:center;gap:8px;min-height:48px;
  font-weight:500;text-decoration:none;color:var(--espresso);
  border-bottom:1px solid var(--linha);
}
.link-seta{transition:border-color .25s ease}
.link-seta:hover{border-color:var(--cobre)}
.link-seta .ic{transition:transform .25s ease}
.link-seta:hover .ic{transform:translateX(3px)}

/* ---------- topo ---------- */
.topo{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:16px var(--gutter);
  transition:background .4s var(--ease), box-shadow .4s var(--ease), transform .5s var(--ease);
}
.topo.solido{background:rgba(238,232,225,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--linha)}
.topo.escondido{transform:translateY(-110%)}
.topo__marca{display:block;line-height:0}
.topo__marca img{width:min(290px, calc(100vw - 2*var(--gutter) - 8px));height:auto}
.topo__nav{display:none}
.topo__cta{display:none}

/* ---------- hero ---------- */
.hero{
  position:relative;
  padding:92px var(--gutter) 56px;
  display:grid;gap:30px;max-width:var(--max);margin:0 auto;
}
.hero__texto{text-align:center}
.hero__local{font-weight:500;color:var(--taupe);margin-bottom:18px;display:flex;align-items:center;justify-content:center;gap:10px}
.hero__local::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--cobre)}
.hero__titulo{
  font-size:clamp(2.15rem, 10.8vw, 2.75rem);line-height:.98;letter-spacing:-.035em;font-weight:500;
}
.hero__titulo .l{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.hero__titulo .l > span{display:block;animation:sobe .9s var(--ease) both;animation-delay:calc(.08s + var(--i) * .08s)}
@keyframes sobe{from{transform:translateY(105%)}}
@keyframes aparece{from{opacity:0;translate:0 24px}}
@keyframes assenta{from{scale:1.08}}
.hero__colagem{order:-1}
.hero__lead{font-size:1.06rem;line-height:1.55;max-width:34ch;margin:20px auto 26px;color:var(--cafe)}
.hero__acoes{display:flex;flex-direction:column;align-items:center;gap:8px}
.hero__acoes .btn{width:100%;max-width:360px}
.prova{
  display:inline-flex;align-items:center;gap:16px;margin-top:26px;text-decoration:none;text-align:left;
  padding:14px 22px 14px 18px;border-radius:20px;background:var(--marfim);
  box-shadow:0 1px 0 var(--linha);
}
.prova__nota{font-family:var(--serif);font-size:2.6rem;line-height:1;color:var(--espresso);letter-spacing:-.03em}
.prova__info{display:flex;flex-direction:column;gap:4px;font-size:.92rem;color:var(--taupe)}
.prova__info strong{color:var(--espresso);font-weight:700}
.estrelas{display:flex;gap:2px}
.estrelas svg{width:15px;height:15px;fill:var(--cobre)}

.hero__colagem{position:relative;aspect-ratio:4/4.1;perspective:1200px;max-width:560px;width:100%;justify-self:center}
.cl{position:absolute;overflow:hidden;background:var(--areia);will-change:transform}
.cl img{width:100%;height:100%;object-fit:cover}
.cl--principal{inset:0 0 6% 14%;border-radius:999px 999px 28px 28px}
.cl--principal img{object-position:46% 18%;animation:assenta 1.4s var(--ease) both}
.cl--retrato{width:40%;aspect-ratio:3/4;left:0;bottom:0;border-radius:22px;transform:rotate(-5deg);box-shadow:0 30px 60px -30px rgba(34,24,18,.55);border:6px solid var(--marfim)}
.cl--retrato img{object-position:50% 22%}
.cl--retrato,.cl--caso{animation:aparece 1s var(--ease) .35s both}
.cl--caso{animation-delay:.45s}
.cl--caso{width:52%;right:-4%;top:58%;border-radius:18px;transform:rotate(3.5deg);border:6px solid var(--marfim);box-shadow:0 30px 60px -30px rgba(34,24,18,.55);overflow:visible;background:var(--marfim)}
.cl--caso img{border-radius:12px;aspect-ratio:2.16/1}
.cl--caso figcaption{font-size:.78rem;color:var(--taupe);padding:8px 4px 2px}
.selo{position:absolute;width:22%;left:2%;top:3%;filter:drop-shadow(0 18px 30px rgba(34,24,18,.25));animation:gira 28s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}

/* ---------- faixa ---------- */
.faixa{background:var(--espresso);color:var(--marfim);padding:38px 0 30px;overflow:hidden;overflow-x:clip;max-width:100vw}
.faixa__trilho{display:flex;width:max-content;will-change:transform}
.faixa__grupo{display:flex;align-items:center;gap:clamp(22px,3vw,48px);padding-right:clamp(22px,3vw,48px);flex:none}
.faixa__grupo span{font-family:var(--serif);font-style:italic;font-size:clamp(2.6rem, 8vw, 6.4rem);line-height:1;letter-spacing:-.03em;white-space:nowrap}
.faixa__grupo span:nth-of-type(even){color:var(--cobre-claro)}
.faixa__dente{width:clamp(28px,4vw,52px);height:clamp(30px,4.3vw,56px);fill:var(--cobre);flex:none}
.faixa__legenda{margin:24px var(--gutter) 0;font-size:.9rem;color:rgba(248,244,239,.6)}

/* ---------- sobre ---------- */
.sobre{
  max-width:var(--max);margin:0 auto;padding:var(--sec) var(--gutter);
  display:grid;gap:56px;
}
.sobre__fotos{position:relative;padding-right:22%}
.sobre__foto-grande{border-radius:28px;overflow:hidden;aspect-ratio:4/5}
.sobre__foto-grande img{width:100%;height:118%;object-fit:cover;object-position:50% 12%}
.sobre__foto-pequena{position:absolute;right:0;bottom:-8%;width:38%;aspect-ratio:3/4.4;border-radius:999px 999px 20px 20px;overflow:hidden;border:6px solid var(--porcelana)}
.sobre__foto-pequena img{width:100%;height:100%;object-fit:cover;object-position:42% 30%}
.sobre__texto{max-width:620px}
.sobre__frase{font-family:var(--serif);font-size:clamp(1.7rem, 3.6vw, 2.6rem);line-height:1.12;letter-spacing:-.02em;color:var(--cobre-escuro);margin:30px 0 26px;max-width:20ch}
.sobre__texto > p:not(.sobre__frase):not(.rotulo){color:var(--cafe);max-width:56ch}
.fatos{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:34px 0 28px;border-top:1px solid var(--linha)}
.fatos div{padding:16px 12px 16px 0;border-bottom:1px solid var(--linha)}
.fatos dt{font-size:.82rem;color:var(--taupe)}
.fatos dd{margin:2px 0 0;font-weight:500;color:var(--espresso);line-height:1.35}
.sobre__assinatura{width:200px;opacity:.95}

/* ---------- tratamentos ---------- */
.trat{background:var(--marfim);padding:var(--sec) var(--gutter);position:relative}
.trat__cabeca,.sv,.trat__rodape{max-width:var(--max);margin-left:auto;margin-right:auto}
.trat__cabeca{display:grid;gap:18px;margin-bottom:40px;text-align:center;justify-items:center}
.trat__sub{max-width:44ch;color:var(--taupe);font-size:1.05rem}
.trat__rodape{margin-top:36px;text-align:center}

/* serviços: carrossel de cards no celular, lista + palco no computador */
.sv{position:relative}
.sv__lista{
  list-style:none;margin:0 calc(-1 * var(--gutter));padding:6px var(--gutter) 10px;
  display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 var(--gutter);
  scrollbar-width:none;overscroll-behavior-x:contain;
}
.sv__lista::-webkit-scrollbar{display:none}
.sv__item{
  flex:0 0 84%;scroll-snap-align:center;text-align:center;
  background:var(--porcelana);border-radius:26px;padding:10px 10px 24px;
  transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .9s cubic-bezier(.22,.61,.36,1);
}
.sv.vivo .sv__item:not(.ativo){opacity:.55;transform:scale(.95)}
.sv__foto{aspect-ratio:5/4;border-radius:18px;overflow:hidden;background:var(--areia);margin-bottom:20px}
.sv__foto img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transform-origin:var(--kb-o, 50% 50%)}
/* Ken Burns: zoom bem lento com leve pan; cada foto puxa para um lado */
@keyframes kb{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.09) translate3d(var(--kb-x,-1%),var(--kb-y,-.6%),0)}}
.sv__item:nth-child(3n+2),.sv__quadro:nth-child(3n+2){--kb-x:1%;--kb-y:-.5%;--kb-o:40% 45%}
.sv__item:nth-child(3n+3),.sv__quadro:nth-child(3n+3){--kb-x:-.7%;--kb-y:.8%;--kb-o:60% 40%}
.sv.vivo .sv__item.ativo .sv__foto img{animation:kb 11s cubic-bezier(.45,.05,.55,.95) both}
.sv__nome{margin:0 0 8px;font-size:clamp(1.7rem, 7vw, 2rem);line-height:1.05;letter-spacing:-.02em}
.sv__nome button{all:unset;display:inline-flex;align-items:center;gap:12px;cursor:default}
.sv__nome .ic{display:none}
.sv__nome button:focus-visible{outline:2px solid var(--cobre);outline-offset:4px;border-radius:6px}
.sv__item p{margin:0 auto;max-width:30ch;color:var(--taupe);font-size:.98rem;line-height:1.5}
.sv__palco{display:none}
.sv__ctrl{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px}
.sv__btn{width:50px;height:50px;border-radius:50%;border:1px solid var(--linha);background:var(--porcelana);color:var(--espresso);display:grid;place-items:center;cursor:pointer;transition:background-color .25s ease, color .25s ease, transform .15s ease}
.sv__btn:hover{background:var(--espresso);color:var(--marfim)}
.sv__btn:active{transform:scale(.96)}
.sv__cont{font-size:.92rem;color:var(--taupe);min-width:4.5em;text-align:center}
/* progresso do autoplay */
.sv__prog{position:relative;width:56px;height:3px;border-radius:3px;background:var(--linha);overflow:hidden}
.sv__prog span{position:absolute;inset:0;background:var(--cobre);transform:scaleX(0);transform-origin:left center}
.sv__prog.rodando span{animation:sv-prog 4.5s linear forwards}
@keyframes sv-prog{to{transform:scaleX(1)}}

/* ---------- casos ---------- */
.casos{background:var(--espresso);color:var(--marfim);padding:var(--sec) 0;overflow:hidden}
.casos__cabeca{max-width:var(--max);margin:0 auto 48px;padding:0 var(--gutter);display:grid;gap:22px}
.casos__sub{color:rgba(248,244,239,.72);max-width:44ch}
.casos__trilho{display:flex;gap:28px;padding:0 var(--gutter);scroll-padding-left:var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab}
.casos__trilho::-webkit-scrollbar{display:none}
.caso{flex:0 0 82%;scroll-snap-align:start}
.caso h3{color:var(--marfim);font-size:1.6rem;line-height:1.1;margin:18px 0 6px;letter-spacing:-.02em}
.caso p{color:rgba(248,244,239,.66);font-size:.95rem;margin:0}
.comp{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:2.15/1;background:#000;user-select:none;touch-action:pan-y}
.comp img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.comp__depois{position:absolute;inset:0;clip-path:inset(0 0 0 var(--pos))}
.comp__depois img{position:absolute;inset:0}
.comp__linha{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:var(--marfim);pointer-events:none}
.comp__linha span{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:var(--marfim);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.comp__linha span::before,.comp__linha span::after{content:"";position:absolute;top:50%;width:0;height:0;border:6px solid transparent;margin-top:-6px}
.comp__linha span::before{left:9px;border-right-color:var(--cobre)}
.comp__linha span::after{right:9px;border-left-color:var(--cobre)}
.comp__tag{position:absolute;top:12px;font-size:.78rem;font-weight:500;padding:4px 10px;border-radius:999px;background:rgba(34,24,18,.62);color:var(--marfim);backdrop-filter:blur(6px)}
.comp__tag--a{left:12px}.comp__tag--d{right:12px}
.comp__range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;touch-action:pan-y}
.casos .aviso{color:rgba(248,244,239,.62)}
.casos__pe{max-width:var(--max);margin:48px auto 0;padding:0 var(--gutter);display:grid;gap:26px;justify-items:start}

/* ---------- primeira consulta ---------- */
.consulta{max-width:var(--max);margin:0 auto;padding:var(--sec) var(--gutter)}
.consulta__cabeca{margin-bottom:56px}
.consulta__visual{display:none}
.passos{list-style:none;padding:0;margin:0;display:grid;gap:56px}
.passo{position:relative}
.passo__foto{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 15%;border-radius:22px;margin-bottom:22px}
.passo__n{font-family:var(--serif);font-size:4.4rem;line-height:.8;color:var(--cobre);display:block;margin-bottom:10px;letter-spacing:-.04em}
.passo h3{font-size:clamp(1.8rem, 4vw, 2.8rem);line-height:1.04;letter-spacing:-.025em;margin-bottom:12px}
.passo p{color:var(--taupe);max-width:42ch}
.passo .btn{margin-top:14px}

/* ---------- depoimentos (Depoimentos 3D) ---------- */
.depo{background:var(--musgo);color:var(--marfim);padding:var(--sec) var(--gutter);overflow:hidden}
.depo__cabeca{max-width:560px;margin:0 auto 36px;text-align:center;display:grid;justify-items:center;gap:22px}
.depo__cabeca .titulo{max-width:12ch}
.depo__nota{display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(248,244,239,.8);font-size:1rem;line-height:1.4;max-width:30ch}
.depo__num{font-family:var(--serif);font-size:clamp(4rem, 12vw, 7rem);line-height:.8;color:var(--marfim);letter-spacing:-.05em}
.depo__nota strong{color:var(--marfim)}
.depo .aviso{margin:0}
.depo .d3{
  --d3-bg:var(--musgo);--d3-card:var(--marfim);--d3-borda:rgba(248,244,239,.4);--d3-texto:var(--cafe);--d3-nome:var(--espresso);
  --d3-meta:var(--taupe);--d3-acento:var(--cobre);--d3-fonte:var(--sans);--d3-raio:18px;--d3-dur:44s;
  margin:0;
}
@media (min-width:720px){.depo .d3__texto{font-size:15px}}

/* ---------- consultório ---------- */
.espaco{max-width:var(--max);margin:0 auto;padding:var(--sec) var(--gutter)}
.espaco__cabeca{display:grid;gap:18px;margin-bottom:52px}
.espaco__cabeca > p:last-child{max-width:52ch;color:var(--taupe)}
.espaco__grade{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.eg{position:relative;overflow:hidden;border-radius:18px;transform-style:preserve-3d}
.eg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.eg figcaption{position:absolute;left:12px;bottom:12px;font-size:.8rem;font-weight:500;color:var(--marfim);background:rgba(34,24,18,.55);padding:5px 11px;border-radius:999px;backdrop-filter:blur(6px)}
.eg--fachada{grid-column:1/-1;aspect-ratio:1400/801}
.eg--recepcao{grid-column:1/-1;aspect-ratio:4/3}

/* ---------- faq ---------- */
.faq{max-width:var(--max);margin:0 auto;padding:0 var(--gutter) var(--sec);display:grid;gap:40px}
.faq__cabeca{display:grid;gap:18px;align-content:start}
.faq__lista{border-top:1px solid var(--linha)}
.faq .titulo{font-size:clamp(2.3rem, 4.4vw, 3.8rem);max-width:12ch}
.faq details{border-bottom:1px solid var(--linha)}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:24px 0;min-height:48px;font-family:var(--serif);font-size:clamp(1.3rem, 2.6vw, 1.75rem);line-height:1.2;color:var(--espresso);letter-spacing:-.01em;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;border-right:1.6px solid var(--cobre);border-bottom:1.6px solid var(--cobre);transform:rotate(45deg) translate(-3px,-3px);transition:transform .4s var(--ease)}
.faq details[open] summary::after{transform:rotate(225deg) translate(-3px,-3px)}
.faq details p{color:var(--taupe);max-width:60ch;padding-bottom:24px;margin:0}

/* ---------- local ---------- */
.local{background:var(--marfim);padding:var(--sec) var(--gutter);display:grid;gap:44px}
.local__info{max-width:620px}
.local__dados{margin:36px 0;border-top:1px solid var(--linha)}
.local__dados div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--linha)}
.local__dados dt{color:var(--taupe);font-size:.9rem}
.local__dados dd{margin:0;color:var(--espresso);font-weight:500;line-height:1.5}
.local__dados a{text-decoration:none;border-bottom:1px solid var(--linha)}
.local__acoes{display:flex;flex-wrap:wrap;gap:12px}
.local__mapa{border-radius:24px;overflow:hidden;min-height:340px;background:var(--areia)}
.local__mapa iframe{width:100%;height:100%;min-height:340px;border:0;filter:grayscale(.35) sepia(.18)}

/* ---------- cta final ---------- */
.final{position:relative;background:var(--espresso);color:var(--marfim);padding:clamp(110px,16vw,220px) var(--gutter);overflow:hidden;isolation:isolate}
.final__luz{position:absolute;width:70vmax;height:70vmax;left:var(--mx,50%);top:var(--my,40%);transform:translate(-50%,-50%);background:radial-gradient(closest-side, rgba(217,166,124,.28), rgba(165,100,47,.08) 55%, transparent 72%);pointer-events:none;z-index:-1;transition:left .9s var(--ease), top .9s var(--ease)}
.final__dente{position:absolute;right:-6%;bottom:-14%;width:min(70vw,620px);height:auto;fill:none;stroke:var(--cobre);stroke-width:2.4;stroke-dasharray:1400;opacity:.6;z-index:-1}
.final__dente use{fill:none}
.final__conteudo{max-width:var(--max);margin:0 auto}
.final__titulo{color:var(--marfim);font-size:clamp(3rem, 10vw, 8.8rem);line-height:.92;letter-spacing:-.045em;max-width:12ch;margin-bottom:30px}
.final__conteudo > p{max-width:44ch;color:rgba(248,244,239,.78);font-size:1.08rem;margin-bottom:34px}
.final__micro{font-size:.88rem!important;margin-top:16px!important;color:rgba(248,244,239,.55)!important}

/* ---------- rodapé ---------- */
.rodape{background:var(--espresso);color:rgba(248,244,239,.72);padding:56px var(--gutter) 120px;border-top:1px solid var(--linha-clara);display:grid;gap:28px;font-size:.92rem}
.rodape__marca{display:flex;align-items:center;gap:18px}
.rodape__marca img{width:80px}
.rodape__marca strong{display:block;color:var(--marfim);font-family:var(--serif);font-weight:500;font-size:1.3rem}
.rodape__col{display:grid;gap:6px}
.rodape a{text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.rodape a:hover{color:var(--cobre-claro)}
.rodape__legal,.rodape__previa{font-size:.8rem;color:rgba(248,244,239,.48);margin:0;max-width:80ch}

/* ---------- flutuantes ---------- */
.flutua{display:none}
.barra{
  position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:auto 1fr;gap:10px;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  background:rgba(238,232,225,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 -1px 0 var(--linha);transform:translateY(110%);transition:transform .5s var(--ease);
}
.barra.visivel{transform:none}
.barra a{min-height:52px;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:500;transition:background-color .2s ease, transform .15s ease}
.barra a:active{transform:scale(.98)}
.barra__wa{padding:0 18px;background:var(--marfim);color:var(--espresso);border:1px solid var(--linha)}
.barra__wa svg{width:22px;height:22px;fill:#1FA855}
.barra__agendar{background:var(--cobre);color:#fff}

/* Depoimentos 3D (marquee vertical inclinado) — versão estática, sem React.
   Baseado no "3d-testimonials" do 21st.dev. Personalize pelas variáveis abaixo. */
.d3{
  --d3-bg:#ffffff;            /* cor do fundo da seção (usada nos degradês das bordas) */
  --d3-card:#ffffff;          /* fundo do card */
  --d3-borda:rgba(0,0,0,.08); /* borda do card */
  --d3-texto:#222;            /* texto do depoimento */
  --d3-nome:#111;             /* nome do autor */
  --d3-meta:#777;             /* linha "Avaliação no Google" */
  --d3-acento:#a5642f;        /* avatar e estrelas */
  --d3-fonte:system-ui, sans-serif;
  --d3-raio:16px;
  --d3-gap:1rem;
  --d3-card-w:260px;
  --d3-altura:640px;
  --d3-dur:40s;
  --d3-inclina:translateX(-100px) translateZ(-100px) rotateX(20deg) rotateY(-10deg) rotateZ(20deg);
  --d3-fade-lado:25%;
  position:relative;overflow:hidden;
}

/* sem JS ou com movimento reduzido: grade parada, legível */
.d3__lista{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill, minmax(min(100%, 240px), 1fr));gap:var(--d3-gap)}

.d3__card{
  list-style:none;width:100%;box-sizing:border-box;background:var(--d3-card);border:1px solid var(--d3-borda);border-radius:var(--d3-raio);
  padding:16px 16px 18px;font-family:var(--d3-fonte);color:var(--d3-texto);
}
.d3__topo{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.d3__avatar{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--d3-acento);color:#fff;font-weight:700;font-size:15px;line-height:1;overflow:hidden}
.d3__avatar img{width:100%;height:100%;object-fit:cover}
.d3__nome{display:block;font-weight:700;font-size:15px;line-height:1.2;color:var(--d3-nome)}
.d3__meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:12px;line-height:1.3;color:var(--d3-meta)}
.d3__estrelas{color:var(--d3-acento);letter-spacing:1px;font-size:11px}
.d3__texto{margin:0;font-size:14.5px;line-height:1.5}

/* versão animada (o JS adiciona .d3--vivo) */
.d3--vivo{height:var(--d3-altura)}
/* a lista original fica só para leitores de tela */
.d3--vivo .d3__lista{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.d3__cena{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;perspective:300px}
.d3__grupo{display:flex;gap:var(--d3-gap);transform:var(--d3-inclina)}
.d3__col{display:flex;flex-direction:column;gap:var(--d3-gap);width:var(--d3-card-w)}
.d3__copia{display:flex;flex-direction:column;gap:var(--d3-gap);animation:d3-sobe var(--d3-dur) linear infinite;will-change:transform}
.d3__col--desce .d3__copia{animation-direction:reverse}
.d3--pausado .d3__copia{animation-play-state:paused}
@media (hover:hover){.d3:hover .d3__copia{animation-play-state:paused}}
@keyframes d3-sobe{to{transform:translateY(calc(-100% - var(--d3-gap)))}}

.d3__fade{position:absolute;pointer-events:none;z-index:2}
.d3__fade--t{left:0;right:0;top:0;height:25%;background:linear-gradient(var(--d3-bg), transparent)}
.d3__fade--b{left:0;right:0;bottom:0;height:25%;background:linear-gradient(transparent, var(--d3-bg))}
.d3__fade--l{top:0;bottom:0;left:0;width:var(--d3-fade-lado);background:linear-gradient(90deg, var(--d3-bg), transparent)}
.d3__fade--r{top:0;bottom:0;right:0;width:var(--d3-fade-lado);background:linear-gradient(270deg, var(--d3-bg), transparent)}

/* celular: 2 colunas, inclinação menor, texto legível */
@media (max-width:719px){
  .d3{
    /* celular: quase reto (legível), 2 colunas inteiras dentro da margem */
    --d3-card-w:min(calc(50vw - 26px), 172px);--d3-gap:.75rem;--d3-altura:600px;--d3-fade-lado:0%;
    --d3-inclina:rotateX(9deg);
  }
  .d3__cena{perspective:900px}
  .d3__card{padding:13px 12px 15px}
  .d3__topo{gap:8px}
  .d3__avatar{width:30px;height:30px;font-size:13px}
  .d3__nome{font-size:14px}
  .d3__meta{font-size:11px}
  .d3__texto{font-size:14px;line-height:1.45}
}

@media (prefers-reduced-motion:reduce){
  .d3__copia{animation:none}
}

/* =================== tablet+ =================== */
@media (min-width:720px){
  .caso{flex-basis:62%}
  .espaco__grade{grid-template-columns:repeat(6,1fr);gap:16px}
  .eg--fachada{grid-column:1/5;grid-row:1;aspect-ratio:1400/801}
  .eg--recepcao{grid-column:5/7;grid-row:1;aspect-ratio:auto}
  .fatos{grid-template-columns:repeat(4,1fr)}
  .sobre .fatos{grid-template-columns:repeat(2,1fr)}
}

/* =================== computador =================== */
@media (min-width:1024px){
  body{font-size:18px}
  .topo{padding:18px var(--gutter)}
  .topo__marca img{width:clamp(300px, 24vw, 340px)}
  .topo__nav{display:flex;gap:30px;font-size:.95rem;font-weight:500}
  .topo__nav a{text-decoration:none;color:var(--cafe);position:relative;padding:10px 0}
  .topo__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:var(--cobre);transition:right .45s var(--ease)}
  .topo__nav a:hover::after{right:0}
  .topo__cta{display:inline-flex}

  .hero{grid-template-columns:repeat(12,1fr);align-items:center;min-height:100vh;min-height:100svh;padding-top:130px;padding-bottom:80px;gap:0 24px}
  .hero__texto{grid-column:1/7;grid-row:1;position:relative;z-index:2;text-align:left}
  .hero__local{justify-content:flex-start}
  .hero__lead{margin:28px 0 30px}
  .hero__acoes{flex-direction:row;flex-wrap:wrap;gap:14px 26px}
  .hero__acoes .btn{width:auto}
  .hero__colagem{grid-column:7/13;grid-row:1;max-width:none;aspect-ratio:4/4.7}
  .hero__colagem{order:0}
  .hero__titulo{font-size:clamp(3.6rem, 5.4vw, 6.6rem);line-height:.94;letter-spacing:-.04em}
  .hero__titulo .l{white-space:nowrap}
  .selo{width:26%;left:4%;top:4%}
  .hero__lead{font-size:1.2rem}

  .sobre{grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:center}
  .sobre__fotos{grid-column:1/7;padding-right:16%}
  .sobre__texto{grid-column:7/13}

  .trat{padding-left:var(--gutter);padding-right:var(--gutter)}
  .trat__cabeca{grid-template-columns:repeat(12,1fr);align-items:end;margin-bottom:72px;text-align:left;justify-items:stretch}
  .trat__cabeca .titulo{grid-column:1/8}
  .trat__sub{grid-column:9/13;margin:0}
  .trat__rodape{text-align:left;margin-top:44px}
  .sv{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:start}
  .sv__lista{grid-column:1/7;display:block;margin:0;padding:0;overflow:visible;border-top:1px solid var(--linha)}
  .sv__item{background:none;border-radius:0;padding:22px 0 24px;text-align:left;border-bottom:1px solid var(--linha);opacity:1!important;transform:none!important}
  .sv__item .sv__nome button{color:#8A7A6E}
  .sv__item:hover .sv__nome button{color:var(--espresso)}
  .sv__foto{display:none}
  .sv__nome{font-size:clamp(2rem, 3.1vw, 3.1rem);margin-bottom:8px}
  .sv__nome button{cursor:pointer;display:flex;width:100%;justify-content:space-between;transition:color .3s ease}
  .sv__nome .ic{display:block;width:30px;height:30px;color:var(--cobre);opacity:0;transform:translateX(-10px);transition:opacity .3s ease, transform .35s var(--ease)}
  .sv__item.ativo .sv__nome button{color:var(--cobre-escuro)}
  .sv__item.ativo .sv__nome .ic{opacity:1;transform:none}
  .sv__item p{margin:0;max-width:44ch}
  .sv__palco{
    display:block;grid-column:7/13;position:sticky;top:max(96px, calc(50vh - 260px));aspect-ratio:5/4;
    border-radius:28px;overflow:hidden;background:var(--areia);
    box-shadow:0 40px 80px -40px rgba(34,24,18,.45);
  }
  .sv__quadro{position:absolute;inset:0;margin:0;overflow:hidden;clip-path:inset(100% 0 0 0);transition:clip-path 1.25s cubic-bezier(.65,.05,.25,1);z-index:1}
  .sv__quadro.ativo{clip-path:inset(0 0 0 0);z-index:3}
  .sv__quadro.saindo{clip-path:inset(0 0 0 0);z-index:2}
  .sv__quadro img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);transform-origin:var(--kb-o, 50% 50%)}
  .sv.vivo .sv__quadro.ativo img,.sv.vivo .sv__quadro.saindo img{animation:kb 11s cubic-bezier(.45,.05,.55,.95) both}


  .sv__quadro figcaption{position:absolute;left:18px;bottom:18px;font-size:.88rem;font-weight:500;color:var(--marfim);background:rgba(34,24,18,.55);padding:7px 14px;border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  .sv__ctrl{display:none}

  .casos__cabeca{grid-template-columns:repeat(12,1fr);align-items:end;gap:24px}
  .casos__cabeca > div{grid-column:1/8}
  .casos__sub{grid-column:9/13;margin:0}
  .casos__trilho{overflow:visible;scroll-snap-type:none}
  .caso{flex:0 0 44vw}
  .casos__pe{grid-template-columns:auto 1fr;align-items:center;gap:40px;margin-top:36px}
  .casos__pe .btn{order:-1}
  .casos{padding-top:120px;padding-bottom:90px}

  .consulta__corpo{display:grid;grid-template-columns:repeat(12,1fr);gap:24px}
  .consulta__visual{display:block;grid-column:1/6;position:sticky;top:12vh;height:76vh;border-radius:999px 999px 28px 28px;overflow:hidden;background:var(--areia)}
  .cv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease)}
  .cv.ativo{clip-path:inset(0 0 0 0)}
  .cv:nth-child(3){object-position:50% 30%}
  .consulta__num{position:absolute;right:22px;bottom:20px;z-index:2;font-family:var(--serif);color:var(--marfim);font-size:1.3rem;background:rgba(34,24,18,.5);padding:6px 16px;border-radius:999px;backdrop-filter:blur(6px)}
  .passos{grid-column:7/13;gap:0}
  .passo{min-height:58vh;display:flex;flex-direction:column;justify-content:center;padding:6vh 0}
  .passo h3,.passo__n{transition:color .6s var(--ease)}
  .passo:not(.ativo) h3{color:#8A7A6E}
  .passo:not(.ativo) .passo__n{color:var(--areia)}

  .passo__foto{display:none}
  .passo__n{font-size:7rem}

  .depo{display:grid;grid-template-columns:repeat(12,1fr);gap:0 24px;align-items:center}
  .depo__cabeca{grid-column:1/5;margin:0;text-align:left;justify-items:start;max-width:none}
  .depo__nota{flex-direction:row;align-items:flex-end;gap:16px;text-align:left}
  .depo .d3{grid-column:5/13;margin:0 calc(-1 * var(--gutter)) 0 0;--d3-altura:min(78vh, 760px)}

  .espaco__cabeca{grid-template-columns:repeat(12,1fr);align-items:end}
  .espaco__cabeca .rotulo{grid-column:1/-1}
  .espaco__cabeca .titulo{grid-column:1/8;max-width:16ch}
  .espaco__cabeca > p:last-child{grid-column:9/13;margin:0}
  .eg:hover img{transform:scale(1.03)}

  .faq{grid-template-columns:repeat(12,1fr);gap:24px}
  .faq__cabeca{grid-column:1/5;position:sticky;top:120px}
  .faq__lista{grid-column:6/13}

  .local{grid-template-columns:repeat(12,1fr);gap:24px;align-items:stretch}
  .local__info{grid-column:1/6}
  .local__mapa{grid-column:7/13}

  .rodape{grid-template-columns:1.4fr 1fr 1fr;padding-bottom:56px;align-items:start}
  .rodape__legal,.rodape__previa{grid-column:1/-1}

  .barra{display:none}
  .flutua{
    position:fixed;right:24px;bottom:24px;z-index:60;display:flex;align-items:center;gap:10px;
    transform:translateY(180%);opacity:0;transition:transform .6s var(--ease), opacity .4s;
  }
  .flutua.visivel{transform:none;opacity:1}
  .flutua__agendar{min-height:56px;padding:0 26px;border-radius:999px;background:var(--cobre);color:#fff;text-decoration:none;font-weight:500;display:flex;align-items:center;box-shadow:0 18px 40px -16px rgba(34,24,18,.6);transition:background-color .25s ease, transform .25s ease}
  .flutua__agendar:hover{background:var(--cobre-escuro);transform:translateY(-1px)}
  .flutua__wa{width:56px;height:56px;border-radius:50%;background:var(--espresso);display:grid;place-items:center;box-shadow:0 18px 40px -16px rgba(34,24,18,.6);transition:transform .25s ease, background-color .25s ease}
  .flutua__wa:hover{transform:translateY(-1px);background:var(--cafe)}
  .flutua__wa svg{width:26px;height:26px;fill:#25D366}
}

@media (min-width:1440px){
  .caso{flex-basis:40vw}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .cv{clip-path:none}
}
/* sem animação, os casos não ficam fixos: o trilho rola para o lado */
@media (prefers-reduced-motion:reduce) and (min-width:1024px){
  .casos__trilho{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:12px}
}
