/* Plantilla de landings de Clave de Mi (apps.clavedemi.com).
   Común a todas las apps. Lo propio de cada una entra por variables (--fondo, --acento…)
   y por la escena del héroe (data-escena). No editar en salida/: se genera con construir.mjs. */

*,*::before,*::after{box-sizing:border-box}
html{background:var(--fondo);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--fondo);color:var(--texto);font:400 17px/1.6 var(--cuerpo);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}
ul,ol{list-style:none}
:focus-visible{outline:3px solid var(--acento);outline-offset:3px;border-radius:6px}
.ancho{width:min(1160px,100% - 40px);margin-inline:auto}
.titular{font-family:var(--display);font-weight:var(--display-peso);letter-spacing:var(--display-tracking);text-transform:var(--display-caja);line-height:1.04;text-wrap:balance}
.salto{position:absolute;left:-999px}.salto:focus{left:12px;top:12px;z-index:99;background:var(--acento);color:var(--sobre-acento);padding:10px 14px;border-radius:10px}

/* ---------- Cabecera ---------- */
.cab{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s,box-shadow .3s,backdrop-filter .3s}
.cab.pegada{background:color-mix(in srgb,var(--fondo) 82%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 1px 0 var(--linea)}
.cab .ancho{display:flex;align-items:center;gap:18px;height:64px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--display);font-weight:var(--display-peso);text-transform:var(--display-caja);letter-spacing:var(--display-tracking);font-size:22px;color:var(--texto)}
.marca img{width:36px;height:36px;border-radius:9px;box-shadow:0 2px 10px rgba(0,0,0,.25)}
.cab nav{margin-left:auto;display:flex;gap:22px;font-size:15px;font-weight:500}
.cab nav a{text-decoration:none;color:var(--suave);transition:color .2s}
.cab nav a:hover{color:var(--texto)}
.cab .boton{padding:9px 16px;font-size:14px}
@media (max-width:820px){.cab nav{display:none}.cab .boton{margin-left:auto}}

/* ---------- Botones ---------- */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:14px;font:600 16px/1.1 var(--cuerpo);text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s,background .18s;white-space:nowrap}
.boton:hover{transform:translateY(-2px)}
.boton:active{transform:translateY(0)}
.boton.principal{background:var(--acento);color:var(--sobre-acento);box-shadow:0 8px 28px -8px var(--acento)}
.boton.principal:hover{box-shadow:0 14px 36px -8px var(--acento)}
.boton.tienda{background:var(--tienda-fondo);color:var(--tienda-texto);border-color:var(--linea);padding:10px 18px 10px 14px;text-align:left}
.boton.tienda svg{width:26px;height:26px;flex:none}
.boton.tienda span{display:grid;line-height:1.15}
.boton.tienda small{font-size:11px;font-weight:500;opacity:.75}
.boton.tienda b{font-size:17px;font-weight:700}
.boton.fantasma{border-color:var(--linea);color:var(--texto);background:color-mix(in srgb,var(--superficie) 60%,transparent)}
.botones{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- Héroe ---------- */
.heroe{position:relative;padding:128px 0 72px;overflow:hidden;isolation:isolate}
.escena{position:absolute;inset:0;z-index:-1;pointer-events:none}
.escena canvas,.escena svg{position:absolute;inset:0;width:100%;height:100%}
.heroe .ancho{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.antetitulo{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--acento-texto);background:color-mix(in srgb,var(--acento) 14%,transparent);border:1px solid color-mix(in srgb,var(--acento) 35%,transparent);padding:6px 12px;border-radius:99px;margin-bottom:22px}
.antetitulo i{width:7px;height:7px;border-radius:50%;background:var(--acento);box-shadow:0 0 0 0 var(--acento);animation:pulso 2.2s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
.heroe h1{font-size:clamp(40px,6.2vw,76px)}
.heroe h1 em{font-style:normal;color:var(--acento-texto);display:block}
.heroe h1 .nombre{display:block;font-size:.42em;letter-spacing:.14em;text-transform:uppercase;color:var(--suave);font-family:var(--cuerpo);font-weight:600;margin-bottom:14px}
.entrada{font-size:clamp(17px,1.5vw,20px);color:var(--suave);max-width:34em;margin:22px 0 30px}
.entrada strong{color:var(--texto);font-weight:600}
.nota{font-size:14px;color:var(--suave);margin-top:16px;display:flex;flex-wrap:wrap;gap:6px 18px}
.nota span{display:inline-flex;align-items:center;gap:6px}
.nota svg{width:16px;height:16px;color:var(--acento-texto)}

/* Móviles del héroe */
.moviles{position:relative;height:min(640px,78vw);perspective:1400px}
.movil{position:absolute;width:min(290px,44vw);aspect-ratio:9/19;border-radius:38px;padding:9px;background:linear-gradient(145deg,#2b2b30,#0c0c0f);box-shadow:0 0 0 1.5px #3a3a40,0 40px 80px -20px rgba(0,0,0,.6),0 18px 36px -18px rgba(0,0,0,.5);transform-style:preserve-3d;will-change:transform}
.movil img{width:100%;height:100%;object-fit:cover;object-position:top;border-radius:30px;background:#111}
.movil::after{content:"";position:absolute;top:16px;left:50%;width:74px;height:20px;margin-left:-37px;border-radius:12px;background:#0b0b0d}
.movil.a{left:50%;top:0;margin-left:calc(min(290px,44vw) * -.72);z-index:2;transform:rotateY(14deg) rotateX(4deg) rotateZ(-3deg) translate3d(var(--mx,0),var(--my,0),0);animation:flota 7s ease-in-out infinite}
.movil.b{left:50%;top:9%;margin-left:calc(min(290px,44vw) * -.06);transform:rotateY(-12deg) rotateX(4deg) rotateZ(4deg) scale(.92) translate3d(calc(var(--mx,0) * -1.4),calc(var(--my,0) * -1.4),0);filter:brightness(.82);animation:flota 8s ease-in-out -3s infinite}
@keyframes flota{50%{translate:0 -12px}}
.brillo{position:absolute;inset:8% 8% 10%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--acento) 42%,transparent),transparent);filter:blur(40px);z-index:0;opacity:.55}
@media (max-width:900px){
  .heroe{padding-top:104px}
  .heroe .ancho{grid-template-columns:1fr;gap:40px}
  .moviles{height:min(560px,118vw)}
  .movil{width:min(250px,58vw)}
  .movil.a{margin-left:calc(min(250px,58vw) * -.78)}
  .movil.b{margin-left:calc(min(250px,58vw) * -.14)}
}

/* ---------- Cifras ---------- */
.cifras{border-block:1px solid var(--linea);background:color-mix(in srgb,var(--superficie) 55%,transparent)}
.cifras ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 24px;padding:26px 0}
.cifras li{text-align:center}
.cifras b{display:block;font-family:var(--display);font-weight:var(--display-peso);font-size:clamp(30px,4vw,44px);line-height:1;color:var(--acento-texto);letter-spacing:var(--display-tracking)}
.cifras span{font-size:14px;color:var(--suave)}

/* ---------- Secciones ---------- */
section{padding:88px 0}
.cabeza{max-width:720px;margin:0 auto 56px;text-align:center}
.cabeza h2{font-size:clamp(30px,4.2vw,50px)}
.cabeza p{color:var(--suave);margin-top:14px;font-size:18px}
.sobre{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--acento-texto);margin-bottom:12px;display:block}

/* Bloques alternos con móvil */
.bloque{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,90px);align-items:center;padding:36px 0}
.bloque:nth-child(even) .bloque-img{order:2}
.bloque h3{font-family:var(--display);font-weight:var(--display-peso);letter-spacing:var(--display-tracking);text-transform:var(--display-caja);font-size:clamp(26px,3.2vw,40px);line-height:1.08;margin-bottom:14px;text-wrap:balance}
.bloque p{color:var(--suave);font-size:18px}
.bloque ul{margin-top:18px;display:grid;gap:10px}
.bloque li{display:flex;gap:10px;align-items:flex-start}
.bloque li svg{width:20px;height:20px;flex:none;margin-top:3px;color:var(--acento-texto)}
.bloque-img{position:relative;display:grid;place-items:center;padding:28px 0}
.bloque-img::before{content:"";position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--acento) 26%,transparent),transparent 72%);filter:blur(10px)}
.bloque-img .movil{position:relative;width:min(280px,64vw);transform:rotate(var(--giro,-2deg))}
.bloque:nth-child(even) .bloque-img .movil{--giro:2deg}
@media (max-width:820px){.bloque{grid-template-columns:1fr;gap:10px;text-align:left}.bloque:nth-child(even) .bloque-img{order:0}}

/* Rejilla de funciones */
.rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.tarjeta{position:relative;background:var(--superficie);border:1px solid var(--linea);border-radius:20px;padding:24px;overflow:hidden;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s}
.tarjeta::before{content:"";position:absolute;inset:0;background:radial-gradient(420px circle at var(--x,50%) var(--y,0%),color-mix(in srgb,var(--acento) 16%,transparent),transparent 45%);opacity:0;transition:opacity .25s}
.tarjeta:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--acento) 45%,var(--linea))}
.tarjeta:hover::before{opacity:1}
.tarjeta>*{position:relative}
.tarjeta .ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--acento) 16%,transparent);color:var(--acento-texto);margin-bottom:16px}
.tarjeta .ico svg{width:22px;height:22px}
.tarjeta h3{font-size:18px;font-weight:700;margin-bottom:6px;font-family:var(--cuerpo)}
.tarjeta p{font-size:15.5px;color:var(--suave)}

/* Galería */
.galeria-caja{position:relative;width:min(1160px,100% - 40px);margin-inline:auto}
.galeria{--ma:transparent;--mb:transparent;display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 0 26px;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,var(--ma),#000 28px,#000 calc(100% - 28px),var(--mb));mask-image:linear-gradient(90deg,var(--ma),#000 28px,#000 calc(100% - 28px),var(--mb))}
.galeria-caja.ini .galeria{--ma:#000}.galeria-caja.fin .galeria{--mb:#000}
.galeria-caja.cabe .galeria{justify-content:center;-webkit-mask-image:none;mask-image:none}
.galeria-caja .flecha{position:absolute;top:42%;translate:0 -50%;width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(10,14,12,.72);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--texto);font:400 22px/1 var(--cuerpo);padding:0 0 3px;cursor:pointer;display:grid;place-items:center;z-index:2;transition:border-color .2s,background .2s}
.galeria-caja .flecha:hover{border-color:var(--acento-texto);background:rgba(10,14,12,.9)}
.galeria-caja .flecha[disabled]{opacity:0;pointer-events:none}
.galeria-caja .ant{left:-8px}.galeria-caja .sig{right:-8px}
.galeria-caja.cabe .flecha{display:none}
@media (max-width:700px){.galeria-caja .flecha{display:none}}
.galeria::-webkit-scrollbar{display:none}
.galeria figure{flex:none;width:min(240px,62vw);scroll-snap-align:center}
.galeria img{border-radius:24px;border:1px solid var(--linea);box-shadow:0 20px 40px -22px rgba(0,0,0,.55);aspect-ratio:9/19;object-fit:cover;object-position:top;width:100%}
.galeria figcaption{font-size:14px;color:var(--suave);text-align:center;margin-top:10px}

/* Pasos */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;counter-reset:paso}
.pasos li{counter-increment:paso;background:var(--superficie);border:1px solid var(--linea);border-radius:20px;padding:26px}
.pasos li::before{content:counter(paso);display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--acento);color:var(--sobre-acento);font:var(--display-peso) 22px var(--display);margin-bottom:16px}
.pasos h3{font-size:19px;font-family:var(--cuerpo);font-weight:700;margin-bottom:6px}
.pasos p{color:var(--suave);font-size:16px}

/* Planes */
.planes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;max-width:820px;margin:0 auto}
.plan{background:var(--superficie);border:1px solid var(--linea);border-radius:24px;padding:30px}
.plan.destacado{border-color:var(--acento);box-shadow:0 0 0 1px var(--acento),0 30px 60px -30px color-mix(in srgb,var(--acento) 60%,transparent);position:relative}
.plan .cinta{position:absolute;top:-13px;left:26px;background:var(--acento);color:var(--sobre-acento);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:99px}
.plan h3{font-size:18px;font-family:var(--cuerpo);font-weight:700}
.plan .precio{font-family:var(--display);font-weight:var(--display-peso);font-size:48px;line-height:1.1;margin:8px 0 2px;color:var(--texto)}
.plan .precio small{font:500 15px var(--cuerpo);color:var(--suave)}
.plan .detalle{font-size:14px;color:var(--suave);margin-bottom:18px}
.plan ul{display:grid;gap:10px;font-size:16px}
.plan li{display:flex;gap:10px}
.plan li svg{width:19px;height:19px;flex:none;margin-top:4px;color:var(--acento-texto)}

/* Preguntas */
.faq{max-width:800px;margin:0 auto;display:grid;gap:10px}
.faq details{background:var(--superficie);border:1px solid var(--linea);border-radius:16px;padding:0 22px}
.faq summary{list-style:none;cursor:pointer;padding:18px 34px 18px 0;font-weight:600;font-size:17.5px;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:2px;top:50%;width:10px;height:10px;border-right:2px solid var(--acento-texto);border-bottom:2px solid var(--acento-texto);transform:translateY(-70%) rotate(45deg);transition:transform .25s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{color:var(--suave);padding:0 0 20px;font-size:16.5px}
.faq details a{color:var(--acento-texto)}

/* Cierre */
.cierre{text-align:center;position:relative;overflow:hidden;isolation:isolate}
.cierre::before{content:"";position:absolute;inset:auto -20% -60% -20%;height:120%;background:radial-gradient(closest-side,color-mix(in srgb,var(--acento) 30%,transparent),transparent);z-index:-1}
.cierre img.icono{width:92px;height:92px;border-radius:22px;margin:0 auto 22px;box-shadow:0 20px 50px -12px rgba(0,0,0,.5)}
.cierre h2{font-size:clamp(32px,5vw,60px);max-width:16em;margin:0 auto}
.cierre p{color:var(--suave);font-size:18px;margin:16px auto 30px;max-width:34em}
.cierre .botones{justify-content:center}

/* Más apps */
.mas{padding:64px 0;border-top:1px solid var(--linea)}
.mas h2{font:700 15px var(--cuerpo);letter-spacing:.12em;text-transform:uppercase;color:var(--suave);margin-bottom:20px;text-align:center}
.mas ul{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.mas a{display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;border-radius:14px;border:1px solid var(--linea);background:var(--superficie);text-decoration:none;font-size:15px;transition:transform .2s,border-color .2s}
.mas a:hover{transform:translateY(-2px);border-color:var(--acento)}
.mas img{width:34px;height:34px;border-radius:8px}
.mas small{display:block;color:var(--suave);font-size:12.5px;line-height:1.2}

/* Pie */
.pie{padding:34px 0 46px;font-size:14px;color:var(--suave);border-top:1px solid var(--linea)}
.pie .ancho{display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;justify-content:space-between}
.pie nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.pie a{text-decoration:none}
.pie a:hover{color:var(--texto);text-decoration:underline}
.sello b{color:var(--texto);font-weight:600}

/* Barra de descarga en móvil */
.barra{position:fixed;inset:auto 0 0 0;z-index:40;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--fondo) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--linea);display:none;gap:12px;align-items:center;transform:translateY(110%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.barra.visible{transform:none}
.barra img{width:40px;height:40px;border-radius:10px}
.barra div{line-height:1.2;font-size:13px;color:var(--suave);min-width:0}
.barra div b{display:block;color:var(--texto);font-size:15px}
.barra .boton{margin-left:auto;padding:11px 18px}
@media (max-width:820px){.barra{display:flex}body{padding-bottom:70px}}

/* Aparición al hacer scroll */
.sube{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
.sube.visto{opacity:1;transform:none}
.sin-js .sube{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .sube{opacity:1;transform:none}
}

/* ---------- Añadidos ---------- */
.boton.principal svg,.boton.fantasma svg{width:20px;height:20px;flex:none}
.rejilla{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

/* Guía (texto largo que responde a una búsqueda informativa) */
.guia{max-width:800px;margin:0 auto;background:var(--superficie);border:1px solid var(--linea);border-radius:26px;padding:clamp(24px,5vw,52px)}
.guia h2{font-family:var(--display);font-weight:var(--display-peso);text-transform:var(--display-caja);letter-spacing:var(--display-tracking);font-size:clamp(26px,3.6vw,40px);line-height:1.1;margin-bottom:18px;text-wrap:balance}
.guia h3{font:700 20px var(--cuerpo);margin:30px 0 10px;color:var(--acento-texto)}
.guia p,.guia li{color:var(--suave);font-size:17px}
.guia p+p{margin-top:12px}
.guia strong{color:var(--texto)}
.guia ol,.guia ul{margin:16px 0;display:grid;gap:10px;padding-left:22px}
.guia ol{list-style:decimal}.guia ul{list-style:disc}
.guia li::marker{color:var(--acento-texto);font-weight:700}
.guia table{width:100%;border-collapse:collapse;margin:16px 0;font-size:16.5px;font-variant-numeric:tabular-nums}
.guia th,.guia td{padding:10px 12px;border-bottom:1px solid var(--linea);text-align:right}
.guia th:first-child,.guia td:first-child{text-align:left}
.guia thead th{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--suave)}
.guia tfoot td{font-weight:700;color:var(--acento-texto);border-bottom:0}
.aviso{max-width:800px;margin:0 auto;font-size:14.5px;color:var(--suave);border-left:3px solid var(--acento);padding:4px 0 4px 16px}
.aviso strong{color:var(--texto)}
.heroe .ancho>*{min-width:0}
@media (max-width:600px){.antetitulo{border-radius:14px;font-size:12px;letter-spacing:.05em}.heroe .botones .boton{flex:1 1 auto}.heroe[data-escena="bordado"]{padding-bottom:150px}}
.escena-bordado~.ancho{padding-bottom:110px}

/* Herramienta interactiva dentro de la landing (calculadoras) */
.util{max-width:800px;margin:0 auto;background:var(--superficie);border:1px solid color-mix(in srgb,var(--acento) 45%,var(--linea));border-radius:26px;padding:clamp(22px,4.5vw,44px);box-shadow:0 40px 80px -50px var(--acento)}
.util h2{font-family:var(--display);font-weight:var(--display-peso);text-transform:var(--display-caja);letter-spacing:var(--display-tracking);font-size:clamp(26px,3.6vw,40px);line-height:1.1;text-wrap:balance}
.util>p{color:var(--suave);margin:12px 0 24px}
.util label{display:block;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--suave);margin-bottom:6px}
.util select,.util input{width:100%;font:600 17px var(--cuerpo);color:var(--texto);background:color-mix(in srgb,var(--fondo) 70%,var(--superficie));border:1px solid var(--linea);border-radius:12px;padding:12px 14px;min-width:0}
.util select:focus,.util input:focus{outline:2px solid var(--acento);outline-offset:1px}
.util .campos{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px}
.util .fila{display:grid;grid-template-columns:1.2fr .8fr 1.1fr 36px;gap:10px;align-items:center;margin-bottom:8px}
.util .fila output{text-align:right;font-weight:800;font-size:18px;color:var(--acento-texto);font-variant-numeric:tabular-nums;line-height:1.15}
.util .fila output small{display:block;font-weight:500;font-size:12.5px;color:var(--suave)}
.util .quitar{width:36px;height:36px;border-radius:10px;border:1px solid var(--linea);background:none;color:var(--suave);font-size:20px;cursor:pointer}
.util .pie-util{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:16px}
.util .estado{font-size:14.5px;color:var(--suave)}
.util .estado.mal{color:var(--acento-texto);font-weight:700}
.util .letra{font-size:13.5px;color:var(--suave);margin-top:18px}
@media (max-width:600px){.util .campos{grid-template-columns:1fr}.util .fila{grid-template-columns:1fr 84px 36px}.util .fila output{grid-column:1/-1;text-align:left;margin-bottom:8px}}
.util select{appearance:none;-webkit-appearance:none;padding-right:42px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:18px}
.util .fila input+output,.util .fila input:nth-child(2){font-variant-numeric:tabular-nums}
.util .fila input:nth-child(2){text-align:right}
.util .fila.titulos{margin-bottom:6px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--suave)}
.util .fila.titulos span:nth-child(2),.util .fila.titulos span:nth-child(3){text-align:right}
@media (max-width:600px){.util .fila.titulos span:nth-child(3){display:none}.util .fila.titulos{grid-template-columns:1fr 84px 36px}}

/* ---------- Portada del subdominio (html.portada) ---------- */
.portada .boton.principal{background:linear-gradient(135deg,#7C4DB9,#35146F) border-box;box-shadow:0 10px 30px -10px #7C4DB9}
.portada .heroe{padding-bottom:96px}
.escena-portada{background:radial-gradient(1000px 600px at 78% 12%,color-mix(in srgb,var(--acento) 34%,transparent),transparent 62%),linear-gradient(180deg,var(--fondo2),var(--fondo))}
.escena-portada i{position:absolute;width:44vmax;aspect-ratio:1;border-radius:50%;filter:blur(90px);opacity:.34;animation:deriva 22s ease-in-out infinite alternate}
.escena-portada i:nth-child(1){background:#7C4DB9;left:-12%;top:-20%}
.escena-portada i:nth-child(2){background:#2f8f6b;right:-14%;top:22%;opacity:.2;animation-duration:28s;animation-direction:alternate-reverse}
.escena-portada i:nth-child(3){background:#c8792a;left:30%;bottom:-46%;opacity:.18;animation-duration:34s}
@keyframes deriva{to{transform:translate(6vmax,4vmax) scale(1.15)}}
/* Cuadrícula del héroe: tres columnas que corren sin fin. Cabe cualquier número de apps (se reparten por columnas). */
.mosaico{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,2vw,22px);max-width:480px;width:100%;height:min(560px,68vh);margin-inline:auto;padding-inline:18px;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(transparent,#000 16%,#000 84%,transparent);transform:perspective(1200px) rotateY(-10deg) rotateX(6deg) rotateZ(2deg)}
.mosaico .pista{animation:corre var(--t) linear infinite}
.mosaico .col:nth-child(2) .pista{animation-direction:reverse}
.mosaico:hover .pista,.mosaico:focus-within .pista{animation-play-state:paused}
@keyframes corre{to{transform:translateY(-33.3333%)}}
.mosaico a{position:relative;display:block;aspect-ratio:1;margin-bottom:clamp(12px,2vw,22px);border-radius:26%;text-decoration:none;transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.mosaico a::before{content:"";position:absolute;inset:8%;border-radius:30%;background:var(--c);filter:blur(22px);opacity:.5;transition:opacity .25s}
.mosaico img{position:relative;width:100%;height:100%;border-radius:24%;box-shadow:0 18px 40px -16px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.08)}
.mosaico span{position:absolute;left:50%;bottom:6px;translate:-50% 0;white-space:nowrap;font-size:12.5px;font-weight:600;color:var(--texto);background:var(--superficie);border:1px solid var(--linea);padding:3px 9px;border-radius:99px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:3}
.mosaico a:hover{transform:scale(1.06);z-index:2}.mosaico a:hover::before{opacity:.9}.mosaico a:hover span,.mosaico a:focus-visible span{opacity:1}
.marca em{font:700 11.5px var(--cuerpo);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--acento-texto);border:1px solid color-mix(in srgb,var(--acento-texto) 45%,transparent);padding:3px 8px;border-radius:99px;margin-left:2px}
.grupo{padding:56px 0}
.grupo .cabeza{margin:0 0 32px;text-align:left;max-width:none}
.grupo .cabeza h2{font-size:clamp(26px,3.4vw,40px)}
.grupo .cabeza p{font-size:17px;margin-top:6px}
.apps-r{grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:18px}
.app-t{display:flex;flex-direction:column;text-decoration:none;padding:26px;border-radius:24px;background:linear-gradient(160deg,color-mix(in srgb,var(--acento) 11%,var(--superficie)),var(--superficie) 55%)}
.app-t img{width:72px;height:72px;border-radius:18px;margin-bottom:18px;box-shadow:0 14px 30px -14px var(--acento)}
.app-t h3{font-family:var(--display);font-weight:var(--display-peso);font-size:24px;letter-spacing:var(--display-tracking);line-height:1.15;margin-bottom:10px}
.app-t h3 small{display:block;font:600 13px var(--cuerpo);letter-spacing:.08em;text-transform:uppercase;color:var(--acento-texto);margin-top:6px}
.app-t p{flex:1}
.pie-t{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips i{font-style:normal;font-size:12.5px;font-weight:600;color:var(--suave);border:1px solid var(--linea);padding:4px 10px;border-radius:99px}
.chips i.pronto{color:var(--acento-texto);border-color:color-mix(in srgb,var(--acento) 50%,transparent);background:color-mix(in srgb,var(--acento) 12%,transparent)}
.ir{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--acento) 18%,transparent);color:var(--acento-texto);transition:transform .25s,background .25s,color .25s}
.ir svg{width:18px;height:18px}
.app-t:hover .ir{background:var(--acento);color:#111;transform:translateX(4px)}
.proxima{border-style:dashed}
.portada .cierre{padding:96px 0}
@media (max-width:900px){.mosaico{max-width:360px;height:330px;transform:none}.portada .heroe{padding-bottom:72px}}

/* Formulario «Avisarme» (apps que aún no han salido) */
.aviso-form{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;max-width:520px;margin:0 auto}
.aviso-form input[type=email]{flex:1 1 240px;min-width:0;height:52px;padding:0 18px;border-radius:14px;border:1px solid var(--linea);background:var(--superficie);color:var(--texto);font:500 16px var(--cuerpo)}
.aviso-form input[type=email]:focus{outline:2px solid var(--acento);outline-offset:2px}
.aviso-form button{height:52px;padding:0 26px;border:0;border-radius:14px;background:var(--acento);color:var(--sobre-acento,#1c1006);font:700 16px var(--cuerpo);cursor:pointer}
.aviso-form button[disabled]{opacity:.6;cursor:wait}
.aviso-form .aviso-nota{flex-basis:100%;font-size:13.5px;line-height:1.5;color:var(--suave);margin:2px 0 0}
.aviso-form .aviso-msg{flex-basis:100%;font-size:15.5px;font-weight:600;margin:0;min-height:1.4em}
.aviso-form .aviso-msg.error{color:#ff8a8a}
