*{box-sizing:border-box;margin:0;padding:0}
:root{
  --naranja:#FF5023; --naranja-d:#D03F00; --tinta:#1A1A2E; --tinta2:#37394F;
  --crema:#FFFAEC; --blanco:#fff; --gris:#6B7280; --linea:#E5E7EB; --verde:#2FA96B;
}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;color:var(--tinta);background:var(--blanco);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:Barlow,system-ui,sans-serif;font-weight:800;line-height:1.04;letter-spacing:-.02em}
h1{font-size:clamp(36px,4.8vw,56px)}
h2{font-size:clamp(30px,4.4vw,50px)}
h3{font-size:clamp(21px,2.6vw,27px)}
.wrap{max-width:1160px;margin:0 auto;padding:0 22px}
a{color:inherit;text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:15px;padding:14px 26px;border-radius:12px;border:2px solid transparent;transition:transform .18s cubic-bezier(.2,.8,.2,1),background .18s,box-shadow .18s;cursor:pointer}
.btn-o{background:var(--naranja);color:#fff;box-shadow:0 8px 22px rgba(255,80,35,.28)}
.btn-o:hover{background:var(--naranja-d);transform:translateY(-2px)}
.btn-g{border-color:rgba(255,255,255,.55);color:#fff}
.btn-g:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.btn-line{border-color:var(--linea);color:var(--tinta);background:#fff}
.btn-line:hover{border-color:var(--tinta);transform:translateY(-2px)}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--naranja)}

/* ---------- NAV ---------- */
.navwrap{position:fixed;top:0;left:0;right:0;z-index:100;padding:14px 22px;transition:padding .3s}
.pill{max-width:1160px;margin:0 auto;display:flex;align-items:center;gap:26px;padding:14px 18px 14px 24px;border-radius:18px;background:transparent;transition:background .35s,box-shadow .35s,padding .35s}
.navwrap.on .pill{background:var(--naranja);box-shadow:0 14px 34px rgba(26,26,46,.16)}
.logo{font-family:Barlow;font-weight:800;font-size:21px;letter-spacing:-.03em;color:#fff;display:flex;align-items:center;gap:9px}
.logo i{width:24px;height:24px;border-radius:7px;background:#fff;display:grid;place-items:center;font-size:13px;color:var(--naranja);font-style:normal;flex:none}
.navwrap.on .logo i{background:#fff;color:var(--naranja)}
.nav-links{display:flex;gap:22px;margin-left:8px}
.nav-links a{color:rgba(255,255,255,.92);font-size:15px;font-weight:500}
.nav-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:5px}
.nav-cta{margin-left:auto;display:flex;gap:10px;align-items:center}
.nav-cta .b1{background:#fff;color:var(--naranja);font-weight:700;font-size:14px;padding:11px 20px;border-radius:11px;transition:transform .18s}
.navwrap:not(.on) .nav-cta .b1{background:var(--naranja);color:#fff}
.nav-cta .b1:hover{transform:translateY(-2px)}
.nav-cta .b2{border:1.6px solid rgba(255,255,255,.6);color:#fff;font-weight:600;font-size:14px;padding:10px 18px;border-radius:11px}
.burger{display:none;margin-left:auto;background:none;border:0;color:#fff;font-size:24px}
@media(max-width:960px){.nav-links,.nav-cta{display:none}.burger{display:block}}

/* ---------- HERO ---------- */
.hero{position:relative;background:#171018;min-height:96vh;display:flex;align-items:center;padding:150px 0 120px;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(62% 54% at 76% 28%, rgba(255,152,92,.34), transparent 64%),
  radial-gradient(42% 42% at 6% 94%, rgba(255,80,35,.24), transparent 72%),
  linear-gradient(155deg,#35212B 0%,#1B1118 46%,#0A0709 100%)}
.hero-grain{position:absolute;inset:0;opacity:.055;mix-blend-mode:overlay}
.hero .wrap{position:relative;z-index:3;display:grid;grid-template-columns:1.12fr .88fr;gap:42px;align-items:center;width:100%}
.hero h1{color:#fff}
.hero .sub{color:rgba(255,255,255,.80);font-size:clamp(16px,1.9vw,19px);max-width:44ch;margin-top:20px}
.hero-top{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.hero-top .cono{color:var(--naranja);display:grid;place-items:center}.hero-top .cono svg{width:19px;height:19px}
.hero-top span{color:rgba(255,255,255,.85);font-size:14px;font-weight:600}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.checks{margin-top:34px;display:flex;flex-direction:column;gap:12px}
.checks li{list-style:none;display:flex;align-items:center;gap:11px;color:rgba(255,255,255,.88);font-size:15px}
.tick{width:20px;height:20px;border-radius:50%;background:var(--naranja);display:grid;place-items:center;flex:none}
.tick svg{width:11px;height:11px}
.scallop{position:absolute;left:0;right:0;bottom:-2px;height:30px;z-index:4;
  background-image:radial-gradient(circle at 15px 15px, var(--crema) 15.2px, transparent 15.6px);
  background-size:30px 30px;background-repeat:repeat-x}
@media(max-width:940px){.float{display:none}.hero .wrap{grid-template-columns:1fr;gap:40px}.hero{min-height:auto;padding:130px 0 96px}}

/* ---------- MOCKUPS (UI del producto, hechas en HTML) ---------- */
.stage{position:relative;perspective:1400px}
.ui{background:#fff;border-radius:18px;box-shadow:0 26px 60px rgba(0,0,0,.30);overflow:hidden;border:1px solid rgba(0,0,0,.05)}
.ui-top{display:flex;align-items:center;gap:8px;padding:12px 15px;border-bottom:1px solid var(--linea);background:#FCFCFD}
.ui-top .dot{width:9px;height:9px;border-radius:50%;background:#E3E6EA}
.ui-top b{font-size:12px;font-weight:600;color:var(--gris);margin-left:6px;letter-spacing:.02em}
.row{display:flex;align-items:center;gap:11px;padding:12px 15px;border-bottom:1px solid #F2F3F5}
.row:last-child{border-bottom:0}
.row .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none;background:#FFF1EB;color:var(--naranja)}.row .ic svg{width:18px;height:18px}
.row .tx{flex:1;min-width:0}
.row .tx b{display:block;font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.row .tx span{font-size:11.5px;color:var(--gris);display:block;line-height:1.35}
.row .pr{font-size:13px;font-weight:700;white-space:nowrap}
.pill-s{font-size:10px;font-weight:700;padding:4px 8px;border-radius:99px;letter-spacing:.03em;text-transform:uppercase}
.p-prep{background:#FFF4E5;color:#B4690E}
.p-ok{background:#E9F7F0;color:var(--verde)}
.p-out{background:#F3F4F6;color:#9CA3AF}
.float{position:absolute;background:#fff;border-radius:14px;box-shadow:0 20px 44px rgba(0,0,0,.26);padding:13px 15px;display:flex;gap:11px;align-items:center}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.bob{animation:bob 5.5s ease-in-out infinite}
@media(max-width:940px){.float{display:none!important}}
.phone{width:262px;margin:0 auto;background:#111;border-radius:34px;padding:9px;box-shadow:0 30px 70px rgba(0,0,0,.4)}
.phone .scr{background:#fff;border-radius:27px;overflow:hidden}
.ph-top{background:var(--naranja);color:#fff;padding:15px 16px 13px}
.ph-top .h{font-family:Barlow;font-weight:800;font-size:17px}
.ph-top .s{font-size:11px;opacity:.9}
.sizes{display:flex;gap:7px;padding:13px 14px 4px}
.sz{flex:1;text-align:center;font-size:11px;font-weight:700;padding:8px 0;border-radius:9px;border:1.6px solid var(--linea);color:var(--gris)}
.sz.on{border-color:var(--naranja);background:#FFF1EB;color:var(--naranja-d)}
.flavs{padding:8px 14px 14px}
.fl{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #F4F5F7;font-size:12.5px}
.fl:last-child{border:0}
.fl .bx{width:17px;height:17px;border-radius:5px;border:1.7px solid var(--linea);display:grid;place-items:center;flex:none}
.fl.on .bx{background:var(--naranja);border-color:var(--naranja)}
.fl.on .bx svg{width:10px;height:10px}
.fl.off{opacity:.45}
.fl b{font-weight:500}
.ph-foot{padding:12px 14px 16px;border-top:1px solid var(--linea)}
.ph-foot .tot{display:flex;justify-content:space-between;font-size:12px;color:var(--gris);margin-bottom:9px}
.ph-foot .tot b{color:var(--tinta);font-size:15px}
.ph-foot .go{background:var(--naranja);color:#fff;text-align:center;font-weight:700;font-size:13px;padding:12px;border-radius:11px}

/* ---------- SECCIONES ---------- */
section{position:relative}
.cream{background:var(--crema)}
.pad{padding:96px 0}
.pad-s{padding:72px 0}
.center{text-align:center}
.center .sub{color:var(--tinta2);font-size:18px;max-width:60ch;margin:18px auto 0}
.kicker{display:inline-flex;align-items:center;gap:8px;background:#FFF1EB;color:var(--naranja-d);font-size:13px;font-weight:700;padding:8px 15px;border-radius:99px;margin-bottom:18px}

/* problema */
.prob{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.prob .c{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:26px;transition:transform .3s,box-shadow .3s}
.prob .c:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(26,26,46,.09)}
.prob .c .em{width:46px;height:46px;border-radius:13px;background:#FFF1EB;color:var(--naranja);display:grid;place-items:center;margin-bottom:16px}.prob .c .em svg{width:23px;height:23px}
.prob .c h4{font-size:19px;margin-bottom:9px}
.prob .c p{color:var(--gris);font-size:14.5px}
@media(max-width:860px){.prob{grid-template-columns:1fr}}

/* carrusel 01-06 */
.flow{display:grid;grid-template-columns:1fr .92fr;gap:60px;align-items:center;min-height:470px}
.flow-vis{position:relative;min-height:400px}
.slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(26px) scale(.97);transition:opacity .5s,transform .5s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.slide.on{opacity:1;transform:none;pointer-events:auto}
.flow-txt .n{font-family:Barlow;font-weight:700;font-size:15px;color:var(--gris);margin-bottom:12px;letter-spacing:.08em}
.flow-txt h3{font-size:clamp(26px,3.6vw,40px);margin-bottom:16px}
.flow-txt p{color:var(--tinta2);font-size:17px;max-width:44ch;min-height:84px}
.ctrl{display:flex;align-items:center;gap:16px;margin-top:26px}
.ctrl button{background:none;border:0;cursor:pointer;color:var(--tinta);font-size:19px;padding:4px}
.ctrl .next{background:var(--naranja);color:#fff;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;box-shadow:0 8px 20px rgba(255,80,35,.3)}
.dots{display:flex;gap:6px;margin-left:auto;align-items:center}
.dots i{width:9px;height:5px;border-radius:99px;background:#E4DED0;transition:width .4s,background .4s;display:block}
.dots i.on{width:28px;background:var(--naranja)}
@media(max-width:940px){.flow{grid-template-columns:1fr;gap:34px}.flow-vis{min-height:360px;order:2}.flow-txt{order:1}.flow-txt p{min-height:0}}

/* modulos */
.mods{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:46px}
.mod{border-radius:22px;padding:34px;border:1px solid var(--linea);background:#fff}
.mod.dark{background:var(--tinta);border-color:var(--tinta);color:#fff}
.mod h3{margin-bottom:12px}
.mod .d{font-size:15.5px;color:var(--gris);margin-bottom:22px}
.mod.dark .d{color:rgba(255,255,255,.72)}
.mod ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.mod li{display:flex;gap:10px;font-size:15px;align-items:flex-start}
.mod li svg{flex:none;margin-top:5px;width:14px;height:14px}
.mod .tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--naranja);background:#FFF1EB;padding:5px 11px;border-radius:99px;margin-bottom:16px}
.mod.dark .tag{background:rgba(255,255,255,.12);color:#FFB49B}
@media(max-width:860px){.mods{grid-template-columns:1fr}}

/* diferencia 6 */
.dif{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:20px;overflow:hidden;margin-top:44px}
.dif .d{background:#fff;padding:30px 26px}
.dif .d b{font-family:Barlow;font-size:21px;font-weight:800;display:block;margin-bottom:8px}
.dif .d b em{color:var(--naranja);font-style:normal}
.dif .d p{font-size:14.5px;color:var(--gris)}
@media(max-width:860px){.dif{grid-template-columns:1fr}}

/* hecho para heladerias */
.helad{display:grid;grid-template-columns:.9fr 1.1fr;gap:54px;align-items:center}
.hl{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:8px}
.hl li{padding:20px 0;border-bottom:1px solid rgba(26,26,46,.10);display:flex;gap:16px;align-items:flex-start}
.hl li:last-child{border:0}
.hl li i{font-style:normal;font-family:Barlow;font-weight:800;font-size:13px;color:var(--naranja);padding-top:4px;flex:none}
.hl li b{display:block;font-size:17px;font-family:Barlow;font-weight:700;letter-spacing:-.01em}
.hl li span{font-size:14.5px;color:var(--tinta2)}
@media(max-width:940px){.helad{grid-template-columns:1fr;gap:32px}}

/* curso */
.curso{background:linear-gradient(140deg,#231520,#3A1C12 60%,#5A2410);border-radius:26px;overflow:hidden;color:#fff;display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:center;position:relative}
.curso-in{padding:52px 46px}
.curso h2{font-size:clamp(27px,3.6vw,42px);margin:14px 0 16px}
.curso p{color:rgba(255,255,255,.82);font-size:16.5px;max-width:46ch}
.curso .chips{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0 28px}
.curso .chips span{font-size:12.5px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:7px 13px;border-radius:99px}
.curso ol{margin:22px 0 0 0;list-style:none;counter-reset:c}
.curso ol li{counter-increment:c;display:flex;gap:12px;padding:9px 0;font-size:15px;color:rgba(255,255,255,.9);border-bottom:1px dashed rgba(255,255,255,.14)}
.curso ol li:last-child{border:0}
.curso ol li:before{content:"0" counter(c);font-family:Barlow;font-weight:800;font-size:12px;color:#FFB49B;padding-top:4px}
.curso-vis{padding:46px 46px 46px 0;display:grid;place-items:center}
@media(max-width:940px){.curso{grid-template-columns:1fr}.curso-in{padding:40px 26px 10px}.curso-vis{padding:10px 26px 40px}}
.player{width:100%;max-width:330px;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 26px 56px rgba(0,0,0,.35)}
.player .sc{aspect-ratio:16/10;background:linear-gradient(150deg,#FFE7D6,#FFC9AE);display:grid;place-items:center;position:relative}
.play{width:58px;height:58px;border-radius:50%;background:var(--naranja);display:grid;place-items:center;box-shadow:0 10px 26px rgba(255,80,35,.45);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.play svg{width:20px;height:20px;margin-left:3px}
.player .bar{height:4px;background:#F1EEE9}
.player .bar i{display:block;height:100%;background:var(--naranja);width:0;animation:prog 6s linear infinite}
@keyframes prog{to{width:100%}}
.player .meta{padding:14px 16px}
.player .meta b{font-family:Barlow;font-size:15px;display:block;color:var(--tinta)}
.player .meta span{font-size:12px;color:var(--gris)}

/* rubros */
.rub{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.rub .r{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:24px;display:flex;gap:14px;align-items:flex-start;transition:transform .28s,border-color .28s}
.rub .r:hover{transform:translateY(-5px);border-color:var(--naranja)}
.rub .r .em{width:40px;height:40px;border-radius:11px;background:#FFF1EB;color:var(--naranja);display:grid;place-items:center;flex:none}.rub .r .em svg{width:20px;height:20px}
.rub .r b{font-family:Barlow;font-size:17.5px;display:block;margin-bottom:5px}
.rub .r p{font-size:14px;color:var(--gris)}
@media(max-width:860px){.rub{grid-template-columns:1fr}}

/* opiniones */
.ops{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.op{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:26px;display:flex;flex-direction:column}
.op .st{color:var(--naranja);font-size:14px;letter-spacing:2px;margin-bottom:13px}
.op p{font-size:15px;color:var(--tinta2);flex:1}
.op .who{margin-top:18px;padding-top:15px;border-top:1px solid var(--linea);font-size:13.5px}
.op .who b{display:block;font-weight:600}
.op .who span{color:var(--gris);font-size:12.5px}
@media(max-width:860px){.ops{grid-template-columns:1fr}}

/* faq */
.faq{max-width:780px;margin:40px auto 0}
.q{border-bottom:1px solid rgba(26,26,46,.12)}
.q button{width:100%;background:none;border:0;display:flex;align-items:center;gap:16px;padding:22px 4px;cursor:pointer;text-align:left;font-family:Barlow;font-weight:700;font-size:18px;color:var(--tinta)}
.q button i{margin-left:auto;font-style:normal;font-size:24px;color:var(--naranja);transition:transform .3s;line-height:1}
.q.open button i{transform:rotate(45deg)}
.q .a{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(.2,.8,.2,1)}
.q .a p{padding:0 4px 22px;color:var(--tinta2);font-size:15.5px;max-width:62ch}

/* cta final */
.cta{position:relative;border-radius:26px;overflow:hidden;background:linear-gradient(120deg,#1A1A2E 0%,#2B1A1F 60%,#40201A 100%);padding:64px 54px;color:#fff}
.cta:after{content:"";position:absolute;right:-60px;top:-60px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(255,80,35,.38),transparent 65%)}
.cta h2{position:relative;z-index:2;max-width:22ch}
.cta p{position:relative;z-index:2;color:rgba(255,255,255,.8);margin:16px 0 28px;font-size:17px;max-width:46ch}
.cta .checks{margin-top:30px}
@media(max-width:700px){.cta{padding:44px 26px}}

/* footer */
footer{background:var(--tinta);color:rgba(255,255,255,.7);padding:62px 0 40px;margin-top:0}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px}
footer .logo{color:#fff;margin-bottom:14px}
footer .logo i{background:var(--naranja);color:#fff}
footer h5{color:#fff;font-family:Barlow;font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px}
footer a{display:block;font-size:14.5px;padding:5px 0}
footer a:hover{color:#fff}
.fbot{margin-top:44px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13.5px}
@media(max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}

/* ============ FX (vanilla, molde fu.do: easeOutQuint + IO + animationend) ============ */
:root{--eq:cubic-bezier(.22,1,.36,1);--eback:cubic-bezier(.34,1.56,.64,1);--eb2:cubic-bezier(.34,1.4,.64,1);
 --fade-d:40px;--fade-op:.85s;--fade-tr:.95s}
.btn:active,.nav-cta .b1:active{transform:scale(.97)}
/* nav: pildora tambien al hover + blur + CTA que aparece */
.navwrap .pill{backdrop-filter:blur(0px)}
.navwrap.on .pill,.navwrap:hover .pill{background:rgba(255,80,35,.92);backdrop-filter:blur(20px) saturate(1.3);box-shadow:0 8px 32px rgba(0,0,0,.18)}
.navwrap.on{padding-top:16px}
.nav-cta .b1{transition:opacity 420ms cubic-bezier(.4,0,.2,1),transform .18s var(--eq)}
.navwrap:not(.on) .nav-cta .b1{opacity:0;visibility:hidden}
.navwrap.on .nav-cta .b1{opacity:1;visibility:visible}
@keyframes navin{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.navwrap{animation:navin .7s var(--eq) both}
@keyframes navitem{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.nav-links a{animation:navitem .6s var(--eq) both}
.nav-links a:nth-child(1){animation-delay:.10s}.nav-links a:nth-child(2){animation-delay:.16s}
.nav-links a:nth-child(3){animation-delay:.22s}.nav-links a:nth-child(4){animation-delay:.28s}
/* spotlight que se desliza entre los items */
.nav-links{position:relative}
.nav-links a{position:relative;z-index:2;text-decoration:none!important;padding:7px 11px;margin:-7px -11px}
.spot{position:absolute;left:0;top:50%;height:34px;margin-top:-17px;border-radius:10px;background:rgba(255,255,255,.18);
 width:var(--spot-w,0px);transform:translateX(var(--spot-x,0px)) scale(var(--spot-s,.8));opacity:var(--spot-o,0);
 transition:transform .34s var(--eq),width .34s var(--eq),opacity .22s ease;pointer-events:none;z-index:1}
/* hero: glow que deriva */
.hero-blob{position:absolute;width:820px;height:820px;right:-140px;top:-220px;border-radius:50%;z-index:2;pointer-events:none;
 background:radial-gradient(circle,rgba(255,132,70,.26),rgba(255,80,35,.10) 45%,transparent 68%);
 animation:drift 19s ease-in-out infinite alternate}
@keyframes drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-90px,70px,0) scale(1.12)}}
.hero .wrap>div:first-child>*{animation:heroin .9s var(--eq) both}
.hero .wrap>div:first-child>*:nth-child(1){animation-delay:.05s}
.hero .wrap>div:first-child>*:nth-child(2){animation-delay:.13s}
.hero .wrap>div:first-child>*:nth-child(3){animation-delay:.21s}
.hero .wrap>div:first-child>*:nth-child(4){animation-delay:.29s}
.hero .wrap>div:first-child>*:nth-child(5){animation-delay:.37s}
@keyframes heroin{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.stage{animation:heroin 1.1s var(--eq) .28s both}
/* CARRUSEL: crossfade + empujon lateral, direccion por camino corto */
.flow-vis[data-dir=back]{--sdir:-1}
.flow-vis{--sdir:1}
.slide{transition:opacity .52s var(--eq),transform .52s var(--eq)}
.slide.is-entering{transform:translateX(calc(34px * var(--sdir))) !important;transition:none!important;opacity:0!important}
.slide.is-leaving{opacity:0;pointer-events:none}
.flow-txt .n,.flow-txt h3,.flow-txt p{transition:opacity .2s ease,transform .32s var(--eq)}
.flow-txt.swap .n,.flow-txt.swap h3,.flow-txt.swap p{opacity:0;transform:translateY(10px)}
/* dots con barra de progreso = reloj del carrusel */
.dots i{position:relative;overflow:hidden;background:#E4DED0}
.dots i.done{background:#F0B49E}
.dots i span{position:absolute;inset:0;background:var(--naranja);transform:scaleX(0);transform-origin:left center;display:block}
.flow-vis-playing .dots i.on span{animation:dotfill var(--autoplay,4200ms) linear forwards}
.paused .dots i.on span{animation-play-state:paused}
@keyframes dotfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.ctrl button{transition:transform .16s var(--eq),opacity .2s}
.ctrl button:active{transform:scale(.94)}
/* ---- animaciones internas de cada pantalla (arrancan al activarse el slide) ---- */
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@keyframes popb{0%{opacity:0;transform:translateY(14px) scale(.94)}60%{transform:translateY(0) scale(1.04)}100%{opacity:1;transform:none}}
@keyframes chk{0%{transform:scale(.2);opacity:0}60%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
@keyframes flash{0%{background:#FFF1EB}100%{background:transparent}}
@keyframes bargrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes sheen{0%,46%{transform:translateX(-130%)}62%{transform:translateX(330%)}100%{transform:translateX(330%)}}
@keyframes rowin{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(255,80,35,.45)}70%{box-shadow:0 0 0 12px rgba(255,80,35,0)}100%{box-shadow:0 0 0 0 rgba(255,80,35,0)}}
@keyframes a2g{from{background:#FFF4E5;color:#B4690E}to{background:#E9F7F0;color:#2FA96B}}
@keyframes press{0%{transform:scale(1)}40%{transform:scale(.96);filter:brightness(.94)}100%{transform:scale(1)}}
.slide.anim [data-pop]{animation:popb .5s var(--eback) both;animation-delay:calc(var(--i)*.09s)}
.slide.anim [data-chk] .bx svg{animation:chk .34s var(--eback) both;animation-delay:calc(.45s + var(--i)*.34s)}
.slide.anim [data-chk]{animation:flash 1.1s ease both;animation-delay:calc(.45s + var(--i)*.34s)}
.slide.anim [data-step]{animation:pop .46s var(--eq) both;animation-delay:calc(.15s + var(--i)*.34s)}
.slide.anim [data-row]{animation:rowin .42s var(--eq) both;animation-delay:calc(var(--i)*.12s)}
.slide.anim [data-late]{animation:popb .5s var(--eback) 1.1s both}
.slide.anim .gbar{animation:bargrow .66s var(--eq) both;animation-delay:calc(.2s + var(--i)*.11s)}
.gbar{transform-origin:left center}
.slide.anim .kds-badge{animation:a2g .5s var(--eq) 2.1s forwards}
.slide.anim .kds-btn{animation:press .55s var(--eq) 2.5s both}
.pulse{animation:ring 2s ease-out infinite}
.caret{display:inline-block;width:2px;height:15px;background:var(--naranja);vertical-align:-2px;margin-left:3px;animation:blink .9s steps(1) infinite}
.sheenbar{position:relative;overflow:hidden}
.slide.anim .sheenbar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:sheen 2.4s var(--eq) both;animation-delay:calc(.2s + var(--i)*.11s)}
/* marquee de sabores */
.marq{background:var(--tinta);color:#fff;padding:16px 0;overflow:hidden;
 -webkit-mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent)}
.marq-t{display:flex;gap:34px;width:max-content;animation:marq 42s linear infinite;align-items:center}
.marq-t span{font-family:Barlow;font-weight:700;font-size:17px;letter-spacing:-.01em;white-space:nowrap;opacity:.92}
.marq-t b{color:var(--naranja);font-size:13px}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* borde dibujado del CTA final */
.cta{isolation:isolate}
.cta-draw{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.cta-draw rect{fill:none;stroke:rgba(255,255,255,.34);stroke-width:1.5;stroke-dasharray:400;stroke-dashoffset:400;vector-effect:non-scaling-stroke}
.cta.in .cta-draw rect{stroke-dashoffset:0;transition:stroke-dashoffset 1.5s var(--eq)}
.cta h2{transition-delay:.42s}.cta p{transition-delay:.52s}.cta .btn{transition-delay:.60s}.cta .checks{transition-delay:.68s}
.cta h2,.cta p,.cta .btn,.cta .checks{opacity:0;transform:translateY(18px);transition-property:opacity,transform;transition-duration:.7s;transition-timing-function:var(--eq)}
.cta.in h2,.cta.in p,.cta.in .btn,.cta.in .checks{opacity:1;transform:none}
@media (hover:hover) and (pointer:fine){.op:hover,.dif .d:hover{transform:translateY(-4px);transition:transform .3s var(--eq)}}

/* ---- logo real ---- */
.logo img{height:27px;width:auto;display:block}
.logo{gap:0;font-size:0!important}
footer .logo img{height:30px}
@media(max-width:600px){.logo img{height:23px}}
/* reveal */
.rev{opacity:0;transform:translateY(var(--fade-d));transition:opacity var(--fade-op) var(--eq),transform var(--fade-tr) var(--eq);will-change:opacity,transform}
.rev.in{opacity:1;transform:none}
.rev.done{will-change:auto}
.rev.d1{transition-delay:.09s}.rev.d2{transition-delay:.18s}.rev.d3{transition-delay:.27s}
.prob .c.rev,.rub .r.rev,.op.rev,.dif .d.rev{transform:translateY(28px) scale(.985);transition-duration:.62s,.62s}
.prob .c.rev.in,.rub .r.rev.in,.op.rev.in,.dif .d.rev.in{transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rev,.cta h2,.cta p,.cta .btn,.cta .checks{opacity:1!important;transform:none!important}.hero-blob{display:none}}


/* ---- pagina contacto + opiniones ---- */
.mini{background:#171018;position:relative;overflow:hidden;padding:150px 0 92px}
.mini h1{color:#fff;font-size:clamp(34px,5vw,54px)}
.mini p{color:rgba(255,255,255,.8);font-size:18px;max-width:52ch;margin-top:18px}
.cols{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:start}
@media(max-width:900px){.cols{grid-template-columns:1fr;gap:30px}}
.card-f{background:#fff;border:1px solid var(--linea);border-radius:22px;padding:34px;box-shadow:0 20px 50px rgba(26,26,46,.07)}
label{display:block;font-size:13.5px;font-weight:600;margin:0 0 7px}
label i{font-style:normal;color:var(--gris);font-weight:500}
.f{margin-bottom:18px}
input,textarea,select{width:100%;font-family:inherit;font-size:15px;color:var(--tinta);background:#FCFCFD;border:1.6px solid var(--linea);border-radius:12px;padding:13px 15px;transition:border-color .2s var(--eq),background .2s}
input:focus,textarea:focus{outline:0;border-color:var(--naranja);background:#fff}
textarea{min-height:120px;resize:vertical}
.hp{position:absolute;left:-9999px}
.msg{display:none;border-radius:12px;padding:14px 16px;font-size:14.5px;margin-top:6px}
.msg.ok{display:block;background:#E9F7F0;color:#1F7A4D}
.msg.err{display:block;background:#FFF1EB;color:var(--naranja-d)}
.side li{list-style:none;display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--linea);font-size:15px}
.side li:last-child{border:0}
.side li b{display:block;font-family:Barlow;font-size:16px}
.side li span{color:var(--gris);font-size:14px}
.prom{display:flex;align-items:center;gap:26px;flex-wrap:wrap;background:#fff;border:1px solid var(--linea);border-radius:20px;padding:26px 30px;margin-bottom:26px}
.prom .num{font-family:Barlow;font-weight:800;font-size:52px;line-height:1;letter-spacing:-.03em}
.prom .st{color:var(--naranja);font-size:19px;letter-spacing:3px}
.prom .q{color:var(--gris);font-size:14px}
.stars-pick{display:flex;gap:6px}
.stars-pick button{background:none;border:0;cursor:pointer;font-size:29px;line-height:1;color:#E4DED0;padding:0;transition:transform .15s var(--eq),color .15s}
.stars-pick button:hover{transform:scale(1.14)}
.stars-pick button.on{color:var(--naranja)}
.grid-ops{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:900px){.grid-ops{grid-template-columns:1fr}}
.aviso{font-size:13px;color:var(--gris);margin-top:12px}
