/* Prévia premium (manicure e estética) · JB Nexus Digital · 13/11/2026
   Linguagem do site do Vitor: grão de filme, topo cinematográfico, títulos que entram por palavra. */
:root{--creme:#F7F1EC;--papel:#FFFDFB;--tinta:#221A1C;--tinta-2:#5B4D50;--linha:rgba(34,26,28,.12);
  --f-display:'Fraunces',Georgia,serif;--f-texto:'Hanken Grotesk',system-ui,sans-serif;--raio:22px;--wrap:1180px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--creme);color:var(--tinta);font:400 17px/1.6 var(--f-texto);overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(var(--wrap),100% - 40px);margin-inline:auto}
.estreito{width:min(820px,100% - 40px)}
em{font-style:italic;color:var(--forte)}
h1,h2,h3{font-family:var(--f-display);font-weight:400;letter-spacing:-.02em;line-height:1.05}
.grao{position:fixed;inset:-50%;z-index:60;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grao 1.2s steps(6) infinite}
@keyframes grao{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}100%{transform:translate(1%,3%)}}
.previa{background:var(--tinta);color:#F7F1EC;font-size:13px;text-align:center;padding:8px 14px;position:relative;z-index:51}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font:600 15px/1 var(--f-texto);text-decoration:none;transition:transform .25s,background .25s,color .25s,box-shadow .25s;white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn-cheio{background:var(--forte);color:var(--forte-txt);box-shadow:0 10px 30px -12px var(--forte)}
.btn-cheio:hover{transform:translateY(-2px)}
.btn-linha{border:1px solid currentColor;color:var(--tinta)}
.btn-linha:hover{background:var(--tinta);color:var(--creme)}

/* topo */
.topo{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--creme) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--linha)}
.topo .wrap{display:flex;align-items:center;gap:28px;min-height:74px}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0;margin-right:auto}
.logo-selo{display:grid;place-items:center;background:#fff;border-radius:14px;padding:5px 8px;box-shadow:0 2px 10px rgba(34,26,28,.08)}
.logo-selo img{height:46px;width:auto;max-width:170px;object-fit:contain}
.mono-letra{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--forte);color:var(--forte-txt);font:400 24px/1 var(--f-display)}
.marca-nome{font:500 21px/1.1 var(--f-display);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu{display:flex;gap:26px}
.menu a{text-decoration:none;font-size:15px;color:var(--tinta-2);position:relative}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--forte);transform:scaleX(0);transition:transform .3s}
.menu a:hover::after{transform:scaleX(1)}
.btn-topo{min-height:44px;padding:0 20px}

/* hero */
.hero{position:relative;min-height:min(92svh,860px);display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);animation:kb 18s ease-out forwards}
@keyframes kb{to{transform:scale(1)}}
.hero-veu{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,16,18,.78) 0%,rgba(24,16,18,.45) 45%,rgba(24,16,18,.05) 80%),linear-gradient(0deg,rgba(24,16,18,.55),transparent 45%)}
.hero-txt{position:relative;padding:120px 0 90px}
.sobrancelha-txt{font-size:13px;letter-spacing:.22em;text-transform:uppercase;opacity:.85;margin-bottom:22px}
.hero h1{font-size:clamp(46px,7.4vw,104px);font-weight:300;max-width:12ch}
.hero h1 em{color:#fff;font-weight:300}
.linha{display:block}
.pal{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.08em}
.pal>span{display:inline-block}
.js .pal>span{transform:translateY(105%);animation:sobe-pal .9s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i)*90ms + var(--l,0ms) + 250ms)}
.linha:nth-child(2){--l:220ms}.linha:nth-child(3){--l:440ms}
@keyframes sobe-pal{to{transform:none}}
.hero-sub{max-width:46ch;font-size:clamp(17px,1.5vw,19px);opacity:.92;margin:26px 0 34px}
.hero-acoes{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.nota-chip{display:inline-flex;align-items:center;gap:10px;text-decoration:none;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:10px 18px;font-size:14px}
.nota-chip b{font:500 20px/1 var(--f-display)}
.estrelas{display:inline-flex;gap:2px;color:#F2C46D}
.estrelas svg{width:14px;height:14px}
.role{position:absolute;right:max(20px,4vw);bottom:34px;width:1px;height:70px;background:rgba(255,255,255,.3);overflow:hidden}
.role span{position:absolute;inset:0;background:#fff;animation:role 2.2s ease-in-out infinite}
@keyframes role{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}

/* faixa */
.faixa{background:var(--forte);color:var(--forte-txt);overflow:hidden;padding:18px 0}
.faixa-trilho{display:flex;gap:28px;width:max-content;animation:faixa 40s linear infinite;font:italic 300 26px/1 var(--f-display);align-items:center}
.faixa-trilho i{font-style:normal;font-size:14px;opacity:.7}
@keyframes faixa{to{transform:translateX(-50%)}}

/* manifesto */
.manifesto{padding:clamp(90px,12vw,170px) 0;text-align:center;background:var(--papel)}
.manifesto h2{font-size:clamp(38px,5.6vw,78px);font-weight:300;max-width:16ch;margin:0 auto}
.manifesto p{max-width:52ch;margin:28px auto 0;color:var(--tinta-2);font-size:18px}

/* seções */
.secao{padding:clamp(80px,9vw,130px) 0}
.cab{margin-bottom:48px;max-width:760px}
.rotulo{display:inline-block;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--forte);margin-bottom:16px}
.cab h2{font-size:clamp(34px,4.4vw,58px);font-weight:300}
.cab-txt{color:var(--tinta-2);margin-top:14px}

.servs{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.serv{background:var(--papel);border-radius:var(--raio);overflow:hidden;border:1px solid var(--linha);display:flex;flex-direction:column;transition:transform .4s,box-shadow .4s}
.serv:hover{transform:translateY(-6px);box-shadow:0 24px 50px -28px rgba(34,26,28,.35)}
.serv-foto{aspect-ratio:4/3;overflow:hidden}
.serv-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.serv:hover .serv-foto img{transform:scale(1.06)}
.serv-corpo{padding:26px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.serv-num{font:italic 300 15px/1 var(--f-display);color:var(--forte)}
.serv h3{font-size:27px}
.serv p{color:var(--tinta-2);font-size:16px;flex:1}
.link-zap{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;color:var(--forte);text-decoration:none;margin-top:6px}
.link-zap svg{width:18px;height:18px;transition:transform .3s}
.link-zap:hover svg{transform:translateX(4px)}

.como{background:var(--suave)}
.passos{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:p}
.passos li{background:var(--papel);border-radius:var(--raio);padding:34px 30px;border:1px solid var(--linha)}
.passo-n{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;border:1px solid var(--forte);color:var(--forte);font:300 24px/1 var(--f-display);margin-bottom:22px}
.passos h3{font-size:26px;margin-bottom:10px}
.passos p{color:var(--tinta-2);font-size:16px}

.galeria{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}
.galeria figure{border-radius:18px;overflow:hidden}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.galeria figure:hover img{transform:scale(1.05)}
.galeria .g0{grid-column:span 2;grid-row:span 2}
.galeria .g3{grid-column:span 2}

.prova .wrap{display:grid;grid-template-columns:.8fr 1.4fr;gap:40px;align-items:start}
.prova-nota{background:var(--tinta);color:var(--creme);border-radius:var(--raio);padding:40px 36px}
.prova-nota b{display:block;font:300 92px/1 var(--f-display)}
.prova-nota .estrelas{margin:10px 0 14px}
.prova-nota .estrelas svg{width:20px;height:20px}
.prova-nota p{opacity:.85;margin-bottom:26px}
.prova-nota .btn-linha{color:var(--creme)}
.prova-nota .btn-linha:hover{background:var(--creme);color:var(--tinta)}
.depos{display:grid;gap:18px}
.depos blockquote{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);padding:28px 30px}
.depos p{font:italic 300 21px/1.45 var(--f-display)}
.depos cite{display:block;margin-top:14px;font-style:normal;font-size:14px;color:var(--tinta-2)}

.onde{background:var(--papel)}
.onde-grade{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end}
.onde h2{font-size:clamp(34px,4.4vw,58px);font-weight:300}
.endereco{display:flex;gap:12px;margin-bottom:22px;color:var(--tinta-2)}
.endereco svg{width:22px;height:22px;flex:none;color:var(--forte);margin-top:3px}

.duvidas details{border-bottom:1px solid var(--linha);padding:22px 0}
.duvidas summary{cursor:pointer;list-style:none;font:400 23px/1.3 var(--f-display);display:flex;justify-content:space-between;gap:20px}
.duvidas summary::-webkit-details-marker{display:none}
.duvidas summary::after{content:"+";font-family:var(--f-texto);color:var(--forte);transition:transform .3s}
.duvidas details[open] summary::after{transform:rotate(45deg)}
.duvidas p{color:var(--tinta-2);margin-top:12px;max-width:64ch}

.final{position:relative;min-height:520px;display:grid;place-items:center;text-align:center;color:#fff;overflow:hidden}
.final img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.final::before{content:"";position:absolute;inset:0;background:rgba(24,16,18,.55);z-index:1}
.final .wrap{position:relative;z-index:2}
.final h2{font-size:clamp(40px,6vw,82px);font-weight:300;margin-bottom:34px}
.final h2 em{color:#fff}

.rodape{background:var(--tinta);color:rgba(247,241,236,.78);padding:56px 0 110px;font-size:15px}
.rodape .wrap{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px}
.rodape strong{display:block;font:400 24px/1.2 var(--f-display);color:#fff;margin-bottom:6px}
.rodape a{color:#fff}
.credito{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:22px;font-size:13px;opacity:.7}

.zap-fixo{position:fixed;left:0;right:0;bottom:0;z-index:55;padding:12px 16px calc(12px + env(safe-area-inset-bottom));display:none;background:linear-gradient(0deg,var(--creme) 60%,transparent)}
.zap-fixo .btn{width:100%}

/* entrada ao rolar */
.js .sobe{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.8,.2,1) var(--d,0ms),transform .9s cubic-bezier(.2,.8,.2,1) var(--d,0ms)}
.js .sobe.visto{opacity:1;transform:none}

@media (max-width:980px){
  .menu{display:none}
  .servs,.passos{grid-template-columns:1fr 1fr}
  .prova .wrap,.onde-grade{grid-template-columns:1fr}
  .galeria{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
  .galeria .g3{grid-column:auto}
}
@media (max-width:640px){
  body{font-size:16px}
  .topo .wrap{min-height:64px;gap:12px}
  .btn-topo span{display:none}
  .btn-topo{width:44px;padding:0}
  .logo-selo img{height:38px;max-width:130px}
  .marca-nome{font-size:18px}
  .hero{min-height:88svh}
  .hero-txt{padding:90px 0 70px}
  .hero-veu{background:linear-gradient(0deg,rgba(24,16,18,.85) 0%,rgba(24,16,18,.5) 55%,rgba(24,16,18,.2) 100%)}
  .hero-acoes .btn{width:100%}
  .servs,.passos{grid-template-columns:1fr}
  .faixa-trilho{font-size:21px}
  .rodape .wrap{grid-template-columns:1fr}
  .zap-fixo{display:block;transform:translateY(110%);transition:transform .35s}
  .zap-fixo.mostra,html:not(.js) .zap-fixo{transform:none}
  .btn{white-space:normal;text-align:center;line-height:1.25;padding:12px 22px}
  .final .btn{max-width:100%}
  .role{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .pal>span,.js .sobe{transform:none;opacity:1}
}
