/* ==========================================================================
   ENSUEÑO ANIMACIONES — identidad propia · versión 2 (legibilidad AA)
   Motivo: el ARCO (palacios y Plaza de España) + corona y destellos.
   Texto normal: 18 px escritorio / 17 px móvil · interlineado 1,6 · máx. 65 caracteres.
   Texto pequeño (etiquetas, «Inspirada en…»): 14 px mínimo.
   ========================================================================== */
:root{
  --noche:#1d0a2e;
  --morado-900:#2a0f40;
  --morado-800:#3a1658;
  --morado-700:#4f1f78;
  --morado-500:#7a3fb0;
  --lila-100:#f2e9fb;
  --nata:#fdf8f0;
  --nata-2:#f7efe2;
  --papel:#fbf3e4;
  --oro:#c9a24a;
  --oro-claro:#ecd38e;
  --oro-osc:#7c5d14;
  --tinta:#2b1838;
  --tinta-suave:#55425f;
  --claro:#f6effb;        /* texto sobre fondos oscuros */
  --claro-2:#e6dcef;      /* texto secundario sobre oscuro (AA) */
  --blanco:#fff;
  --ink:var(--tinta); --surface:var(--nata); --line:#e4d7ef; --accent:var(--morado-500); --shadow:rgba(42,15,64,.28);
  --f-script:'Great Vibes', 'Brush Script MT', cursive;
  --f-serif:'Cormorant Garamond', Georgia, serif;
  --f-sans:'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --wrap:1180px;
  --radio:18px;
  --arco:999px 999px 22px 22px;
  --nav-h:72px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-padding-top:80px; }
body{ margin:0; font-family:var(--f-sans); font-size:1.125rem; line-height:1.6; color:var(--tinta); background:var(--nata); overflow-x:hidden; }
@media (max-width:760px){ body{ font-size:1.0625rem; } }
img,video,svg{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--f-serif); font-weight:600; line-height:1.08; margin:0 0 .4em; letter-spacing:-.01em; }
h2{ font-size:clamp(2.4rem, 4.8vw, 3.6rem); }
h3{ font-size:1.6rem; }
p{ margin:0 0 1em; max-width:45ch; }  /* ≈ 65 caracteres reales en Nunito */
.t-peq{ font-size:.875rem; line-height:1.5; }
@media (max-width:760px){ .t-peq{ font-size:.875rem; } }
.script{ font-family:var(--f-script); font-weight:400; font-style:normal; letter-spacing:0; }
/* acento de los títulos: cursiva serif legible, color sólido */
.acento{ font-family:var(--f-serif); font-style:italic; font-weight:600; color:var(--morado-700); }
.wrap{ width:min(100% - 32px, var(--wrap)); margin-inline:auto; }
.skip{ position:absolute; left:-9999px; top:8px; z-index:2000; background:var(--blanco); padding:8px 14px; border-radius:8px; }
.skip:focus{ left:8px; }

/* huecos sin rellenar: invisibles en público; ?pendientes=1 los resalta */
.solo-pend{ display:none !important; }
.ver-pend .solo-pend{ display:revert !important; }
.ver-pend .dato.solo-pend{ display:block !important; }
.pendiente{ display:inline-block; background:#fff3b0; color:#4a3600; border:1px dashed #9a7a00; border-radius:6px; padding:0 6px; font-size:.875rem; font-weight:700; font-family:var(--f-sans); line-height:1.5; }
.ver-pend .pend{ background:#fff3b0 !important; color:#4a3600 !important; outline:2px dashed #9a7a00; border-radius:6px; padding:0 6px; }

/* ---------- botones ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:0 26px; border-radius:999px; font-family:var(--f-sans); font-weight:800; font-size:1.0625rem; line-height:1.2; text-align:center; text-decoration:none; border:2px solid transparent; cursor:pointer; letter-spacing:.01em; }
.btn-sm{ min-height:44px; padding:0 20px; font-size:1rem; }
.btn-oro{ background:linear-gradient(135deg, var(--oro-claro), var(--oro) 60%, #b88a2c); color:var(--morado-900); box-shadow:0 10px 26px -10px rgba(201,162,74,.8), inset 0 1px 0 rgba(255,255,255,.5); }
.btn-oro:hover{ filter:brightness(1.06); }
.btn-morado{ background:var(--morado-700); color:var(--blanco); }
.btn-morado:hover{ background:var(--morado-800); }
.btn-claro{ background:rgba(29,10,46,.35); color:var(--blanco); border-color:rgba(255,255,255,.7); }
.btn-claro:hover{ background:rgba(29,10,46,.55); }
.btn-linea{ background:transparent; color:var(--morado-700); border-color:var(--morado-700); }
.btn-linea:hover{ background:var(--morado-700); color:var(--blanco); }
.btn-wa{ background:#14773c; color:var(--blanco); }
.btn-wa:hover{ background:#0f6431; }
.btn[disabled]{ opacity:1; color:#6a5876; border-color:#c9b9d8; border-style:dashed; background:transparent; cursor:not-allowed; }
.btn.centro{ display:flex; width:max-content; max-width:100%; margin:28px auto 0; }
.ico{ width:22px; height:22px; fill:currentColor; flex:none; }

.eyebrow{ display:inline-flex; align-items:center; gap:10px; font-weight:800; font-size:.875rem; letter-spacing:.16em; text-transform:uppercase; color:var(--morado-700); margin-bottom:14px; }
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--oro); }

/* viñetas con icono dorado */
.lista-oro{ list-style:none; padding:0; margin:0 0 1em; display:grid; gap:8px; }
.lista-oro li{ position:relative; padding-left:30px; }
.lista-oro li::before{ content:""; position:absolute; left:2px; top:.42em; width:16px; height:16px; background:var(--oro); clip-path:polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.lista-oro.claro li{ color:var(--claro); }
.lista-oro.claro li::before{ background:var(--oro-claro); }

.link-magia{ display:inline-flex; align-items:center; gap:8px; font-weight:800; color:var(--oro-claro); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; margin-top:4px; }
.link-magia span{ text-decoration:none; }
.link-magia.oscuro{ color:var(--morado-700); margin-top:20px; }

.sec-cab{ text-align:center; max-width:760px; margin:0 auto 36px; }
.sec-cab p{ margin-inline:auto; }
.sec-cab.izq{ text-align:left; margin-left:0; }
.sec-cab.izq p{ margin-inline:0; }
.sec-sub{ color:var(--tinta-suave); font-size:1.15rem; max-width:44ch; }
.sec-cab.claro .eyebrow{ color:var(--oro-claro); }
.sec-cab.claro h2{ color:var(--blanco); }
.sec-cab.claro .sec-sub{ color:var(--claro-2); }
.sec-cab.claro .acento{ color:var(--oro-claro); }
section{ position:relative; }
section[id]{ scroll-margin-top:70px; }

/* ---------- títulos palabra a palabra ---------- */
.js .tw .w{ display:inline-block; opacity:0; transform:translateY(.45em) rotate(1.5deg); transition:opacity .7s var(--ease-out), transform .9s var(--ease-out); transition-delay:calc(var(--i) * 70ms); }
.js .tw.in .w{ opacity:1; transform:none; }

/* ---------- TELÓN ---------- */
.telon{ display:none; }
.con-telon .telon{ display:block; position:fixed; inset:0; z-index:1000; pointer-events:none; animation:telonFuera .01s linear 2.25s forwards; }
.telon-hoja{ position:absolute; top:0; bottom:0; width:51%; pointer-events:auto;
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 70%, rgba(0,0,0,.35)),
    repeating-linear-gradient(90deg, #3a1158 0, #5e2490 2.2%, #7b37b0 3.4%, #5e2490 4.8%, #3a1158 7%);
  box-shadow:inset 0 -40px 60px rgba(0,0,0,.25);
  animation:telonAbreIzq 1.25s cubic-bezier(.7,0,.25,1) .7s forwards; will-change:transform; }
.telon-hoja.der{ right:0; animation-name:telonAbreDer; }
.telon-hoja.izq{ left:0; }
.telon::before{ content:""; position:absolute; left:0; right:0; top:0; height:64px; z-index:3;
  background:repeating-radial-gradient(circle at 50% -10px, #6b2a9a 0 34px, #4a1870 34px 38px), #4a1870;
  background-size:76px 64px; border-bottom:4px solid var(--oro); box-shadow:0 6px 18px rgba(0,0,0,.35);
  animation:telonSube .9s cubic-bezier(.7,0,.25,1) 1.25s forwards; }
.telon-marca{ position:absolute; inset:0; z-index:4; display:grid; place-content:center; text-align:center; color:var(--oro-claro); animation:marcaFuera .5s ease .55s forwards; }
.telon-marca .script{ font-size:clamp(4rem, 14vw, 8rem); line-height:1; text-shadow:0 4px 30px rgba(236,211,142,.45); }
.telon-marca small{ font-family:var(--f-sans); font-weight:800; letter-spacing:.5em; text-transform:uppercase; font-size:.875rem; margin-top:4px; }
.telon-saltar{ position:absolute; z-index:5; right:16px; bottom:max(16px, env(safe-area-inset-bottom)); pointer-events:auto; background:rgba(0,0,0,.45); color:var(--blanco); border:1px solid rgba(255,255,255,.5); border-radius:999px; padding:10px 18px; font:700 1rem var(--f-sans); cursor:pointer; animation:marcaFuera .3s ease 1.2s forwards; }
.telon.ya{ display:none !important; }
@keyframes telonAbreIzq{ to{ transform:translateX(-102%); } }
@keyframes telonAbreDer{ to{ transform:translateX(102%); } }
@keyframes telonSube{ to{ transform:translateY(-110%); } }
@keyframes marcaFuera{ to{ opacity:0; visibility:hidden; } }
@keyframes telonFuera{ to{ visibility:hidden; } }

/* ---------- polvo de hada ---------- */
.polvo{ position:fixed; inset:0; width:100%; height:100%; z-index:900; pointer-events:none; }

/* ---------- CABECERA ---------- */
.cab{ position:fixed; top:0; left:0; right:0; z-index:80; color:var(--blanco); transition:background .35s var(--ease-out), box-shadow .35s var(--ease-out), color .35s var(--ease-out); }
.cab-in{ width:min(100% - 32px, 1280px); margin:auto; height:72px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cab.solida{ background:color-mix(in srgb, var(--nata) 94%, transparent); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); color:var(--tinta); box-shadow:0 8px 30px -18px var(--shadow); }
.logo{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.logo-corona{ width:34px; height:24px; fill:var(--oro); flex:none; }
.logo-txt{ display:flex; flex-direction:column; line-height:1; }
.logo-txt .script{ font-size:2.25rem; line-height:.85; }
.logo-txt small{ font-weight:800; font-size:.875rem; letter-spacing:.24em; text-transform:uppercase; margin-top:2px; }
.menu{ display:flex; gap:2px; }
.m-link{ text-decoration:none; font-weight:700; font-size:1rem; padding:8px 13px; border-radius:999px; transition:background .2s var(--ease-out); }
.m-link:hover, .m-link.active{ background:color-mix(in srgb, currentColor 12%, transparent); }
@media (max-width:1060px){ .menu{ display:none; } }

/* ---------- HERO ---------- */
.hero{ min-height:100vh; min-height:100svh; color:var(--blanco); overflow:hidden; display:flex; align-items:center;
  background:radial-gradient(120% 90% at 75% 30%, #6a2f9c 0%, var(--morado-800) 38%, var(--noche) 100%); padding:110px 0 120px; }
.hero-cielo{ position:absolute; inset:0; opacity:.9;
  background-image:
    radial-gradient(1.5px 1.5px at 12% 18%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 28% 72%, #fff 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 44% 12%, #ffe9b0 50%, transparent 51%), radial-gradient(1px 1px at 63% 40%, #fff 50%, transparent 51%),
    radial-gradient(2px 2px at 82% 14%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 92% 62%, #ffe9b0 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 6% 88%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 52% 90%, #fff 50%, transparent 51%);
  animation:titila 5s ease-in-out infinite alternate; }
@keyframes titila{ from{ opacity:.55; } to{ opacity:1; } }
.hero-in{ position:relative; z-index:2; width:min(100% - 32px, 1240px); margin:auto; display:grid; grid-template-columns:1.08fr .92fr; gap:40px; align-items:center; }
.hero .eyebrow{ color:var(--oro-claro); }
.hero h1{ font-size:clamp(3rem, 6vw, 5.2rem); margin-bottom:.35em; }
.hero h1 .acento{ color:var(--oro-claro); display:inline-block; }
.hero-sub{ font-size:clamp(1.125rem, 1.6vw, 1.3rem); color:var(--claro); max-width:30em; }
.hero-lista{ margin:18px 0 0; }
.hero-lista li{ color:var(--claro); }
.hero-lista li::before{ background:var(--oro-claro); }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:12px; margin:26px 0 16px; }
.hero-ctas.centro{ justify-content:center; }
.hero-escena{ position:relative; height:min(78vh, 680px); }
.arco{ border-radius:var(--arco); overflow:hidden; position:relative; background:var(--morado-900); }
.arco::after{ content:""; position:absolute; inset:8px; border-radius:inherit; border:1px solid rgba(236,211,142,.55); pointer-events:none; }
.arco img, .arco video{ width:100%; height:100%; object-fit:cover; }
.arco-video{ position:absolute; right:12%; top:0; bottom:0; width:min(64%, 380px); box-shadow:0 0 0 2px rgba(236,211,142,.7), 0 40px 80px -30px rgba(0,0,0,.7), 0 0 90px rgba(180,120,255,.35); }
.arco-mini{ position:absolute; width:clamp(110px, 12vw, 160px); aspect-ratio:3/4.2; box-shadow:0 0 0 2px rgba(236,211,142,.6), 0 24px 40px -18px rgba(0,0,0,.7); }
.arco-mini.a1{ left:0; top:14%; }
.arco-mini.a2{ right:0; bottom:6%; }
.capa{ will-change:transform; }
.hero-estrella{ position:absolute; fill:var(--oro-claro); width:22px; filter:drop-shadow(0 0 8px rgba(236,211,142,.9)); animation:destello 2.8s ease-in-out infinite; }
.hero-estrella.e1{ left:18%; top:4%; } .hero-estrella.e2{ right:4%; top:30%; width:14px; animation-delay:.9s; } .hero-estrella.e3{ left:30%; bottom:4%; width:16px; animation-delay:1.7s; }
@keyframes destello{ 0%,100%{ transform:scale(.6) rotate(0); opacity:.5; } 50%{ transform:scale(1.1) rotate(45deg); opacity:1; } }
.ondas{ position:absolute; left:0; right:0; bottom:-1px; width:100%; height:70px; fill:var(--nata); z-index:2; }

/* Great Vibes solo en escritorio y a tamaño grande */
@media (min-width:761px){
  .hero h1 .script-desk{ font-family:var(--f-script); font-style:normal; font-weight:400; font-size:1.3em; line-height:.9; padding-right:.08em; }
}
@media (max-width:760px){
  .hero{ align-items:flex-end; padding:0 0 104px; }
  .hero-in{ grid-template-columns:1fr; gap:0; position:static; }
  .hero-escena{ position:absolute; inset:0; height:auto; z-index:0; }
  .arco-video{ inset:0; width:auto; right:0; border-radius:0; box-shadow:none; }
  .arco-video::after{ display:none; }
  .arco-video::before{ content:""; position:absolute; left:0; right:0; top:0; height:190px; z-index:1; background:linear-gradient(180deg, rgba(29,10,46,.92) 0, rgba(29,10,46,.75) 80px, rgba(29,10,46,0) 190px); }
  .cab:not(.solida) .logo-txt{ text-shadow:0 1px 10px rgba(29,10,46,.9); }
  .arco-mini, .hero-estrella{ display:none; }
  .hero-txt{ position:relative; z-index:2; padding-top:46vh; isolation:isolate; }
  /* velo que garantiza el contraste del texto sobre el vídeo */
  .hero-txt::before{ content:""; position:absolute; z-index:-1; left:-16px; right:-16px; top:calc(46vh - 110px); bottom:-104px; background:linear-gradient(180deg, rgba(29,10,46,0) 0, rgba(29,10,46,.9) 110px, rgba(29,10,46,.95) 100%); }
  .hero h1{ font-size:clamp(2.5rem, 11vw, 3.1rem); }
  .hero-sub{ font-size:1.0625rem; }
  .hero-lista, .hero-sec{ display:none; }
  .hero-ctas{ margin:18px 0 12px; }
  .hero-ctas .btn{ flex:1 1 100%; }
}

/* ---------- CONFIANZA ---------- */
.confianza{ padding:26px 0 30px; }
.confianza-in{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:18px; }
.dato{ text-align:center; padding:20px 14px; border-radius:var(--radio); background:var(--blanco); box-shadow:0 14px 34px -24px var(--shadow); }
.dato .num{ display:block; font-family:var(--f-serif); font-size:2.6rem; line-height:1.1; color:var(--morado-700); font-variant-numeric:tabular-nums; }
.dato .num.txt{ font-size:1.8rem; padding:6px 0; }
.dato > span{ display:block; font-size:1rem; color:var(--tinta-suave); }
@media (max-width:760px){ .confianza-in{ grid-template-columns:1fr; gap:10px; } .dato{ display:grid; grid-template-columns:auto 1fr; align-items:center; gap:14px; text-align:left; padding:14px 18px; } .dato .num{ font-size:2rem; } .dato .num.txt{ font-size:1.35rem; } }

/* ---------- PERSONAJES ---------- */
.personajes{ --pj-c:#b98ae0; padding:76px 0 60px; background-color:color-mix(in srgb, var(--pj-c) 16%, var(--nata)); transition:background-color .8s var(--ease-out); overflow:hidden; }
.personajes::before{ content:""; position:absolute; left:50%; top:56%; width:900px; height:520px; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(closest-side, color-mix(in srgb, var(--pj-c) 30%, transparent), transparent); opacity:.8; pointer-events:none; }
.filtros{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 auto 26px; position:relative; }
.filtro{ font:700 1rem var(--f-sans); padding:10px 18px; min-height:46px; border-radius:999px; border:1.5px solid color-mix(in srgb, var(--morado-700) 45%, transparent); background:var(--blanco); color:var(--morado-800); cursor:pointer; transition:background .2s var(--ease-out), color .2s var(--ease-out); }
.filtro:hover{ background:var(--lila-100); }
.filtro.on{ background:var(--morado-700); color:var(--blanco); border-color:var(--morado-700); }
.carrusel-wrap{ position:relative; }
.carrusel{ display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; padding:16px max(16px, calc((100vw - var(--wrap)) / 2)) 30px; scrollbar-width:none; overscroll-behavior-x:contain; }
.carrusel::-webkit-scrollbar{ display:none; }
.carrusel:focus-visible{ outline-offset:-4px; }
.pj{ flex:0 0 320px; scroll-snap-align:center; display:flex; flex-direction:column; background:var(--blanco); border-radius:26px; padding:12px 12px 20px; box-shadow:0 22px 44px -28px rgba(42,15,64,.45); transition:box-shadow .4s var(--ease-out); }
.pj[hidden]{ display:none; }
.pj:hover{ box-shadow:0 30px 60px -28px color-mix(in srgb, var(--c) 80%, #000); }
.pj-foto{ position:relative; aspect-ratio:3/3.5; border-radius:var(--arco); overflow:hidden; background:var(--c); }
.pj-foto img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; transition:transform .8s var(--ease-out); }
.pj-foto.pos-der img{ object-position:78% 20%; }
.pj:hover .pj-foto img{ transform:scale(1.05); }
.pj-foto::after{ content:""; position:absolute; inset:7px; border-radius:inherit; border:1px solid rgba(255,255,255,.65); pointer-events:none; }
.pj-brillo{ position:absolute; inset:0; background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.55) 48%, transparent 62%); transform:translateX(-110%); transition:transform .9s var(--ease-out); pointer-events:none; }
.pj:hover .pj-brillo, .pj:focus-within .pj-brillo{ transform:translateX(110%); }
.pj-sello{ position:absolute; top:16px; left:50%; transform:translateX(-50%); background:var(--noche); color:var(--oro-claro); font-weight:800; font-size:.875rem; letter-spacing:.12em; text-transform:uppercase; padding:5px 14px; border-radius:999px; }
.pj-txt{ padding:16px 8px 0; display:flex; flex-direction:column; flex:1; }
.pj-txt h3{ font-size:1.65rem; margin-bottom:4px; }
.pj-insp{ display:flex; align-items:center; gap:8px; font-weight:700; color:var(--tinta-suave); margin-bottom:10px; }
.pj-insp::before{ content:""; width:10px; height:10px; border-radius:50%; background:var(--c); flex:none; }
.pj-desc{ color:var(--tinta); flex:1; }
.pj-btn{ width:100%; font:800 1rem/1.3 var(--f-sans); color:var(--blanco); background:color-mix(in srgb, var(--c) 55%, #1d0a2e); border:0; border-radius:18px; padding:13px 16px; min-height:48px; cursor:pointer; transition:transform .15s var(--ease-out), filter .2s; text-align:center; }
.pj-btn:hover{ filter:brightness(1.12); }
.pj-btn:active{ transform:scale(.97); }
.pj-btn.elegido{ background:var(--oro); color:var(--morado-900); }
.pj-btn.elegido::before{ content:"✓ "; }
.car-flecha{ position:absolute; top:36%; z-index:3; width:56px; height:56px; border-radius:50%; border:0; background:var(--blanco); color:var(--morado-800); font-size:30px; line-height:1; cursor:pointer; box-shadow:0 14px 30px -14px var(--shadow); display:grid; place-items:center; transition:transform .2s var(--ease-out); }
.car-flecha:hover{ transform:scale(1.08); }
.car-flecha.prev{ left:max(10px, calc((100vw - var(--wrap)) / 2 - 70px)); }
.car-flecha.next{ right:max(10px, calc((100vw - var(--wrap)) / 2 - 70px)); }
.pj-mas{ text-align:center; color:var(--tinta); margin:6px auto 0; position:relative; }
@media (max-width:760px){ .pj{ flex-basis:82vw; } .car-flecha{ display:none; } .carrusel{ gap:14px; } }

/* ---------- ÉRASE UNA VEZ: libro 3D ---------- */
.cuento{ background:radial-gradient(90% 60% at 50% 40%, #3e1862, var(--morado-900) 55%, var(--noche)); color:var(--claro); padding:90px 0 40px; }
.cuento-pista{ position:relative; }
.cuento-escenario{ position:sticky; top:72px; height:calc(100vh - 72px); height:calc(100svh - 72px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; overflow:hidden; }
.libro-escena{ perspective:2600px; perspective-origin:50% 40%; }
.libro{ position:relative; width:calc(var(--w) * 2); height:var(--h); perspective:2200px; will-change:transform; }
.libro.movil{ width:var(--w); }
.libro-sombra{ position:absolute; left:6%; right:6%; bottom:-26px; height:40px; border-radius:50%; background:radial-gradient(closest-side, rgba(0,0,0,.55), transparent); }
.libro-base{ position:absolute; top:0; left:50%; width:var(--w); height:100%; background:var(--papel); border-radius:0 10px 10px 0; box-shadow:4px 0 0 #e7dcc6, 8px 0 0 #d9ccb2, 12px 6px 30px rgba(0,0,0,.45); overflow:hidden; }
.libro.movil .libro-base{ left:0; }
.hoja{ position:absolute; top:0; left:50%; width:var(--w); height:100%; transform-origin:0 50%; transform-style:preserve-3d; will-change:transform; }
.libro.movil .hoja{ left:0; }
.cara{ position:absolute; inset:0; backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:hidden; border-radius:0 10px 10px 0; background:var(--papel); color:var(--tinta); }
.cara.dorso{ transform:rotateY(180deg); border-radius:10px 0 0 10px; }
.cara.frente::before, .cara.dorso::before, .libro-base::before{ content:""; position:absolute; top:0; bottom:0; width:42px; pointer-events:none; z-index:2; }
.cara.frente::before, .libro-base::before{ left:0; background:linear-gradient(90deg, rgba(60,30,20,.18), rgba(60,30,20,0)); }
.cara.dorso::before{ right:0; background:linear-gradient(270deg, rgba(60,30,20,.18), rgba(60,30,20,0)); }
.pliegue{ position:absolute; inset:0; pointer-events:none; opacity:0; z-index:3; background:linear-gradient(90deg, rgba(30,10,40,.5), rgba(30,10,40,.05) 60%); }
.cara.dorso .pliegue{ background:linear-gradient(270deg, rgba(30,10,40,.5), rgba(30,10,40,.05) 60%); }
/* tapa */
.cara.tapa{ background:radial-gradient(120% 90% at 50% 30%, #6a2f9c, #3a1658 55%, #23093a); color:var(--oro-claro); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border-radius:4px 12px 12px 4px; box-shadow:inset 0 0 0 10px rgba(0,0,0,.08); }
.cara.tapa::after{ content:""; position:absolute; inset:16px; border:2px solid rgba(236,211,142,.85); border-radius:6px; box-shadow:inset 0 0 0 6px rgba(42,15,64,.9), inset 0 0 0 7px rgba(236,211,142,.5); pointer-events:none; }
.tapa-corona{ width:64px; height:46px; fill:var(--oro-claro); margin-bottom:6px; filter:drop-shadow(0 0 10px rgba(236,211,142,.6)); }
.tapa-titulo{ font-family:var(--f-script); font-size:clamp(3.2rem, 7vw, 5rem); line-height:1; color:var(--oro-claro); text-shadow:0 2px 20px rgba(236,211,142,.35); }
.tapa-sub{ font-family:var(--f-serif); font-style:italic; font-weight:600; font-size:1.6rem; color:var(--blanco); margin:8px 0 2px; }
.tapa-marca{ font-weight:800; font-size:.875rem; letter-spacing:.3em; text-transform:uppercase; color:var(--oro-claro); }
.tapa-pista{ position:absolute; bottom:34px; left:0; right:0; font-size:.875rem; font-weight:700; color:var(--claro); }
/* páginas de texto */
.pag-txt{ position:absolute; inset:0; padding:clamp(26px, 4vw, 48px) clamp(24px, 3.4vw, 44px) 52px; display:flex; flex-direction:column; justify-content:center; }
.pag-orn{ width:110px; height:14px; margin:0 0 14px; }
.pag-n{ font-weight:800; font-size:.875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--oro-osc); margin:0 0 6px; }
.pag-txt h3{ font-size:clamp(1.7rem, 2.6vw, 2.4rem); color:var(--morado-900); margin-bottom:12px; }
.capital{ color:var(--tinta); }
.capital::first-letter{ float:left; font-family:var(--f-serif); font-weight:700; font-size:4.1em; line-height:.8; padding:.08em .1em 0 0; color:var(--oro-osc); }
.pag-num{ position:absolute; bottom:18px; left:0; right:0; text-align:center; font-family:var(--f-serif); font-style:italic; font-weight:600; font-size:1rem; color:var(--tinta-suave); }
/* páginas de foto */
.pag-foto{ position:absolute; inset:0; padding:clamp(20px, 2.6vw, 32px); display:flex; flex-direction:column; }
.pag-foto figure{ margin:0; flex:1; min-height:0; border-radius:var(--arco); overflow:hidden; box-shadow:0 0 0 2px var(--oro), 0 10px 18px -14px rgba(0,0,0,.45); background:#e9dcc6; }
.pag-foto img, .pag-foto video{ width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.pag-pie{ text-align:center; font-family:var(--f-serif); font-style:italic; font-weight:600; font-size:1.05rem; color:var(--tinta); margin:16px 0 0; }
/* página final */
.pag-fin{ position:absolute; inset:0; padding:clamp(26px, 4vw, 48px); display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.pag-fin h3{ font-size:clamp(1.8rem, 2.8vw, 2.5rem); color:var(--morado-900); }
.pag-fin .btn{ margin:6px 8px 0 0; }
/* móvil: una página cada vez (foto + texto) */
.libro.movil .pag-movil{ position:absolute; inset:0; display:flex; flex-direction:column; padding:16px 18px 40px; }
.libro.movil .pag-movil figure{ margin:0; height:44%; flex:none; border-radius:var(--arco); overflow:hidden; box-shadow:0 0 0 2px var(--oro); }
.libro.movil .pag-movil figure img, .libro.movil .pag-movil figure video{ width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.libro.movil .pag-movil .pag-n{ margin-top:14px; }
.libro.movil .pag-movil h3{ font-size:1.65rem; margin-bottom:6px; color:var(--morado-900); }
.libro.movil .pag-movil .capital::first-letter{ font-size:3.3em; }
.libro.movil .pag-num{ bottom:12px; }
/* navegación del libro */
.cuento-nav{ display:flex; align-items:center; gap:10px; max-width:100%; padding:0 12px; }
.cuento-indice{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:6px; padding:0; margin:0; }
.cuento-indice button{ font:700 1rem var(--f-sans); color:var(--claro); background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.35); border-radius:999px; padding:8px 14px; min-height:44px; cursor:pointer; transition:background .2s, color .2s, border-color .2s; }
.cuento-indice button:hover{ background:rgba(255,255,255,.16); }
.cuento-indice button.on{ background:var(--oro-claro); color:var(--morado-900); border-color:var(--oro-claro); }
.cn-flecha{ color:var(--claro); border-color:rgba(255,255,255,.45); flex:none; }
/* respaldo sin JS y movimiento reducido: páginas apiladas */
.cuento-lista{ list-style:none; padding:0; display:grid; gap:26px; margin-top:10px; margin-bottom:40px; }
.cl-paso, .cl-fin{ display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); background:var(--papel); color:var(--tinta); border-radius:14px; overflow:hidden; box-shadow:0 30px 60px -30px rgba(0,0,0,.6); }
.cl-paso figure, .cl-fin figure{ margin:0; min-height:320px; }
.cl-paso img, .cl-paso video, .cl-fin img{ width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.cl-txt{ padding:clamp(24px, 4vw, 48px); display:flex; flex-direction:column; justify-content:center; }
.cl-n{ font-weight:800; font-size:.875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--oro-osc); margin-bottom:6px; }
.cl-txt h3{ color:var(--morado-900); }
.cl-ctas{ display:flex; flex-wrap:wrap; gap:10px; }
.con-libro .cuento-lista{ display:none; }
@media (max-width:760px){ .cl-paso, .cl-fin{ grid-template-columns:1fr; } .cl-paso figure, .cl-fin figure{ height:300px; min-height:0; } }

/* ---------- PAQUETES ---------- */
.paquetes{ padding:90px 0 70px; background:var(--nata); }
.paq-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; align-items:stretch; }
.paq{ position:relative; background:var(--blanco); border-radius:28px; padding:36px 28px 28px; box-shadow:0 26px 50px -36px var(--shadow); border:1px solid var(--line); display:flex; flex-direction:column; }
.paq.destacado{ background:linear-gradient(180deg, var(--morado-800), var(--morado-900)); color:var(--claro); border:2px solid var(--oro); transform:translateY(-10px); }
.paq-cinta{ position:absolute; top:-15px; left:50%; transform:translateX(-50%); background:var(--oro); color:var(--morado-900); font-weight:800; font-size:.875rem; letter-spacing:.12em; text-transform:uppercase; padding:6px 16px; border-radius:999px; white-space:nowrap; }
.paq h3{ font-size:2.1rem; margin-bottom:4px; }
.paq.destacado h3{ color:var(--blanco); }
.paq-lema{ color:var(--tinta-suave); }
.paq.destacado .paq-lema{ color:var(--claro-2); }
.paq-precio{ margin:12px 0 2px; font-family:var(--f-serif); font-size:2.2rem; line-height:1.1; font-weight:700; color:var(--morado-700); }
.paq-precio-nota{ font-size:.95rem; font-weight:700; color:var(--tinta-suave); margin-bottom:6px; }
.paq.destacado .paq-precio{ color:var(--oro-claro); }
.paq.destacado .paq-precio-nota{ color:var(--claro-2); }
.paq-dur{ font-size:1rem; font-weight:700; margin-bottom:8px; }
.paq ul{ list-style:none; padding:0; margin:14px 0 24px; flex:1; }
.paq li{ position:relative; padding:8px 0 8px 30px; border-top:1px dashed var(--line); }
.paq.destacado li{ border-color:rgba(255,255,255,.18); color:var(--claro); }
.paq li::before{ content:""; position:absolute; left:2px; top:15px; width:16px; height:16px; background:var(--oro); clip-path:polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
.paq .btn{ width:100%; }
.extras{ margin-top:46px; background:var(--lila-100); border-radius:28px; padding:30px; }
.extras-tit{ text-align:center; font-size:2rem; color:var(--morado-900); }
.extras-lista{ list-style:none; padding:0; margin:18px 0 0; display:grid; grid-template-columns:repeat(5, 1fr); gap:12px; }
.extra{ background:var(--blanco); border-radius:18px; padding:18px 16px; text-align:center; }
.extra b{ display:block; font-family:var(--f-serif); font-size:1.3rem; line-height:1.15; margin-bottom:6px; color:var(--morado-900); }
.extra small{ display:block; color:var(--tinta-suave); font-size:.95rem; line-height:1.45; margin-bottom:8px; }
.extra .precio-extra{ font-weight:800; font-size:.95rem; color:var(--morado-700); }
@media (max-width:1100px){ .extras-lista{ grid-template-columns:repeat(3, 1fr); } }
@media (max-width:980px){ .paq-grid{ grid-template-columns:1fr; max-width:520px; margin:auto; } .paq.destacado{ transform:none; } .extras-lista{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .extras{ padding:22px 14px; } .extras-lista{ grid-template-columns:1fr; } }

/* ---------- CONFIGURADOR ---------- */
.reserva{ padding:90px 0; background:radial-gradient(90% 70% at 10% 10%, #ead9fb, transparent 60%), var(--nata-2); }
.reserva-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:start; }
.reserva-intro{ position:sticky; top:100px; }
.resumen{ background:var(--blanco); border-radius:22px; padding:20px 22px; margin-top:20px; box-shadow:0 20px 40px -32px var(--shadow); border:1px solid var(--line); }
.resumen-tit{ font-family:var(--f-serif); font-style:italic; font-weight:600; font-size:1.7rem; color:var(--morado-700); margin:0 0 6px; line-height:1.1; }
.resumen dl{ margin:0; display:grid; gap:6px; }
.resumen dl div{ display:grid; grid-template-columns:104px 1fr; gap:10px; border-top:1px dashed var(--line); padding-top:6px; }
.resumen dt{ font-weight:800; font-size:.9rem; color:var(--tinta-suave); padding-top:3px; }
.resumen dd{ margin:0; font-size:1.125rem; }
.config{ background:var(--blanco); border-radius:30px; padding:34px; box-shadow:0 40px 80px -50px rgba(42,15,64,.6); border:1px solid var(--line); }
.cf-barra{ height:6px; border-radius:6px; background:var(--lila-100); overflow:hidden; }
.cf-barra i{ display:block; height:100%; width:100%; background:linear-gradient(90deg, var(--morado-500), var(--oro)); transform-origin:left; transform:scaleX(.2); transition:transform .5s var(--ease-out); }
.cf-paso-txt{ font-size:.9rem; font-weight:800; color:var(--tinta-suave); margin:10px 0 6px; }
.cf-paso{ border:0; padding:0; margin:0; display:none; min-width:0; }
.cf-paso.on{ display:block; animation:pasoEntra .45s var(--ease-out); }
@keyframes pasoEntra{ from{ opacity:0; transform:translateX(18px); } to{ opacity:1; transform:none; } }
.cf-paso > legend{ font-family:var(--f-serif); font-weight:600; font-size:2rem; line-height:1.15; margin-bottom:16px; padding:0; color:var(--morado-900); }
.cf-paso legend small, .campo small{ font-family:var(--f-sans); font-size:.9rem; color:var(--tinta-suave); font-weight:700; }
.cf-pjs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:10px; max-height:440px; overflow:auto; padding:4px; }
.cf-pj{ position:relative; cursor:pointer; }
.cf-pj input{ position:absolute; opacity:0; inset:0; }
.cf-pj span{ display:flex; align-items:center; gap:10px; border:2px solid var(--line); border-radius:16px; padding:8px 10px; text-align:left; font-weight:700; font-size:.95rem; line-height:1.25; transition:border-color .2s, background .2s, transform .15s; min-height:64px; }
.cf-pj img{ width:46px; height:46px; border-radius:50%; object-fit:cover; object-position:50% 20%; flex:none; }
.cf-pj input:checked + span{ border-color:var(--morado-500); background:var(--lila-100); }
.cf-pj input:checked + span::after{ content:"✓"; position:absolute; top:-6px; right:-6px; width:24px; height:24px; border-radius:50%; background:var(--morado-700); color:#fff; font-size:.875rem; display:grid; place-items:center; }
.cf-pj input:focus-visible + span{ outline:2px solid var(--morado-500); outline-offset:2px; }
.cf-pj:active span{ transform:scale(.97); }
.campo{ display:block; margin-bottom:16px; }
.campo > span{ display:block; font-weight:800; font-size:1rem; margin-bottom:6px; }
.campo input, .campo select{ width:100%; min-height:54px; border-radius:14px; border:1.5px solid #b9a5cc; padding:0 14px; font:600 1.0625rem var(--f-sans); color:var(--tinta); background:var(--blanco); }
.campo input::placeholder{ color:#6e5d79; }
.campo input:focus, .campo select:focus{ outline:2px solid var(--morado-500); outline-offset:1px; border-color:transparent; }
.cf-sub{ border:0; padding:0; margin:6px 0 0; min-width:0; }
.cf-sub legend{ font-weight:800; font-size:1rem; margin-bottom:8px; padding:0; }
.pildoras{ display:flex; flex-wrap:wrap; gap:8px; }
.pildora{ position:relative; cursor:pointer; }
.pildora input{ position:absolute; opacity:0; inset:0; }
.pildora span{ display:inline-flex; align-items:center; min-height:46px; padding:8px 16px; border-radius:999px; border:1.5px solid #b9a5cc; font-weight:700; font-size:1rem; transition:background .2s, color .2s, border-color .2s; }
.pildora input:checked + span{ background:var(--morado-700); color:var(--blanco); border-color:var(--morado-700); }
.pildora input:focus-visible + span{ outline:2px solid var(--morado-500); outline-offset:2px; }
.contador-ninos{ display:flex; align-items:center; gap:18px; margin:6px 0 20px; }
.contador-ninos output{ font-family:var(--f-serif); font-size:3.2rem; font-weight:700; min-width:2.2ch; text-align:center; color:var(--morado-700); font-variant-numeric:tabular-nums; }
.contador-ninos .redondo{ width:52px; height:52px; border-color:var(--morado-500); color:var(--morado-700); font-size:26px; }
.cf-nav{ display:flex; gap:10px; justify-content:space-between; margin-top:26px; }
.cf-nav .btn{ flex:1; white-space:nowrap; padding:0 14px; }
.cf-aviso{ color:#a3162f; font-weight:700; min-height:1.4em; margin:10px 0 0; }
.cf-legal{ color:var(--tinta-suave); margin:0; }
@media (max-width:900px){
  .reserva-grid{ grid-template-columns:1fr; gap:26px; }
  .reserva-intro{ position:static; }
  .resumen{ display:none; }
  .config{ padding:22px 16px; border-radius:24px; }
  .cf-pjs{ grid-template-columns:1fr 1fr; gap:8px; max-height:none; padding:2px; }
  .cf-pj span{ font-size:.875rem; padding:8px; gap:8px; }
  .cf-pj img{ width:40px; height:40px; }
  .cf-nav{ position:sticky; bottom:0; z-index:2; background:var(--blanco); padding:12px 0 10px; margin-top:14px; box-shadow:0 -14px 18px -14px rgba(42,15,64,.25); }
}

/* ---------- INVITACIÓN MÁGICA ---------- */
.invitacion{ padding:90px 0; background:radial-gradient(80% 70% at 80% 20%, #4a1d74, var(--morado-900) 50%, var(--noche)); color:var(--claro); }
.inv-grid{ display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:50px; align-items:start; }
.inv-vista{ position:sticky; top:96px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.inv-formatos{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; }
.pildora.clara span{ border-color:rgba(255,255,255,.55); color:var(--claro); }
.pildora.clara input:checked + span{ background:var(--oro-claro); color:var(--morado-900); border-color:var(--oro-claro); }
.inv-lienzo{ width:100%; display:flex; justify-content:center; }
#invCanvas{ width:auto; height:min(62vh, 600px); max-width:100%; border-radius:14px; box-shadow:0 0 0 1px rgba(236,211,142,.4), 0 40px 80px -30px rgba(0,0,0,.8); background:#2a0f40; }
.inv-acciones{ display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.inv-vista .btn-wa{ width:min(100%, 380px); }
.inv-estado{ min-height:1.6em; font-weight:700; color:var(--oro-claro); text-align:center; margin:0; }
.inv-form{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:26px; padding:28px; }
.inv-form .campo > span, .inv-form .cf-sub legend{ color:var(--blanco); }
.inv-fila{ display:grid; grid-template-columns:1fr 130px; gap:12px; }
.inv-pjs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:8px; max-height:330px; overflow:auto; padding:3px; margin-bottom:16px; }
.inv-pj{ position:relative; cursor:pointer; }
.inv-pj input{ position:absolute; opacity:0; inset:0; }
.inv-pj span{ display:flex; align-items:center; gap:8px; padding:6px 10px 6px 6px; border-radius:999px; border:1.5px solid rgba(255,255,255,.3); background:rgba(255,255,255,.06); font-weight:700; font-size:.9rem; line-height:1.2; color:var(--claro); min-height:52px; transition:border-color .2s, background .2s; }
.inv-pj img{ width:40px; height:40px; border-radius:50%; object-fit:cover; object-position:50% 20%; flex:none; }
.inv-pj input:checked + span{ border-color:var(--oro-claro); background:rgba(236,211,142,.18); }
.inv-pj input:focus-visible + span{ outline:2px solid var(--oro-claro); outline-offset:2px; }
.inv-priv{ color:var(--claro-2); margin:0; }
@media (max-width:900px){
  .inv-grid{ grid-template-columns:1fr; gap:26px; }
  .inv-vista{ position:static; }
  #invCanvas{ height:auto; width:min(74vw, 300px); }
  .inv-form{ padding:20px 14px; }
  .inv-pjs{ grid-template-columns:1fr 1fr; max-height:300px; }
  .inv-pj span{ font-size:.875rem; }
}
@media (max-width:380px){ .inv-fila{ grid-template-columns:1fr; } }

/* ---------- GALERÍA ---------- */
.galeria{ padding:90px 0 80px; background:var(--nata); }
.masonry{ columns:4 240px; column-gap:14px; }
.mas-item{ margin-bottom:14px; border-radius:20px; background:var(--lila-100); }
.mas-item figure{ margin:0; }
.mas-item figcaption{ opacity:0; transform:translateY(8px); transition:opacity .3s var(--ease-out), transform .3s var(--ease-out); background:linear-gradient(0deg, rgba(29,10,46,.92), rgba(29,10,46,.6) 60%, transparent); color:var(--blanco); font-size:1rem; }
.mas-item:hover figcaption, .mas-item:focus-visible figcaption{ opacity:1; transform:none; }
.mas-item[hidden]{ display:none; }
.visor{ --ink:var(--noche); --surface:var(--nata); --line:rgba(255,255,255,.4); }
#visorTitulo{ display:block; font-size:1.1rem; }
#visorZona{ display:block; font-size:.95rem; color:var(--claro-2); }
.credito{ color:var(--tinta-suave); text-align:center; margin:16px auto 0; }
@media (max-width:640px){ .masonry{ columns:2; column-gap:10px; } .mas-item{ margin-bottom:10px; border-radius:14px; } .mas-item figcaption{ display:none; } }

/* ---------- SEVILLA ---------- */
.sevilla{ padding:100px 0; background:linear-gradient(180deg, var(--nata), #f6e7d8 60%, var(--nata)); overflow:hidden; }
.sevilla::before{ content:""; position:absolute; inset:0; opacity:.5; background-image:radial-gradient(circle at 1px 1px, rgba(201,162,74,.35) 1px, transparent 0); background-size:22px 22px; pointer-events:none; }
.sevilla-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; position:relative; }
.sevilla-fotos{ position:relative; height:600px; }
.sevilla-fotos .arco{ position:absolute; box-shadow:0 0 0 2px var(--oro), 0 30px 60px -30px var(--shadow); }
.sv1{ left:18%; top:0; width:58%; height:88%; }
.sv2{ left:0; bottom:0; width:34%; height:44%; }
.sv3{ right:0; top:10%; width:30%; height:40%; }
.sv-credito{ position:absolute; right:0; bottom:0; margin:0; }
.sevilla .acento{ color:#8d3a1c; }
.zonas{ list-style:none; padding:0; margin:20px 0 10px; display:flex; flex-wrap:wrap; gap:8px; }
.zonas li{ background:var(--blanco); border:1px solid #e1c9ae; border-radius:999px; padding:6px 14px; font-weight:700; font-size:1rem; }
.zonas-nota{ color:var(--tinta-suave); font-weight:700; }
@media (max-width:900px){ .sevilla{ padding:70px 0; } .sevilla-grid{ grid-template-columns:1fr; gap:30px; } .sevilla-fotos{ height:min(118vw, 520px); } }

/* ---------- FIESTAS ---------- */
.fiestas{ padding:90px 0; background:var(--lila-100); }
.fiestas-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.fi{ background:var(--blanco); border-radius:26px; padding:12px 12px 20px; box-shadow:0 24px 50px -38px var(--shadow); }
.fi-foto{ aspect-ratio:4/3.4; overflow:hidden; border-radius:18px; margin-bottom:16px; }
.fi-foto img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; transition:transform .8s var(--ease-out); }
.fi:hover .fi-foto img{ transform:scale(1.05); }
.fi h3, .fi p, .fi .lista-oro{ padding:0 10px; }
.fi h3{ color:var(--morado-900); }
.fi p{ margin-bottom:12px; }
.fi .lista-oro{ margin:0; }
.fiestas-cta{ margin-top:34px; display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:16px 24px; text-align:center; font-weight:700; font-size:1.15rem; }
.fiestas-cta p{ margin:0; }
@media (max-width:900px){ .fiestas-grid{ grid-template-columns:1fr; max-width:520px; margin:auto; } }

/* ---------- INSTAGRAM ---------- */
.resenas{ padding:80px 0; background:var(--nata); }
.ig-caja{ max-width:760px; margin:auto; text-align:center; background:var(--blanco); border:1px solid var(--line); border-radius:30px; padding:40px 24px; box-shadow:0 30px 60px -44px var(--shadow); }
.ig-caja p{ margin-inline:auto; }
.ig-caja h2{ font-size:clamp(2.2rem, 4.4vw, 3.2rem); }

/* ---------- FAQ ---------- */
.faq{ padding:90px 0; background:var(--nata-2); }
.faq-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:50px; align-items:start; }
.faq .sec-cab{ position:sticky; top:100px; }
.acc-item{ border-bottom:1px solid #dccbe8; }
.acc-trigger{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 4px; background:none; border:0; text-align:left; font:700 1.15rem var(--f-sans); color:var(--tinta); cursor:pointer; min-height:48px; }
.acc-trigger:hover{ color:var(--morado-700); }
.acc-panel p{ padding:0 4px 20px; margin:0; color:var(--tinta); }
.plus{ color:var(--morado-700); }
@media (max-width:900px){ .faq-grid{ grid-template-columns:1fr; gap:10px; } .faq .sec-cab{ position:static; } .acc-trigger{ font-size:1.0625rem; } }

/* ---------- GRAN FINAL: castillo + fuegos ---------- */
.final{ background:#0d0418; color:var(--claro); text-align:center; overflow:hidden; padding:0 0 110px; }
.final-cielo{ position:relative; height:clamp(420px, 66vh, 640px); background:
  radial-gradient(60% 55% at 50% 95%, #7a3fb0 0%, rgba(122,63,176,.35) 35%, transparent 70%),
  linear-gradient(180deg, #07020f 0%, #1a0830 45%, #3a1658 80%, #4a1d74 100%);
  cursor:crosshair; overflow:hidden; }
.final-cielo::before{ content:""; position:absolute; inset:0; opacity:.9; background-image:
  radial-gradient(1.4px 1.4px at 8% 14%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 22% 30%, #fff 50%, transparent 51%),
  radial-gradient(1.6px 1.6px at 37% 8%, #ffe9b0 50%, transparent 51%), radial-gradient(1px 1px at 58% 22%, #fff 50%, transparent 51%),
  radial-gradient(1.4px 1.4px at 71% 12%, #fff 50%, transparent 51%), radial-gradient(1px 1px at 93% 34%, #fff 50%, transparent 51%); }
.fuegos{ position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.castillo{ position:absolute; left:0; right:0; bottom:0; width:100%; height:100%; z-index:2; pointer-events:none; }
.estrellitas circle{ animation:titila 3.4s ease-in-out infinite alternate; }
.estrellitas circle:nth-child(2n){ animation-delay:1.2s; }
.estrellitas circle:nth-child(3n){ animation-delay:2.1s; }
.bandera{ transform-box:fill-box; transform-origin:0 50%; animation:ondea 2.2s ease-in-out infinite alternate; }
.bandera.b2{ animation-delay:.6s; } .bandera.b3{ animation-delay:1.1s; }
@keyframes ondea{ from{ transform:scaleX(1) skewY(0); } to{ transform:scaleX(.88) skewY(-4deg); } }
.ventanas-on rect{ opacity:0; transition:opacity .6s ease var(--d); }
.puerta-luz{ opacity:0; transition:opacity 1.2s ease .9s; }
.castillo.on .ventanas-on rect, .castillo.on .puerta-luz{ opacity:1; }
.cielo-pista{ position:absolute; z-index:3; top:18px; right:20px; margin:0; color:var(--claro-2); font-weight:700; letter-spacing:.06em; opacity:0; transition:opacity .6s ease 2.4s; }
.final.vivo .cielo-pista{ opacity:1; }
.final-txt{ position:relative; z-index:3; padding-top:30px; }
.final-txt h2{ color:var(--blanco); }
.final-txt .acento{ color:var(--oro-claro); }
.final-txt p{ margin-inline:auto; color:var(--claro); font-size:1.2rem; }
.final-tel{ margin-top:6px; color:var(--claro-2) !important; font-size:.95rem !important; }
.js .final-txt{ opacity:0; transform:translateY(24px); transition:opacity .9s var(--ease-out), transform .9s var(--ease-out); }
.js .final.vivo .final-txt{ opacity:1; transform:none; }
@media (max-width:760px){ .final-cielo{ height:340px; } }

/* ---------- PIE ---------- */
.pie{ background:var(--noche); color:var(--claro-2); padding:60px 0 120px; }
.pie-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:30px; }
.pie .logo{ color:var(--oro-claro); margin-bottom:12px; }
.pie-tit{ font-weight:800; color:var(--blanco); letter-spacing:.12em; text-transform:uppercase; font-size:.9rem; }
.pie ul{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.pie a{ text-decoration:none; }
.pie a:hover{ color:var(--oro-claro); text-decoration:underline; }
.pie-legal{ border-top:1px solid rgba(255,255,255,.14); margin-top:36px; padding-top:20px; color:#d2c4e0; }
@media (max-width:760px){ .pie-grid{ grid-template-columns:1fr; } }

/* ---------- barra fija móvil + botón flotante ---------- */
.barra-movil{ display:none; gap:8px; padding:10px 12px calc(10px + env(safe-area-inset-bottom)); background:color-mix(in srgb, var(--nata) 94%, transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 -10px 30px -16px var(--shadow); }
.barra-movil .btn{ flex:1; min-height:50px; padding:0 12px; }
.wa-fab{ display:grid; place-items:center; width:62px; height:62px; border-radius:50%; background:#14773c; color:#fff; box-shadow:0 16px 30px -12px rgba(0,0,0,.45); right:24px; bottom:24px; }
.wa-fab svg{ width:32px; height:32px; fill:currentColor; }
@media (max-width:760px){ .barra-movil{ display:flex; } .wa-fab{ display:none; } }

/* ---------- movimiento reducido ---------- */
@media (prefers-reduced-motion:reduce){
  .con-telon .telon{ display:none; }
  .hero-cielo, .hero-estrella, .estrellitas circle, .bandera{ animation:none; }
  .js .tw .w{ opacity:1; transform:none; transition:none; }
  .personajes{ transition:none; }
  .pj-brillo{ display:none; }
  .cf-paso.on{ animation:none; }
  .js .final-txt{ opacity:1; transform:none; transition:none; }
  .ventanas-on rect, .puerta-luz{ transition:none; }
}
.libro-base{ color:var(--tinta); }
.libro-sombra{ transition:none; transform-origin:50% 50%; }
@media (max-width:760px){
  .cuento-nav{ gap:6px; padding:0 8px; }
  .cuento-indice{ flex-wrap:nowrap; gap:6px; }
  .cuento-indice .ci-nom{ display:none; }
  .cuento-indice button{ width:44px; height:44px; padding:0; border-radius:50%; font-size:1.0625rem; }
  .final-cielo{ height:430px; }
}

/* ==========================================================================
   VERSIÓN 3 — cambios de la clienta (16/10): logo, paquetes reales, cofre, servicios
   ========================================================================== */
:root{ --lavanda:#8584e3; --lavanda-osc:#4b4ab8; }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* logo de la clienta: silueta sobre oscuro, círculo sobre claro */
.logo img{ height:60px; width:auto; display:block; filter:drop-shadow(0 2px 8px rgba(29,10,46,.35)); }
.logo .logo-cir{ display:none; filter:none; }
.cab.solida .logo .logo-sil{ display:none; }
.cab.solida .logo .logo-cir{ display:block; height:54px; }
.telon-marca img{ width:clamp(180px, 32vw, 300px); height:auto; filter:drop-shadow(0 6px 30px rgba(236,211,142,.45)); }
.logo-pie img{ height:110px; width:auto; }
.logo-pie{ display:inline-block; margin-bottom:12px; }

/* contadores enlazados */
a.dato{ text-decoration:none; color:inherit; transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out); }
a.dato:hover{ transform:translateY(-3px); box-shadow:0 18px 34px -22px var(--shadow); }
.dato-oro{ background:linear-gradient(135deg, #fff8e4, #f6e7bf); }
.dato-oro .num{ color:var(--morado-900); }
.confianza-in{ grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); }

/* tarjetas sin foto (Campanilla, Héroe Arácnido) */
.pj-ilustra{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:radial-gradient(80% 70% at 50% 35%, color-mix(in srgb, var(--c) 70%, #fff), color-mix(in srgb, var(--c) 55%, #1d0a2e)); }
.pj-ilustra svg{ width:62%; height:auto; }
.pj-ilustra span{ background:rgba(29,10,46,.82); color:var(--blanco); font-weight:800; font-size:.875rem; letter-spacing:.08em; text-transform:uppercase; padding:6px 14px; border-radius:999px; }

/* ¿Tienes otra idea? */
.otra-idea{ max-width:760px; margin:26px auto 0; text-align:center; background:var(--blanco); border:2px dashed var(--lavanda); border-radius:26px; padding:26px 20px; position:relative; }
.otra-idea h3{ color:var(--morado-900); font-size:1.9rem; }
.otra-idea p{ margin-inline:auto; color:var(--tinta); }

/* cofre mágico */
.cofre{ padding:90px 0; background:radial-gradient(70% 80% at 25% 50%, #4a1d74, var(--morado-900) 55%, var(--noche)); color:var(--claro); overflow:hidden; }
.cofre-grid{ display:grid; grid-template-columns:1fr 1.1fr; gap:50px; align-items:center; }
.cofre-arte{ max-width:440px; margin:auto; width:100%; }
.cofre-txt h2{ color:var(--blanco); }
.cofre-txt .acento{ color:var(--oro-claro); }
.cofre-txt .eyebrow{ color:var(--oro-claro); }
.cofre-txt p{ color:var(--claro); font-size:1.15rem; }
.cofre-txt .lista-oro li{ color:var(--claro); }
.cofre-txt .lista-oro li::before{ background:var(--oro-claro); }
.cofre-svg{ width:100%; height:auto; overflow:visible; }
.cofre-svg .cf-tapa{ transform-box:fill-box; transform-origin:0% 100%; transition:transform 1.1s cubic-bezier(.3,1.4,.5,1) .2s; }
.cofre-svg .cf-diploma{ transition:transform 1.2s var(--ease-out) .55s, opacity .6s ease .55s; }
.cofre-svg .cf-halo{ transform-box:fill-box; transform-origin:50% 50%; transition:opacity 1s ease .4s, transform 1.4s var(--ease-out) .4s; }
.cofre-svg .cf-chispas path{ transform-box:fill-box; transform-origin:50% 50%; animation:destello 2.6s ease-in-out infinite; }
.cofre-svg .cf-chispas path:nth-child(2){ animation-delay:.7s; } .cofre-svg .cf-chispas path:nth-child(3){ animation-delay:1.3s; } .cofre-svg .cf-chispas path:nth-child(4){ animation-delay:1.9s; }
.fig-cofre .cf-tapa, .libro .cf-tapa, .cofre-arte.abierto .cf-tapa{ transform:rotate(-32deg) translate(-6px,-4px); }
.js .cofre-arte:not(.abierto) .cf-diploma{ transform:translateY(120px); opacity:0; }
.js .cofre-arte:not(.abierto) .cf-halo{ opacity:.25; transform:scale(.6); }
.pag-foto figure:has(.cofre-svg), .pag-movil figure:has(.cofre-svg), .fig-cofre{ background:radial-gradient(80% 70% at 50% 45%, #5b2a86, #2a0f40) !important; display:flex; align-items:center; justify-content:center; }
.pag-foto figure .cofre-svg, .pag-movil figure .cofre-svg{ width:86%; height:auto; }
.cl-paso .fig-cofre .cofre-svg{ width:70%; }
@media (max-width:900px){ .cofre{ padding:70px 0; } .cofre-grid{ grid-template-columns:1fr; gap:20px; } .cofre-arte{ max-width:300px; } }
@media (prefers-reduced-motion:reduce){ .cofre-svg .cf-chispas path{ animation:none; } .cofre-svg *{ transition:none !important; } }

/* paquetes: selector de personajes, precio animado, tabla */
.selector-pj{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin:0 auto 30px; }
.selector-tit{ font-weight:800; margin-right:6px; color:var(--morado-900); }
.selector-pj label{ position:relative; cursor:pointer; }
.selector-pj input{ position:absolute; opacity:0; inset:0; }
.selector-pj span{ display:inline-flex; align-items:center; min-height:48px; padding:8px 20px; border-radius:999px; border:2px solid var(--lavanda-osc); color:var(--lavanda-osc); background:var(--blanco); font-weight:800; transition:background .25s var(--ease-out), color .25s var(--ease-out); }
.selector-pj input:checked + span{ background:var(--lavanda-osc); color:var(--blanco); }
.selector-pj input:focus-visible + span{ outline:2px solid var(--morado-500); outline-offset:3px; }
.paq-grid{ grid-template-columns:repeat(4, 1fr); gap:18px; }
.paq{ padding:32px 22px 24px; }
.paq h3{ font-size:2rem; line-height:1; }
.paq h3 small{ display:block; font-family:var(--f-sans); font-size:.875rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--tinta-suave); margin-bottom:4px; }
.paq.destacado h3 small{ color:var(--claro-2); }
.paq-dur{ display:inline-flex; align-self:flex-start; gap:6px; align-items:center; background:var(--lila-100); color:var(--morado-900); font-weight:800; font-size:.95rem; padding:4px 12px; border-radius:999px; margin-bottom:14px; }
.paq.destacado .paq-dur{ background:rgba(255,255,255,.14); color:var(--blanco); }
.paq-precio{ font-size:2.8rem; }
.precio-num{ display:inline-block; font-variant-numeric:tabular-nums; }
.precio-num.cambia{ animation:precioSalta .52s var(--ease-out); }
@keyframes precioSalta{ 0%{ transform:translateY(-10px) scale(.92); opacity:.3; } 60%{ transform:translateY(2px) scale(1.04); opacity:1; } 100%{ transform:none; } }
.paq ul{ margin-top:10px; }
.paq li{ font-size:1rem; }
.senal{ display:block; width:fit-content; max-width:100%; margin:26px auto 0; background:linear-gradient(135deg, #fff8e4, #f6e7bf); border:1px solid #e3cf8f; color:var(--morado-900); font-weight:800; padding:10px 20px; border-radius:22px; text-align:center; }
.senal.izq{ margin:14px 0 0; text-align:left; }
.senal span{ color:var(--oro-osc); }
.comparativa{ margin-top:46px; background:var(--blanco); border:1px solid var(--line); border-radius:28px; padding:28px; box-shadow:0 26px 50px -40px var(--shadow); }
.comp-tit{ text-align:center; color:var(--morado-900); font-size:2rem; }
.comp-scroll{ overflow-x:auto; }
.comp-tabla{ width:100%; border-collapse:collapse; min-width:620px; }
.comp-tabla th, .comp-tabla td{ padding:12px 10px; border-bottom:1px solid #eadff3; text-align:center; font-size:1rem; }
.comp-tabla thead th{ font-family:var(--f-serif); font-size:1.35rem; color:var(--morado-900); }
.comp-tabla thead th small{ display:block; font-family:var(--f-sans); font-size:.875rem; font-weight:700; color:var(--tinta-suave); }
.comp-tabla tbody th{ text-align:left; font-weight:700; color:var(--tinta); }
.comp-tabla td.si{ color:#6e5210; font-size:1.3rem; font-weight:800; }
.comp-tabla td.no{ color:#6a5876; }
.comp-tabla td:last-child, .comp-tabla th:last-child{ background:#fbf3dc; }
.comp-tabla .fila-precio th, .comp-tabla .fila-precio td{ border-bottom:0; font-size:1.15rem; color:var(--morado-900); }
.comp-tabla .fila-precio td b{ font-family:var(--f-serif); font-size:1.6rem; }
.monitor{ margin:26px auto 0; max-width:820px; background:var(--lila-100); border-radius:24px; padding:24px; }
.monitor h3{ color:var(--morado-900); font-size:1.6rem; }
.monitor-lista{ list-style:none; padding:0; margin:12px 0 0; display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; }
.monitor-lista li{ background:var(--blanco); border-radius:16px; padding:12px; text-align:center; display:flex; flex-direction:column; gap:2px; }
.monitor-lista span{ font-size:.95rem; font-weight:700; color:var(--tinta-suave); }
.monitor-lista b{ font-family:var(--f-serif); font-size:1.5rem; color:var(--morado-900); }
@media (max-width:1100px){ .paq-grid{ grid-template-columns:repeat(2, 1fr); max-width:760px; margin:auto; } .paq.destacado{ transform:none; } }
@media (max-width:640px){ .paq-grid{ grid-template-columns:1fr; } .monitor-lista{ grid-template-columns:1fr 1fr; } .comparativa{ padding:18px 10px; } .selector-tit{ width:100%; text-align:center; margin:0 0 4px; } }

/* configurador: precio orientativo y aviso de Cádiz capital */
.resumen-precio{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-top:12px; padding-top:12px; border-top:2px solid var(--oro); }
.resumen-precio span{ font-weight:800; color:var(--tinta-suave); }
.resumen-precio b{ font-family:var(--f-serif); font-size:2rem; color:var(--morado-900); }
.cf-precio{ margin:18px 0 0; font-weight:700; color:var(--tinta); min-height:1.6em; }
.cf-precio b{ font-family:var(--f-serif); font-size:1.7rem; color:var(--morado-900); }
.cf-precio span{ color:var(--tinta-suave); font-size:.95rem; }
.cf-nota{ color:var(--tinta-suave); font-weight:700; }
.aviso-chachi{ margin:16px 0 0; background:#fff4fa; border:2px solid #e0569c; border-radius:20px; padding:18px; }
.aviso-chachi h4{ font-family:var(--f-serif); font-size:1.5rem; color:#7a1046; margin:0 0 6px; }
.aviso-chachi p{ color:var(--tinta); margin:0 0 12px; }
.aviso-chachi .btn{ background:#a3165c; color:#fff; }

/* otros servicios: sesión de fotos y pintacaras */
.servicios{ padding:90px 0; background:linear-gradient(180deg, var(--nata), #f3ecfb); }
.fotos-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:center; }
.fotos-galeria{ display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr 1fr; gap:12px; position:relative; }
.fotos-galeria figure{ margin:0; overflow:hidden; border-radius:22px; box-shadow:0 0 0 2px var(--oro), 0 24px 40px -28px var(--shadow); }
.fotos-galeria img, .fotos-galeria video{ width:100%; height:100%; object-fit:cover; display:block; }
.fg-a{ grid-row:1 / span 2; border-radius:var(--arco) !important; }
.fotos-galeria .credito{ grid-column:1 / -1; text-align:right; margin:4px 0 0; }
.fotos-galeria .credito a{ color:var(--morado-700); font-weight:800; }
.fotos-tira{ display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin-top:26px; }
.fotos-tira button{ padding:0; border:0; border-radius:16px; overflow:hidden; cursor:zoom-in; aspect-ratio:3/4; background:var(--lila-100); }
.fotos-tira img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease-out); }
.fotos-tira button:hover img{ transform:scale(1.05); }
.fotos-info p{ color:var(--tinta); }
.tarifas{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:18px 0; }
.tarifa{ background:var(--blanco); border:1px solid var(--line); border-radius:20px; padding:16px; text-align:center; box-shadow:0 18px 30px -26px var(--shadow); }
.tarifa p{ margin:0 auto; }
.tarifa-nom{ font-weight:800; color:var(--tinta); }
.tarifa-precio{ font-family:var(--f-serif); font-size:2.2rem; font-weight:700; color:var(--morado-900); line-height:1.1; }
.tarifa-det{ font-size:.95rem; color:var(--tinta-suave); font-weight:700; }
.tarifas.mini{ grid-template-columns:repeat(3, 1fr); }
.tarifas.mini .tarifa-precio{ font-size:1.7rem; }
.servicios-mas{ display:grid; grid-template-columns:1.4fr 1fr; gap:20px; margin-top:44px; }
.pintacaras, .regalo{ background:var(--blanco); border-radius:26px; padding:26px; border:1px solid var(--line); box-shadow:0 24px 50px -40px var(--shadow); }
.pintacaras h3, .regalo h3{ color:var(--morado-900); font-size:1.9rem; }
.pintacaras .t-peq{ color:var(--tinta-suave); font-weight:700; }
.regalo{ background:linear-gradient(160deg, #fff, var(--lila-100)); }
@media (max-width:900px){ .fotos-grid, .servicios-mas{ grid-template-columns:1fr; } .servicios{ padding:70px 0; } .fotos-tira{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .tarifas.mini{ grid-template-columns:1fr; } .tarifas{ grid-template-columns:1fr; } }

/* redes y reseñas */
.ig-nota{ color:var(--tinta-suave); font-weight:700; margin-top:14px; }
.resena-g{ margin-top:22px; padding-top:22px; border-top:1px dashed var(--lila-300); }
.resena-g h3{ color:var(--morado-900); font-size:1.7rem; }
.resena-g .estrellas{ width:130px; margin:0 auto 10px; fill:var(--oro); }
.chachi-nota{ background:#fff4fa; border:1px solid #f2b6d4; border-radius:18px; padding:14px 18px; margin:14px 0; color:var(--tinta); font-weight:600; }
.chachi-nota a{ color:#a3165c; font-weight:800; }
.btn.bloqueado{ opacity:1; background:#e9e1f0; color:#55425f; box-shadow:none; cursor:not-allowed; }
.aviso-chachi .t-peq{ color:var(--tinta-suave); font-weight:700; margin:0; }
/* v3 ajustes */
.selector-pj .selector-tit{ border:0; background:none; min-height:0; padding:0 6px 0 0; color:var(--morado-900); }
.fig-cofre .cf-tapa, .libro .cf-tapa, .cofre-arte.abierto .cf-tapa{ transform:rotate(-64deg) translate(-30px,-6px); }
.fotos-galeria{ height:560px; grid-template-rows:minmax(0,1fr) minmax(0,1fr) auto; }
.fotos-galeria figure{ min-height:0; }
.paq-precio, .tarifa-precio, .monitor-lista b, .resumen-precio b, .cf-precio b, .comp-tabla .fila-precio td b, .dato .num, .contador-ninos output{ font-variant-numeric:lining-nums tabular-nums; }
@media (max-width:900px){ .fotos-galeria{ height:min(118vw, 520px); } }
.precio-num{ font-variant-numeric:lining-nums tabular-nums; }
.paq li{ font-size:inherit; }
.senal{ max-width:min(100%, 46ch); }
.paq-dur, .tarifa-det{ font-size:.9375rem; }

/* ==========================================================================
   VERSIÓN 4 (16/10 13:30) — portada del libro con el logo de la clienta, Chachipiruli, etc.
   ========================================================================== */
.cara.tapa{ justify-content:center; gap:6px; padding:30px 24px; }
.tapa-logo{ width:min(62%, 240px); height:auto; filter:drop-shadow(0 4px 22px rgba(236,211,142,.35)); position:relative; z-index:1; }
.tapa-sub{ position:relative; z-index:1; margin:6px 0 0; }
.tapa-marca{ position:relative; z-index:1; letter-spacing:.22em; }
.tapa-orn{ position:absolute; inset:0; pointer-events:none; }
.tapa-orn .esq{ position:absolute; width:56px; height:56px; }
.tapa-orn .esq svg{ width:100%; height:100%; display:block; }
.tapa-orn .tl{ top:26px; left:26px; }
.tapa-orn .tr{ top:26px; right:26px; transform:scaleX(-1); }
.tapa-orn .bl{ bottom:26px; left:26px; transform:scaleY(-1); }
.tapa-orn .br{ bottom:26px; right:26px; transform:scale(-1,-1); }
.tapa-estrellas{ position:absolute; left:8%; right:8%; top:20%; width:84%; opacity:.9; }
.libro.movil .tapa-orn .esq{ width:44px; height:44px; }
.btn-chachi{ background:#a3165c; color:#fff; min-height:48px; }
.btn-chachi:hover{ background:#86104b; }
.aviso-chachi a, .chachi-nota a, .fi a, .acc-panel a{ color:#a3165c; font-weight:800; }
.servicios-mas.solo{ grid-template-columns:1fr; max-width:820px; margin-inline:auto; }
.monitor-lista b{ font-size:1.3rem; }
.monitor-nota{ color:var(--tinta-suave); font-weight:700; margin:12px 0 0; }
.tapa-pista{ max-width:none; margin:0; text-align:center; }
.tapa-sub, .tapa-marca{ max-width:none; }
.aviso-chachi .btn-chachi{ margin:2px 0 14px; }
