/* Página de venda do reprecificador (comprar.html). Herda tudo do estilo.css;
   aqui só o que é desta página. */

.topo__cta{flex-shrink:0;font-size:1.02rem;font-weight:700;color:#fff;background:var(--verde);
           text-decoration:none;padding:13px 26px;border-radius:99px;transition:background .15s;box-shadow:0 8px 20px -10px rgba(28,168,0,.7)}
.topo__cta:hover{background:#178f00}
h2 span{color:var(--verde)}

/* ── herói ── */
.v-heroi{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);
         align-items:center;padding-block:clamp(36px,6vw,72px)}
.v-heroi h1{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800;margin:12px 0 16px;max-width:16ch}
.v-heroi h1 span{color:var(--verde)}
.v-heroi__sub{color:var(--tinta-2);font-size:1.05rem;max-width:46ch}
.preco{display:flex;align-items:center;gap:16px;margin:26px 0 18px;padding-top:20px;border-top:1px solid var(--borda)}
.preco__rot{font-size:.85rem;font-weight:600;line-height:1.3;color:var(--tinta-2)}
.preco__valor{font-size:3.4rem;font-weight:800;line-height:1;letter-spacing:-.03em}
.preco__valor small{font-size:1.3rem;font-weight:700;margin-right:4px;vertical-align:.9em}
.v-botao{max-width:320px;font-size:1.05rem}
.micro{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.85rem;color:var(--tinta-2)}
.micro li{display:flex;align-items:center;gap:6px}
.micro li::before{content:"";width:14px;height:14px;border-radius:50%;flex-shrink:0;
  background:var(--verde) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.6 6.2l2.2 2.2 4.6-4.8' fill='none' stroke='white' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/10px no-repeat}

/* ── a tela: janela de navegador com o print, que inclina seguindo o mouse ──
   O comprar.js escreve --rx/--ry (inclinação) e --mx/--my (onde bate o brilho). */
.palco{position:relative;perspective:1400px}
.tela{--rx:0deg;--ry:0deg;--mx:50%;--my:30%;
      position:relative;margin:0;border-radius:14px;overflow:hidden;background:#fff;
      border:1px solid var(--borda);
      box-shadow:0 2px 4px rgba(26,26,26,.04),0 30px 70px -30px rgba(26,26,26,.45);
      transform:rotateX(var(--rx)) rotateY(var(--ry));transform-style:preserve-3d;
      transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;
      animation:flutua 6s ease-in-out infinite}
.palco.mexendo .tela{transition:transform .08s linear;animation-play-state:paused;
      box-shadow:0 2px 4px rgba(26,26,26,.04),0 40px 80px -30px rgba(26,26,26,.5)}
.tela__barra{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--superficie);border-bottom:1px solid var(--borda)}
.tela__barra i{width:10px;height:10px;border-radius:50%;background:#dfe3dc}
.tela__barra i:first-child{background:#ff6159}.tela__barra i:nth-child(2){background:#ffbd2e}.tela__barra i:nth-child(3){background:#28c941}
.tela__url{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;margin-left:10px;
           font-size:.72rem;font-weight:500;color:var(--tinta-2);background:#fff;border:1px solid var(--borda);
           border-radius:8px;padding:4px 10px;max-width:280px;margin-inline:auto}
.tela__url svg{width:11px;height:11px;fill:none;stroke:var(--verde);stroke-width:2.4}
/* largura manda, altura acompanha: sem isso a imagem espremia (08/10) */
.tela img{width:100%;height:auto}
.tela__brilho{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
              background:radial-gradient(circle at var(--mx) var(--my),rgba(255,255,255,.45),transparent 45%)}
.palco.mexendo .tela__brilho{opacity:1}
/* o resultado "salta" da tela, um pouco à frente dela */
.selo-flut{position:absolute;right:-14px;bottom:-22px;display:flex;flex-direction:column;gap:2px;
           background:#fff;border:1.5px solid var(--verde);border-radius:14px;padding:12px 16px;
           box-shadow:0 18px 40px -18px rgba(26,26,26,.4);
           transform:translate3d(calc(var(--ry,0deg) * -1.4px / 1deg),calc(var(--rx,0deg) * 1.4px / 1deg),0);
           transition:transform .5s cubic-bezier(.2,.8,.2,1);animation:flutua 6s ease-in-out -3s infinite}
.selo-flut span{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--verde-2)}
.selo-flut b{font-size:1.35rem;font-weight:800;letter-spacing:-.02em}
.selo-flut em{font-style:normal;font-size:.75rem;color:var(--tinta-2)}
@keyframes flutua{0%,100%{translate:0 0}50%{translate:0 -6px}}

/* ── prova ── */
.prova{background:var(--tinta);color:#fff}
.prova__linha{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-block:22px;text-align:center}
.prova b{display:block;font-size:1.6rem;font-weight:800;letter-spacing:-.02em;color:#5fd93f}
.prova span{font-size:.85rem;color:#c9ccc6}

/* ── problema ── */
.problema{padding-block:clamp(44px,6vw,72px)}
.problema__grade{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(20px,5vw,64px);align-items:start}
.problema h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;margin-top:10px;max-width:18ch}
.problema__texto{border-left:3px solid var(--verde);padding-left:22px}
.problema__texto p{color:var(--tinta-2);font-size:1.02rem;margin-bottom:14px}
.problema__texto p:last-child{margin-bottom:0}

/* ── como funciona ── */
.passos-v{background:var(--superficie);border-block:1px solid var(--borda);padding-block:clamp(44px,6vw,72px)}
.passos-v h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;margin:10px 0 30px}
.trilha{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;counter-reset:x}
.trilha li{position:relative;background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:24px}
.trilha li:not(:last-child)::after{content:"";position:absolute;top:44px;right:-18px;width:18px;height:2px;background:var(--verde)}
.trilha__n{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--verde);color:#fff;font-weight:800;margin-bottom:16px}
.trilha h3{font-size:1.08rem;font-weight:700;margin-bottom:6px}
.trilha p{color:var(--tinta-2);font-size:.94rem}

/* ── oferta + formulário (o .lead vem do estilo.css) ── */
#quero{padding-block:clamp(44px,6vw,72px);scroll-margin-top:16px}
.oferta h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;margin:10px 0 22px}
.form__como{font-size:.9rem;color:var(--tinta-2);margin:-8px 0 18px}
.botao--zap{background:#1fa855}

/* ── dúvidas ── */
.duvidas{max-width:760px;padding-bottom:clamp(44px,6vw,72px)}
.duvidas h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;margin:10px 0 18px}
.duvidas details{border-bottom:1px solid var(--borda)}
.duvidas summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 0;font-weight:600}
.duvidas summary::-webkit-details-marker{display:none}
.duvidas summary::after{content:"+";font-size:1.3rem;line-height:1;color:var(--verde);transition:transform .2s}
.duvidas details[open] summary::after{transform:rotate(45deg)}
.duvidas details p{color:var(--tinta-2);padding-bottom:16px;max-width:62ch}

/* ── barra fixa do celular ── */
.barra-cel{display:none}

@media (max-width:820px){
  .v-heroi,.problema__grade{grid-template-columns:1fr}
  .trilha{grid-template-columns:1fr}
  .trilha li:not(:last-child)::after{top:auto;bottom:-18px;left:44px;right:auto;width:2px;height:18px}
  .selo-flut{right:8px;bottom:-18px}
  .palco{margin-bottom:12px}
}
@media (max-width:600px){
  .prova__linha{grid-template-columns:1fr;gap:10px;text-align:left}
  .prova__linha div{display:flex;align-items:baseline;gap:10px}
  .barra-cel{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:20;align-items:center;justify-content:space-between;
             gap:10px;background:var(--tinta);color:#fff;text-decoration:none;border-radius:14px;padding:10px 10px 10px 16px;
             box-shadow:0 12px 30px -10px rgba(0,0,0,.5);transition:transform .3s,opacity .3s}
  .barra-cel span{font-size:.82rem;font-weight:600}
  .barra-cel b{background:var(--verde);border-radius:10px;padding:9px 14px;font-size:.88rem}
  .barra-cel.some{transform:translateY(140%);opacity:0;pointer-events:none}
  .rodape{padding-bottom:96px}
}
@media (max-width:480px){
  .topo__logo{width:82px}.topo__logo-iva{width:92px}.topo__traco{display:none}
  .topo__marcas{gap:10px}
  .topo__cta{padding:11px 15px;font-size:.86rem}
  .v-botao{max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .tela,.selo-flut{animation:none;transition:none}
}

/* ── movimento (08/10): entrada do herói, revelação ao rolar, números que contam ──
   Tudo começa visível; só esconde quando o lp.js marca <html class="anima">
   (sem JS ou com "menos movimento" no sistema, a página fica parada e inteira). */
html{scroll-behavior:smooth}
.topo{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.9);
      backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);transition:box-shadow .3s}
.topo.rolou{box-shadow:0 10px 30px -18px rgba(26,26,26,.35)}
#quero{scroll-margin-top:84px}
.topo__cta{transition:background .15s,transform .2s}
.topo__cta:hover{transform:translateY(-1px)}

/* botão: sobe um pouco no hover e passa um brilho de tempos em tempos */
.botao{position:relative;overflow:hidden;transition:background .15s,transform .2s,box-shadow .2s}
.botao:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(28,168,0,.7)}
.botao:active{transform:translateY(0)}
.v-botao::after,#enviar::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);
  transform:translateX(-120%);animation:reluz 4.5s ease-in-out 1.6s infinite}
@keyframes reluz{0%,70%{transform:translateX(-120%)}100%{transform:translateX(120%)}}

/* entrada do herói, em cascata */
.anima .v-heroi__texto>*{opacity:0;translate:0 18px;animation:sobe .7s cubic-bezier(.2,.8,.2,1) forwards}
.anima .v-heroi__texto>:nth-child(2){animation-delay:.08s}
.anima .v-heroi__texto>:nth-child(3){animation-delay:.16s}
.anima .v-heroi__texto>:nth-child(4){animation-delay:.24s}
.anima .v-heroi__texto>:nth-child(5){animation-delay:.32s}
.anima .v-heroi__texto>:nth-child(6){animation-delay:.4s}
.anima .palco{opacity:0;animation:entraTela 1s cubic-bezier(.2,.8,.2,1) .2s forwards}
.anima .selo-flut{opacity:0;scale:.85;animation:pula .6s cubic-bezier(.3,1.5,.5,1) 1s forwards,flutua 6s ease-in-out -3s infinite}
@keyframes sobe{to{opacity:1;translate:0 0}}
@keyframes entraTela{from{opacity:0;transform:translateY(30px) rotateX(10deg) scale(.96)}to{opacity:1;transform:none}}
@keyframes pula{to{opacity:1;scale:1}}

/* revelação ao rolar: o lp.js põe [data-revela] e depois .visto */
.anima [data-revela]{--atraso:calc(var(--i,0) * 90ms);opacity:0;translate:0 26px;
  transition:opacity .7s cubic-bezier(.2,.8,.2,1) var(--atraso),translate .7s cubic-bezier(.2,.8,.2,1) var(--atraso)}
.anima [data-revela].visto{opacity:1;translate:0 0}

/* problema: a linha verde cresce de cima pra baixo */
.problema__texto{border-left:0;position:relative}
.problema__texto::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px;background:var(--verde);
  transform-origin:top;transition:transform 1s cubic-bezier(.2,.8,.2,1) .2s}
.anima .problema__texto:not(.visto)::before{transform:scaleY(0)}

/* como funciona: cartões sobem no hover, o número gira de leve, o traço entre eles cresce */
.trilha li,.anima .trilha li[data-revela]{transition:transform .25s,box-shadow .25s,border-color .25s,
  opacity .7s cubic-bezier(.2,.8,.2,1) var(--atraso,0s),translate .7s cubic-bezier(.2,.8,.2,1) var(--atraso,0s)}
.trilha li:hover{transform:translateY(-4px);border-color:var(--verde);box-shadow:0 18px 36px -22px rgba(26,26,26,.4)}
.trilha__n{transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.trilha li:hover .trilha__n{transform:rotate(-10deg) scale(1.1)}
.trilha li:not(:last-child)::after{transform-origin:left;transition:transform .5s ease calc(var(--i,0) * 90ms + .5s)}
.anima .trilha li:not(.visto)::after{transform:scaleX(0)}

/* oferta: cada check entra e o ícone dá um "pop" */
.anima .checks li.visto::before{animation:pop .45s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--i,0) * 90ms + .2s)}
@keyframes pop{from{scale:0}to{scale:1}}
.form{transition:box-shadow .3s}
.form:focus-within{box-shadow:0 0 0 4px rgba(28,168,0,.12),0 24px 50px -30px rgba(26,26,26,.4)}

/* obrigado: o check se desenha */
.obrigado:not([hidden]){animation:sobe .5s cubic-bezier(.2,.8,.2,1) both;translate:0 12px;opacity:0}
.obrigado:not([hidden]) svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:risca .6s ease .25s forwards}
@keyframes risca{to{stroke-dashoffset:0}}

/* dúvidas: a resposta desliza ao abrir */
.duvidas summary{transition:color .2s}
.duvidas summary:hover{color:var(--verde-2)}
.duvidas details[open] p{animation:abre .35s ease both}
@keyframes abre{from{opacity:0;translate:0 -6px}to{opacity:1;translate:0 0}}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .botao::after{display:none}
  .botao:hover,.trilha li:hover{transform:none}
}
