/* Checkout Malufy: misma pantalla del prototipo aprobado, a pantalla completa en celular
   y centrada en computadora. Colores fijos de la marca (el checkout no cambia con modo oscuro). */
:root{--display:'Fraunces',Georgia,serif;--body:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color-scheme:light;
  /* Colores de marca: el panel los cambia por oferta. Estos son los originales. */
  --p:#8a5bc4;--p-dark:#6b3fa0;--p-line:#b685e8;--p-soft:#faf5ff;--p-ring:rgba(182,133,232,.18);--p-shadow:rgba(110,60,170,.6);
  --s:#c49bf0;--s-line:#c9a2f2;--s-pulse:#e8f1ff;--bg:#f7f5fa;--bg-out:#ece7f2}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg-out);color:#211a2e;font-family:var(--body);font-size:15px;line-height:1.5;-webkit-text-size-adjust:100%}
[hidden]{display:none!important}
img{max-width:100%;display:block}

.screen{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;background:var(--bg);max-width:480px;margin:0 auto;padding-top:env(safe-area-inset-top,0px)}
@media (min-width:520px){.screen{box-shadow:0 0 40px -10px rgba(40,20,70,.25)}}
.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.co-head{display:flex;justify-content:center;padding:12px 16px 10px;background:#fff;border-bottom:1px solid #ece6f3}
.co-logo{font:700 19px var(--display);color:var(--p-dark);line-height:1;text-align:center;min-height:19px}
.co-logo small{display:block;font:500 8px var(--body);color:#8a8297;letter-spacing:.03em;margin-top:2px}
.co-logo img{max-height:34px;margin:0 auto}
.co-body{padding:12px 12px 20px;display:grid;gap:12px}
.blk{background:#fff;border:1px solid #ece6f3;border-radius:16px;padding:14px 13px}
.blk-h{display:flex;align-items:center;gap:8px;font-weight:800;font-size:14.5px;margin:0 0 12px;color:#211a2e}
.blk-h i{width:22px;height:22px;border-radius:50%;background:var(--p);color:#fff;font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center}
.f{display:grid;gap:4px;margin-bottom:11px;position:relative}
.f:last-child{margin-bottom:0}
.f label{font-size:11.5px;font-weight:700;color:#4a4058}
.f label em{color:#c0392b;font-style:normal}
.in{display:flex;align-items:center;border:1.5px solid #e3dcec;border-radius:11px;background:#fff;transition:border-color .2s,box-shadow .2s,background .2s}
.in input,.in select{flex:1;min-width:0;border:0;background:transparent;padding:11px 12px;font:500 16px var(--body);color:#211a2e;outline:none}
.in select{appearance:auto;cursor:pointer}
.in select:disabled{color:#a39bb0;cursor:not-allowed}
.in .wa{padding-left:11px;display:flex}
.in .pf{padding-left:8px;font-weight:700;font-size:14px;color:#5a4f6b}
.in .ok{padding-right:11px;color:#1f8a57;font-weight:900;display:none}
.in:focus-within{border-color:var(--p-line);box-shadow:0 0 0 3px var(--p-ring)}
.f.good .in{border-color:#57c08a;background:#f2fbf6}
.f.good .in .ok{display:block}
.f.bad .in{border-color:#ef9a8c;background:#fff5f3}
.f label small.opt-l{font-weight:600;color:#8a8297}
.msg{font-size:11.5px;font-weight:600;color:#c0532f;display:none}
.f.bad .msg{display:block}
.opt{display:flex;align-items:center;gap:10px;border:1.5px solid #ece6f3;border-radius:13px;padding:12px;margin-bottom:9px;cursor:pointer;background:#fff;transition:border-color .2s,background .2s}
.opt:last-child{margin-bottom:0}
.opt input{accent-color:var(--p);width:18px;height:18px;margin:0}
.opt .t{flex:1;min-width:0}
.opt .t b{display:block;font-size:13.5px}
.opt .t small{font-size:11.5px;color:#7a7088;line-height:1.35;display:block}
.opt .p{font-size:12.5px;font-weight:800;white-space:nowrap}
.opt .p.free{color:#1f8a57}
.opt.on{border-color:var(--p-line);background:var(--p-soft)}
.prod{display:flex;gap:11px;align-items:center}
.pimg{flex:0 0 52px;height:52px;border-radius:10px;background:linear-gradient(150deg,#ead9fb,#b48ae6) center/cover no-repeat;position:relative}
.pimg.ph::after{content:"";position:absolute;inset:13px 15px;border-radius:3px;background:rgba(255,255,255,.75)}
.prod .t{flex:1;min-width:0}
.prod b{display:block;font-size:13.5px;line-height:1.3}
.prod small{font-size:11.5px;color:#7a7088}
.prod .p{text-align:right;font-weight:800;font-size:14.5px;white-space:nowrap}
.prod .p s{display:block;font-size:11.5px;color:#9a91a8;font-weight:600}
.bump{display:flex;align-items:center;gap:9px;border:1.5px solid var(--p-line);border-radius:13px;padding:10px;margin:12px 0;background:var(--p-soft);transition:background .3s}
.bump.pulse{animation:bp 2.4s ease-in-out infinite}
@keyframes bp{0%,100%{background:var(--p-soft)}50%{background:var(--s-pulse)}}
.bump input{accent-color:var(--p);width:18px;height:18px;margin:0;flex:0 0 auto}
.bump .pimg{flex:0 0 38px;height:38px}
.bump .pimg.ph::after{inset:10px 11px}
.bump .t{flex:1;min-width:0;font-size:13.5px;font-weight:800;line-height:1.25}
.bump .t .x{color:var(--p);font-weight:900;font-size:15px;letter-spacing:.03em}
.bump .t small{display:block;font-size:10.5px;font-weight:600;color:#7a7088;margin-top:2px}
.bump .pp{font-size:11px;text-align:center;line-height:1.2}
.bump .pp s{display:block;color:#9a91a8}
.bump .pp b{font-size:12.5px}
.step{display:flex;align-items:center;border:1px solid #e3dcec;border-radius:9px;overflow:hidden;background:#fff;flex:0 0 auto}
.step button{border:0;background:none;width:26px;height:30px;font-size:15px;font-weight:800;color:var(--p);cursor:pointer}
.step span{min-width:18px;text-align:center;font-weight:800;font-size:13px}
.coupon{display:flex;gap:8px;margin-bottom:6px}
.coupon .in{flex:1}
.coupon button{border:1px solid #e3dcec;background:#f6f2fa;border-radius:11px;padding:0 14px;font:700 13px var(--body);color:#4a4058;cursor:pointer}
.coupon button:disabled{opacity:.6}
.cmsg{font-size:11.5px;font-weight:600;margin:0 0 6px}
.lines{display:grid;gap:7px;font-size:13px;margin-top:8px}
.lines div{display:flex;justify-content:space-between;gap:8px;font-variant-numeric:tabular-nums}
.lines .g{color:#1f8a57;font-weight:800}
.lines .tot{border-top:1px solid #ece6f3;padding-top:10px;margin-top:4px;font-size:13.5px;align-items:baseline}
.lines .tot b{font-size:20px;font-weight:800}
.lines .tot small{font-size:10.5px;color:#8a8297;margin-left:4px}
.ticons{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;font-size:10.5px;color:#6c6479;margin-top:12px;gap:4px}
.ticons b{display:block;font-size:15px}
.legal{text-align:center;font-size:10.5px;color:#8a8297;padding:4px 10px 8px;margin:0}
.legal a{color:inherit}
.bar{background:#fff;border-top:1px solid #ece6f3;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 20px -10px rgba(40,20,70,.2)}
.cta{width:100%;border-radius:14px;padding:14px;font:800 15px var(--body);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .25s;position:relative;overflow:hidden}
.cta.miss{background:#fff;border:2px solid var(--s-line);color:var(--p)}
.cta.go{border:0;color:#fff;background:linear-gradient(135deg,var(--s),var(--p));box-shadow:0 12px 24px -8px var(--p-shadow)}
.cta.go::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);animation:sh 3.2s ease-in-out infinite}
.cta.busy{opacity:.75;cursor:progress}
.cta.busy::after{display:none}
@keyframes sh{0%,55%{left:-60%}100%{left:130%}}
.cta .ar{animation:dn 1.2s ease-in-out infinite}
@keyframes dn{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
.secure{text-align:center;font-size:10.5px;color:#8a8297;margin:6px 0 0}
.err{background:#fbeae6;color:#b4432f;font-size:12.5px;font-weight:700;border-radius:10px;padding:8px 10px;margin:0 0 8px;text-align:center}
.thanks{padding:30px 18px;text-align:center;display:grid;gap:14px}
.check{width:72px;height:72px;margin:6px auto 0;border-radius:50%;background:#e7f6ee;display:flex;align-items:center;justify-content:center;animation:pop .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.thanks h2{font:700 24px var(--display);margin:0;color:#211a2e}
.thanks p{margin:0;color:#6c6479;font-size:14px}
.thanks .onum{font-weight:800;color:#4a4058}
.thanks .blk{text-align:left}
.ghost{display:block;border:1px solid #e3dcec;background:#fff;border-radius:12px;padding:12px;font:700 14px var(--body);color:#5a4f6b;cursor:pointer;text-decoration:none;text-align:center}
.state{padding:60px 24px;text-align:center;color:#6c6479;display:grid;gap:14px;justify-items:center}
.state p{margin:0}
.spin{width:34px;height:34px;border-radius:50%;border:3px solid #e3dcec;border-top-color:var(--p);animation:rot .9s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}
:focus-visible{outline:2px solid var(--p);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.cta.go::after,.check,.bump.pulse,.cta .ar,.spin{animation:none}}
