/* B114 · variante 1a · tokens */
:root{
  --bg:#f4f3f0; --white:#fff; --gray:#ecebe7; --ink:#1e1e1d; --muted:#6d6c67; --line:#d9d6cf;
  --dark:#000; --d1:#111; --d2:#1b1b1b; --d3:#272727; --d4:#343434; --on-dark:#f3f1ec; --on-dark-muted:#a9a79f;
  --wa:oklch(0.78 0.13 150); --wa-ink:#10140f;
  --r-in:10px; --r-card:24px; --gut:clamp(20px,4vw,48px);
  --ease:cubic-bezier(.2,.8,.2,1);
  --font:"Inter Tight",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.5 var(--font);-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,p{margin:0}
h2{font-weight:600;font-size:clamp(30px,4.2vw,48px);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
h3{font-weight:600;font-size:19px;letter-spacing:-.01em}
:focus-visible{outline:2px solid var(--wa);outline-offset:3px}
[hidden]{display:none!important}
.wrap{max-width:1200px;margin-inline:auto;padding-inline:var(--gut)}
.pad{padding-block:120px}
.pt0{padding-top:0}
.dark{background:var(--dark);color:var(--on-dark)}
.gray{background:var(--gray)}
.center{text-align:center}
.muted{color:var(--muted)}
.lbl{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;opacity:.6}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:15px 26px;
  font:600 16px/1 var(--font);text-decoration:none;border:1.5px solid transparent;cursor:pointer;white-space:nowrap;
  transition:transform .25s var(--ease),background .2s}
.btn:hover{transform:translateY(-2px)}
.btn.wa{background:var(--wa);color:var(--wa-ink)}
.btn.ghost{background:var(--white);color:var(--ink)}
.btn.black{background:var(--wa);color:var(--wa-ink)}
.btn.sm{padding:10px 16px;font-size:14px}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:20;height:64px;padding-inline:var(--gut);display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:rgba(0,0,0,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--on-dark)}
.logo{font-weight:700;font-size:22px;letter-spacing:-.03em;text-decoration:none;display:flex;align-items:center}
.logo img{height:26px;width:auto}
.nav-links{display:flex;gap:26px;font-size:14.5px}
.nav-links a{text-decoration:none;opacity:.75;transition:opacity .2s}
.nav-links a:hover{opacity:1}
.nav-right{display:flex;align-items:center;gap:12px}
.burger{display:none;width:42px;height:42px;border:0;background:none;cursor:pointer;flex-direction:column;justify-content:center;gap:7px;padding:8px}
.burger span{display:block;height:1.5px;background:var(--on-dark);transition:transform .3s var(--ease)}
.burger[aria-expanded="true"] span:first-child{transform:translateY(4.25px) rotate(45deg)}
.burger[aria-expanded="true"] span:last-child{transform:translateY(-4.25px) rotate(-45deg)}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;padding:96px var(--gut) 56px}
.bgvideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.38}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(0,0,0,.86),rgba(0,0,0,.6)),linear-gradient(to bottom,transparent 70%,var(--dark))}
.hero-in{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:20px;width:100%;max-width:1100px}
h1{font-weight:700;font-size:clamp(32px,5vw,68px);line-height:.98;letter-spacing:-.035em}
h1 .line{display:block;overflow:hidden;padding-bottom:.08em}
h1 .line>span{display:inline-block}
.sub{max-width:40em;font-size:clamp(16px,1.5vw,19px);color:var(--on-dark);opacity:.86;text-wrap:balance}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* arco de columnas */

/* estado inicial de la entrada (solo con JS y con movimiento permitido) */
@media (prefers-reduced-motion:no-preference){
  .js body:not(.in) h1 .line>span{transform:translateY(105%)}
  .js body:not(.in) .hero .lbl,.js body:not(.in) .sub,.js body:not(.in) .hero-btns{opacity:0;transform:translateY(16px)}
  h1 .line>span{transition:transform .9s var(--ease)}
  h1 .line:nth-child(2)>span{transition-delay:.09s}
  .hero .lbl,.sub,.hero-btns{transition:opacity .7s var(--ease) .75s,transform .7s var(--ease) .75s}
  .hero-btns{transition-delay:.9s}
  .js .reveal{opacity:0;transform:translateY(40px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0ms)}
  .js .reveal.on{opacity:1;transform:none}
  .track{animation:marquee 32s linear infinite}
}
@keyframes marquee{to{transform:translateX(-50%)}}

/* logos */
.logos{padding-block:30px 26px;border-bottom:1px solid var(--line)}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.track{display:flex;width:max-content}
.track span{padding-inline:34px;font-weight:700;font-size:clamp(18px,2.2vw,26px);letter-spacing:-.02em;text-transform:uppercase;color:#a5a29a;white-space:nowrap}
.legal{margin:18px auto 0;padding-inline:var(--gut);max-width:62em;text-align:center;font-size:12.5px;color:var(--muted)}

/* stack sticky */
.stack{margin-top:28px;display:flex;flex-direction:column;gap:24px}
.stack .card{position:sticky;top:calc(88px + var(--i)*24px);min-height:min(62vh,520px);background:var(--c);border-radius:var(--r-card);
  padding:clamp(24px,4vw,48px);display:flex;flex-direction:column;gap:18px;transform-origin:50% 0;will-change:transform,filter}
.stack .num{font-size:13px;font-weight:600;letter-spacing:.1em;opacity:.55}
.stack h2{font-size:clamp(38px,7vw,88px);font-weight:500;line-height:.95}
.stack h2 em{display:block;font-style:normal;color:var(--on-dark-muted)}
.stack p{max-width:34em;font-size:clamp(16px,1.5vw,19px);opacity:.85;margin-top:auto}
.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{border:1px solid rgba(243,241,236,.35);border-radius:999px;padding:5px 14px;font-size:13.5px}

/* reels */
.row-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:28px}
.reels{display:flex;align-items:flex-start;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px var(--gut) 20px;scrollbar-width:thin}
.reel{flex:none;width:clamp(180px,22vw,260px);scroll-snap-align:start;border:0;padding:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.reel .frame{aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:var(--d1);position:relative}
.reel video{width:100%;height:100%;object-fit:cover}
.reel .frame::after{content:"▶";position:absolute;right:12px;bottom:12px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:#000;
  display:grid;place-items:center;font-size:11px;padding-left:2px}
.reel b{display:block;margin-top:10px;font-weight:600;font-size:15px;line-height:1.25}
.reel small{color:var(--muted);font-size:13px}

/* piezas */
.piezas{margin-top:28px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;align-items:start}
.piezas .colm{display:flex;flex-direction:column;gap:12px;will-change:transform}
.piezas .colm:nth-child(even){margin-top:48px}
.piezas img{width:100%;aspect-ratio:9/16;object-fit:cover;border-radius:14px;background:var(--gray)}

/* resultados */
.results{margin-top:36px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.results img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;background:var(--d1)}

/* proceso + herramientas */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,88px)}
.steps{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column}
.steps li{display:flex;gap:18px;padding-block:18px;border-top:1px solid var(--line)}
.steps li>b{font-size:14px;font-weight:600;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;flex:none}
.steps p{color:var(--muted);font-size:15.5px;margin-top:2px}
.h3big{font-size:clamp(22px,2.4vw,28px);letter-spacing:-.02em}
.tools{margin-top:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tools img{width:100%;border-radius:14px;background:var(--gray)}

/* testimonios */
.quotes{margin-top:40px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.quotes figure{margin:0;background:var(--white);border-radius:var(--r-card);padding:28px;display:flex;flex-direction:column;gap:22px;justify-content:space-between}
.quotes blockquote{margin:0;font-size:18px;line-height:1.45}
.quotes figcaption{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted)}
.quotes figcaption img{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--gray)}
.quotes figcaption strong{display:block;color:var(--ink);font-weight:600}

/* faq */
.faq-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:clamp(24px,5vw,72px)}
.faq details{border-bottom:1px solid var(--ink)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding-block:18px;font-weight:600;font-size:18px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:22px;line-height:1;transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{padding-bottom:20px;color:var(--muted);max-width:56ch}

/* contacto */
.contact{position:relative;overflow:hidden;padding:clamp(72px,10vw,140px) var(--gut)}
.contact .bgvideo{opacity:.35}
.formcard{position:relative;z-index:1;max-width:760px;margin-inline:auto;background:var(--bg);color:var(--ink);border-radius:var(--r-card);
  padding:clamp(24px,5vw,48px);display:flex;flex-direction:column;gap:16px}
.formcard h2{font-weight:500}
.formcard label{display:flex;flex-direction:column;gap:8px;font-size:15.5px}
.formcard input,.formcard textarea{font:400 17px var(--font);color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:var(--r-in);padding:14px 16px;width:100%}
.formcard textarea{resize:vertical;min-height:110px}
.formcard ::placeholder{color:#8d8b85}
.trap{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.err{color:#b3261e;font-size:14px;margin-top:-8px}
.form-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:10px}
.mail{display:flex;flex-direction:column;gap:2px;font-size:18px;font-weight:500}
.mail small{font-size:13.5px;font-weight:400;color:var(--muted)}
.copy{font:500 12.5px var(--font);margin-left:8px;border:1px solid var(--line);background:var(--white);border-radius:999px;padding:3px 10px;cursor:pointer;color:var(--ink)}

/* footer */
.foot{border-top:1px solid #1f1f1f;padding-block:26px;font-size:14px}
.foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.foot strong{font-size:22px;letter-spacing:-.03em}
.foot span{color:var(--on-dark-muted)}

/* WhatsApp fijo en mobile */
.wabar{display:none}

/* lightbox */
.lightbox{border:0;padding:0;background:transparent;max-width:none;max-height:none;overflow:visible}
.lightbox::backdrop{background:rgba(0,0,0,.86)}
.lightbox video{height:min(86vh,800px);width:auto;max-width:92vw;border-radius:18px;background:#000}
.lb-close{position:absolute;top:-14px;right:-14px;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:#000;font-size:15px;cursor:pointer;z-index:2}

@media (max-width:900px){
  .pad{padding-block:72px}
  .pt0{padding-top:0}
  .nav-links{position:fixed;inset:64px 0 auto 0;flex-direction:column;gap:0;background:var(--dark);padding:8px var(--gut) 20px;font-size:20px;
    transform:translateY(-120%);transition:transform .4s var(--ease);z-index:-1}
  .nav-links.open{transform:none}
  .nav-links a{padding-block:14px;border-bottom:1px solid #1f1f1f;opacity:1}
  .burger{display:flex}
  .two,.faq-grid{grid-template-columns:1fr}
  .results{grid-template-columns:repeat(2,minmax(0,1fr))}
  .piezas{grid-template-columns:repeat(3,minmax(0,1fr))}
  .piezas .colm:nth-child(n+4){display:none}
  .quotes{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .nav .btn.sm{display:none}
  .stack .card{top:calc(76px + var(--i)*14px);min-height:56vh}
  .lbl.hint{display:none}
  .wabar{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:15;box-shadow:0 8px 24px rgba(0,0,0,.25)}
  .form-foot{flex-direction:column;align-items:stretch}
  .tools{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}


/* hero: muro de tarjetas que se mueve despacio, con velo oscuro para leer el texto */
.wall{position:absolute;inset:-4% 0;display:flex;gap:12px;padding-inline:12px;transition:opacity 1.4s var(--ease),transform 1.8s var(--ease)}
.wcol{flex:1 1 0;min-width:0}
.wtrack{display:flex;flex-direction:column;will-change:transform}
.wall figure,.wall .wtxt{margin:0 0 12px;border-radius:16px;overflow:hidden}
.wall figure{aspect-ratio:9/16;background:var(--d2)}
.wall img{width:100%;height:100%;object-fit:cover}
.wall .wtxt{aspect-ratio:4/5;padding:14px;display:flex;flex-direction:column;justify-content:space-between;text-align:left;
  font-weight:600;font-size:clamp(14px,1.5vw,21px);line-height:1.05;letter-spacing:-.02em;background:var(--tc);color:var(--tk)}
.wall .wtxt i{width:22px;height:22px;border-radius:50%;background:currentColor;display:block}
@keyframes wall{to{transform:translateY(-50%)}}
@media (prefers-reduced-motion:no-preference){
  .wtrack{animation:wall var(--t) linear infinite}
  .wcol:nth-child(even) .wtrack{animation-direction:reverse}
  .js body:not(.in) .wall{opacity:0;transform:scale(1.1)}
}
@media (max-width:900px){.wcol:nth-child(n+7){display:none}}
@media (max-width:640px){.wall{gap:8px;padding-inline:8px}.wcol:nth-child(n+5){display:none}.wall figure,.wall .wtxt{margin-bottom:8px;border-radius:12px}}

/* ajustes: reels y piezas sin título */
.piezas{margin-top:0}
.foot .logo img{height:30px;width:auto}

/* resultados: tarjetas propias, con un brillo verde que se mueve */
.rcard{position:relative;overflow:hidden;aspect-ratio:1;border-radius:var(--r-card);background:var(--d1);padding:clamp(18px,2.2vw,28px);
  display:flex;flex-direction:column;justify-content:space-between;border:1px solid #1f1f1f}
.rcard::before{content:"";position:absolute;left:-20%;top:-20%;width:110%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,var(--wa) 0,transparent 62%);opacity:.5;filter:blur(18px);transition:opacity .4s}
.rcard:hover::before{opacity:.95}
.rcard span,.rcard h3{position:relative}
.rcard span{font-size:13px;font-weight:600;letter-spacing:.1em;opacity:.7}
.rcard h3{font-size:clamp(21px,2.3vw,32px);font-weight:600;line-height:1.05;letter-spacing:-.025em;text-wrap:balance}
@keyframes drift{from{transform:translate(-20%,-15%) scale(.8)}to{transform:translate(55%,60%) scale(1.3)}}

/* cómo trabajamos en cuatro columnas */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:36px}
.steps li{flex-direction:column;gap:14px;border-top:1.5px solid var(--ink);padding-block:18px 0}

/* herramientas: tarjetas propias */
.tools{margin-top:36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.tool{background:var(--white);border-radius:20px;padding:24px;display:flex;flex-direction:column;gap:10px}
.tool:hover{transform:translateY(-6px)}
.tool .ic{width:42px;height:42px;border-radius:12px;background:var(--bg);display:grid;place-items:center;margin-bottom:14px;
  transition:background .3s,transform .4s var(--ease)}
.tool:hover .ic{background:var(--wa);transform:rotate(-8deg) scale(1.1)}
.tool p{color:var(--muted);font-size:15px}
@media (prefers-reduced-motion:no-preference){
  .rcard::before{animation:drift 9s ease-in-out infinite alternate;animation-delay:var(--ad)}
  .tool{transition:transform .45s var(--ease),opacity .7s var(--ease);transition-delay:var(--d,0ms)}
}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}.tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.steps,.tools{grid-template-columns:1fr}.rcard{aspect-ratio:auto;min-height:150px;gap:28px}}

/* transición reels → piezas: aire entre las dos para que el movimiento de las columnas no pise los videos */
#piezas{padding-top:88px}
#reels{padding-bottom:0}
@media (max-width:640px){#piezas{padding-top:56px}}

/* herramientas: onda que recorre los íconos + versión compacta de a 3 en celular */
@keyframes icwave{0%,14%,100%{background:var(--bg);transform:none}6%{background:var(--wa);transform:translateY(-5px) rotate(-8deg) scale(1.08)}}
@media (prefers-reduced-motion:no-preference){
  .tool .ic{animation:icwave 7.2s var(--ease) infinite}
  .tool:nth-child(2) .ic{animation-delay:.8s}.tool:nth-child(3) .ic{animation-delay:1.6s}.tool:nth-child(4) .ic{animation-delay:2.4s}
  .tool:nth-child(5) .ic{animation-delay:3.2s}.tool:nth-child(6) .ic{animation-delay:4s}.tool:nth-child(7) .ic{animation-delay:4.8s}
  .tool:nth-child(8) .ic{animation-delay:5.6s}.tool:nth-child(9) .ic{animation-delay:6.4s}
}
@media (max-width:640px){
  .tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:24px}
  .tool{padding:16px 8px 14px;border-radius:16px;align-items:center;text-align:center;gap:0}
  .tool p{display:none}
  .tool h3{font-size:12.5px;line-height:1.15;letter-spacing:0;text-wrap:balance}
  .tool .ic{width:38px;height:38px;margin-bottom:10px}
}

/* celular: menos carga de memoria */
@media (max-width:640px){
  .piezas .colm,.wtrack,.stack .card{will-change:auto}
  .rcard::before{filter:none;animation:none;opacity:.35}
  .nav{backdrop-filter:none;-webkit-backdrop-filter:none;background:#000}
}
/* logos de clientes en la cinta */
.track{align-items:center}
.track img{height:38px;width:auto;max-width:none;flex:none;margin-inline:36px;filter:grayscale(1);opacity:.6;transition:filter .3s,opacity .3s}
.track img:hover{filter:none;opacity:1}
@media (max-width:640px){.track img{height:28px;margin-inline:22px}}