/* lamejorbodade.com — web de venta.
   Paleta de la invitación (marfil, rosa empolvado, dorado viejo) y un solo color
   fuerte, el lacre del sello, para lo que se pulsa. Fuentes propias, sin Google. */

/* ── Fuentes ─────────────────────────────────────────────────────────────── */
@font-face{font-family:"Cormorant";font-style:normal;font-weight:300 700;font-display:swap;src:url("fuentes/2fed1d1b2e.woff2") format("woff2")}
@font-face{font-family:"Cormorant";font-style:italic;font-weight:300 700;font-display:swap;src:url("fuentes/25e3098244.woff2") format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300 700;font-display:swap;src:url("fuentes/e56e84e540.woff2") format("woff2")}

/* ── Tokens ──────────────────────────────────────────────────────────────── */
:root{
  --papel:#fbf7f0; --marfil:#f3ebdf; --sobre:#e9dcc7; --sobre-2:#dfcfb5;
  --linea:#e2d5c1; --tinta:#2a2320; --tinta-2:#6a5d54;
  --rosa:#a46b62; --dorado:#8d6b36; --oro:#e8cf9c; --lacre:#7a2430; --lacre-2:#5e1a24;
  --display:"Cormorant","Cormorant Garamond",Garamond,"Times New Roman",serif;
  --texto:"Montserrat","Helvetica Neue",Arial,sans-serif;
  --ancho:1180px; --radio:14px;
  color-scheme:light;
}

/* ── Base ────────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--texto);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--lacre);outline-offset:3px;border-radius:4px}
.oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:12px;top:-60px;z-index:50;background:var(--tinta);color:var(--papel);padding:8px 14px;border-radius:8px}
.saltar:focus{top:12px}

h2{font-family:var(--display);font-weight:500;font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.05;letter-spacing:-.01em;text-wrap:balance}
.antetitulo{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--dorado)}
.nota{font-size:.82rem;color:var(--tinta-2)}

/* ── Botones ─────────────────────────────────────────────────────────────── */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border-radius:999px;
  font-size:.92rem;font-weight:600;letter-spacing:.01em;text-decoration:none;border:1.5px solid transparent;cursor:pointer;
  transition:background-color .2s,color .2s,border-color .2s,transform .2s}
.boton:active{transform:translateY(1px)}
.boton-lacre{background:var(--lacre);color:#fbefe9}
.boton-lacre:hover{background:var(--lacre-2)}
.boton-linea{border-color:var(--tinta);color:var(--tinta);background:transparent}
.boton-linea:hover{background:var(--tinta);color:var(--papel)}
.boton-papel{background:var(--papel);color:var(--tinta)}
.boton-papel:hover{background:var(--oro)}
.boton-peq{min-height:40px;padding:8px 16px;font-size:.84rem}

/* ── Cabecera ────────────────────────────────────────────────────────────── */
.cabecera{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:12px max(16px,calc((100% - var(--ancho))/2));background:color-mix(in srgb,var(--papel) 88%,transparent);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .2s}
.cabecera.con-borde{border-bottom-color:var(--linea)}
.marca{font-family:var(--display);font-size:1.45rem;font-weight:500;text-decoration:none;letter-spacing:-.01em;white-space:nowrap}
.marca i{color:var(--rosa)}
.menu{display:flex;gap:26px;font-size:.88rem}
.menu a{text-decoration:none;color:var(--tinta-2)}
.menu a:hover{color:var(--tinta)}

/* ── Portada ─────────────────────────────────────────────────────────────── */
.portada{max-width:var(--ancho);margin:0 auto;padding:clamp(28px,6vw,72px) 16px clamp(56px,8vw,96px);
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(32px,5vw,72px);align-items:center}
.portada-texto{display:grid;gap:22px;min-width:0}
.titular{font-family:var(--display);font-weight:500;font-size:clamp(2.5rem,5.6vw,5.2rem);line-height:.95;letter-spacing:-.02em}
.titular-fijo{display:block;white-space:nowrap}
.titular-nombres{display:block}
/* --ajuste lo calcula app.js para que los nombres largos quepan en una línea */
.titular-nombres input{display:block;width:100%;border:0;border-bottom:2px dashed color-mix(in srgb,var(--dorado) 55%,transparent);
  background:transparent;padding:.04em 0 .1em;font-family:var(--display);font-style:italic;font-weight:500;font-size:calc(1.12em * var(--ajuste,1));line-height:1.05;
  height:calc(1.12em * 1.2);transition:font-size .15s;
  letter-spacing:-.02em;color:var(--rosa);caret-color:var(--lacre);border-radius:0}
.titular-nombres input::placeholder{color:color-mix(in srgb,var(--rosa) 45%,transparent)}
.titular-nombres input:focus{outline:none;border-bottom-style:solid;border-bottom-color:var(--lacre)}
.entrada{font-size:1.06rem;color:var(--tinta-2);max-width:52ch}
.fecha-campo{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.9rem;color:var(--tinta-2)}
.fecha-campo input{border:1px solid var(--linea);background:var(--papel);border-radius:10px;padding:8px 12px;min-height:44px}
.acciones{display:flex;flex-wrap:wrap;gap:12px}

/* ── Sobre (el elemento firma) ───────────────────────────────────────────── */
.escena{display:grid;justify-items:center;gap:16px;min-width:0;padding-top:clamp(70px,12vw,140px)}
.sobre{position:relative;width:min(100%,440px);aspect-ratio:10/7;perspective:1400px}
.sobre-fondo{position:absolute;inset:0;border-radius:8px;background:linear-gradient(170deg,var(--sobre-2),var(--sobre));
  box-shadow:0 30px 60px -28px rgba(70,45,30,.45),0 2px 0 rgba(255,255,255,.4) inset}
.tarjeta{position:absolute;left:6%;right:6%;top:6%;height:88%;z-index:1;border-radius:6px;background:var(--papel);
  box-shadow:0 10px 30px -14px rgba(60,40,25,.4);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  gap:6px;padding:9% 8% 6%;text-align:center;transition:transform .9s cubic-bezier(.2,.8,.2,1) .45s,z-index 0s linear 1.2s}
.tarjeta::before{content:"";position:absolute;inset:8px;border:1px solid color-mix(in srgb,var(--dorado) 40%,transparent);border-radius:3px;pointer-events:none}
.tarjeta-ante{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--dorado);font-weight:600}
.tarjeta-nombres{font-family:var(--display);font-style:italic;font-size:clamp(1.7rem,4.4vw,2.4rem);line-height:1;color:var(--tinta);
  overflow-wrap:anywhere}
.tarjeta-fecha{font-size:.78rem;color:var(--tinta-2)}
.tarjeta-cuenta{font-family:var(--display);font-size:1.15rem;color:var(--rosa)}
.tarjeta-boton{margin-top:6px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;
  border:1px solid var(--tinta);border-radius:999px;padding:7px 14px}
.tarjeta-boton:hover{background:var(--tinta);color:var(--papel)}
.sobre-bolsillo{position:absolute;inset:0;z-index:2;border-radius:0 0 8px 8px;pointer-events:none;
  background:linear-gradient(180deg,#f1e6d4,#eadcc5);clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%);
  filter:drop-shadow(0 -1px 0 rgba(120,90,60,.18))}
.sobre-solapa{position:absolute;left:0;right:0;top:0;height:60%;z-index:3;transform-origin:50% 0;pointer-events:none;
  background:linear-gradient(180deg,#e3d2b7,#d9c6a8);clip-path:polygon(0 0,100% 0,50% 100%);
  transition:transform .7s cubic-bezier(.5,0,.3,1),z-index 0s linear .35s}
.sello{position:absolute;left:50%;top:60%;z-index:5;width:clamp(68px,18vw,88px);aspect-ratio:1;transform:translate(-50%,-50%);
  border:0;padding:0;cursor:pointer;border-radius:47% 53% 50% 50% / 52% 46% 54% 48%;
  background:radial-gradient(circle at 35% 30%,#a23a47 0,var(--lacre) 45%,var(--lacre-2) 100%);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--lacre) 80%,#000) inset,0 0 0 7px rgba(255,255,255,.08) inset,0 8px 18px -6px rgba(60,10,20,.6);
  display:grid;place-items:center;transition:transform .5s cubic-bezier(.5,0,.3,1),opacity .4s}
.sello:hover{transform:translate(-50%,-50%) scale(1.05)}
.sello-iniciales{font-family:var(--display);font-style:italic;font-weight:600;font-size:clamp(1.3rem,3.6vw,1.7rem);color:var(--oro);
  letter-spacing:-.02em;text-shadow:0 1px 0 rgba(0,0,0,.35)}
.sello-pista{font-size:.8rem;color:var(--tinta-2);letter-spacing:.04em;transition:opacity .3s}
.direccion{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:10px 18px;border:1px solid var(--linea);border-radius:999px;
  background:#fff;font-size:.92rem;color:var(--tinta-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.direccion b{color:var(--lacre);font-weight:600}
.candado{flex:none;width:9px;height:8px;border:1.6px solid var(--tinta-2);border-radius:2px;position:relative;top:2px}
.candado::before{content:"";position:absolute;left:0;top:-7px;width:3px;height:5px;border:1.6px solid var(--tinta-2);border-bottom:0;border-radius:4px 4px 0 0}

.sobre.abierto .sobre-solapa{transform:rotateX(180deg);z-index:0}
.sobre.abierto .sello{opacity:0;transform:translate(-50%,-140%) scale(.6);pointer-events:none}
.sobre.abierto .tarjeta{transform:translateY(-56%);z-index:4}
.sobre.abierto + .sello-pista{opacity:0}

/* ── Bloques ─────────────────────────────────────────────────────────────── */
.bloque{padding:clamp(64px,9vw,112px) 16px}
.bloque > *{max-width:var(--ancho);margin-inline:auto}
.bloque-marfil{background:var(--marfil)}
.bloque-tinta{background:var(--tinta);color:var(--papel)}
.bloque-cabeza{display:grid;gap:12px;margin-bottom:clamp(32px,5vw,52px)}
.bloque-cabeza h2{max-width:24ch}
.bloque-sub{color:var(--tinta-2);max-width:56ch}

/* Pasos del invitado: una secuencia real */
.pasos-invitado{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,3vw,40px);counter-reset:p;margin-bottom:clamp(40px,6vw,64px)}
.pasos-invitado li{counter-increment:p;display:grid;gap:6px;align-content:start;padding-top:18px;border-top:1px solid var(--linea);color:var(--tinta-2);font-size:.95rem}
.pasos-invitado li::before{content:counter(p);font-family:var(--display);font-style:italic;font-size:2.4rem;line-height:1;color:var(--rosa)}
.pasos-invitado b{font-family:var(--display);font-weight:600;font-size:1.5rem;color:var(--tinta)}

/* Prueba: invitado a la izquierda, panel de los novios a la derecha */
.prueba{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(16px,3vw,32px);align-items:start}
.prueba-invitado,.panel{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:clamp(20px,3vw,28px);display:grid;gap:14px;min-width:0}
.prueba-titulo,.panel-titulo{font-family:var(--display);font-size:1.5rem;font-weight:600;line-height:1.1}
.prueba-invitado label,.formulario .campo{display:grid;gap:6px;font-size:.82rem;font-weight:600;color:var(--tinta-2)}
.prueba-invitado input[type=text],.prueba-invitado select{width:100%;min-height:44px;border:1px solid var(--linea);border-radius:10px;padding:10px 12px;background:var(--papel);font-weight:400;color:var(--tinta)}
.segmento{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.segmento legend{font-size:.82rem;font-weight:600;color:var(--tinta-2);margin-bottom:6px;padding:0}
.segmento label{display:block;position:relative}
.segmento input{position:absolute;opacity:0;inset:0;cursor:pointer}
.segmento span{display:grid;place-items:center;min-height:44px;border:1px solid var(--linea);border-radius:10px;font-weight:600;color:var(--tinta-2);background:var(--papel);text-align:center;padding:6px}
.segmento input:checked + span{border-color:var(--lacre);color:var(--lacre);background:#fbf1ef}
.segmento input:focus-visible + span{outline:2px solid var(--lacre);outline-offset:2px}
.fila-dos{display:grid;grid-template-columns:1fr 1fr;gap:12px}

.panel-cabeza{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.panel-vivo{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#4f7a52;display:inline-flex;align-items:center;gap:6px}
.panel-vivo::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;animation:latido 2s infinite}
@keyframes latido{50%{opacity:.25}}
.contadores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:10px;overflow:hidden}
.contadores div{background:var(--papel);padding:12px 14px;display:grid;gap:2px}
.contadores dt{font-size:.74rem;color:var(--tinta-2)}
.contadores dd{font-family:var(--display);font-size:2.2rem;font-weight:600;line-height:1;font-variant-numeric:lining-nums tabular-nums;transition:color .3s}
.contadores dd.sube{color:var(--lacre)}
.menus{display:grid;gap:8px}
.menu-fila{display:grid;grid-template-columns:92px minmax(0,1fr) 32px;align-items:center;gap:10px;font-size:.84rem}
.menu-fila i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,var(--rosa),color-mix(in srgb,var(--rosa) 60%,var(--oro)));
  width:var(--w,0%);transition:width .6s cubic-bezier(.2,.8,.2,1)}
.menu-fila b{text-align:right;font-variant-numeric:tabular-nums}
.ultimas{display:grid;gap:6px;font-size:.86rem;border-top:1px solid var(--linea);padding-top:12px}
.ultimas li{color:var(--tinta-2)}
.ultimas b{color:var(--tinta)}
.ultimas em{font-style:normal;color:var(--lacre);font-weight:600}
.ultimas li.nueva{animation:entra .6s cubic-bezier(.2,.8,.2,1)}
@keyframes entra{from{opacity:0;transform:translateY(-8px)}}
.panel-pie{font-size:.76rem;color:var(--tinta-2)}

/* Tarifas */
.planes{border:0;padding:0;margin:0 auto clamp(24px,4vw,36px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.plan{position:relative;display:grid;grid-template-rows:auto auto auto 1fr;gap:10px;background:var(--papel);border:1.5px solid var(--linea);
  border-radius:var(--radio);padding:24px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s}
.plan:hover{transform:translateY(-2px)}
.plan input{position:absolute;opacity:0;pointer-events:none}
.plan:has(input:checked){border-color:var(--lacre);box-shadow:0 18px 40px -26px var(--lacre)}
.plan:has(input:focus-visible){outline:2px solid var(--lacre);outline-offset:3px}
.plan::after{content:"";position:absolute;top:20px;right:20px;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--linea);background:var(--papel)}
.plan:has(input:checked)::after{border-color:var(--lacre);background:radial-gradient(circle,var(--lacre) 0 5px,var(--papel) 6px)}
.plan-marca{position:absolute;top:-12px;left:22px;font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  background:var(--lacre);color:#fbefe9;border-radius:99px;padding:4px 10px}
.plan-nombre{font-family:var(--display);font-size:1.7rem;font-weight:600;line-height:1}
.plan-precio{font-size:1rem;color:var(--tinta-2)}
.plan-precio b{font-family:var(--display);font-size:3rem;font-weight:600;line-height:1;color:var(--tinta);font-variant-numeric:lining-nums}
.plan-precio small{font-size:.8rem}
.plan ul{display:grid;gap:6px;font-size:.88rem;color:var(--tinta-2);align-content:start;border-top:1px solid var(--linea);padding-top:14px}
.plan li{padding-left:18px;position:relative}
.plan li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1.5px;background:var(--dorado)}

.extras{border:0;padding:0;margin:0 auto clamp(24px,4vw,36px);display:flex;flex-wrap:wrap;gap:10px}
.extras legend{width:100%;font-size:.82rem;font-weight:600;color:var(--tinta-2);margin-bottom:10px;padding:0}
.extras label{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;border:1px solid var(--linea);
  border-radius:999px;background:var(--papel);font-size:.88rem;cursor:pointer;transition:border-color .2s,background-color .2s}
.extras input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.extras b{font-variant-numeric:tabular-nums;color:var(--tinta-2);font-weight:600}
.extras label:has(input:checked){border-color:var(--lacre);background:#fbf1ef}
.extras label:has(input:checked) b{color:var(--lacre)}
.extras label:has(input:focus-visible){outline:2px solid var(--lacre);outline-offset:2px}
.extras label.incluido{opacity:.55;cursor:default}
.extras label.incluido b{font-size:0}
.extras label.incluido b::after{content:"incluido";font-size:.8rem}

.resumen{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;background:var(--tinta);color:var(--papel);
  border-radius:var(--radio);padding:18px 22px}
.resumen-texto{font-size:.92rem;color:color-mix(in srgb,var(--papel) 75%,transparent);flex:1 1 220px}
.resumen-total{font-size:1rem;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.resumen-total b{font-family:var(--display);font-size:2.4rem;font-weight:600;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.resumen-total small{width:100%;font-size:.76rem;color:color-mix(in srgb,var(--papel) 70%,transparent)}
.resumen .boton-lacre{background:var(--papel);color:var(--lacre)}
.resumen .boton-lacre:hover{background:var(--oro)}

/* Por qué */
.porque{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,80px);align-items:start}
.porque > div{display:grid;gap:14px;position:sticky;top:96px}
.razones{display:grid}
.razones li{padding:18px 0;border-top:1px solid var(--linea);color:var(--tinta-2)}
.razones li:last-child{border-bottom:1px solid var(--linea)}
.razones b{color:var(--tinta);font-weight:600}

/* Proceso: secuencia real con su plazo */
.proceso{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:q}
.proceso li{counter-increment:q;display:grid;gap:6px;align-content:start;background:var(--papel);border-radius:var(--radio);padding:22px;font-size:.92rem;color:var(--tinta-2)}
.proceso-cuando{font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dorado)}
.proceso b{font-family:var(--display);font-size:1.4rem;font-weight:600;line-height:1.1;color:var(--tinta)}
.proceso b::before{content:counter(q) ". ";color:var(--rosa);font-style:italic}

/* Preguntas */
.preguntas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px}
.preguntas details{border-top:1px solid var(--linea)}
.preguntas summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:18px 0;font-weight:600}
.preguntas summary::-webkit-details-marker{display:none}
.preguntas summary::after{content:"+";font-family:var(--display);font-size:1.6rem;line-height:.8;color:var(--rosa);transition:transform .2s}
.preguntas details[open] summary::after{transform:rotate(45deg)}
.preguntas details p{padding:0 0 20px;color:var(--tinta-2);max-width:60ch}

/* Demo */
.demo{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,80px);align-items:start}
.demo-texto{display:grid;gap:16px;justify-items:start}
.demo-texto .antetitulo{color:var(--oro)}
.demo-texto h2{font-size:clamp(2.4rem,6vw,4.2rem)}
.demo-texto p{color:color-mix(in srgb,var(--papel) 78%,transparent);max-width:40ch}
.formulario{display:grid;gap:14px}
.formulario .campo{color:color-mix(in srgb,var(--papel) 80%,transparent)}
.formulario .opcional{font-weight:400;opacity:.7}
.formulario input:not([type=checkbox]),.formulario select,.formulario textarea{width:100%;min-height:46px;border:1px solid rgba(255,255,255,.18);
  border-radius:10px;padding:11px 13px;background:rgba(255,255,255,.06);color:var(--papel);font-weight:400}
.formulario select option{color:var(--tinta)}
.formulario input::placeholder,.formulario textarea::placeholder{color:rgba(251,247,240,.4)}
.formulario input:focus,.formulario select:focus,.formulario textarea:focus{outline:none;border-color:var(--oro);background:rgba(255,255,255,.1)}
.formulario [aria-invalid=true]{border-color:#e59a8f!important}
.formulario input[type=date]{color-scheme:dark}
.capa{font-size:.76rem;line-height:1.5;color:color-mix(in srgb,var(--papel) 62%,transparent)}
.capa a,.pie a{color:inherit}
.acepto{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;cursor:pointer}
.acepto input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--oro);flex:none}
.formulario .boton{justify-self:start;min-width:200px}
.estado{font-size:.9rem;min-height:1.4em}
.estado.ok{color:var(--oro)}
.estado.error{color:#f0b2a8}
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Pie */
.pie{padding:40px 16px 48px;display:grid;gap:8px;justify-items:center;text-align:center;font-size:.84rem;color:var(--tinta-2);border-top:1px solid var(--linea)}
.pie .marca{font-size:1.6rem;color:var(--tinta)}

/* Barra fija en el móvil */
.barra-movil{display:none}

/* Entradas al hacer scroll */
.aparece{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.aparece.visto{opacity:1;transform:none}

/* ── Páginas legales ─────────────────────────────────────────────────────── */
.legal{max-width:760px;margin:0 auto;padding:clamp(40px,7vw,80px) 16px;display:grid;gap:16px}
.legal h1{font-family:var(--display);font-weight:500;font-size:clamp(2.4rem,6vw,3.6rem);line-height:1}
.legal h2{font-size:1.7rem;margin-top:18px}
.legal p,.legal li{color:var(--tinta-2)}
.legal ul{list-style:disc;padding-left:1.2em;display:grid;gap:6px}
.legal dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 18px}
.legal dt{font-weight:600}
.legal dd{color:var(--tinta-2)}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width:960px){
  /* En móvil el sobre va justo bajo los nombres: es lo primero que hay que ver */
  .portada{grid-template-columns:minmax(0,1fr);gap:20px;padding-top:20px}
  .portada-texto{display:contents}
  .portada-texto > *{order:3}
  .portada .antetitulo{order:0}
  .portada .titular{order:1}
  .escena{order:2;padding-top:92px;margin-bottom:8px}
  .sobre.abierto .tarjeta{transform:translateY(-50%)}
  /* Sin sitio arriba: la solapa abierta se desvanece para no tapar los nombres */
  .sobre-solapa{transition:transform .7s cubic-bezier(.5,0,.3,1),z-index 0s linear .35s,opacity .3s linear .45s}
  .sobre.abierto .sobre-solapa{opacity:0}
  .prueba,.porque,.demo{grid-template-columns:minmax(0,1fr)}
  .porque > div{position:static}
  .proceso{grid-template-columns:repeat(2,minmax(0,1fr))}
  .planes{grid-template-columns:minmax(0,1fr);max-width:560px}
}
@media (max-width:720px){
  .menu{display:none}
  .cabecera .boton{display:none}
  .pasos-invitado{grid-template-columns:minmax(0,1fr)}
  .preguntas{grid-template-columns:minmax(0,1fr)}
  .proceso{grid-template-columns:minmax(0,1fr)}
  .fila-dos{grid-template-columns:minmax(0,1fr)}
  .menu-fila{grid-template-columns:84px minmax(0,1fr) 28px}
  .barra-movil{display:grid;grid-template-columns:1.4fr 1fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:30;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--papel) 94%,transparent);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--linea);transition:transform .3s}
  .barra-movil.escondida{transform:translateY(110%)}
  body{padding-bottom:76px}
  .resumen .boton{width:100%}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .aparece{opacity:1;transform:none}
}
