/* =====================================================================
   NexoWeb · styles.css (todo lo que no es el primer pantallazo)
   El CSS crítico (tokens, header, botones, hero y escena) vive en el <head>.
   Regla: el estado final es el default; la animación es mejora progresiva.
   ===================================================================== */

/* ---------- Comunes ---------- */
.trabajos,.servicios,.velocidad,.nosotros,.planes,.faq,.contacto,.reviews-section{position:relative;padding-block:clamp(72px,8vw,112px)}
.sec-head{max-width:46rem;margin-bottom:clamp(36px,5vw,60px)}
.sec-head h2,.trabajos-head h2,#vel-h2,#about-h2,#faq-h2,#contact-h2,#reviews-h2{font:700 clamp(1.875rem,1.15rem + 2.7vw,3.25rem)/1.06 var(--font-display);letter-spacing:-.025em;text-wrap:balance}
.sec-head p,.trabajos-head p{margin-top:16px;max-width:40rem;color:var(--text-2);font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem)}
.ancla{position:absolute;top:0;left:0;width:1px;height:1px}
.checks{display:grid;gap:12px}
.checks li{display:flex;align-items:flex-start;gap:12px;color:var(--text-1)}
.checks svg{flex:none;margin-top:3px;color:var(--teal)}
.link-sec{display:inline-flex;align-items:center;min-height:44px;color:var(--text-1);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,212,191,.6);text-decoration-thickness:1.5px;text-underline-offset:5px;transition:color var(--dur-s) var(--ease-out)}
.link-sec:hover{color:var(--teal)}

/* =====================================================================
   2 · TRABAJOS — galería (celular: scroll-snap; escritorio: fijada + scrub)
   ===================================================================== */
.trabajos{padding-bottom:clamp(64px,8vw,104px)}
.galeria{position:relative}
.galeria::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:var(--so,0);background:radial-gradient(460px circle at var(--sx,50%) var(--sy,50%),rgba(45,212,191,.08),transparent 70%);transition:opacity var(--dur-m) var(--ease-out)}
.trabajos-head{position:relative;z-index:1;margin-bottom:28px}
.galeria-vista{position:relative;z-index:1;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.galeria-vista::-webkit-scrollbar{display:none}
.galeria-vista:focus-visible{outline-offset:-3px;border-radius:20px}
.galeria-pista{display:flex;gap:16px;width:max-content;padding-inline:var(--gutter);padding-block:4px 8px}
.pieza{flex:0 0 min(86vw,560px);display:flex;flex-direction:column;gap:24px;padding:18px 18px 22px;scroll-snap-align:start;border-radius:22px;background:linear-gradient(180deg,#112340,#0D1D33);box-shadow:inset 0 0 0 1px var(--line)}

.pieza-tomas{position:relative;padding:0 13% 13% 0}
.marco{position:relative;margin:0;overflow:hidden;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),0 26px 44px -26px rgba(0,0,0,.85)}
.marco-web{aspect-ratio:16/10}
.marco img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.marco-cel{position:absolute;right:0;bottom:0;width:27%;aspect-ratio:390/844;padding:4px;border-radius:16px;background:#0D1D33;box-shadow:inset 0 0 0 1px var(--line-2),-12px 16px 30px -12px rgba(0,0,0,.9)}
.marco-cel picture,.marco-cel img{border-radius:12px;overflow:hidden}
.marco-vacio{display:grid;place-items:center;background:rgba(10,22,40,.5);border:1.5px dashed #3A4D6B;box-shadow:none}
.marco-vacio p{color:var(--text-2);font:700 clamp(1.5rem,1rem + 2vw,2.5rem)/1 var(--font-display);letter-spacing:-.02em}

.pieza-info{position:relative;min-width:0}
.pieza-cab{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;color:var(--text-2);font-size:15px;font-weight:600}
.pieza-nombre{margin-top:8px;font:700 clamp(2.125rem,1.5rem + 2.4vw,3.375rem)/1 var(--font-display);letter-spacing:-.03em}
.pieza-p{margin-top:14px;color:var(--text-1);font-size:17px}
.pieza-sistemas{display:grid;gap:8px;margin-top:16px}
.pieza-sistemas li{position:relative;padding-left:20px;color:var(--text-1)}
.pieza-sistemas li::before{content:"";position:absolute;left:2px;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--teal)}
.ficha-diseno{margin-top:20px;padding:14px 16px 16px;border-radius:14px;background:rgba(10,22,40,.6);box-shadow:inset 0 0 0 1px var(--line)}
.ficha-t{color:var(--text-2);font-size:14px;font-weight:600}
.ficha-fuentes{margin-top:2px;color:var(--text);font-size:16px}
.muestras-lg{display:grid;grid-template-columns:repeat(2,max-content);gap:10px 22px;margin-top:12px}
.muestras-lg li{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:14px;font-variant-numeric:tabular-nums;transition:transform var(--dur-m) var(--ease-out),opacity var(--dur-m) var(--ease-out)}
.muestras-lg li:nth-child(2){transition-delay:90ms}
.muestras-lg li:nth-child(3){transition-delay:180ms}
.muestras-lg li:nth-child(4){transition-delay:270ms}
.muestras-lg .sw{width:26px;height:26px}
.ficha-vacia .sw{background:transparent;box-shadow:none;border:1.5px dashed #46597A}
.pieza.is-pre .muestras-lg li{transform:translateY(var(--dist-s)) scale(.8);opacity:.45}
.pieza-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pieza-ctas .btn{flex:1 1 auto}
.pieza .link-sec{margin-top:6px}

.galeria-nav{position:relative;z-index:1;display:flex;align-items:center;gap:16px;margin-top:22px}
.galeria-pos{min-width:3.6em;color:var(--text-1);font-weight:600;font-variant-numeric:tabular-nums}
.galeria-barra{position:relative;flex:1;height:2px;border-radius:2px;background:var(--line);overflow:hidden}
.galeria-barra span{position:absolute;inset:0;background:var(--teal);transform-origin:0 50%;transform:scaleX(var(--p,.3334));transition:transform var(--dur-s) var(--ease-out)}
.galeria-btns{display:flex;gap:8px}
.gal-btn{display:grid;place-items:center;width:48px;height:48px;border:0;border-radius:12px;background:rgba(16,31,54,.7);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line-2);cursor:pointer;transition:color var(--dur-s) var(--ease-out),box-shadow var(--dur-s) var(--ease-out),transform var(--dur-xs) var(--ease-out)}
.gal-btn:active{transform:scale(.94)}
.gal-btn:disabled{opacity:.4;cursor:default}
@media (hover:hover){.gal-btn:not(:disabled):hover{color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--teal)}}
.galeria-cierre{margin-top:28px}
.galeria-cierre .btn{width:100%}

@media (min-width:768px){
  .galeria-cierre .btn{width:auto}
}
@media (min-width:1024px){
  .pieza{flex-basis:min(84vw,1180px);flex-direction:row;align-items:center;gap:clamp(32px,4vw,64px);padding:clamp(28px,3vw,44px)}
  .pieza-tomas{flex:0 0 57%;padding:0 9% 8% 0}
  .marco-cel{width:20%;border-radius:18px}
  .pieza-info{flex:1}
  .pieza-ctas .btn{flex:0 0 auto}
  .galeria-cierre{display:none}
}

/* Modo fijado (escritorio con movimiento): lo activa motion.js */
.galeria-pin .galeria{display:flex;flex-direction:column;justify-content:center;height:calc(100vh - var(--header-h));padding-block:24px 20px}
.galeria-pin .trabajos-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:22px}
.galeria-pin .trabajos-head p{margin:0 0 4px;max-width:28rem;font-size:16px}
.galeria-pin .galeria-vista{flex:1;min-height:0;overflow-x:clip;overflow-y:visible;scroll-snap-type:none}
.galeria-pin .galeria-pista{height:100%;padding-inline:max(var(--gutter),calc((100vw - 1280px) / 2 + var(--gutter)));will-change:transform}
.galeria-pin .pieza{height:100%;max-height:640px;align-self:center}
.galeria-pin .marco-web img{transform-origin:50% 0}
.galeria-pin .galeria-nav{margin-top:18px}
.galeria-pin.trabajos{padding-block:0}
/* La captura se limita por alto (se recorta desde abajo) para que la pieza quepa en cualquier laptop */
.galeria-pin .marco-web{max-height:calc(100vh - 330px)}
.galeria-pin .marco-cel{width:min(20%,calc((100vh - 330px) * .4))}
@media (max-height:860px){
  .galeria-pin .pieza-nombre{font-size:clamp(2rem,1.4rem + 1.8vw,2.75rem)}
  .galeria-pin .ficha-diseno{margin-top:14px;padding:10px 14px 12px}
  .galeria-pin .pieza-ctas{margin-top:16px}
  .galeria-pin .pieza-sistemas{margin-top:12px;gap:4px}
}
@media (max-height:780px){
  .galeria-pin .galeria{padding-block:14px 12px}
  .galeria-pin .trabajos-head{margin-bottom:14px}
  .galeria-pin .trabajos-head h2{font-size:clamp(1.625rem,1.1rem + 1.4vw,2.25rem)}
  .galeria-pin .trabajos-head p{font-size:15px}
  .galeria-pin .pieza{padding:20px 28px}
  .galeria-pin .marco-web{max-height:calc(100vh - 290px)}
  .galeria-pin .marco-cel{width:min(20%,calc((100vh - 290px) * .4))}
  .galeria-pin .pieza-cab{font-size:14px}
  .galeria-pin .pieza-nombre{margin-top:4px;font-size:2rem}
  .galeria-pin .pieza-p{margin-top:8px;font-size:15px}
  .galeria-pin .pieza-sistemas{margin-top:8px;gap:0}
  .galeria-pin .pieza-sistemas li{font-size:15px}
  .galeria-pin .ficha-diseno{margin-top:10px;padding:8px 12px 10px}
  .galeria-pin .muestras-lg{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}
  .galeria-pin .muestras-lg li{flex-direction:row;align-items:center;gap:6px}
  .galeria-pin .muestras-lg .sw{width:20px;height:20px}
  .galeria-pin .pieza-ctas{margin-top:12px;gap:8px}
  .galeria-pin .pieza-ctas .btn{min-height:44px;padding:0 16px;font-size:15px}
  .galeria-pin .pieza .link-sec{margin-top:0}
  .galeria-pin .galeria-nav{margin-top:10px}
  .galeria-pin .gal-btn{width:44px;height:44px}
}

/* =====================================================================
   3 · LO QUE HAY DETRÁS — consola (sticky en escritorio con JS)
   ===================================================================== */
.servicios-cuerpo{display:flex;flex-direction:column;gap:28px}
.consola,.bloques{display:contents}
.sim[data-escena="bots"]{order:1}.bloque[data-escena="bots"]{order:2}
.sim[data-escena="auto"]{order:3}.bloque[data-escena="auto"]{order:4}
.sim[data-escena="dash"]{order:5}.bloque[data-escena="dash"]{order:6}
.bloque:not(:last-child){margin-bottom:36px}

.sim{position:relative;display:flex;flex-direction:column;min-width:0;margin:0;border-radius:16px;background:#F4F6FA;box-shadow:0 0 0 1px rgba(148,163,184,.3),0 0 0 7px rgba(45,212,191,.06),0 40px 80px -40px rgba(2,8,20,.95);overflow:hidden}
.punto-vivo{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 3px rgba(45,212,191,.18)}

/* Panel realista: el mismo diseño del panel que entregamos (riel azul marino, contenido claro, turquesa) */
.px{--pb:#F4F6FA;--pc:#fff;--pl:#E3E8EF;--pt:#0F1B2D;--pt2:#526077;--pv:#0F766E;--pv2:#CCFBF1;--pn:#0B1A30;container-type:inline-size;display:flex;flex-direction:column;flex:1;min-height:0;background:var(--pb);color:var(--pt);font:400 13px/1.4 var(--font-body);text-align:left}
.px svg{display:block;flex:none;width:16px;height:16px}
.px b{font-weight:600}
.px i{font-style:normal}
.px ul,.px ol{margin:0;padding:0;list-style:none}
.px-barra{display:flex;align-items:center;gap:12px;height:36px;padding:0 14px;border-bottom:1px solid var(--pl);background:#E8ECF2;flex:none}
.px-luces{display:flex;gap:6px}
.px-luces i{width:10px;height:10px;border-radius:50%;background:#C6CFDB}
.px-url{display:inline-flex;align-items:center;gap:6px;margin:0 auto;padding:3px 12px;border-radius:7px;background:#fff;color:var(--pt2);font-size:12px;box-shadow:0 0 0 1px var(--pl)}
.px-url svg{width:12px;height:12px}
.px-vivo{display:none;align-items:center;gap:6px;color:var(--pv);font-size:12px;font-weight:600}
.px-vivo .punto-vivo{width:7px;height:7px;background:#14B8A6;box-shadow:0 0 0 3px rgba(20,184,166,.22)}
.px-app{display:flex;flex:1;min-height:0}
.px-riel{display:none;flex-direction:column;align-items:center;gap:6px;width:52px;padding:12px 0;background:var(--pn);flex:none}
.px-logo{display:grid;place-items:center;width:30px;height:30px;margin-bottom:8px;border-radius:9px;background:linear-gradient(135deg,#2DD4BF,#0F766E);color:#fff}
.px-ri{position:relative;display:grid;place-items:center;width:34px;height:34px;border-radius:9px;color:#8B9DB8}
.px-ri svg{width:18px;height:18px}
.px-ri.is-act{background:rgba(45,212,191,.16);color:#5EEAD4}
.px-badge{position:absolute;top:1px;right:-1px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#2DD4BF;color:#04201C;font:700 11px/16px var(--font-body);text-align:center}
.px-yo{display:grid;place-items:center;width:30px;height:30px;margin-top:auto;border-radius:50%;background:#1E3A5F;color:#D6E6FF;font-size:11px;font-weight:700}
.px-main{position:relative;display:flex;flex-direction:column;gap:10px;flex:1;min-width:0;min-height:0;padding:12px}
.px-cab{display:flex;align-items:center;gap:8px;min-height:28px}
.px-h{font:700 16px/1.2 var(--font-display);letter-spacing:-.01em}
.px-cuenta{padding:2px 8px;border-radius:999px;background:var(--pv2);color:#115E59;font-size:12px;font-weight:600;white-space:nowrap}
.px-filtros,.px-seg{display:none;margin-left:auto;gap:2px;padding:2px;border-radius:8px;background:#E8ECF2}
.px-filtros>*,.px-seg>*{padding:3px 8px;border-radius:6px;color:var(--pt2);font-size:12px}
.px-filtros b,.px-seg b{background:#fff;color:var(--pt);box-shadow:0 1px 2px rgba(15,27,45,.12)}
.px-cab-der{margin-left:auto;color:var(--pt2);font-size:12px;white-space:nowrap}
.px-card{padding:12px;border-radius:12px;background:var(--pc);box-shadow:0 0 0 1px var(--pl),0 1px 2px rgba(15,27,45,.04)}
.px-card-t{margin-bottom:8px;color:var(--pt2);font-size:12px;font-weight:600}
.px-av{position:relative;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--c,#0F766E);color:#fff;font-size:12px;font-weight:700;flex:none}
.px-canal{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;box-shadow:0 0 0 2px #fff;color:#fff}
.px .px-canal svg{width:9px;height:9px}
.c-wa{background:#1FAF55}.c-ig{background:#7C3AED}.c-web{background:#2563EB}
.px-switch{display:inline-flex;align-items:center;gap:6px;color:var(--pt2);font-size:12px;font-weight:600;flex:none}
.px-switch i{position:relative;width:26px;height:15px;border-radius:8px;background:#CBD5E1}
.px-switch i::after{content:"";position:absolute;top:2px;left:2px;width:11px;height:11px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.px-switch.is-on i{background:#14B8A6}
.px-switch.is-on i::after{left:13px}

/* a · bandeja */
.px-bandeja{display:flex;flex:1;min-height:0;border-radius:12px;background:var(--pc);box-shadow:0 0 0 1px var(--pl);overflow:hidden}
.px-convs{display:none;flex-direction:column;width:40%;max-width:214px;border-right:1px solid var(--pl);overflow:hidden;flex:none}
.px-conv{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid #EEF2F6}
.px-conv.is-sel{background:#F0FDFA;box-shadow:inset 2px 0 0 #14B8A6}
.px-conv-t{display:flex;flex-direction:column;flex:1;min-width:0}
.px-conv-t>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.px-conv-t span{color:var(--pt2);font-size:12px}
.px-conv-m{display:flex;flex-direction:column;align-items:flex-end;gap:3px;color:var(--pt2);font-size:11px;white-space:nowrap}
.px-noleido{min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#14B8A6;color:#04201C;font:700 11px/16px var(--font-body);text-align:center}
.px-tag{padding:0 6px;border-radius:6px;background:#EEF2F6;color:#334155;font-size:11px}
.px-hilo{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}
.px-hilo-cab{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--pl)}
.px-hilo-n{display:flex;flex-direction:column;flex:1;min-width:0}
.px-hilo-n>span{display:flex;align-items:center;gap:4px;overflow:hidden;color:var(--pt2);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.px .px-ic-wa{width:12px;height:12px;color:#1FAF55}
.px-msgs{display:flex;flex-direction:column;justify-content:flex-end;flex:1;min-height:0;padding:10px 12px 12px;background:#F7F9FC;overflow:hidden}
.px-dia{align-self:center;padding:2px 8px;border-radius:6px;background:#E8ECF2;color:var(--pt2);font-size:11px;font-weight:600}
.px-m{max-width:88%;margin-top:8px;padding:7px 10px;border-radius:12px}
.px-m>span{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:2px;color:var(--pt2);font-size:11px}
.px-m.in{align-self:flex-start;border-bottom-left-radius:4px;background:#fff;box-shadow:0 0 0 1px var(--pl)}
.px-m.out{align-self:flex-end;border-bottom-right-radius:4px;background:#CCFBF1}
.px-m.out>span{color:#115E59}
.px .px-m svg{width:11px;height:11px}
.px-m.out{position:relative}
/* «escribiendo…» encima del lugar del mensaje que viene: no mueve nada (sin saltos de diseño) */
.px-tipeo{position:absolute;right:0;bottom:0;display:none;gap:4px;padding:10px 12px;border-radius:12px;border-bottom-right-radius:4px;background:#CCFBF1}
.px-tipeo i{width:6px;height:6px;border-radius:50%;background:#0F766E;opacity:.35}
.px-evento{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px #99F6E4}
.px-evento-ico{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--pv);color:#fff;flex:none}
.px .px-evento-ico svg{width:14px;height:14px}
.px-evento>span:last-child{display:flex;flex-direction:column;min-width:0;color:var(--pt2);font-size:12px}
.px-evento b{color:var(--pt);font-size:13px}
.px-redactar{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 12px;border-top:1px solid var(--pl);color:var(--pt2);font-size:12px}
.px-redactar span{min-width:0}
.px-redactar b{margin-left:auto;padding:6px 10px;border-radius:8px;background:var(--pv);color:#fff;font-size:12px;white-space:nowrap}

/* b · automatizaciones */
.px-flujo-cab{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.px-flujo-ico{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--pv2);color:var(--pv);flex:none}
.px-flujo-t{display:flex;flex-direction:column;flex:1;min-width:0}
.px-flujo-t span{color:var(--pt2);font-size:12px}
.px-ok{padding:3px 8px;border-radius:999px;background:var(--pv2);color:#115E59;font-size:11px;font-weight:600;white-space:nowrap}
.px-pasos{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.px-paso{position:relative;display:flex;align-items:center;gap:10px}
.px-paso:not(:last-child)::after{content:"";position:absolute;left:14px;top:31px;width:2px;height:calc(100% - 20px);border-radius:1px;background:#5EEAD4;transform-origin:50% 0}
.px-paso-ico{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#F0FDFA;color:var(--pv);box-shadow:inset 0 0 0 1.5px #5EEAD4;flex:none}
.px-visto{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--pv);color:#fff;box-shadow:0 0 0 2px #fff}
.px .px-visto svg{width:9px;height:9px}
.px-paso-t{display:flex;flex-direction:column;flex:1;min-width:0}
.px-paso-t span{overflow:hidden;color:var(--pt2);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.px-paso-s{color:var(--pt2);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.px-reglas li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #EEF2F6}
.px-reglas li:first-child{padding-top:0;border-top:0}
.px-reglas li:last-child{padding-bottom:0}
.px-regla{display:flex;flex-direction:column;flex:1;min-width:0}
.px-regla span{overflow:hidden;color:var(--pt2);font-size:12px;white-space:nowrap;text-overflow:ellipsis}
.px-regla-n{color:var(--pt2);font-size:12px;white-space:nowrap}
.px-toast{position:absolute;top:8px;right:10px;z-index:2;display:flex;align-items:center;gap:10px;max-width:min(280px,calc(100% - 20px));padding:10px 12px;border-radius:12px;background:var(--pn);color:#fff;box-shadow:0 18px 36px -12px rgba(11,26,48,.55);opacity:0;pointer-events:none}
.px .px-toast svg{color:#5EEAD4}
.px-toast>span{display:flex;flex-direction:column;min-width:0;color:#B9C6D8;font-size:12px}
.px-toast b{color:#fff;font-size:13px}

/* c · resumen */
.px-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.px-kpi{display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px;border-radius:12px;background:var(--pc);box-shadow:0 0 0 1px var(--pl)}
.px-kpi>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.px-kpi>span{color:var(--pt2);font-size:12px}
.px-kpi>b{font:700 20px/1.15 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.px-kpi>i{color:var(--pv);font-size:11px;font-weight:600}
.px-graf-cab{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}
.px-graf-cab span{font:700 15px/1 var(--font-display);font-variant-numeric:tabular-nums}
.px-graf-area{position:relative;height:112px;margin:6px 4px 0 36px}
.px .px-graf-area svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.px-rejilla{fill:none;stroke:#EDF1F6;stroke-width:1;vector-effect:non-scaling-stroke}
.px-relleno{fill:url(#px-grad)}
.px-linea{fill:none;stroke:var(--pv);stroke-width:2.2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.px-y{position:absolute;left:-36px;top:var(--y);transform:translateY(-50%);color:#5B6A80;font-size:11px;font-variant-numeric:tabular-nums}
.px-punto{position:absolute;left:100%;top:13.9%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--pv);box-shadow:0 0 0 3px #fff,0 0 0 5px rgba(15,118,110,.22)}
.px-tip{position:absolute;right:-4px;top:calc(13.9% + 10px);padding:3px 7px;border-radius:6px;background:var(--pn);color:#fff;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.px-x{display:flex;justify-content:space-between;margin:6px 0 0 36px;color:#5B6A80;font-size:11px}
.px-x b{color:var(--pt)}
.px-abajo{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.px-prox li{display:flex;align-items:center;gap:10px;padding:6px 0;border-top:1px solid #EEF2F6}
.px-prox li:first-child{padding-top:0;border-top:0}
.px-prox li:last-child{padding-bottom:0}
.px-prox li>b{width:38px;font-variant-numeric:tabular-nums;flex:none}
.px-prox li>span{display:flex;flex-direction:column;flex:1;min-width:0}
.px-prox li>span>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.px-prox small{color:var(--pt2);font-size:11px}
.px-nuevo{margin:0 -6px;padding-inline:6px!important;border-radius:8px;background:#F0FDFA}
.px-est{padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}
.px-est.ok{background:#CCFBF1;color:#115E59}
.px-est.nuevo{background:#DBEAFE;color:#1E40AF}
.px-canales{display:none}
.px-canales ul{display:grid;gap:9px}
.px-canales li{display:grid;grid-template-columns:1fr auto;gap:4px 8px;font-size:12px}
.px-canales li i{position:relative;grid-column:1/-1;height:6px;border-radius:3px;background:#E8ECF2;overflow:hidden}
.px-canales li i::before{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--p) * 100%);border-radius:3px;background:var(--pv);transform-origin:0 50%}

/* Según el ancho de la ventana del panel (no de la pantalla) */
@container (min-width:420px){
  .px-riel{display:flex}
  .px-vivo{display:inline-flex}
  .px-url{margin:0 auto}
}
@container (max-width:539px){
  .px-graf-area{height:84px}
  .px-prox li:nth-child(3){display:none}
}
@container (min-width:540px){
  .px-convs{display:flex}
  .px-filtros,.px-seg{display:flex}
  .px-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
  .px-abajo{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
  .px-canales{display:block}
}

/* Animación: cada escena corre su secuencia una vez al aparecer (initConsola pone is-pre → is-play) */
.sim.is-pre .px-anim,.sim.is-pre .px-paso,.sim.is-pre .px-nueva,.sim.is-pre .px-escribe>:not(.px-tipeo){opacity:0}
.sim.is-pre .px-escribe{background-color:transparent}
.sim.is-play .px-anim{animation:pxEntra .45s var(--ease-out) var(--d,0ms) both}
.sim.is-play .px-nueva{animation:pxNueva .6s var(--ease-out) .1s both}
.sim.is-play .px-escribe{animation:pxBurbuja .45s var(--ease-out) var(--d,0ms) both}
.sim.is-play .px-escribe>:not(.px-tipeo){animation:pxTexto .35s ease var(--d,0ms) both}
.sim.is-play .px-tipeo{display:flex;animation:pxTipeo calc(var(--d) - var(--dt)) linear var(--dt) both}
.sim.is-play .px-tipeo i{animation:tecleo .4s ease-in-out var(--dt,0ms) 2 both}
.sim.is-play .px-tipeo i:nth-child(2){animation-delay:calc(var(--dt,0ms) + 100ms)}
.sim.is-play .px-tipeo i:nth-child(3){animation-delay:calc(var(--dt,0ms) + 200ms)}
.sim.is-play .px-paso{animation:pxEntra .4s var(--ease-out) var(--d,0ms) both}
.sim.is-play .px-visto{animation:pxPop .35s var(--ease-out) calc(var(--d,0ms) + 380ms) both}
.sim.is-play .px-paso:not(:last-child)::after{animation:pxLinea .45s ease calc(var(--d,0ms) + 300ms) both}
.sim.is-play .px-toast{animation:pxToast 4.4s var(--ease-out) var(--d,0ms) both}
.sim.is-play .px-trazo{animation:pxRevela 1.1s var(--ease-out) .15s both}
.sim.is-play .px-canales li i::before{animation:pxBarra .8s var(--ease-out) .5s both}
@keyframes pxEntra{from{opacity:0;transform:translateY(8px)}}
@keyframes pxNueva{0%{opacity:0;transform:translateX(-14px);background:#CCFBF1}55%{opacity:1;transform:none;background:#CCFBF1}}
@keyframes pxTipeo{0%{opacity:0}12%,88%{opacity:1}100%{opacity:0}}
@keyframes pxBurbuja{from{background-color:rgba(204,251,241,0);transform:translateY(6px)}}
@keyframes pxTexto{from{opacity:0}}
@keyframes pxPop{from{transform:scale(0)}}
@keyframes pxLinea{from{transform:scaleY(0)}}
@keyframes pxToast{0%{opacity:0;transform:translateY(-10px) scale(.97)}8%,86%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-6px)}}
@keyframes pxRevela{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes pxBarra{from{transform:scaleX(0)}}

/* Bloques de texto */
.bloque{max-width:36rem}
.bloque-k{color:var(--teal);font-size:15px;font-weight:600}
.bloque h3{margin-top:10px;font:700 clamp(1.5rem,1.15rem + 1.2vw,2.125rem)/1.12 var(--font-display);letter-spacing:-.02em;text-wrap:balance}
.bloque-entrada{margin-top:16px;font-size:clamp(1.0625rem,1rem + .2vw,1.1875rem)}
.bloque-p{margin-top:12px;color:var(--text-2)}
.bloque .checks{margin-top:20px}
.bloque-cambio{margin-top:24px;padding-left:14px;border-left:2px solid var(--teal);font:700 18px/1.35 var(--font-display)}
.bloque .btn{margin-top:24px}

@media (min-width:1024px){
  .servicios-cuerpo{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);column-gap:clamp(40px,5vw,88px);row-gap:88px;align-items:center}
  .sim[data-escena="bots"]{grid-area:1/1}.bloque[data-escena="bots"]{grid-area:1/2}
  .sim[data-escena="auto"]{grid-area:2/1}.bloque[data-escena="auto"]{grid-area:2/2}
  .sim[data-escena="dash"]{grid-area:3/1}.bloque[data-escena="dash"]{grid-area:3/2}
  .bloque:not(:last-child){margin-bottom:0}
  /* Consola viva: una sola consola fija a la izquierda mientras corren los bloques */
  .consola-viva{align-items:start}
  .consola-viva .consola{display:block;position:sticky;top:calc(var(--header-h) + max(24px,(100vh - var(--header-h) - 580px) / 2));grid-area:1/1;height:580px}
  .consola-viva .bloques{display:block;grid-area:1/2}
  .consola-viva .sim{position:absolute;inset:0;opacity:0;visibility:hidden;transform:translateY(var(--dist-s));transition:opacity var(--dur-m) var(--ease-out),transform var(--dur-m) var(--ease-out),visibility 0s linear var(--dur-m)}
  .consola-viva .sim.is-on{opacity:1;visibility:visible;transform:none;transition-delay:0s}
  .consola-viva .bloque{display:flex;flex-direction:column;justify-content:center;min-height:max(82vh,600px)}
  .consola-viva .bloque .btn{align-self:flex-start}
}
@media (min-width:640px){
  .muestras-lg{grid-template-columns:repeat(4,max-content);gap:12px 20px}
  .muestras-lg li{flex-direction:column;align-items:flex-start;gap:6px}
  .muestras-lg .sw{width:30px;height:30px}
}

/* =====================================================================
   4 · VELOCIDAD — LCP real del visitante
   ===================================================================== */
.velocidad{background:linear-gradient(180deg,rgba(13,29,51,0),#0D1D33 22%,#0D1D33 78%,rgba(13,29,51,0))}
.vel-grid{display:grid;gap:36px;align-items:center}
.medidor{display:none;position:relative;width:min(240px,64vw);aspect-ratio:1}
.vel-ok .medidor{display:block}
.medidor svg{width:100%;height:100%;transform:rotate(-90deg)}
.m-pista,.m-valor{fill:none;stroke-width:10}
.m-pista{stroke:var(--line)}
.m-valor{stroke:var(--teal);stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:var(--off,1);transition:stroke-dashoffset var(--dur-l) var(--ease-out)}
.m-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:700 clamp(2.5rem,2rem + 2vw,3.5rem)/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.m-s{margin-left:4px;color:var(--text-2);font-size:.5em}
.vel-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.vel-p{margin-top:16px;color:var(--text-1);font-size:clamp(1.0625rem,1rem + .3vw,1.25rem)}
.vel-ref{margin-top:6px;color:var(--text-2)}
.vel-mide{margin-top:10px;color:var(--text-2)}
.vel-mide a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,212,191,.6);text-decoration-thickness:1.5px;text-underline-offset:5px}
.vel-mide a:hover{color:var(--teal)}
.vel-lista{display:grid;gap:14px;margin-top:26px}
.vel-lista li{display:flex;align-items:center;gap:12px;color:var(--text-1);font-size:17px}
.vel-lista svg{flex:none;color:var(--teal)}
@media (min-width:900px){
  .vel-grid{grid-template-columns:auto minmax(0,1fr);gap:72px}
  .vel-lista{grid-template-columns:repeat(3,auto);justify-content:start;gap:12px 32px}
}

/* =====================================================================
   5 · CÓMO TRABAJAMOS — pasos con línea dibujada por el scroll
   ===================================================================== */
.nosotros-grid{display:grid;gap:28px}
.nosotros-texto p{color:var(--text-1);font-size:17px}
.nosotros-texto p+p{margin-top:14px}
.nosotros-texto .checks{margin-top:24px}
.pasos{margin-top:clamp(56px,7vw,96px)}
.pasos-titulo{font:700 clamp(1.375rem,1.1rem + 1vw,1.75rem)/1.2 var(--font-display)}
.pasos-cuerpo{position:relative;margin-top:30px;view-timeline-name:--pasos}
.pasos-lista{position:relative;display:grid;gap:30px}
.pasos-lista li{position:relative;padding-left:64px}
.paso-n{position:absolute;left:0;top:-6px;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--bg);box-shadow:inset 0 0 0 1.5px var(--teal);color:var(--teal);font:700 18px/1 var(--font-display)}
.pasos-lista h4{font:700 19px/1.3 var(--font-display)}
.pasos-lista p{margin-top:6px;color:var(--text-2)}
.pasos-linea{position:absolute;overflow:visible;pointer-events:none}
.pasos-linea path{fill:none;stroke:var(--teal);stroke-width:2;vector-effect:non-scaling-stroke}
.pasos-linea-h{display:none}
.pasos-linea-v{left:21px;top:22px;width:4px;height:calc(100% - 56px)}
@media (min-width:900px){
  .pasos-lista{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px}
  .pasos-lista li{padding:66px 0 0}
  .paso-n{top:0}
  .pasos-linea-v{display:none}
  .pasos-linea-h{display:block;left:22px;top:20px;width:calc((100% + 32px) * .75);height:4px}
}
@media (min-width:1024px){
  .nosotros-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:72px;align-items:start}
}
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    .pasos-linea path{stroke-dasharray:1 1;stroke-dashoffset:1;animation:dibujar linear both;animation-timeline:--pasos;animation-range:entry 35% cover 60%}
  }
}
@keyframes dibujar{to{stroke-dashoffset:0}}

/* =====================================================================
   6 · PAQUETES — selector segmentado + panel amplio
   ===================================================================== */
.selector-wrap{position:sticky;top:calc(var(--header-h) + 10px);z-index:6;display:flex;justify-content:center;margin-bottom:22px;pointer-events:none}
.selector{position:relative;display:inline-flex;padding:5px;border-radius:15px;background:rgba(13,29,51,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px var(--line-2),0 14px 30px -16px rgba(0,0,0,.85);pointer-events:auto}
.selector button{position:relative;z-index:1;width:clamp(92px,26vw,128px);min-height:46px;padding:0 12px;border:0;border-radius:11px;background:transparent;color:var(--text-1);font:600 16px/1 var(--font-body);cursor:pointer;transition:color var(--dur-s) var(--ease-out)}
.selector button[aria-selected="true"]{color:#0A1628}
@media (hover:hover){.selector button[aria-selected="false"]:hover{color:var(--text)}}
.selector-luz{position:absolute;top:5px;left:5px;width:clamp(92px,26vw,128px);height:calc(100% - 10px);border-radius:11px;background:var(--teal);transform:translateX(calc(var(--i,1) * clamp(92px,26vw,128px)));transition:transform var(--dur-m) var(--ease-out)}

.planes-paneles{display:grid;gap:20px}
.plan-card{display:grid;gap:26px;padding:clamp(22px,3vw,40px);border-radius:24px;background:linear-gradient(180deg,#112340,#0D1D33);box-shadow:inset 0 0 0 1px var(--line),0 40px 80px -48px rgba(0,0,0,.95)}
.plan-card.featured{box-shadow:inset 0 0 0 1.5px rgba(45,212,191,.5),0 40px 80px -48px rgba(0,0,0,.95)}
.plan-name{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;color:var(--text-2);font-size:15px;font-weight:600}
.plan-badge{display:inline-flex;align-items:center;min-height:26px;padding:2px 10px;border-radius:999px;background:rgba(45,212,191,.14);color:var(--teal);font-size:14px;font-weight:600}
.plan-title{margin-top:8px;font:700 clamp(2.125rem,1.55rem + 1.9vw,3rem)/1.02 var(--font-display);letter-spacing:-.03em}
.plan-desc{margin-top:14px;color:var(--text-1)}
.plan-desc b{color:var(--text)}
.plan-col-label{margin-bottom:12px;color:var(--text-2);font-size:15px;font-weight:600}
.plan-features{display:grid;gap:12px}
.plan-feature{display:flex;align-items:flex-start;gap:10px;color:var(--text-1)}
.plan-feature svg{flex:none;margin-top:5px;color:var(--teal)}
.plan-feature b{color:var(--text)}
.plan-precio{display:flex;flex-direction:column}
.price-block{display:grid;gap:14px}
.price-row{display:flex;flex-direction:column;gap:2px}
.price-label{color:var(--text-2);font-size:14px}
.price-value{margin:0;font:700 clamp(1.75rem,1.4rem + 1vw,2.25rem)/1.1 var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.price-row.monthly .price-value{font-size:clamp(1.25rem,1.1rem + .5vw,1.5rem)}
.price-value .iva{margin-left:2px;color:var(--text-2);font:600 15px/1 var(--font-body);letter-spacing:0;white-space:nowrap}
.price-trial{display:flex;align-items:center;gap:8px;margin-top:16px;color:var(--text-1);font-size:15px}
.price-trial svg{flex:none;color:var(--teal)}
.plan-select{width:100%;margin-top:18px}
.plan-fineprint{margin-top:12px;color:var(--text-2);font-size:14px}
.plan-custom-badge{display:inline-flex;align-self:flex-start;align-items:center;min-height:28px;padding:2px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px #33465F;color:var(--text);font-size:14px;font-weight:600}
.plan-custom-text{margin-top:10px;color:var(--text-1)}
.plan-form-link{display:inline-flex;align-items:center;align-self:flex-start;min-height:44px;margin-top:6px;color:var(--text-1);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,212,191,.6);text-decoration-thickness:1.5px;text-underline-offset:5px}
.plan-form-link:hover{color:var(--teal)}
.plan-card.entrando{animation:vt-entra var(--dur-m) var(--ease-out) both}
@media (min-width:1024px){
  .plan-card{grid-template-columns:minmax(0,4fr) minmax(0,4.4fr) minmax(0,3.4fr);gap:44px;align-items:start}
}
:root{view-transition-name:none}
.planes-tabs .plan-card:not([hidden]){view-transition-name:panel-plan}
::view-transition-group(panel-plan){animation-duration:var(--dur-m);animation-timing-function:var(--ease-out)}
::view-transition-old(panel-plan){animation:vt-sale var(--dur-s) var(--ease-out) both}
::view-transition-new(panel-plan){animation:vt-entra var(--dur-m) var(--ease-out) both}
@keyframes vt-entra{from{opacity:0;transform:translateY(var(--dist-s))}}
@keyframes vt-sale{to{opacity:0;transform:translateY(calc(-1 * var(--dist-s)))}}

/* 7 · Confirmación y pago: continúan el panel */
.orden{display:none;margin-top:22px}
.orden.visible{display:block;animation:vt-entra var(--dur-m) var(--ease-out) both}
.orden-card{position:relative;padding:clamp(22px,3vw,36px);border-radius:24px;background:#0D1D33;box-shadow:inset 0 0 0 1px var(--line-2)}
.orden-card::before{content:"";position:absolute;left:clamp(30px,3.6vw,48px);top:-23px;width:2px;height:22px;background:var(--teal)}
.orden-label{display:inline-flex;align-items:center;gap:8px;color:var(--teal);font-size:15px;font-weight:600}
.orden-card h3{margin-top:6px;font:700 clamp(1.5rem,1.2rem + 1vw,2rem)/1.15 var(--font-display);letter-spacing:-.02em}
.orden-sub{margin-top:8px;color:var(--text-2)}
.orden-rows{display:grid;margin-top:18px}
.confirm-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed #2A3B55}
.confirm-row .label{color:var(--text-2);font-size:15px}
.confirm-row .value{margin:0;font-weight:600;text-align:right}
.confirm-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
/* Datos de contacto antes de pagar */
.orden-datos{display:grid;gap:14px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.orden-datos-t{font:700 18px/1.3 var(--font-display)}
.orden-datos-sub{margin-top:-8px;color:var(--text-2);font-size:15px}
.orden-datos .confirm-actions{margin-top:2px}
.orden-datos .form-note:empty{display:none}
.orden-datos .opt{color:var(--text-2);font-weight:400}
.btn-stripe{width:100%;margin-top:20px}
.checkout-error{margin-top:12px;color:var(--error);font-weight:600}
.checkout-secure{margin-top:12px;color:var(--text-2);font-size:14px}
.planes-cierre{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:44px;color:var(--text-1);font-size:17px}
@media (min-width:768px){.btn-stripe{width:auto}}

/* =====================================================================
   8 · RESEÑAS (solo con reseñas aprobadas)
   ===================================================================== */
.reviews-hint{margin-top:10px;color:var(--text-2)}
.reviews-track-wrap{margin-top:28px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none}
.reviews-track-wrap::-webkit-scrollbar{display:none}
.reviews-track{display:flex;gap:16px;width:max-content;padding-inline:var(--gutter)}
.review-card{flex:0 0 min(84vw,420px);padding:22px;scroll-snap-align:start;border-radius:18px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.review-head{display:flex;align-items:center;gap:12px}
.review-logo,.review-logo-fallback{flex:none;width:40px;height:40px;border-radius:12px;object-fit:cover}
.review-logo-fallback{display:grid;place-items:center;font:700 18px/1 var(--font-display)}
.review-client{font-weight:600}
.review-dot{width:8px;height:8px;margin-left:auto;border-radius:50%}
.review-text{margin-top:14px;color:var(--text-1)}

/* =====================================================================
   9 · PREGUNTAS (abiertas, dos columnas)
   ===================================================================== */
.faq-list{display:grid;margin-top:32px;border-top:1px solid var(--line)}
.faq-item{display:grid;gap:8px;padding:22px 0;border-bottom:1px solid var(--line)}
.faq-item dt{font:700 clamp(1.125rem,1rem + .5vw,1.3125rem)/1.3 var(--font-display)}
.faq-item dd{color:var(--text-1)}
.faq-item dd b{color:var(--text)}
.faq-bot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:32px;color:var(--text-1);font-size:17px}
.faq-bot img{width:15px;height:24px}
@media (min-width:900px){.faq-item{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;padding:28px 0}}

/* =====================================================================
   10 · CONTACTO
   ===================================================================== */
.contacto-grid{display:grid;gap:40px}
.contacto-p{margin-top:14px;color:var(--text-1);font-size:17px}
.online{display:flex;align-items:center;gap:10px;margin-top:18px;color:var(--text-1);font-weight:600}
.online-dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--text-3)}
.online.is-on .online-dot{background:var(--teal);box-shadow:0 0 0 4px rgba(45,212,191,.18)}
.contacto-canales{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.contacto-datos{display:grid;gap:12px;margin-top:28px}
.contacto-datos div{display:grid;gap:0}
.contacto-datos dt{color:var(--text-2);font-size:14px}
.contacto-datos dd{color:var(--text-1)}
.contacto-datos a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,212,191,.6);text-decoration-thickness:1.5px;text-underline-offset:5px}
.form{position:relative;display:grid;gap:16px;padding:clamp(22px,3vw,36px);border-radius:24px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.form-title{font:700 22px/1.2 var(--font-display)}
.field{display:grid;gap:6px}
.field label{color:var(--text-1);font-size:15px;font-weight:600}
.field input,.field textarea{width:100%;min-height:52px;padding:12px 14px;border:0;border-radius:12px;background:#0A1628;color:var(--text);font-size:16px;box-shadow:inset 0 0 0 1.5px var(--line-2);transition:box-shadow var(--dur-s) var(--ease-out)}
.field textarea{min-height:120px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--text-3);opacity:1}
.field input:focus,.field textarea:focus{outline:none;box-shadow:inset 0 0 0 2px var(--teal)}
.field [aria-invalid="true"]{box-shadow:inset 0 0 0 2px var(--error)}
.hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.form .btn{width:100%}
.form-note{color:var(--text-2);font-size:15px}
.form-note.is-error{color:var(--error);font-weight:600}
.form-note.is-ok{color:var(--teal);font-weight:600}
.form-privacy{color:var(--text-2);font-size:14px}
.form-privacy a{display:inline-flex;align-items:center;min-height:44px;color:var(--text-1);font-weight:600;text-decoration:underline;text-underline-offset:3px}
@media (min-width:1024px){.contacto-grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:72px;align-items:start}}

/* =====================================================================
   11 · FOOTER (una banda)
   ===================================================================== */
.site-footer{padding:40px 0 32px;border-top:1px solid var(--line)}
.footer-band{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.footer-tag{flex:1 1 18rem;color:var(--text-2);font-size:15px}
.foot-links,.foot-social,.foot-legal{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px}
.foot-links a,.foot-social a,.foot-legal a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--text-1);font-size:15px;text-decoration:none;transition:color var(--dur-s) var(--ease-out)}
.foot-links a:hover,.foot-social a:hover,.foot-legal a:hover{color:var(--teal)}
.foot-contacto{display:flex;flex-wrap:wrap;align-items:center;gap:0 22px;width:100%}
.foot-contacto a{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--text-1);font-size:15px;text-decoration:none;transition:color var(--dur-s) var(--ease-out)}
.foot-contacto a:hover{color:var(--teal)}
.foot-contacto svg{color:var(--teal)}
.foot-soporte{display:inline-flex;flex-wrap:wrap;align-items:center;gap:0 18px;color:var(--text-2);font-size:15px}
.foot-legal{width:100%;padding-top:10px;border-top:1px solid var(--line);color:var(--text-2);font-size:14px}
.foot-legal a{font-size:14px}

/* =====================================================================
   Barra fija en celular + NexoBot
   ===================================================================== */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:flex;gap:10px;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(10,22,40,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);transition:transform var(--dur-m) var(--ease-out)}
.mbar .btn{flex:1;min-height:52px}
.mbar-wa{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:12px;background:rgba(16,31,54,.85);color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--line-2)}
.mbar.is-hidden{transform:translateY(110%)}
@media (min-width:768px){.mbar{display:none}}
@media (max-width:767px){.site-footer{padding-bottom:110px}}

#nexobot-widget{position:fixed;right:16px;bottom:16px;z-index:58;transition:transform var(--dur-m) var(--ease-out)}
@media (max-width:767px){body:has(.mbar:not(.is-hidden)) #nexobot-widget{transform:translateY(-78px)}}
.nexobot-bubble{display:grid;place-items:center;width:60px;height:60px;border:0;border-radius:50%;background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line-2),0 16px 32px -12px rgba(0,0,0,.85);cursor:pointer;transition:transform var(--dur-xs) var(--ease-out),box-shadow var(--dur-s) var(--ease-out)}
.nexobot-bubble:active{transform:scale(.94)}
@media (hover:hover){.nexobot-bubble:hover{box-shadow:inset 0 0 0 1.5px var(--teal),0 16px 32px -12px rgba(0,0,0,.85)}}
.nexobot-bubble img{width:22px;height:35px}
.nexobot-window{position:absolute;right:0;bottom:72px;display:none;flex-direction:column;width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 160px));border-radius:18px;overflow:hidden;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line-2),0 30px 60px -20px rgba(0,0,0,.9)}
.nexobot-window.open{display:flex;animation:vt-entra var(--dur-s) var(--ease-out) both}
.nexobot-header{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 16px;border-bottom:1px solid var(--line);font-weight:600}
.nexobot-header img{width:16px;height:26px}
.nexobot-close{display:grid;place-items:center;width:44px;height:44px;margin-left:auto;border:0;border-radius:10px;background:transparent;color:var(--text-1);cursor:pointer}
.nexobot-close:hover{color:var(--teal)}
#nexobot-frame{flex:1;width:100%;border:0;background:#fff}

/* =====================================================================
   Movimiento reducido: todo en su estado final, sin desplazamientos
   ===================================================================== */
@media (prefers-reduced-motion:reduce){
  .btn,.btn::before,.gal-btn,.selector-luz,.mbar,#nexobot-widget,.galeria-barra span,.muestras-lg li,.m-valor{transition:none!important}
  .orden.visible,.nexobot-window.open,.plan-card.entrando,.px *{animation:none!important}
  ::view-transition-old(panel-plan),::view-transition-new(panel-plan),::view-transition-group(panel-plan){animation:none!important}
}

/* =====================================================================
   Panel de NexoWeb (PW-2026-006): campos nuevos del formulario,
   respuesta en reseñas
   ===================================================================== */
.field-row{display:grid;gap:16px}
@media (min-width:560px){.field-row{grid-template-columns:1fr 1fr}}
.field label .opt{color:var(--text-2);font-weight:400}
.field select{width:100%;min-height:52px;padding:12px 40px 12px 14px;border:0;border-radius:12px;background:#0A1628 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A95A8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;color:var(--text);font:inherit;font-size:16px;box-shadow:inset 0 0 0 1.5px var(--line-2);-webkit-appearance:none;appearance:none;transition:box-shadow var(--dur-s) var(--ease-out)}
.field select:focus{outline:none;box-shadow:inset 0 0 0 2px var(--teal)}
.field select option{background:#0D1D33;color:var(--text)}
.form .form-wa{width:100%}
.form .form-wa[hidden]{display:none}
.review-reply{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);color:var(--text-2);font-size:15px}
.review-reply b{color:var(--text-1)}

/* =====================================================================
   9 · AGENDA — reunión estratégica (mismo sistema del KIT-AGENDA)
   ===================================================================== */
/* el navegador no dibuja la agenda hasta que se acerca (carga más ligera y sin brincos al cargar el CSS) */
.agendar{position:relative;padding-block:clamp(72px,8vw,112px);content-visibility:auto;contain-intrinsic-size:auto 3400px}
@media (min-width:1024px){.agendar{contain-intrinsic-size:auto 1750px}}
.agendar::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60% 45% at 80% 0%,rgba(45,212,191,.07),transparent 70%)}
.agendar-head h2{font:700 clamp(1.875rem,1.15rem + 2.7vw,3.25rem)/1.06 var(--font-display);letter-spacing:-.025em;text-wrap:balance}
.agendar-kicker{margin-bottom:16px}
.agendar-pill{display:inline-flex;align-items:center;gap:10px;min-height:34px;padding:0 14px;border-radius:999px;background:rgba(45,212,191,.1);color:var(--teal-2);font-size:14px;font-weight:600;box-shadow:inset 0 0 0 1px rgba(45,212,191,.32)}
.agendar-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px rgba(45,212,191,.18)}
.ag{display:grid;gap:16px}
.ag-panel{display:grid;gap:16px;min-width:0}
.ag-paso{min-width:0;margin:0;padding:clamp(18px,2.4vw,28px);border:0;border-radius:22px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}
.ag-leg{float:left;width:100%;display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:0;color:var(--text);font:700 19px/1.25 var(--font-display);letter-spacing:-.01em}
.ag-leg+*{clear:both}
.ag-num{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:rgba(45,212,191,.12);color:var(--teal);font:700 15px/1 var(--font-body);box-shadow:inset 0 0 0 1px rgba(45,212,191,.35)}
/* opciones (formato y tema): radio nativo, la tarjeta completa es el control */
.ag-canales,.ag-temas{display:grid;gap:10px}
@media (min-width:560px){.ag-temas{grid-template-columns:1fr 1fr}.ag-canales{grid-template-columns:repeat(3,minmax(0,1fr))}.ag-canal{flex-direction:column;gap:10px}}
.ag-opc{position:relative;display:flex;align-items:center;gap:14px;min-height:56px;padding:14px 16px;border-radius:16px;background:#0A1628;box-shadow:inset 0 0 0 1.5px var(--line-2);cursor:pointer;transition:box-shadow var(--dur-s) var(--ease-out),background-color var(--dur-s) var(--ease-out)}
.ag-opc input,.ag-dia input,.ag-hora input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}
.ag-opc.is-on{background:rgba(45,212,191,.07);box-shadow:inset 0 0 0 2px var(--teal)}
.ag-opc:has(input:focus-visible),.ag-dia:has(input:focus-visible),.ag-hora:has(input:focus-visible){outline:2px solid var(--teal);outline-offset:3px}
@media (hover:hover){.ag-opc:not(.is-on):hover{box-shadow:inset 0 0 0 1.5px rgba(45,212,191,.6)}}
.ag-canal{align-items:flex-start;padding:16px}
.ag-canal-ico{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:12px;background:rgba(45,212,191,.1);color:var(--teal)}
.ag-canal-tx{display:grid;gap:2px}
.ag-canal-tx b{color:var(--text);font-size:17px;font-weight:600}
.ag-canal-tx small{color:var(--text-2);font-size:14px;line-height:1.45}
.ag-tema{min-height:64px;color:var(--text);font-size:16px;font-weight:600;line-height:1.3}
.ag-tema::after{content:"";flex:none;width:20px;height:20px;margin-left:auto;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-2);transition:box-shadow var(--dur-s) var(--ease-out),background-color var(--dur-s) var(--ease-out)}
.ag-tema.is-on::after{background:var(--teal) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230A1628' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") no-repeat center;box-shadow:none}
.ag-esqueleto{display:block;height:64px;border-radius:16px;background:linear-gradient(90deg,#0D1D33 0%,#132743 50%,#0D1D33 100%);background-size:200% 100%;animation:agBrillo 1.4s linear infinite}
@keyframes agBrillo{to{background-position:-200% 0}}
/* días */
.ag-dias-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.ag-mes{color:var(--text-1);font-size:16px;font-weight:600}
.ag-mes::first-letter{text-transform:uppercase}
.ag-flechas{display:flex;gap:8px}
.ag-flecha{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:#0A1628;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line-2);cursor:pointer;transition:color var(--dur-s) var(--ease-out),box-shadow var(--dur-s) var(--ease-out)}
.ag-flecha:disabled{opacity:.4;cursor:default}
@media (hover:hover){.ag-flecha:not(:disabled):hover{color:var(--teal);box-shadow:inset 0 0 0 1.5px var(--teal)}}
.ag-dias{min-height:111px;display:flex;gap:8px;margin:0 -4px;padding:4px 4px 10px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;overscroll-behavior-x:contain}
.ag-dias::-webkit-scrollbar{display:none}
.ag-dia{position:relative;flex:0 0 68px;display:grid;justify-items:center;gap:2px;padding:10px 4px 12px;border-radius:14px;background:#0A1628;box-shadow:inset 0 0 0 1.5px var(--line-2);scroll-snap-align:start;cursor:pointer;transition:box-shadow var(--dur-s) var(--ease-out),background-color var(--dur-s) var(--ease-out),color var(--dur-s) var(--ease-out)}
.ag-dia small{color:var(--text-2);font-size:14px;font-weight:600}
.ag-dia b{color:var(--text);font:700 24px/1.1 var(--font-display)}
.ag-dia em{color:var(--text-2);font-size:14px;font-style:normal}
.ag-dia.is-off{background:transparent;box-shadow:inset 0 0 0 1px var(--line);cursor:not-allowed}
.ag-dia.is-off b,.ag-dia.is-off small,.ag-dia.is-off em{color:var(--text-3)}
.ag-dia.is-on{background:var(--teal);box-shadow:none}
.ag-dia.is-on b,.ag-dia.is-on small,.ag-dia.is-on em{color:#0A1628}
@media (hover:hover){.ag-dia:not(.is-on):not(.is-off):hover{box-shadow:inset 0 0 0 1.5px rgba(45,212,191,.6)}}
/* horas */
/* sin scroll interno (atrapaba el dedo y la rueda: la página no bajaba). Altura mínima para que
   "Cargando…" → horarios no empuje lo de abajo; la agenda carga antes de llegar a la vista. */
.ag-horas{min-height:340px;margin-top:14px}
.ag-franja+.ag-franja{margin-top:16px}
.ag-franja-t{margin-bottom:8px;color:var(--text-2);font-size:14px;font-weight:600}
.ag-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.ag-hora{position:relative;display:grid;place-items:center;align-content:center;min-height:48px;padding:6px 4px;border-radius:12px;background:#0A1628;box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--text);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;cursor:pointer;transition:box-shadow var(--dur-s) var(--ease-out),background-color var(--dur-s) var(--ease-out)}
.ag-hora small{color:var(--text-2);font-size:14px;font-weight:400}
.ag-hora.is-on{background:var(--teal);box-shadow:none;color:#0A1628}
.ag-hora.is-on small{color:#0A1628}
.ag-hora.is-ocupada{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--text-3);text-decoration:line-through;cursor:not-allowed}
.ag-hora.is-ocupada small{color:var(--text-3)}
@media (hover:hover){.ag-hora:not(.is-on):not(.is-ocupada):hover{box-shadow:inset 0 0 0 1.5px var(--teal)}}
.ag-vacio{padding:18px 16px;border-radius:14px;color:var(--text-1);font-size:15px;box-shadow:inset 0 0 0 1.5px var(--line-2)}
.ag-vacio .btn{margin-top:12px}
.ag-vacio-extra{margin-top:12px}
.ag-zona{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:48px;margin-top:10px;color:var(--text-2);font-size:14px}
@media (max-width:559px){.ag-zona{min-height:80px;align-content:center}.ag-zona-t{flex-basis:100%}}
.ag-zona-sel{display:inline-flex;flex-wrap:nowrap;padding:4px;border-radius:12px;background:#0A1628;box-shadow:inset 0 0 0 1px var(--line-2)}
.ag-zona-sel button{min-height:40px;padding:0 12px;white-space:nowrap;border:0;border-radius:9px;background:transparent;color:var(--text-1);font:600 14px/1.2 var(--font-body);cursor:pointer}
.ag-zona-sel button[aria-pressed="true"]{background:rgba(45,212,191,.14);color:var(--teal-2);box-shadow:inset 0 0 0 1px rgba(45,212,191,.4)}
/* formulario y resumen */
.ag-lado{min-width:0}
.ag-form,.ag-listo{gap:16px}
.ag-resumen{padding:16px 18px;border-radius:16px;background:#0A1628;box-shadow:inset 0 0 0 1px var(--line)}
.ag-resumen-t{font:700 19px/1.2 var(--font-display)}
.ag-resumen-vacio{margin-top:6px;color:var(--text-2);font-size:15px}
.ag-resumen-l{display:grid;gap:8px;margin-top:12px}
.ag-resumen-l div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px}
.ag-resumen-l dt{color:var(--text-2);font-size:14px}
.ag-resumen-l dd{color:var(--text);font-size:15px;font-weight:600}
.ag-enviar:disabled{opacity:.5;cursor:not-allowed}
.ag-enviar:disabled::before{display:none}
.ag-listo{text-align:left}
.ag-listo:focus{outline:none}
.ag-listo-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--teal);color:#0A1628}
.ag-listo-t{font:700 clamp(1.375rem,1.1rem + 1vw,1.75rem)/1.2 var(--font-display);letter-spacing:-.015em}
.ag-listo-p{color:var(--text-1);font-size:16px}
.ag-listo .ag-resumen-l{margin-top:0;padding:16px 18px;border-radius:16px;background:#0A1628;box-shadow:inset 0 0 0 1px var(--line)}
.ag-listo-acciones{display:grid;gap:10px}
.ag-listo-acciones .btn{width:100%}
.ag-otra{justify-self:start;padding:0;border:0;background:none;font:inherit;cursor:pointer}
.ag-cambiar-tx{display:grid;gap:4px;flex:1 1 22rem}
.ag-cambiar-datos{display:flex;flex-wrap:wrap;align-items:center;gap:0 22px;color:var(--text-2)}
.ag-soporte{display:inline-flex;flex-wrap:wrap;align-items:center;gap:0 14px}
.ag-cambiar-datos #review-link{flex-basis:100%;justify-content:flex-start}
.ag-cambiar-datos a{display:inline-flex;align-items:center;min-height:44px;color:var(--text-1);font-weight:600;text-decoration:underline;text-decoration-color:rgba(45,212,191,.6);text-decoration-thickness:1.5px;text-underline-offset:4px}
.agendar-head .online{margin-top:16px}
.ag-cambiar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;margin-top:16px;padding:18px 22px;border-radius:18px;color:var(--text-1);font-size:15px;box-shadow:inset 0 0 0 1px var(--line)}
.ag-sinjs{margin-top:16px;color:var(--text-1)}
/* Al volver de Stripe con el pago hecho */
.ag-pagado{display:flex;gap:14px;align-items:flex-start;margin:0 0 24px;padding:18px 20px;border-radius:18px;background:rgba(45,212,191,.1);box-shadow:inset 0 0 0 1.5px rgba(45,212,191,.45)}
.ag-pagado[hidden]{display:none}
.ag-pagado svg{flex:none;margin-top:2px;color:var(--teal)}
.ag-pagado-t{font:700 18px/1.3 var(--font-display)}
.ag-pagado-t + p{margin-top:4px;color:var(--text-1)}
@media (min-width:1024px){
  .ag{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:24px;align-items:start}
  .ag-lado{position:sticky;top:calc(var(--header-h) + 20px)}
}
@media (prefers-reduced-motion:reduce){.ag-esqueleto{animation:none}.ag-opc,.ag-dia,.ag-hora,.ag-flecha{transition:none}}
