/* =========================================================
   Toknihuan · prototipo navegable (versión Claude)
   Un solo archivo. Se abre desde el teléfono sin instalar nada.
   ========================================================= */
:root{
 /* Colores de marca. El ORDEN de los petalos lo dio Itzlli (audio 17 sep):
    arriba blanco - izquierda negro - derecha azul - abajo rojo. El fondo si puede cambiar. */
 --marca-blanco:#ffffff; --marca-negro:#070707; --marca-azul:#0536ea; --marca-rojo:#fe0d13;
 --marca-fondo:#c80000;
 --obsidiana:#0c0a08; --humo:#16120e; --papel:#f6f0e6; --cal:#e7dcc9;
 --oro:#e2b269; --oro-texto:#e2b269; --jade:#23705f; --ladrillo:#b04a2b; --tinta:#1b1713;
 --bg:var(--obsidiana); --fg:#f4ecdf; --sub:#a2978a; --linea:#2a231c; --panel:#14100c;
 --serif:Georgia,'Times New Roman',serif;
 --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
 --borde-suave:14px;
}
html[data-modo=claro]{
 --bg:var(--papel); --fg:var(--tinta); --sub:#5e5349; --linea:#ddd0bb; --panel:#efe6d6;
 --oro-texto:#7a4f10;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--fg);
 font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden;
 transition:background .4s ease,color .4s ease}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--oro);outline-offset:4px}
.saltar{position:absolute;left:12px;top:-80px;background:var(--oro);color:#1b1208;padding:12px 16px;z-index:99}
.saltar:focus{top:12px}

/* ---------- barra superior ---------- */
header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;
 gap:16px;padding:14px 22px;background:color-mix(in srgb,var(--bg) 86%,transparent);
 backdrop-filter:blur(14px);border-bottom:1px solid var(--linea)}
.marca{display:flex;align-items:center;gap:11px;font:400 24px/1 var(--serif);letter-spacing:-.5px}
.marca img{width:38px;height:38px}
.marca small{display:block;font:600 9px var(--sans);letter-spacing:3.4px;color:var(--sub);margin-top:5px}
nav{display:none;gap:28px;font-size:13px;letter-spacing:.4px;color:var(--sub);white-space:nowrap}
nav a:hover{color:var(--fg)}
.herramientas{display:flex;align-items:center;gap:10px}
.icono{width:44px;height:44px;border:1px solid var(--linea);border-radius:50%;display:grid;place-items:center;font-size:15px}
.icono:hover{border-color:var(--oro);color:var(--oro)}

/* ---------- portada ---------- */
.portada{position:relative;min-height:88svh;display:flex;align-items:flex-end;overflow:hidden}
.portada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
 transform:scale(1.06);animation:respira 18s ease-in-out infinite alternate}
@keyframes respira{to{transform:scale(1.14) translateY(-1.5%)}}
.portada:after{content:"";position:absolute;inset:0;
 background:linear-gradient(180deg,#0c0a08cc 0%,#0c0a0833 30%,#0c0a08d9 58%,#0c0a08f5 88%)}
html[data-modo=claro] .portada:after{background:linear-gradient(180deg,#0c0a0899 0%,#0c0a0822 30%,#0c0a08d9 58%,#0c0a08f5 88%)}
.portada-texto{position:relative;z-index:2;padding:0 22px 46px;color:#fff;width:100%}
.rotulo{display:inline-flex;align-items:center;gap:10px;font:600 10px var(--sans);
 letter-spacing:3.6px;color:var(--oro-texto)}
.rotulo i{display:block;width:26px;height:1px;background:currentColor}
.portada .rotulo{font-size:12px;letter-spacing:2.4px;color:#f4ecdf;text-shadow:0 1px 10px #000c;line-height:1.5}
/* En el celular, en una sola línea: antes "TEXAS" quedaba sola abajo. */
@media (max-width:520px){.portada .rotulo{white-space:nowrap;font-size:min(12px,2.85vw);letter-spacing:min(2.4px,.4vw);gap:8px}
 .portada .rotulo i{width:18px}}
.portada h1{font:400 clamp(46px,13vw,104px)/.87 var(--serif);letter-spacing:-.045em;margin:18px 0 16px}
.portada h1 em{display:block;color:var(--oro);font-style:italic}
.portada p{max-width:30ch;color:#e6d9c7;margin:0 0 26px}
.acciones{display:flex;flex-wrap:wrap;gap:12px}
.boton{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;
 background:var(--papel);color:var(--tinta);padding:17px 22px;font:600 14px var(--sans);
 border-radius:3px;min-height:54px;transition:transform .18s ease,background .18s ease}
.boton:hover{transform:translateY(-2px)}
.boton.oro{background:var(--oro);color:#1b1208}
.boton.linea{background:none;color:#fff;border:1px solid #ffffff59}
html[data-modo=claro] .boton.linea{border-color:#ffffff8c}
.bajar{position:absolute;right:34px;bottom:52px;z-index:2;color:#fff;font-size:11px;
 letter-spacing:2px;writing-mode:vertical-rl;display:none}

/* ---------- cintillo ---------- */
.cintillo{display:flex;gap:46px;padding:16px 0;background:var(--humo);color:#c6b49b;
 font:italic 17px var(--serif);white-space:nowrap;overflow:hidden;border-block:1px solid var(--linea)}
html[data-modo=claro] .cintillo{background:var(--cal);color:#6b5c4a}
.cintillo div{display:flex;gap:46px;animation:corre 26s linear infinite}
@keyframes corre{to{transform:translateX(-100%)}}

/* ---------- secciones ---------- */
section{padding:64px 22px;scroll-margin-top:72px}
.encabezado{margin-bottom:30px}
.encabezado h2{font:400 clamp(32px,8vw,54px)/.95 var(--serif);letter-spacing:-.035em;margin:14px 0 12px}
.encabezado h2 em{color:var(--oro-texto);font-style:italic}
.encabezado p{color:var(--sub);margin:0;max-width:52ch}

/* ---------- filtros y catálogo ---------- */
.fichas{display:flex;flex-wrap:wrap;gap:9px;padding-bottom:6px;margin-bottom:24px;
 scrollbar-width:none}
.fichas::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;min-height:44px;padding:10px 17px;border:1px solid var(--linea);border-radius:100px;
 font-size:13px;color:var(--sub);transition:all .18s ease}
.chip[aria-pressed=true]{background:var(--oro);border-color:var(--oro);color:#1b1208;font-weight:600}
.rejilla{display:grid;grid-template-columns:1fr;gap:16px}
.pieza{position:relative;text-align:left;width:100%;overflow:hidden;border-radius:var(--borde-suave);
 background:var(--panel);border:1px solid var(--linea);transition:transform .2s ease,border-color .2s ease}
.pieza:hover{transform:translateY(-3px);border-color:var(--oro)}
.pieza .foto{position:relative;aspect-ratio:4/5;overflow:hidden}
.pieza .foto img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.pieza:hover .foto img{transform:scale(1.05)}
.estado{position:absolute;left:12px;top:12px;background:#0c0a08cc;color:#fff;backdrop-filter:blur(6px);
 font:600 10.5px var(--sans);letter-spacing:1.8px;padding:7px 11px;border-radius:100px}
.estado.servicio{background:#8a5a14e6}
.estado.venta{background:var(--jade)}
.pieza .pie{padding:16px 17px 19px}
.pieza h3{font:400 22px var(--serif);margin:0 0 5px;letter-spacing:-.4px}
.pieza .linea-precio{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
 color:var(--sub);font-size:13px}
.pieza .valor{color:var(--fg);font:400 17px var(--serif)}
.vacio{color:var(--sub);padding:30px 0;text-align:center}

/* ---------- interruptor de los dos estados ---------- */
.demo{margin-top:34px;border:1px dashed var(--linea);border-radius:var(--borde-suave);padding:20px}
.demo b{display:block;font:600 10px var(--sans);letter-spacing:2.6px;color:var(--oro);margin-bottom:10px}
.demo p{margin:0 0 16px;color:var(--sub);font-size:14px}
.palanca{display:inline-flex;border:1px solid var(--linea);border-radius:100px;overflow:hidden}
.palanca button{padding:11px 18px;font-size:13px;color:var(--sub)}
.palanca button[aria-pressed=true]{background:var(--fg);color:var(--bg);font-weight:600}

/* ---------- panel de la pieza ---------- */
.velo{position:fixed;inset:0;background:#0c0a08b0;backdrop-filter:blur(3px);z-index:60;opacity:0;
 pointer-events:none;transition:opacity .3s ease}
.velo.abierto{opacity:1;pointer-events:auto}
.panel{position:fixed;z-index:61;background:var(--bg);color:var(--fg);overflow-y:auto;
 inset:auto 0 0 0;max-height:92svh;border-radius:20px 20px 0 0;
 transform:translateY(100%);transition:transform .36s cubic-bezier(.22,1,.36,1)}
.panel.abierto{transform:none}
.agarre{width:44px;height:4px;border-radius:4px;background:var(--linea);margin:11px auto 0}
.cerrar{position:absolute;right:14px;top:14px;width:44px;height:44px;border-radius:50%;
 background:#0c0a08a6;color:#fff;font-size:19px;display:grid;place-items:center;z-index:2}
.panel-foto{aspect-ratio:16/11;overflow:hidden;margin-top:10px}
.panel-foto img{width:100%;height:100%;object-fit:cover}
.panel-cuerpo{padding:24px 22px 20px}
.panel h2{font:400 clamp(30px,8vw,42px)/1 var(--serif);letter-spacing:-.035em;margin:10px 0 12px}
.panel .descripcion{color:var(--sub);margin:0 0 18px}
.datos{border-top:1px solid var(--linea);margin-bottom:18px}
.datos div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;
 border-bottom:1px solid var(--linea);font-size:14px}
.datos span{color:var(--sub);text-align:right}
.precio-grande{font:400 28px var(--serif);margin:0 0 4px}
.precio-nota{color:var(--sub);font-size:12.5px;letter-spacing:1.4px;margin:0 0 20px}
.barra-accion{position:sticky;bottom:0;z-index:70;padding:14px 22px calc(14px + env(safe-area-inset-bottom));
 background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);
 border-top:1px solid var(--linea);display:grid;gap:10px}
.barra-accion .boton{width:100%}
.separar-nota{grid-column:1/-1;font-size:13px;line-height:1.5;color:var(--sub)}

/* ---------- agenda ---------- */
.agenda-lista{display:grid;gap:12px}
.evento{display:grid;grid-template-columns:92px 1fr;gap:18px;align-items:center;
 background:var(--panel);border-left:4px solid var(--ladrillo);padding:18px 20px;border-radius:0 10px 10px 0}
/* Las que se pueden tocar (botón en la tienda, enlace en /landing). */
.evento.enlace{width:100%;border-top:0;border-right:0;border-bottom:0;font:inherit;color:inherit;text-align:left;
 text-decoration:none;cursor:pointer;transition:background .2s ease,box-shadow .2s ease}
.evento.enlace:hover{background:color-mix(in srgb,var(--panel) 85%,var(--oro))}
.evento[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--oro);background:color-mix(in srgb,var(--panel) 88%,var(--oro))}
.evento-accion{display:block;margin-top:8px;font:600 12.5px var(--sans);font-style:normal;color:var(--oro-texto,var(--oro))}
/* La presentación que se promueve: su video en una ventanita. */
.evento.con-video{grid-template-columns:92px 1fr}
.evento-video{grid-column:1/-1;position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/9;background:#000}
.evento-video video{width:100%;height:100%;object-fit:cover;display:block}
.evento-video span{position:absolute;left:8px;top:8px;padding:3px 8px;border-radius:6px;background:#d0000a;
 color:#fff;font:700 9.5px var(--sans);letter-spacing:1.4px}
.evento:nth-child(2){border-color:var(--jade)}
.evento:nth-child(3){border-color:var(--oro)}
.cuando{text-align:center;border-right:1px solid var(--linea);padding-right:14px}
.cuando b{display:block;font:400 28px var(--serif);line-height:1}
.cuando span{display:block;font:600 9px var(--sans);letter-spacing:.8px;color:var(--sub)}
.evento h3{font:400 20px var(--serif);margin:0 0 4px}
.evento p{margin:0;color:var(--sub);font-size:13.5px}
/* Lectura y limpia: en persona o por Zoom, a la vista. */
.chip-zoom{display:inline-block;margin:0 0 14px;padding:5px 12px;border:1px solid var(--jade,#2f7d6b);border-radius:999px;
 font:600 12px var(--sans);letter-spacing:.4px;color:var(--fg)}

/* ---------- cómo funciona ---------- */
.pasos{display:grid;gap:14px;counter-reset:paso}
.paso{border-top:1px solid var(--linea);padding-top:18px}
.paso:before{counter-increment:paso;content:"0" counter(paso);font:italic 400 19px var(--serif);color:var(--oro-texto)}
.paso h3{font:400 24px var(--serif);margin:9px 0 7px;letter-spacing:-.4px}
.paso p{margin:0;color:var(--sub);font-size:14.5px}

/* ---------- encargo ---------- */
.encargo{background:var(--humo);border-radius:var(--borde-suave);padding:38px 24px;text-align:center}
html[data-modo=claro] .encargo{background:var(--cal)}
.encargo h2{font:400 clamp(30px,8vw,46px)/.98 var(--serif);letter-spacing:-.035em;margin:14px 0 14px}
.encargo h2 em{color:var(--oro-texto);font-style:italic}
.encargo p{color:var(--sub);max-width:42ch;margin:0 auto 24px}

/* ---------- pie ---------- */
footer{border-top:1px solid var(--linea);padding:38px 22px 44px;display:grid;gap:22px;color:var(--sub);font-size:13px}
footer .marca{color:var(--fg)}

/* ---------- botón flotante de WhatsApp ---------- */
.flota{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:35;
 display:inline-flex;align-items:center;gap:9px;background:var(--jade);color:#fff;
 padding:14px 19px;border-radius:100px;font:600 13.5px var(--sans);
 box-shadow:0 12px 30px #0000005e;transition:transform .2s ease,opacity .25s ease}
.flota:hover{transform:translateY(-2px)}
.flota.oculto,.flota.apartado{opacity:0;pointer-events:none;transform:translateY(14px)}

/* ---------- aparición al desplazar ---------- */
.js .revela{opacity:0;transform:translateY(22px);transition:opacity .4s ease,transform .4s ease}
.js .revela.visible{opacity:1;transform:none}

/* ---------- pantallas grandes ---------- */
@media (min-width:760px){
 header{padding:16px 46px}
 nav{display:flex}
 section{padding:96px 46px}
 .portada-texto{padding:0 46px 64px;max-width:900px}
 .bajar{display:block}
 .rejilla{grid-template-columns:repeat(2,1fr);gap:22px}
 .pasos{grid-template-columns:repeat(3,1fr);gap:28px}
 .encargo{padding:68px 46px}
 footer{grid-template-columns:1fr auto auto;align-items:center;padding:46px}
}
@media (min-width:1100px){
 .rejilla{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
 .panel{inset:0 0 0 auto;width:min(560px,50vw);max-height:none;border-radius:0;
  transform:translateX(100%)}
 .panel.abierto{transform:none}
 .agarre{display:none}
 .panel-foto{aspect-ratio:4/3;margin-top:0}
 .barra-accion{grid-template-columns:1fr 1fr}
 .agenda-lista{grid-template-columns:repeat(3,1fr)}
 /* La presentación que se promueve va primero, con la fila entera y el video a un lado. */
 .agenda-lista:not(.agenda-enlaces) .evento.con-video{order:-1;grid-column:1/-1;grid-template-columns:92px 1fr minmax(280px,40%)}
 .agenda-lista:not(.agenda-enlaces) .evento-video{grid-column:auto}
}
@media (prefers-reduced-motion:reduce){
 *{animation:none!important;transition-duration:.01ms!important}
}

/* ---------- añadidos de la versión conectada ---------- */
.cargando{padding:60px 0;text-align:center;color:var(--sub)}
.aviso{margin:16px 0 0;padding:13px 16px;border-left:3px solid var(--oro);
 background:color-mix(in srgb,var(--oro) 10%,transparent);color:var(--sub);font-size:13.5px;line-height:1.65}
.tambien{margin:26px 0 0;color:var(--sub);font-size:15px;line-height:1.6;text-align:center}
.tambien b{color:var(--fg);font-weight:600}
.aviso b{color:var(--fg)}
/* La práctica de los viernes: video de fondo y el texto encima. */
.practica{position:relative;margin-top:26px;border-radius:var(--borde-suave);overflow:hidden;
 min-height:420px;display:flex;align-items:flex-end;background:#0c0a08}
.practica video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.practica-texto{position:relative;padding:26px;max-width:560px}
.practica-texto h3{font:400 30px var(--serif);margin:10px 0 8px;letter-spacing:-.5px;color:#f4ecdf}
.practica-texto p{margin:0 0 18px;color:#cfc4b5;font-size:15px;line-height:1.6}
/* El escenario siempre va sobre video oscuro: el dorado oscuro del modo claro
   no se leía. Mismo dorado claro en los dos temas, con sombra. */
.practica-texto .rotulo,html[data-modo=claro] .practica-texto .rotulo{color:#f0c47e;text-shadow:0 1px 8px #000d;
 letter-spacing:2px;font-size:11px}
.practica-texto .rotulo i{background:#f0c47e}
.practica-texto .practica-presenta{margin:22px 0 12px;padding-top:18px;border-top:1px solid rgba(244,236,223,.22)}
@media (min-width:760px){.practica{min-height:460px}.practica-texto{padding:34px}}
/* La tira de la tienda: se arrastra de lado, sin flechas ni botones. */
.tira{display:grid;grid-auto-flow:column;grid-auto-columns:60%;gap:12px;overflow-x:auto;
 scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:8px;margin-top:22px}
.tira::-webkit-scrollbar{height:0}
.tira figure{margin:0;scroll-snap-align:start;border-radius:var(--borde-suave);overflow:hidden;aspect-ratio:4/5;background:var(--humo,#16120e)}
.tira img{width:100%;height:100%;object-fit:cover;display:block}
@media (min-width:760px){.tira{grid-auto-columns:28%}}
@media (min-width:1240px){.tira{grid-auto-columns:20%}}
/* Escoger la pieza exacta y los pasos del pago, dentro de la ficha. */
.unidades{margin:22px 0 4px}
.unidades>b{display:block;font:600 10px var(--sans);letter-spacing:2.4px;color:var(--sub);margin-bottom:10px}
/* El mazo. Las cartas se quedan SIEMPRE encimadas: la que se toca (o la que
   recibe el mouse) es la única que sale, hacia arriba. El mazo no se abre en
   abanico — eso desarmaba el montón y ya no parecía un mazo. */
/* OJO: aquí NO puede ir overflow-x:auto. Con un eje en auto, el otro deja de
   ser visible aunque diga "visible" (regla del CSS), y eso RECORTABA el salto
   de la carta: la animación existía y no se veía. Por eso el mazo se acomoda
   en varias filas en vez de desplazarse de lado. */
.unidades-tira{display:flex;flex-wrap:wrap;row-gap:16px;padding:32px 0 6px;overflow:visible}
.unidades-tira button{position:relative;width:96px;height:96px;flex:0 0 auto;margin-left:-48px;
 padding:0;border:2px solid var(--linea);border-radius:13px;overflow:hidden;background:var(--humo,#16120e);
 cursor:pointer;box-shadow:0 10px 22px #000a;
 transform:translate(var(--sale,0px),var(--asoma,0px)) scale(var(--crece,1)) rotate(var(--giro,0deg));
 transform-origin:bottom center;will-change:transform;
 /* Sin retardos: con el escalonado, al pasar rápido de una carta a otra la
    anterior se quedaba a medio bajar y se sentía pegajosa. */
 transition:transform .22s cubic-bezier(.33,1.3,.62,1),box-shadow .22s ease}
.unidades-tira button:first-child{margin-left:0}
/* Al acercarse al mazo todas se asoman un poco, una tras otra, y la que recibe
   el cursor sale completa. SOLO se mueven con `transform`: si se tocan los
   márgenes, las cartas se corren debajo del dedo, el cursor las pierde y la
   animación se queda trabada a medio camino (pasaba antes). */
.unidades-tira:hover button,.unidades-tira:focus-within button{--asoma:-9px}
.unidades-tira button:hover,.unidades-tira button:focus-visible{
 --asoma:-34px;--sale:8px;--crece:1.04;z-index:60;box-shadow:0 20px 36px #000c}
.unidades-tira img{width:100%;height:100%;object-fit:cover;display:block}
/* La escogida se queda arriba, pero SIN crecer: si crece, tapa a la vecina y
   ya no se le puede pasar el mouse. */
.unidades-tira button[aria-checked=true]{border-color:var(--oro);z-index:50;--asoma:-34px;--sale:8px;--crece:1.04;
 box-shadow:0 20px 36px #000c}
/* La foto completa, sin recorte. */
.lupa{position:fixed;inset:0;z-index:1200;background:#050403f2;display:flex;align-items:center;
 justify-content:center;padding:26px;cursor:zoom-out}
/* `display:flex` le gana al atributo `hidden`: sin esta línea la lupa queda
   invisible pero encima de todo, y la página deja de responder. */
.lupa[hidden]{display:none}
.lupa img{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px}
.lupa .cerrar{position:absolute;top:14px;right:16px}
.panel-foto{cursor:zoom-in}
@media (hover:none){
 /* Sin mouse no hay "acercarse": el mazo se asoma solo, una vez, al abrir. */
 .unidades-tira button{animation:asomar .45s ease both;animation-delay:calc(var(--i,0) * 35ms)}
 @keyframes asomar{from{transform:translateY(16px) rotate(var(--giro,0deg));opacity:.35}}
}
@media (prefers-reduced-motion:reduce){
 .unidades-tira button{transition:none!important;animation:none!important}
}
.unidades-pista{font-size:12px;color:var(--sub);margin:2px 0 0}
.unidades.abierto .unidades-pista{display:none}
.unidades-precio{font:400 15px var(--serif);color:var(--fg);margin-left:8px}
.unidades-tira button[disabled]{cursor:not-allowed}
.unidades-tira button[disabled] img{opacity:.3}
/* La carta de al lado tapa la mitad izquierda de esta, así que la etiqueta va
   pegada a la derecha, que es lo único que se ve del mazo. El precio solo
   aparece cuando la carta está arriba: encimados no se leían. */
.unidades-tira .marca-u{position:absolute;left:0;right:0;bottom:0;font:600 9px var(--sans);letter-spacing:1.2px;
 padding:4px 7px;background:#0c0a08cc;color:var(--papel,#f6f0e6);text-align:right;white-space:nowrap}
.unidades-tira .precio-u{display:none}
.unidades-tira button:hover .precio-u,.unidades-tira button:focus-visible .precio-u,
.unidades-tira button[aria-checked=true] .precio-u{display:inline}
.unidades-nota{margin:10px 0 0;color:var(--sub);font-size:13px;line-height:1.55}
.pasos-pago{margin:18px 0 0;display:grid;gap:10px}
.pasos-pago div{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;font-size:14px;line-height:1.55;color:var(--sub)}
.pasos-pago b{font:400 17px var(--serif);color:var(--oro-texto,var(--oro))}
.pasos-pago span strong{color:var(--fg);font-weight:600}
.pasos-pago .pendiente{font-style:italic}
/* Van debajo de los pasos, alineadas con su texto. Ojo: `.pasos-pago div` también
   las alcanza y les ponía la rejilla de los pasos; por eso el selector doble. */
.pasos-pago .formas-pago{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 0 36px}
.forma-pago{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:56px;
  padding:10px 14px;border:1px solid var(--linea);border-radius:12px;background:none;color:var(--fg);font:inherit;cursor:pointer;text-decoration:none}
.forma-pago:hover{border-color:var(--oro)}
.forma-pago b{font-size:15px}
.forma-pago span{font-size:14px;color:var(--sub);white-space:nowrap;font-variant-numeric:tabular-nums}
a.forma-pago span{white-space:normal;overflow-wrap:anywhere}
.forma-pago i{margin-top:4px;font-style:normal;font-size:13px;font-weight:600;color:var(--oro-texto,var(--oro))}
.pasos-pago .zelle-qr{margin:0 0 0 36px;font-size:14px;color:var(--sub)}
.zelle-qr summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--oro-texto,var(--oro));font-weight:600}
.zelle-qr img{display:block;width:200px;height:200px;border-radius:12px;background:#fff;padding:6px}
.pasos-pago .zelle-qr p{display:block;margin:10px 0 12px;line-height:1.55}
.pasos-pago .formas-nota{margin:0 0 0 36px;font-size:13px;color:var(--sub)}
/* La vista previa del mazo (encenderVistaPrevia en compartido.js): la carta al
   doble. No recibe el mouse, para no robarle el paso a las cartas de abajo. */
.vista-previa{position:fixed;z-index:1100;width:200px;pointer-events:none;border-radius:16px;overflow:hidden;
 border:2px solid var(--oro);background:var(--humo,#16120e);box-shadow:0 24px 48px #000c;
 opacity:0;transform:translateY(8px) scale(.94);transition:opacity .16s ease,transform .16s ease}
.vista-previa.visible{opacity:1;transform:none}
.vista-previa img{display:block;width:100%;height:200px;object-fit:cover}
.vista-previa span{display:block;padding:7px 10px;font:600 11px var(--sans);letter-spacing:1.2px;
 background:#0c0a08;color:var(--papel,#f6f0e6);text-align:right}
.mazo-pieza .unidades-tira{touch-action:pan-y}
@media (prefers-reduced-motion:reduce){.vista-previa{transition:none}}
/* El mazo dentro de la rejilla: ocupa la fila completa. */
.mazo-pieza{grid-column:1/-1;min-width:0;padding:4px 0 2px;cursor:pointer}
.mazo-cabeza{display:flex;align-items:center;gap:10px;flex-wrap:wrap;cursor:pointer}
.mazo-cabeza b{font:400 22px/1.2 var(--serif);letter-spacing:-.4px}
.mazo-cabeza .estado{position:static;font-size:9.5px;padding:4px 9px}
.mazo-cabeza .mazo-precio{margin-left:auto;font:400 17px var(--serif);color:var(--fg)}
.mazo-pieza .unidades-tira{padding-top:30px}
.agotado{opacity:.55}
.agotado .foto:after{content:"";position:absolute;inset:0;background:#0c0a0866}
.estado.agotada{background:#5c524a}
.gracias{position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);z-index:80;
 background:var(--jade);color:#fff;padding:14px 22px;border-radius:100px;font:600 13.5px var(--sans);
 box-shadow:0 14px 34px #0000005e;opacity:0;pointer-events:none;transition:all .3s ease}
.gracias.visible{opacity:1;transform:translate(-50%,0)}

/* ---------- pill de idioma: se ven los dos, se marca el activo ---------- */
.idioma{display:inline-flex;border:1px solid var(--linea);border-radius:100px;overflow:hidden;height:44px}
.idioma button{padding:0 13px;font:600 11.5px var(--sans);letter-spacing:1.6px;color:var(--sub);
 transition:background .2s ease,color .2s ease}
.idioma button:hover{color:var(--fg)}
.idioma button[aria-pressed=true]{background:var(--oro);color:#1b1208}
.idioma button:focus-visible{outline-offset:-2px}

/* ---------- las tres pruebas ---------- */
.pruebas{display:grid;gap:22px;padding:44px 22px;border-bottom:1px solid var(--linea)}
.prueba b{display:block;font:600 11px var(--sans);letter-spacing:2.6px;color:var(--oro-texto);margin-bottom:8px}
.prueba p{margin:0;color:var(--sub);font-size:14.5px;line-height:1.7}

/* ---------- visítanos ---------- */
.visita{display:grid;gap:28px;align-items:center}
.visita h2{font:400 clamp(32px,8vw,52px)/.96 var(--serif);letter-spacing:-.035em;margin:14px 0 14px}
.visita h2 em{color:var(--oro-texto);font-style:italic}
.visita-texto>p{color:var(--sub);margin:0 0 26px;max-width:46ch}
.visita-datos{display:grid;gap:16px;border-top:1px solid var(--linea);padding-top:20px;margin-bottom:26px}
.visita-datos b{display:block;font:600 10px var(--sans);letter-spacing:2.4px;color:var(--sub);margin-bottom:5px}
.visita-datos span,.visita-datos a{font:400 19px var(--serif);color:var(--fg)}
.visita-datos a:hover{color:var(--oro)}
.boton.linea.oscuro{color:var(--fg);border-color:var(--linea)}
.boton.linea.oscuro:hover{border-color:var(--oro)}
.visita-foto{border-radius:var(--borde-suave);overflow:hidden;aspect-ratio:4/3}
.visita-foto img{width:100%;height:100%;object-fit:cover}

@media (min-width:760px){
 .pruebas{grid-template-columns:repeat(3,1fr);gap:40px;padding:52px 46px}
 .visita{grid-template-columns:1fr 1fr;gap:48px}
 .visita-datos{grid-template-columns:1fr 1fr}
}

/* =========================================================
   Ajustes del 16 sep 2026, después de la revisión con clientas y
   desarrolladores (ver documentos/ESTADO-DEL-PROYECTO.md)
   ========================================================= */

/* menú también en el teléfono: una fila que se desliza debajo de la marca */
@media (max-width:759px){
 html{scroll-padding-top:128px}
 section{scroll-margin-top:118px}
 header{flex-wrap:wrap;row-gap:6px;padding-bottom:0}
 #ig{display:none}
 .herramientas{gap:8px}
 nav{display:flex;order:3;width:calc(100% + 44px);margin:0 -22px;padding:4px 22px 0;gap:4px;
  overflow-x:auto;scrollbar-width:none;font-size:13.5px;white-space:nowrap}
 nav::-webkit-scrollbar{display:none}
 nav a{padding:10px 10px 12px;border-bottom:2px solid transparent}
 nav a:first-child{padding-left:0}
 footer{padding-bottom:110px}
}
@media (min-width:760px){ nav a{padding-block:12px} }
/* tableta: el menú entero en una línea, sin partir "Lectura de tonal" */
@media (min-width:760px) and (max-width:1099px){ nav{gap:18px;font-size:12.5px} }
/* el precio, arriba junto al título de la ficha (el completo sigue al final) */
.precio-corto{margin:6px 0 0;font:400 19px var(--serif);color:var(--oro-texto,var(--oro))}
.precio-corto:empty{display:none}

/* en modo claro los botones color papel se perdían sobre el fondo papel */
html[data-modo=claro] main section:not(.portada) .boton:not(.oro):not(.linea),
html[data-modo=claro] .panel .boton:not(.oro):not(.linea){background:var(--tinta);color:var(--papel)}
html[data-modo=claro] .chip[aria-pressed=true]{background:var(--tinta);border-color:var(--tinta);color:var(--papel)}

/* redes en el pie */
.redes{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.redes span{font:600 10.5px var(--sans);letter-spacing:2.2px;text-transform:uppercase;margin-right:4px}
.redes .icono{color:var(--fg)}
.icono.red{font:600 11px var(--sans);letter-spacing:1px}

/* ---------- lectura de tonal ---------- */
.tonal{display:grid;gap:26px;background:var(--humo);border-radius:var(--borde-suave);overflow:hidden;
 border-left:3px solid var(--oro)}
html[data-modo=claro] .tonal{background:var(--cal)}
.tonal-foto{aspect-ratio:16/10;overflow:hidden;position:relative}
.tonal-foto img{transition:opacity .5s ease}
.tonal-foto img.cambiando{opacity:0}
.tonal-foto .credito{position:absolute;right:8px;bottom:8px;padding:3px 8px;border-radius:6px;
 font:500 10.5px var(--sans);letter-spacing:.3px;background:#0c0a08b3;color:#f4ecdf}
.tonal-foto img{width:100%;height:100%;object-fit:cover}
.tonal-cuerpo{padding:4px 24px 32px}
.tonal h2{font:400 clamp(32px,8vw,52px)/.96 var(--serif);letter-spacing:-.035em;margin:14px 0 14px}
.tonal h2 em{color:var(--oro-texto);font-style:italic}
.tonal-lead{margin:0 0 18px;font-size:17px;line-height:1.65;max-width:52ch}
.tonal-nota{margin:-6px 0 18px;color:var(--sub);font-size:13.5px}
.tonal-datos{margin:0 0 22px;border-top:1px solid var(--linea)}
.tonal-datos div{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--linea)}
.tonal-datos dt{font-weight:600;font-size:14px}
.tonal-datos dd{margin:0;color:var(--sub);font-size:14.5px}
.tonal-ops{display:flex;gap:9px;flex-wrap:wrap;margin:18px 0 4px}
.tonal-ops .chip[aria-checked=true]{background:var(--oro);border-color:var(--oro);color:var(--tinta,#1b1713)}
.tonal-como{display:block;font:600 11px var(--sans);letter-spacing:2.4px;text-transform:uppercase;color:var(--oro-texto);margin-bottom:8px}
.tonal-pasos{margin:0 0 8px;padding-left:22px;font-size:15px;line-height:1.8}
.tonal-sin{margin:0 0 22px;color:var(--sub);font-size:14px}
.pendiente{display:inline-block;border:1px dashed var(--ladrillo);color:var(--ladrillo);border-radius:100px;
 padding:2px 10px;font:600 11px var(--sans);letter-spacing:.6px;white-space:nowrap}
html:not([data-modo=claro]) .pendiente{color:#e98b6c;border-color:#e98b6c}
@media (min-width:900px){
 .tonal{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch}
 .tonal-foto{aspect-ratio:auto;height:100%}
 .tonal-cuerpo{padding:40px 44px 44px 0}
}

#modo{color:var(--fg)}
/* En /landing la agenda va en una sola columna, como los demás enlaces. */
.agenda-lista.agenda-enlaces{grid-template-columns:1fr;margin-top:10px}

/* Te atiende (lectura y limpia): la foto de quien la hace. */
.tonal-quien{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.tonal-quien img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2px solid var(--oro)}
.tonal-quien span{font-size:14px;color:var(--sub)}
.tonal-quien b{color:var(--fg);font-weight:600}
/* Los reels vienen verticales: en la tarjeta, una ventanita alta; en el escenario, a un lado. */
.evento-video.vertical{aspect-ratio:4/5}
.practica.vertical{background:#000 var(--cartel) center/cover}
.practica.vertical:before{content:"";position:absolute;inset:0;backdrop-filter:blur(18px) brightness(.45)}
.practica.vertical video{opacity:1;left:auto;right:0;width:min(46%,380px);object-fit:cover}
.practica.vertical .practica-texto{z-index:1}
@media (max-width:759px){.practica.vertical video{width:100%;opacity:.5}}
@media (min-width:900px){
 .agenda-lista:not(.agenda-enlaces) .evento.con-video{grid-template-columns:92px 1fr 260px}
 .agenda-lista:not(.agenda-enlaces) .evento-video.vertical{aspect-ratio:9/16;max-height:420px}
}

/* La galería de la pieza escogida (galeria() en compartido.js): va encima de la
   foto grande; video y fotos se turnan con fundido. */
.panel-foto{position:relative}
.galeria-u{position:absolute;inset:0;background:#000;cursor:default}
.galeria-u img,.galeria-u video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .6s ease}
.galeria-u .activa{opacity:1}
.galeria-puntos{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:center;gap:6px;z-index:2}
.galeria-puntos button{min-width:22px;height:22px;padding:0 6px;border-radius:11px;border:1px solid #ffffff99;background:#0008;
 color:#fff;font-size:9px;cursor:pointer}
.galeria-puntos button[aria-current=true]{background:var(--oro);border-color:var(--oro);color:#1b1208}
/* Las fotos y los videos del mazo son verticales: con galería, la foto grande crece. */
.panel-foto:has(.galeria-u){aspect-ratio:auto!important;height:min(66vh,640px)}

/* Promoción: el precio de antes tachado en rojo y más chico; el nuevo grande abajo. */
.precio-antes{display:block;font:400 17px var(--serif);color:var(--sub);text-decoration:line-through;
 text-decoration-color:#e3262d;text-decoration-thickness:2px}
.precio-ahora{display:block}
.oferta-u{position:absolute;top:6px;left:6px;padding:2px 6px;border-radius:5px;background:#e3262d;color:#fff;
 font:700 8.5px var(--sans);letter-spacing:1px}

/* "¿No ves lo que buscas?" al final de una sección: lleva a WhatsApp. */
.nota-seccion{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:6px 0 10px;
 padding:16px 18px;border:1px dashed var(--oro);border-radius:12px;color:var(--fg);text-decoration:none;font-size:15px;line-height:1.5}
.nota-seccion b{color:var(--oro-texto,var(--oro));font-size:18px}
.nota-seccion:hover{background:color-mix(in srgb,var(--oro) 8%,transparent)}

/* En celular y tableta el mazo es una fila que se DESLIZA de lado (lo pidió el
   diseñador, 25 sep): con 12 cartas encimadas a lo ancho de la pantalla a cada
   una le quedaban ~25 px para tocarla y el dedo escogía la vecina. Ahora cada
   carta mide 108 px y deja ~94 px a la vista.
   La nota de arriba sigue valiendo: con overflow-x:auto el eje de arriba también
   recorta, así que la tira lleva 44 px de aire arriba para que la carta escogida
   (sube 34 px) salte DENTRO de la caja y no se corte. Las cartas llegan hasta el
   borde de la pantalla (margen negativo = el relleno de la sección, --sangria). */
@media (max-width:899px){
 .unidades-tira{--sangria:22px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
  margin-inline:calc(-1 * var(--sangria));padding:44px var(--sangria) 12px;
  scroll-snap-type:x proximity;scroll-padding-inline:var(--sangria);scrollbar-width:none;
  touch-action:pan-x pan-y;overscroll-behavior-x:contain;
  -webkit-mask-image:linear-gradient(to right,#000 88%,transparent);mask-image:linear-gradient(to right,#000 88%,transparent)}
 .unidades-tira::-webkit-scrollbar{display:none}
 .unidades-tira button{width:108px;height:144px;margin-left:-14px;scroll-snap-align:start;
  /* separadas, el abanico entero (hasta 16°) se veía torcido: aquí va a un tercio */
  transform:translate(var(--sale,0px),var(--asoma,0px)) scale(var(--crece,1)) rotate(calc(var(--giro,0deg) / 3))}
 .unidades-tira button:first-child{margin-left:0}
 .mazo-pieza .unidades-tira{padding-top:44px}
}
@media (min-width:760px) and (max-width:899px){ section .unidades-tira{--sangria:46px} }

/* En computadora el mazo de la rejilla se abre para llenar la fila: las cartas
   crecen (150 a 230 px) y se separan lo que alcance el ancho; con muchas, se
   vuelven a encimar. `--n` (cuántas cartas) lo pone app.js. Los % de width y
   margin se miden contra el ancho del mazo. Al achicar la ventana el mazo se
   cierra solo hasta el de celular (96 px y encimadas). El margen SOLO cambia
   al cambiar el ancho de la ventana, nunca al pasar el mouse (ver arriba). */
@media (min-width:900px){
 .mazo-pieza .unidades-tira{--ancho:clamp(150px,calc((100% - (var(--n,6) - 1) * 14px) / var(--n,6)),230px)}
 .mazo-pieza .unidades-tira button{width:var(--ancho);height:auto;aspect-ratio:3/4;
  margin-left:clamp(calc(var(--ancho) * -.62),calc((100% - 4px - var(--n,6) * var(--ancho)) / (var(--n,6) - 1)),14px);
  transition:transform .22s cubic-bezier(.33,1.3,.62,1),box-shadow .22s ease,width .4s ease,margin-left .4s ease}
 .mazo-pieza .unidades-tira button:first-child{margin-left:0}
 .mazo-pieza .unidades-tira .marca-u{font-size:10px}
}

/* la tarjeta de la presentación en la tienda: solo el aviso (el video va en el escenario) */
.evento-proxima{grid-column:1/-1;justify-self:start;display:inline-block;margin-top:8px;padding:3px 8px;border-radius:6px;background:#d0000a;color:#fff;font:600 9.5px var(--sans);letter-spacing:1.4px}
/* una carta con precio por uno y por el par: los dos pagos lado a lado */
.dos-pagos{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dos-pagos .boton{justify-content:center;padding-inline:10px;text-align:center}
/* PayPal: su amarillo de marca, al lado del rojo de Square */
.boton.paypal{background:#ffc439;color:#111;border-color:#ffc439}
.boton.paypal:hover{background:#f2b52e}
.dos-pagos+.boton,.boton+.dos-pagos,.dos-pagos+.dos-pagos{margin-top:10px}
/* la opción de separar con 50%, dentro de la ficha (no en la barra de pagar) */
.opcion-separar{margin:14px 0 4px;padding:12px 14px;border:1px dashed var(--oro);border-radius:12px}
.opcion-separar p{margin:0 0 10px;font-size:14px;color:var(--sub)}
.opcion-separar .boton{width:100%;justify-content:center}
.opcion-separar .separar-nota:not([hidden]){display:block;margin-top:8px}
.opcion-separar:empty{display:none}
#panel-separar:empty,#f-separar:empty{display:none}

/* Tonal y limpia: cada una muestra solo su etiqueta (el display de .chip-zoom le ganaba a [hidden]). */
.chip-zoom[hidden]{display:none}

/* Botón de PayPal en la ficha (2 oct): debajo del de Square, con el logo de PayPal. */
.paypal-pago{display:grid;gap:8px;margin-top:10px;width:100%}
.paypal-hueco small{display:block;font-size:12px;opacity:.75;margin-bottom:2px}
.paypal-boton{min-height:54px;width:100%}
.paypal-aviso{margin:4px 0 0;font-size:14px;line-height:1.4}
