/* TAGBLE: checkout em 3 passos (mesma identidade da página de vendas) */
:root{
  --bg:#f4faf6; --card:#fff; --bg-3:#dff5ea;
  --ink:#07140f; --muted:#45574e; --dim:#6c7d74;
  --line:rgba(7,20,15,.1); --line-2:rgba(7,20,15,.2);
  --green:#00c389; --green-d:#00875f; --green-ink:#02261a; --green-soft:#dcf8ec;
  --violet:#6a3dff; --violet-soft:#eee9ff; --red:#d43a1c; --red-soft:#ffe9e3; --amber:#a86200; --amber-soft:#fff1d2;
  --wa-dark:#0a7d5a;
  --sh:0 26px 60px -34px rgba(5,42,31,.45); --sh-cta:0 16px 34px -14px rgba(0,135,95,.8);
  --fh:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --fb:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.2,.75,.2,1); --spring:cubic-bezier(.3,1.5,.5,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;scroll-padding-top:80px}
body{font-family:var(--fb);background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100dvh}
body::before{content:'';position:fixed;z-index:-1;left:50%;top:-55vmax;width:130vmax;aspect-ratio:1;margin-left:-65vmax;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 58px,rgba(0,135,95,.09) 58px 59px);mask-image:radial-gradient(closest-side,#000 25%,transparent 80%);-webkit-mask-image:radial-gradient(closest-side,#000 25%,transparent 80%)}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
h1,h2,h3{font-family:var(--fh);letter-spacing:-.03em;line-height:1.15}
:focus-visible{outline:2.5px solid var(--violet);outline-offset:2px;border-radius:8px}
.ico{width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ico-fill{fill:currentColor;stroke:none}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.wrap{max-width:1080px;margin-inline:auto;padding-inline:clamp(.9rem,3.5vw,1.6rem)}

/* Topo */
.top{position:sticky;top:0;z-index:50;background:rgba(244,250,246,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:.8rem;height:60px}
.brand{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--fh);font-weight:800;font-size:1.2rem;letter-spacing:-.04em}
.brand svg{width:28px;height:28px}
.brand b{color:var(--green-d)}
.top-r{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600}
.secure{display:inline-flex;align-items:center;gap:.35rem;color:var(--green-d);background:var(--green-soft);border-radius:999px;padding:.35rem .75rem}
.help{display:inline-flex;align-items:center;gap:.35rem;color:var(--wa-dark);border:1.5px solid rgba(10,125,90,.3);background:#fff;border-radius:999px;padding:.32rem .75rem}

/* Passos */
.stepper{display:flex;align-items:center;gap:.5rem;padding:1.1rem 0 1rem;list-style:none;font-family:var(--fh);font-size:.8rem;font-weight:600;color:var(--dim)}
.stepper li{display:flex;align-items:center;gap:.5rem;flex:1;white-space:nowrap}
.stepper li:last-child{flex:none}
.stepper i{font-style:normal;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#fff;border:1.5px solid var(--line-2);font-size:.78rem;transition:background .3s,color .3s,border-color .3s,transform .4s var(--spring)}
.stepper li::after{content:'';flex:1;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--green) 50%,var(--line) 50%);background-size:200% 100%;background-position:100% 0;transition:background-position .6s var(--ease)}
.stepper li:last-child::after{display:none}
.stepper .on{color:var(--ink)}
.stepper .on i{background:var(--ink);color:#7ff0c9;border-color:var(--ink);transform:scale(1.1)}
.stepper .ok{color:var(--green-d)}
.stepper .ok i{background:var(--green);color:var(--green-ink);border-color:var(--green)}
.stepper .ok::after{background-position:0 0}
.stepper span{display:none}
@media(min-width:560px){.stepper span{display:inline}}
.stepper .on span{display:inline}

.grid{display:grid;gap:1rem;align-items:start;padding-bottom:3rem}
@media(min-width:900px){.grid{grid-template-columns:1.25fr .75fr;gap:1.5rem}.side{position:sticky;top:76px}}
.h1{font-size:clamp(1.35rem,3.6vw,1.8rem);font-weight:800;margin-bottom:.9rem}

/* Cartões */
.box{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:clamp(1rem,3vw,1.5rem);box-shadow:var(--sh)}
.box+.box{margin-top:.8rem}

/* Quantidade */
.qty{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.qcard{position:relative;text-align:left;background:#fff;border:2px solid var(--line-2);border-radius:18px;padding:.9rem .9rem .8rem;transition:border-color .2s,transform .35s var(--spring),box-shadow .25s,background .2s}
.qcard:hover{transform:translateY(-2px)}
.qcard b{display:block;font-family:var(--fh);font-size:1rem}
.qcard strong{display:block;font-family:var(--fh);font-weight:800;font-size:1.3rem;letter-spacing:-.04em;margin:.15rem 0}
.qcard small{display:inline-block;font-size:.76rem;font-weight:700;border-radius:999px;padding:.12rem .55rem;background:var(--amber-soft);color:var(--amber)}
.qcard small.g{background:var(--green-soft);color:var(--green-d)}
.qcard .tick{position:absolute;right:.7rem;top:.7rem;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;border:2px solid var(--line-2);color:transparent;transition:.2s}
.qcard .tick .ico{width:12px;height:12px;stroke-width:3.5}
.qcard.on{border-color:var(--green-d);background:#f3fdf8;box-shadow:0 0 0 4px rgba(0,195,137,.16)}
.qcard.on .tick{background:var(--green);border-color:var(--green);color:var(--green-ink)}
.qcard .flag{position:absolute;left:.8rem;top:-.65rem;background:var(--ink);color:#7ff0c9;font-family:var(--fh);font-size:.62rem;font-weight:700;letter-spacing:.07em;border-radius:999px;padding:.18rem .6rem}
.more{display:none;align-items:center;justify-content:space-between;gap:1rem;margin-top:.7rem;padding:.6rem .8rem;border-radius:14px;background:var(--bg);font-size:.9rem;font-weight:600}
.more.on{display:flex}
.stp{display:flex;align-items:center;gap:.7rem}
.stp button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line-2);background:#fff;font-size:1.15rem;line-height:1}
.stp b{font-family:var(--fh);min-width:1.4rem;text-align:center}

/* Etapas do formulário */
.step-h{display:flex;align-items:center;gap:.7rem}
.step-h .n{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--bg-3);color:var(--green-d);font-family:var(--fh);font-weight:800;font-size:.85rem;transition:.3s}
.step-h h2{font-size:1.08rem;flex:1}
.step-h .edit{display:none;border:0;background:none;color:var(--violet);font-weight:700;font-size:.85rem;text-decoration:underline;text-underline-offset:3px}
.step .done{display:none;margin:.45rem 0 0 2.6rem;font-size:.88rem;color:var(--muted);word-break:break-word}
.step .body{display:none;padding-top:1rem}
.step.is-active .body{display:block;animation:in .45s var(--ease)}
.step.is-active .n{background:var(--ink);color:#7ff0c9}
.step.is-done .n{background:var(--green);color:var(--green-ink)}
.step.is-done .edit{display:inline}
.step.is-done .done{display:block}
.step.is-locked{opacity:.55;box-shadow:none}
@keyframes in{from{opacity:0;transform:translateY(10px)}}

.fg{margin-bottom:.8rem}
.fg label{display:block;font-size:.8rem;font-weight:700;color:var(--muted);margin-bottom:.3rem}
.fg label em{font-style:normal;font-weight:500;color:var(--dim)}
.fg input{width:100%;height:52px;padding:0 1rem;border:1.5px solid var(--line-2);border-radius:14px;background:#fff;font-size:1rem;outline:none;transition:border-color .2s,box-shadow .2s}
.fg input:focus{border-color:var(--green-d);box-shadow:0 0 0 4px var(--green-soft)}
.fg input.bad{border-color:var(--red);box-shadow:0 0 0 4px var(--red-soft)}
.fg input.good{border-color:var(--green-d)}
.fg input[readonly]{background:var(--bg);color:var(--muted)}
.fg .err{display:none;font-size:.8rem;color:var(--red);font-weight:600;margin-top:.3rem}
.fg.has-err .err{display:block}
.fg .hint{font-size:.78rem;color:var(--dim);margin-top:.3rem}
.fr{display:grid;gap:0 .7rem}
@media(min-width:520px){.fr{grid-template-columns:1fr 1fr}.fr.n3{grid-template-columns:1fr 2fr}.fr.uf{grid-template-columns:1fr 90px}}
.cep-row{position:relative}
.cep-row .spin{position:absolute;right:1rem;top:16px;display:none}
.cep-row.loading .spin{display:block}
#addr{display:none}
#addr.on{display:block;animation:in .45s var(--ease)}

.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;width:100%;min-height:56px;padding:.9rem 1.4rem;border:1.5px solid transparent;border-radius:999px;font-family:var(--fh);font-weight:700;font-size:1.02rem;letter-spacing:-.015em;overflow:hidden;transition:transform .3s var(--spring),box-shadow .3s,opacity .2s}
.btn-buy{background:linear-gradient(180deg,#19e0a2,var(--green));color:var(--green-ink);box-shadow:var(--sh-cta)}
.btn-buy::before{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%);transform:translateX(-120%);animation:shine 4.5s ease-in-out infinite}
.btn-buy:hover{transform:translateY(-2px)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{transform:translateY(-2px)}
.btn-ghost{background:#fff;border-color:var(--line-2);color:var(--ink)}
.btn-wa{background:#fff;border-color:rgba(10,125,90,.35);color:var(--wa-dark)}
.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}
.btn+.btn{margin-top:.6rem}
@keyframes shine{0%,60%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}
.spin{width:20px;height:20px;border:2.5px solid rgba(2,38,26,.2);border-top-color:var(--green-d);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Pagamento */
.pays{display:grid;gap:.55rem;margin-bottom:1rem}
.pay{display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;background:#fff;border:2px solid var(--line-2);border-radius:16px;padding:.85rem .95rem;transition:border-color .2s,background .2s,box-shadow .2s,transform .3s var(--spring)}
.pay:hover{transform:translateY(-2px)}
.pay .pi{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:13px;background:var(--bg-3);color:var(--green-d)}
.pay .pi .ico{width:22px;height:22px}
.pay b{display:block;font-family:var(--fh);font-size:1rem}
.pay small{display:block;font-size:.82rem;color:var(--muted)}
.pay .tag{margin-left:auto;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--green-soft);color:var(--green-d);border-radius:999px;padding:.16rem .55rem;white-space:nowrap}
.pay.on{border-color:var(--green-d);background:#f3fdf8;box-shadow:0 0 0 4px rgba(0,195,137,.16)}
.pay.on .pi{background:var(--ink);color:#7ff0c9}
.legal{font-size:.76rem;color:var(--dim);text-align:center;margin-top:.8rem}
.legal a{text-decoration:underline}
.alert{display:none;margin-top:.8rem;background:var(--red-soft);border:1px solid rgba(212,58,28,.3);color:#8f2410;border-radius:14px;padding:.8rem 1rem;font-size:.9rem}
.alert.on{display:block;animation:in .4s var(--ease)}
.alert b{display:block;margin-bottom:.2rem}

/* Resumo */
.prod{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem}
.prod-img{position:relative;flex:none;width:84px;height:84px;border-radius:24px;background:radial-gradient(circle,#cbf5e2,#eef8f3);display:grid;place-items:center;overflow:hidden}
.prod-img::before{content:'';position:absolute;inset:34%;border-radius:50%;border:1.5px solid rgba(0,135,95,.45);animation:ping 3.6s ease-out infinite}
.prod-img img{position:relative;width:78%;filter:drop-shadow(0 8px 8px rgba(5,42,31,.35))}
@keyframes ping{0%{transform:scale(.8);opacity:.8}100%{transform:scale(2.6);opacity:0}}
.prod b{display:block;font-family:var(--fh);font-size:1.05rem}
.prod span{font-size:.85rem;color:var(--muted)}
.lines{border-top:1px solid var(--line)}
.lines li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line);font-size:.93rem;list-style:none}
.lines li span:last-child{font-weight:700;white-space:nowrap;text-align:right}
.lines s{color:var(--dim);font-weight:400;margin-right:.35rem}
.lines .free{color:var(--green-d)}
.total{display:flex;justify-content:space-between;align-items:baseline;padding-top:.8rem;font-family:var(--fh);font-weight:700}
.total b{font-weight:800;font-size:1.7rem;letter-spacing:-.04em;transition:transform .3s var(--spring)}
.total b.bump{transform:scale(1.12)}
.save{margin-top:.5rem;font-size:.84rem;font-weight:600;color:var(--green-d);background:var(--green-soft);border-radius:12px;padding:.5rem .75rem}
.perks{display:grid;gap:.55rem;list-style:none}
.perks li{display:flex;gap:.6rem;align-items:flex-start;font-size:.86rem;color:var(--muted)}
.perks .ico{color:var(--green-d);margin-top:.15rem}
.perks b{color:var(--ink)}

/* Resultado (PIX, link, obrigado) */
.res{text-align:center}
.res h2{font-size:1.4rem;font-weight:800;margin-bottom:.4rem}
.res>p{color:var(--muted);margin-bottom:1rem}
.res .big{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--green-soft);color:var(--green-d);margin:0 auto 1rem;animation:popin .6s var(--spring)}
.res .big .ico{width:30px;height:30px;stroke-width:3}
@keyframes popin{from{transform:scale(.3);opacity:0}}
.timer{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:700;color:var(--amber);background:var(--amber-soft);border-radius:999px;padding:.35rem .9rem;margin-bottom:1rem}
.qr{display:inline-block;background:#fff;border:1px solid var(--line-2);border-radius:20px;padding:.8rem;margin-bottom:.9rem}
.qr img{width:210px;height:210px}
.code{font-size:.72rem;word-break:break-all;text-align:left;background:var(--bg);border:1px dashed var(--line-2);border-radius:12px;padding:.6rem .7rem;max-height:62px;overflow:auto;margin-bottom:.8rem;color:var(--muted)}
.how{text-align:left;font-size:.9rem;color:var(--muted);margin:1rem 0 0;padding-left:1.2rem}
.how li{margin-bottom:.25rem}
.status{font-size:.86rem;color:var(--dim);margin-top:.7rem;display:flex;align-items:center;justify-content:center;gap:.5rem}
.status.warn{color:var(--amber);font-weight:600}
.mini{border:1px solid var(--line);border-radius:16px;margin:1rem 0;text-align:left}
.mini div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .9rem;border-bottom:1px solid var(--line);font-size:.92rem}
.mini div:last-child{border:0;font-family:var(--fh);font-weight:800;background:var(--bg);border-radius:0 0 16px 16px}
.fine{font-size:.78rem;color:var(--dim);margin-top:.7rem}
[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
