/* =========================================================
   NATURAL GLOW BEAUTY · ESTILO
   ========================================================= */
:root{
  --ink:#163246; --ink-2:#2a4a5e; --ink-soft:#567284; --muted:#87a0ae;
  --ivory:#f1f8fc; --paper:#fbfeff; --sand:#e1f0f7; --sand-2:#cbe4f0;
  --blue:#9ccbe1; --blue-soft:#e3f1f7; --blue-mid:#6aaecb; --blue-deep:#2b6c8b;
  --champ:#b49a6c;
  --booksy:#00a3b4; --wa:#25d366;
  --line:rgba(22,50,70,.13); --line-2:rgba(22,50,70,.07);
  --sombra:0 1px 2px rgba(21,35,45,.04),0 12px 40px -12px rgba(21,35,45,.14);
  --sombra-2:0 2px 4px rgba(21,35,45,.05),0 30px 70px -20px rgba(21,35,45,.28);
  --r:22px; --r-s:14px;
  --ease:cubic-bezier(.22,.8,.24,1);
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif; --script:'Great Vibes',cursive;
  --pad:clamp(16px,5vw,64px);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-weight:300;font-size:16.5px;color:var(--ink);background:var(--ivory);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
::selection{background:var(--blue);color:var(--ink)}
:focus-visible{outline:2px solid var(--blue-deep);outline-offset:3px;border-radius:6px}
.ico{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.ico.fill{fill:currentColor;stroke:none}
.oculto{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- TIPOGRAFÍA ---------- */
.kicker{display:inline-flex;align-items:center;gap:.9em;font-size:.72rem;font-weight:400;letter-spacing:.32em;text-transform:uppercase;color:var(--blue-deep)}
.kicker::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.kicker.centro{justify-content:center}
.kicker.centro::after{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.h-display{font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,7vw,5.6rem);line-height:1.02;letter-spacing:-.01em}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.4vw,3.3rem);line-height:1.1;letter-spacing:-.005em}
.h2 em,.h-display em{font-style:italic;font-weight:300;color:var(--blue-deep)}
.lead{font-size:clamp(1rem,1.4vw,1.12rem);color:var(--ink-soft);max-width:60ch}
.cab{margin-bottom:clamp(2.2rem,5vw,3.6rem)}
.cab .h2{margin-top:.8rem}
.cab .lead{margin-top:1.1rem}
.cab.centro{text-align:center}
.cab.centro .lead{margin-left:auto;margin-right:auto}

/* ---------- ESTRUCTURA ---------- */
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--pad)}
.sec{padding:clamp(4.5rem,10vw,8rem) 0;position:relative}
.sec.tight{padding:clamp(3rem,7vw,5rem) 0}
.sec.paper{background:var(--paper)}
.sec.sand{background:var(--sand)}
.sec.dark{background:var(--ink);color:#e9eef1}
.sec.dark .kicker{color:var(--blue)}
.sec.dark .lead{color:#a9b6be}

/* ---------- BOTONES ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.7em;border:1px solid transparent;cursor:pointer;background:var(--ink);color:#fff;font-family:var(--sans);font-size:.78rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;padding:1.15em 2.1em;border-radius:100px;transition:transform .4s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .4s;overflow:hidden;isolation:isolate;white-space:nowrap}
.btn::after{content:"";position:absolute;inset:0;background:var(--blue-deep);transform:translateY(101%);transition:transform .45s var(--ease);z-index:-1;border-radius:inherit}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px -12px rgba(21,35,45,.45)}
.btn:hover::after{transform:none}
.btn .ico{width:1.1em;height:1.1em;transition:transform .4s var(--ease)}
.btn:hover .ico.flecha{transform:translateX(4px)}
.btn.linea{background:transparent;color:var(--ink);border-color:rgba(21,35,45,.35)}
.btn.linea::after{background:var(--ink)}
.btn.linea:hover{color:#fff;border-color:var(--ink)}
.btn.claro{background:#fff;color:var(--ink)}
.btn.claro::after{background:var(--blue)}
.btn.booksy{background:var(--booksy)}
.btn.booksy::after{background:#008795}
.btn.wa{background:var(--wa)}
.btn.wa::after{background:#1aa851}
.btn.peq{padding:.85em 1.4em;font-size:.68rem;letter-spacing:.16em}
.btn[disabled]{opacity:.5;pointer-events:none}
.btns{display:flex;gap:.8rem;flex-wrap:wrap}
.btns.centro{justify-content:center}
.enlace{display:inline-flex;align-items:center;gap:.5em;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:.2em;transition:gap .3s var(--ease),color .3s}
.enlace:hover{gap:.9em;color:var(--blue-deep)}

/* ---------- NAV ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s,box-shadow .4s,padding .4s;padding:1.1rem 0}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:1.2rem}
.nav.solida{background:rgba(248,245,240,.88);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);box-shadow:0 1px 0 var(--line);padding:.6rem 0}
.marca{display:flex;align-items:center;gap:.7rem}
.marca img{width:44px;height:44px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--line)}
.marca .nm{font-family:var(--script);font-size:1.75rem;line-height:1;color:var(--ink)}
.marca .nm small{display:block;font-family:var(--sans);font-size:.55rem;letter-spacing:.42em;text-transform:uppercase;color:var(--ink-soft);margin-top:.15rem}
.menu{display:flex;align-items:center;gap:.2rem}
.menu > a:not(.btn){font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;padding:.6em .9em;position:relative;color:var(--ink-2)}
.menu > a:not(.btn)::after{content:"";position:absolute;left:.9em;right:.9em;bottom:.3em;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.menu > a:not(.btn):hover::after,.menu > a.activo::after{transform:scaleX(1);transform-origin:left}
.menu > a.activo{color:var(--ink)}
.menu .btn{margin-left:.6rem}
.idioma{position:relative;margin-left:.4rem}
.idioma-btn{display:flex;align-items:center;gap:.35em;background:none;border:1px solid var(--line);border-radius:100px;padding:.45em .8em;font-size:.7rem;letter-spacing:.14em;cursor:pointer;text-transform:uppercase}
.idioma-btn:hover{border-color:var(--ink)}
.idioma-lista{position:absolute;right:0;top:calc(100% + 8px);background:var(--paper);border-radius:14px;box-shadow:var(--sombra-2);padding:.4rem;min-width:150px;opacity:0;transform:translateY(-6px);pointer-events:none;transition:.3s var(--ease)}
.idioma.abierto .idioma-lista{opacity:1;transform:none;pointer-events:auto}
.idioma-lista button{display:flex;justify-content:space-between;width:100%;border:none;background:none;padding:.6em .8em;border-radius:10px;cursor:pointer;font-size:.88rem;text-align:left}
.idioma-lista button:hover{background:var(--blue-soft)}
.idioma-lista button.on{font-weight:500}
.idioma-lista button span{color:var(--muted);font-size:.72rem;letter-spacing:.1em}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;position:relative}
.burger i{position:absolute;left:14px;right:14px;height:1.5px;background:var(--ink);transition:.4s var(--ease)}
.burger i:nth-child(1){top:18px}.burger i:nth-child(2){top:26px}
.nav.abierto .burger i:nth-child(1){top:22px;transform:rotate(45deg)}
.nav.abierto .burger i:nth-child(2){top:22px;transform:rotate(-45deg)}
.movil-dcha{display:none;align-items:center;gap:.5rem}
@media(max-width:1000px){
  .menu{position:fixed;inset:0;top:0;background:var(--ivory);flex-direction:column;justify-content:center;align-items:stretch;gap:0;padding:6rem var(--pad) 2rem;opacity:0;pointer-events:none;transition:opacity .45s var(--ease);z-index:-1}
  .nav.abierto .menu{opacity:1;pointer-events:auto}
  .menu > a:not(.btn){font-family:var(--serif);font-size:2.2rem;letter-spacing:0;text-transform:none;font-weight:300;padding:.35em 0;border-bottom:1px solid var(--line-2);transform:translateY(20px);opacity:0;transition:.6s var(--ease)}
  .menu > a:not(.btn)::after{display:none}
  .nav.abierto .menu > a{transform:none;opacity:1}
  .nav.abierto .menu > a:nth-child(2){transition-delay:.05s}.nav.abierto .menu > a:nth-child(3){transition-delay:.1s}
  .nav.abierto .menu > a:nth-child(4){transition-delay:.15s}.nav.abierto .menu > a:nth-child(5){transition-delay:.2s}
  .menu .btn{margin:2rem 0 0}
  .menu .idioma{display:none}
  .movil-dcha{display:flex}
  .burger{display:block}
  .marca .nm{font-size:1.5rem}
}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:8rem 0 5rem;overflow:hidden;background:var(--ivory)}
.acuarela{position:absolute;inset:-10%;pointer-events:none;z-index:0}
.mancha{position:absolute;border-radius:50%;filter:blur(60px);opacity:.75;will-change:transform}
.mancha.m1{width:52vw;height:52vw;max-width:760px;max-height:760px;right:-6%;top:2%;background:radial-gradient(circle at 40% 40%,#bfe0ef 0%,#9ccbe1 45%,rgba(156,203,225,0) 70%);animation:flota1 22s ease-in-out infinite}
.mancha.m2{width:38vw;height:38vw;max-width:560px;max-height:560px;right:22%;bottom:-8%;background:radial-gradient(circle,#e3f1f7 0%,rgba(227,241,247,0) 70%);animation:flota2 26s ease-in-out infinite}
.mancha.m3{width:30vw;height:30vw;max-width:440px;max-height:440px;left:-8%;top:20%;background:radial-gradient(circle,rgba(237,230,220,.95) 0%,rgba(237,230,220,0) 70%);animation:flota3 30s ease-in-out infinite}
@keyframes flota1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-4%,6%) scale(1.08)}}
@keyframes flota2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(8%,-6%) scale(.92)}}
@keyframes flota3{0%,100%{transform:translate(0,0)}50%{transform:translate(10%,8%)}}
.grano{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.14 0 0 0 0 0.18 0 0 0 .08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero .wrap{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:1.25fr .75fr;gap:3rem;align-items:center}
.hero .h-display{margin:1.4rem 0 1.6rem}
.linea-txt{display:block;overflow:hidden;padding-bottom:.08em}
.linea-txt > span{display:block;transform:translateY(105%);animation:sube 1.2s var(--ease) forwards}
.linea-txt:nth-child(2) > span{animation-delay:.12s}
@keyframes sube{to{transform:none}}
.aparece{opacity:0;transform:translateY(18px);animation:aparece 1s var(--ease) forwards}
.d1{animation-delay:.35s}.d2{animation-delay:.5s}.d3{animation-delay:.65s}.d4{animation-delay:.8s}
@keyframes aparece{to{opacity:1;transform:none}}
.hero .lead{margin-bottom:2.2rem}
.hero-meta{display:flex;flex-wrap:wrap;gap:1rem 1.6rem;margin-top:2.4rem;align-items:center;font-size:.86rem;color:var(--ink-soft)}
.estrellas{display:inline-flex;gap:2px;color:var(--champ)}
.estrellas .ico{width:14px;height:14px}
.valoracion{display:flex;align-items:center;gap:.6rem}
.valoracion b{font-weight:500;color:var(--ink)}
.estado{display:inline-flex;align-items:center;gap:.55em}
.estado .punto{width:8px;height:8px;border-radius:50%;background:#c4ccd1;position:relative}
.estado.abierto .punto{background:#2fbf71}
.estado.abierto .punto::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid #2fbf71;animation:pulso 2s ease-out infinite}
@keyframes pulso{from{transform:scale(.6);opacity:1}to{transform:scale(1.8);opacity:0}}
.hero-sello{position:relative;justify-self:center;width:min(380px,80vw);aspect-ratio:1}
.hero-sello .disco{position:absolute;inset:12%;border-radius:50%;background:var(--paper);box-shadow:var(--sombra-2);display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-sello .disco img{width:100%;height:100%;object-fit:cover}
.hero-sello svg.giro{position:absolute;inset:0;width:100%;height:100%;animation:gira 40s linear infinite}
.hero-sello svg.giro text{font-family:var(--sans);font-size:7.4px;letter-spacing:4.3px;text-transform:uppercase;fill:var(--ink-2)}
@keyframes gira{to{transform:rotate(360deg)}}
.scroll-ind{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.6rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft)}
.scroll-ind i{width:1px;height:42px;background:linear-gradient(var(--ink) 50%,transparent 50%);background-size:1px 84px;animation:baja 2s linear infinite}
@keyframes baja{from{background-position:0 -42px}to{background-position:0 42px}}
@media(max-width:900px){
  .hero{min-height:auto;padding:7.5rem 0 4.5rem}
  .hero .wrap{grid-template-columns:1fr}
  .hero-sello{width:min(250px,64vw);order:-1;margin-bottom:-.5rem}
  .scroll-ind{display:none}
}

/* ---------- MARQUESINA ---------- */
.marquesina{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);overflow:hidden;padding:1.25rem 0;white-space:nowrap}
.marquesina .pista{display:inline-flex;animation:desliza 45s linear infinite}
.marquesina span{font-family:var(--serif);font-style:italic;font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:300;padding:0 1.6rem;display:inline-flex;align-items:center;gap:3.2rem;color:var(--ink-2)}
.marquesina span::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue)}
@keyframes desliza{to{transform:translateX(-50%)}}

/* ---------- FILOSOFÍA ---------- */
.filo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.filo .txt p+p{margin-top:1.1rem}
.filo .txt p{color:var(--ink-soft);font-size:1.05rem}
.pilares{display:grid;gap:0;border-top:1px solid var(--line)}
.pilar{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.pilar .ic{width:52px;height:52px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;color:var(--blue-deep);transition:transform .6s var(--ease)}
.pilar:hover .ic{transform:rotate(-12deg) scale(1.06)}
.pilar .ic .ico{width:24px;height:24px}
.pilar h3{font-family:var(--serif);font-weight:500;font-size:1.35rem;line-height:1.2}
.pilar p{color:var(--ink-soft);font-size:.95rem;margin-top:.2rem}
.datos{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:clamp(3rem,6vw,5rem);padding-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line)}
.dato{text-align:center}
.dato .num{font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,6vw,4.4rem);line-height:1;color:var(--ink)}
.dato .num sup{font-size:.4em;color:var(--blue-deep);margin-left:.1em}
.dato .lbl{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);margin-top:.6rem}
@media(max-width:860px){.filo{grid-template-columns:1fr}.datos{grid-template-columns:1fr 1fr 1fr;gap:.6rem}.dato .lbl{font-size:.6rem;letter-spacing:.12em}}

/* ---------- CATEGORÍAS ---------- */
.cats{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
@media(max-width:1100px){.cats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.cats{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.cats{grid-template-columns:1fr}}
.cat{position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:300px;padding:1.8rem 1.6rem;border-radius:var(--r);background:var(--paper);border:1px solid var(--line-2);overflow:hidden;transition:transform .6s var(--ease),box-shadow .6s var(--ease),color .5s;isolation:isolate}
.cat::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,var(--ink) 0%,#1f3a4b 100%);opacity:0;transition:opacity .6s var(--ease);z-index:-1}
.cat::after{content:"";position:absolute;width:220px;height:220px;right:-80px;top:-80px;border-radius:50%;background:radial-gradient(circle,var(--blue) 0%,rgba(156,203,225,0) 70%);opacity:.45;transition:transform .8s var(--ease),opacity .6s;z-index:-1}
.cat:hover{transform:translateY(-6px);box-shadow:var(--sombra-2);color:#fff}
.cat:hover::before{opacity:1}
.cat:hover::after{transform:scale(1.5) translate(-20px,20px);opacity:.25}
.cat .ic{width:58px;height:58px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--blue-deep);transition:border-color .5s,color .5s}
.cat:hover .ic{border-color:rgba(255,255,255,.3);color:var(--blue)}
.cat .ic .ico{width:28px;height:28px;stroke-width:1.2}
.cat .num{position:absolute;top:1.6rem;right:1.6rem;font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--muted)}
.cat:hover .num{color:var(--blue)}
.cat h3{font-family:var(--serif);font-weight:400;font-size:1.7rem;line-height:1.1;margin-top:2.2rem}
.cat p{font-size:.86rem;color:var(--ink-soft);margin-top:.4rem;transition:color .5s}
.cat:hover p{color:#b8c5cc}
.cat .pie{display:flex;justify-content:space-between;align-items:center;margin-top:1.4rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;transition:border-color .5s}
.cat:hover .pie{border-color:rgba(255,255,255,.18)}
.cat .pie .ico{transition:transform .5s var(--ease)}
.cat:hover .pie .ico{transform:translateX(5px)}

/* ---------- POPULARES / TARJETAS SERVICIO ---------- */
.pops{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:980px){.pops{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.pops{grid-template-columns:1fr}}
.pop{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);padding:1.7rem;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.pop:hover{transform:translateY(-4px);box-shadow:var(--sombra)}
.pop .tag{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-deep)}
.pop h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;line-height:1.2;margin:.5rem 0 .6rem}
.pop p{color:var(--ink-soft);font-size:.92rem;flex:1}
.pop .pie{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--line-2)}
.precio{font-family:var(--serif);font-size:1.6rem;font-weight:500;line-height:1}
.dur{display:inline-flex;align-items:center;gap:.35em;font-size:.78rem;color:var(--muted);margin-top:.25rem}
.dur .ico{width:13px;height:13px}

/* ---------- PASOS ---------- */
.pasos{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,3vw,3rem);counter-reset:p}
@media(max-width:820px){.pasos{grid-template-columns:1fr}}
.paso{position:relative;padding-top:2rem;border-top:1px solid rgba(255,255,255,.18)}
.paso::before{counter-increment:p;content:"0" counter(p);position:absolute;top:-1px;left:0;font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--blue);padding-top:.7rem}
.paso::after{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--blue);transition:width 1.4s var(--ease)}
.paso.visible::after{width:100%}
.paso h3{font-family:var(--serif);font-weight:400;font-size:1.7rem;margin:1rem 0 .5rem;color:#fff}
.paso p{color:#a9b6be;font-size:.95rem}

/* ---------- FIDELIDAD (promo) ---------- */
.promo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
@media(max-width:860px){.promo{grid-template-columns:1fr}}
.promo .lead{margin:1.1rem 0 2rem}

/* ---------- TARJETA DIGITAL ---------- */
.tarjeta-escena{perspective:1200px}
.tarjeta{position:relative;width:100%;max-width:440px;margin:0 auto;min-height:250px;border-radius:24px;gap:1rem;padding:clamp(1.2rem,4vw,1.8rem);color:#fff;background:linear-gradient(135deg,#1c3443 0%,#15232d 55%,#0f1a22 100%);box-shadow:0 30px 60px -20px rgba(21,35,45,.55),inset 0 1px 0 rgba(255,255,255,.08);overflow:hidden;transform-style:preserve-3d;transition:transform .5s var(--ease);display:flex;flex-direction:column;justify-content:space-between}
.tarjeta::before{content:"";position:absolute;width:75%;aspect-ratio:1;right:-25%;top:-45%;border-radius:50%;background:radial-gradient(circle,rgba(156,203,225,.55) 0%,rgba(156,203,225,0) 65%);filter:blur(4px)}
.tarjeta::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.12) 45%,transparent 60%);background-size:250% 100%;background-position:120% 0;animation:brillo 6s ease-in-out infinite}
@keyframes brillo{0%,60%{background-position:120% 0}100%{background-position:-60% 0}}
.tarjeta .top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}
.tarjeta .mk{font-family:var(--script);font-size:clamp(1.4rem,4.5vw,1.9rem);line-height:1}
.tarjeta .mk small{display:block;font-family:var(--sans);font-size:.5rem;letter-spacing:.4em;text-transform:uppercase;opacity:.7;margin-top:.2rem}
.tarjeta .tipo{font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;opacity:.7;text-align:right}
.tarjeta .sellos{display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(.4rem,1.8vw,.7rem);position:relative;z-index:1;margin:.4rem 0;max-width:300px}
.sello{aspect-ratio:1;border-radius:50%;border:1px dashed rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;color:transparent;transition:.4s var(--ease)}
.sello .ico{width:52%;height:52%;stroke-width:2}
.sello.lleno{background:var(--blue);border:1px solid var(--blue);color:var(--ink);animation:sello .6s var(--ease) both}
.sello.regalo{border:1px solid var(--champ);color:var(--champ)}
.sello.regalo.lleno{background:var(--champ);color:#fff}
@keyframes sello{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.tarjeta .bot{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;position:relative;z-index:1}
.tarjeta .nombre{font-family:var(--serif);font-size:clamp(1.1rem,3.6vw,1.45rem);font-weight:500;line-height:1.1}
.tarjeta .sub{font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;opacity:.65;margin-bottom:.2rem}
.tarjeta .cont{font-family:var(--serif);font-size:clamp(1.6rem,5vw,2.2rem);line-height:1;white-space:nowrap}
.tarjeta .cont small{font-size:.45em;opacity:.7}
.mensaje-tarjeta{text-align:center;margin-top:1.2rem;color:var(--ink-soft)}
.mensaje-tarjeta.ok{color:var(--blue-deep);font-weight:400}

/* ---------- TEASER PRODUCTOS ---------- */
.teaser{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,6vw,5rem);align-items:center;background:var(--paper);border-radius:32px;padding:clamp(2rem,5vw,4rem);position:relative;overflow:hidden;border:1px solid var(--line-2)}
.teaser .lead{margin:1rem 0 2rem}
.botes{display:flex;justify-content:center;align-items:flex-end;gap:1rem;height:240px}
.bote{width:70px;border-radius:14px 14px 10px 10px;background:linear-gradient(180deg,#fff,#eef6fa);box-shadow:var(--sombra);position:relative;animation:levita 6s ease-in-out infinite}
.bote::before{content:"";position:absolute;left:22%;right:22%;top:-22px;height:24px;border-radius:6px 6px 0 0;background:var(--ink)}
.bote::after{content:"NG";position:absolute;left:0;right:0;top:40%;text-align:center;font-family:var(--serif);font-style:italic;color:var(--blue-deep);font-size:1.1rem}
.bote:nth-child(1){height:150px;animation-delay:-1s}.bote:nth-child(2){height:200px;width:84px;background:linear-gradient(180deg,#e3f1f7,#bfe0ef)}.bote:nth-child(3){height:120px;animation-delay:-3s}
@keyframes levita{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
@media(max-width:860px){.teaser{grid-template-columns:1fr}.botes{height:200px;order:-1}}

/* ---------- OPINIONES ---------- */
.opinion{text-align:center;max-width:760px;margin:0 auto}
.opinion .nota-grande{font-family:var(--serif);font-weight:300;font-size:clamp(5rem,14vw,9rem);line-height:.9}
.opinion .estrellas{justify-content:center;margin:.6rem 0 .4rem}
.opinion .estrellas .ico{width:22px;height:22px}
.opinion .lead{margin:1.2rem auto 2rem}

/* ---------- VISITA / HORARIO ---------- */
.visita{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:stretch}
@media(max-width:860px){.visita{grid-template-columns:1fr}}
.horario{border-top:1px solid var(--line)}
.horario .fila{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1rem}
.horario .fila span:last-child{font-family:var(--serif);font-size:1.2rem}
.horario .fila.cerrado span:last-child{color:var(--muted);font-style:italic}
.horario .fila.hoy span:first-child{font-weight:500}
.horario .fila.hoy span:first-child::after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue-deep);margin-left:.6em;vertical-align:middle}
.mapa{border-radius:var(--r);overflow:hidden;min-height:340px;background:var(--sand);position:relative;box-shadow:var(--sombra)}
.mapa iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(1.02)}
.datos-contacto{display:grid;gap:.2rem;margin:1.8rem 0}
.datos-contacto a{display:flex;align-items:center;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line-2);transition:padding .4s var(--ease),color .3s}
.datos-contacto a:hover{padding-left:.5rem;color:var(--blue-deep)}
.datos-contacto .ic{width:42px;height:42px;border-radius:50%;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;color:var(--blue-deep);flex:none}
.datos-contacto small{display:block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}

/* ---------- FAQ ---------- */
.faq{max-width:860px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.5rem 0;font-family:var(--serif);font-size:clamp(1.2rem,2.2vw,1.45rem);font-weight:400;display:flex;justify-content:space-between;align-items:center;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary .mas{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);flex:none;position:relative;transition:transform .5s var(--ease),background .3s}
.faq summary .mas::before,.faq summary .mas::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1px;background:var(--ink);transform:translate(-50%,-50%)}
.faq summary .mas::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .5s var(--ease)}
.faq details[open] summary .mas{background:var(--ink)}
.faq details[open] summary .mas::before,.faq details[open] summary .mas::after{background:#fff}
.faq details[open] summary .mas::after{transform:translate(-50%,-50%) rotate(0)}
.faq .resp{color:var(--ink-soft);padding:0 3rem 1.6rem 0;max-width:70ch}

/* ---------- CTA FINAL ---------- */
.cta{position:relative;overflow:hidden;text-align:center;border-radius:36px;padding:clamp(3.5rem,8vw,6.5rem) clamp(1.2rem,4vw,3rem);background:var(--ink);color:#fff;isolation:isolate}
.cta .mancha{opacity:.5;filter:blur(70px)}
.cta .mancha.m1{right:-15%;top:-40%;width:600px;height:600px}
.cta .mancha.m3{left:-15%;top:30%;background:radial-gradient(circle,rgba(156,203,225,.5) 0%,rgba(156,203,225,0) 70%)}
.cta .h2{margin:.8rem auto 1rem;max-width:18ch;position:relative}
.cta p{color:#b8c5cc;max-width:46ch;margin:0 auto 2.2rem;position:relative}
.cta .kicker{color:var(--blue);position:relative}
.cta .btns{position:relative}

/* ---------- CABECERA PÁGINAS ---------- */
.page-hero{position:relative;overflow:hidden;padding:clamp(9rem,16vw,12rem) 0 clamp(3rem,6vw,5rem);background:var(--ivory)}
.page-hero .wrap{position:relative;z-index:2}
.page-hero .h-display{font-size:clamp(2.6rem,6.5vw,5rem);margin:1.2rem 0 1.2rem;max-width:16ch}
.page-hero .mancha.m1{width:44vw;height:44vw;top:-20%;right:-10%}

/* ---------- CARTA DE TRATAMIENTOS ---------- */
.filtros{position:sticky;top:66px;z-index:40;background:rgba(248,245,240,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:1rem 0;border-bottom:1px solid var(--line)}
.filtros .wrap{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.chips{display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:transparent;font-size:.8rem;padding:.55em 1.15em;border-radius:100px;cursor:pointer;transition:.3s var(--ease);white-space:nowrap;letter-spacing:.02em}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.buscador{position:relative;width:280px;max-width:100%}
.buscador input{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:100px;padding:.7em 1em .7em 2.6em;font:inherit;font-size:16px}
.buscador input:focus{outline:none;border-color:var(--ink)}
.buscador .ico{position:absolute;left:1em;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-soft)}
@media(max-width:700px){.buscador{width:100%}.filtros{top:62px}}
.carta-cat{display:grid;grid-template-columns:300px 1fr;gap:clamp(1.5rem,5vw,5rem);padding:clamp(3rem,6vw,5rem) 0;border-bottom:1px solid var(--line)}
.carta-cat:last-child{border-bottom:none}
@media(max-width:900px){.carta-cat{grid-template-columns:1fr}}
.carta-cat .lado{position:sticky;top:150px;align-self:start}
@media(max-width:900px){.carta-cat .lado{position:static}}
.carta-cat .lado .ic{width:64px;height:64px;border-radius:50%;background:var(--blue-soft);color:var(--blue-deep);display:flex;align-items:center;justify-content:center;margin-bottom:1.2rem}
.carta-cat .lado .ic .ico{width:30px;height:30px;stroke-width:1.2}
.carta-cat .lado .n{font-family:var(--serif);font-style:italic;color:var(--muted)}
.carta-cat .lado h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.4vw,2.6rem);line-height:1.1;margin:.2rem 0 .8rem}
.carta-cat .lado p{color:var(--ink-soft);font-size:.95rem}
.item{display:grid;grid-template-columns:1fr auto;gap:.4rem 2rem;padding:1.6rem 0;border-bottom:1px solid var(--line-2)}
.item:first-child{padding-top:0}
.item:last-child{border-bottom:none}
.item .t{display:flex;align-items:baseline;gap:.8rem}
.item h3{font-family:var(--serif);font-weight:500;font-size:1.4rem;line-height:1.25}
.item .t::after{content:"";flex:1;border-bottom:1px dotted rgba(21,35,45,.28);transform:translateY(-.3em);min-width:20px}
.item .precio{font-size:1.45rem;text-align:right;white-space:nowrap}
.item p{grid-column:1/2;color:var(--ink-soft);font-size:.95rem;max-width:62ch}
.item .acc{grid-column:2/3;grid-row:2/4;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;justify-content:flex-start}
.item .meta{grid-column:1/2;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.item .wa-mini{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:inline-flex;align-items:center;gap:.4em}
.item .wa-mini:hover{color:#1aa851}
.item .wa-mini .ico{width:14px;height:14px}
@media(max-width:600px){
  .item{grid-template-columns:1fr}
  .item .acc{grid-column:1;grid-row:auto;flex-direction:row;align-items:center;justify-content:space-between}
  .item .precio{display:none}
  .item .acc .precio-m{display:block}
}
.precio-m{display:none;font-family:var(--serif);font-size:1.45rem;font-weight:500}
.sin-res{text-align:center;color:var(--ink-soft);padding:4rem 0}
.nota-deco{color:var(--muted);font-size:.86rem;font-style:italic;margin-top:1.2rem}

/* ---------- PRODUCTOS ---------- */
.prods{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem}
.prod{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.prod:hover{transform:translateY(-5px);box-shadow:var(--sombra-2)}
.prod .vis{aspect-ratio:1/.9;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 30% 20%,#fff 0%,var(--blue-soft) 60%,#cfe6f1 100%)}
.prod:nth-child(3n+2) .vis{background:radial-gradient(circle at 30% 20%,#fff 0%,#f1ebe2 60%,#e6dccd 100%)}
.prod:nth-child(3n+3) .vis{background:radial-gradient(circle at 30% 20%,#fff 0%,#eaf0ef 60%,#d6e3e1 100%)}
.prod .vis img{width:100%;height:100%;object-fit:cover}
.prod .mono{font-family:var(--serif);font-style:italic;font-weight:300;font-size:4.2rem;color:var(--ink-2);opacity:.85;transition:transform .8s var(--ease)}
.prod:hover .mono{transform:scale(1.08) rotate(-4deg)}
.prod .vis .ng{position:absolute;bottom:.8rem;left:0;right:0;text-align:center;font-family:var(--script);font-size:1.1rem;color:var(--ink-soft)}
.prod .cuerpo{padding:1.3rem 1.3rem 1.4rem;display:flex;flex-direction:column;flex:1}
.prod h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;line-height:1.25;flex:1}
.prod .desc{font-size:.88rem;color:var(--ink-soft);margin-top:.3rem}
.prod .pie{display:flex;justify-content:space-between;align-items:center;margin-top:1.1rem;gap:.6rem}
.prod .agotado{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.esqueleto .vis,.esqueleto h3,.esqueleto .pie{background:linear-gradient(90deg,var(--sand) 0%,#f4efe8 50%,var(--sand) 100%);background-size:200% 100%;animation:carga 1.4s linear infinite;color:transparent;border-radius:8px}
.esqueleto .vis{border-radius:0}
@keyframes carga{to{background-position:-200% 0}}
.estado-prod{text-align:center;color:var(--ink-soft);padding:3rem 1rem;grid-column:1/-1}
.como{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:3rem}
@media(max-width:760px){.como{grid-template-columns:1fr}}
.como div{display:flex;gap:.9rem;align-items:flex-start;color:var(--ink-soft);font-size:.95rem}
.como b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.6rem;color:var(--blue-deep);line-height:1}

/* ---------- MODAL ---------- */
.modal-fondo{position:fixed;inset:0;z-index:300;background:rgba(21,35,45,.45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .35s}
.modal-fondo.abierto{opacity:1;pointer-events:auto}
.modal{background:var(--paper);border-radius:26px;width:100%;max-width:460px;max-height:calc(100vh - 32px);overflow:auto;padding:2rem 1.6rem 1.6rem;position:relative;transform:translateY(24px) scale(.97);transition:transform .45s var(--ease);box-shadow:var(--sombra-2)}
.modal-fondo.abierto .modal{transform:none}
.modal .x{position:absolute;top:1rem;right:1rem;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.modal .x:hover{background:var(--ink);color:#fff}
.modal h3{font-family:var(--serif);font-weight:500;font-size:1.7rem;line-height:1.2;padding-right:2.5rem}
.modal .prod-res{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;margin:1rem 0 1.2rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.modal .prod-res b{font-weight:400}

/* ---------- FORMULARIOS ---------- */
.caja{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);padding:clamp(1.5rem,4vw,2.4rem)}
.caja h2{font-family:var(--serif);font-weight:500;font-size:1.9rem;line-height:1.15}
.caja .ayuda{color:var(--ink-soft);font-size:.95rem;margin:.5rem 0 1.5rem}
.campo{margin-bottom:1.1rem}
.campo label{display:block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.4rem}
.campo input,.campo select{width:100%;border:none;border-bottom:1px solid rgba(21,35,45,.25);background:transparent;padding:.65em 0;font:inherit;font-size:17px;border-radius:0;transition:border-color .3s}
.campo input:focus,.campo select:focus{outline:none;border-color:var(--ink)}
.cant{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:100px}
.cant button{width:40px;height:40px;border:none;background:none;cursor:pointer;font-size:1.2rem}
.cant span{min-width:28px;text-align:center;font-size:1.05rem}
.check{display:flex;gap:.7rem;align-items:flex-start;font-size:.84rem;color:var(--ink-soft);margin:.6rem 0 1.4rem;cursor:pointer}
.check input{margin-top:.3em;accent-color:var(--ink);width:16px;height:16px;flex:none}
.check a{text-decoration:underline}
.msg{font-size:.88rem;margin-top:.9rem;min-height:1.3em}
.msg.error{color:#b04848}
.msg.ok{color:#23845a}
.ok-caja{text-align:center;padding:1rem 0}
.ok-caja .tick{width:64px;height:64px;border-radius:50%;background:var(--blue-soft);color:var(--blue-deep);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;animation:sello .6s var(--ease)}
.ok-caja .tick .ico{width:30px;height:30px;stroke-width:2}

/* ---------- PÁGINA TARJETA ---------- */
.fid-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media(max-width:900px){.fid-grid{grid-template-columns:1fr}}
.reglas{list-style:none;display:grid;gap:1.1rem;margin-top:1.2rem}
.reglas li{display:grid;grid-template-columns:auto 1fr;gap:1rem;color:var(--ink-soft);font-size:.96rem}
.reglas li b{color:var(--ink);font-weight:500}
.reglas .n{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--blue-deep);line-height:1.1;width:1.4em}
.acciones-tarjeta{display:grid;gap:.6rem;max-width:440px;margin:1.6rem auto 0}
.aviso{background:var(--blue-soft);color:var(--ink-2);border-radius:var(--r-s);padding:1rem 1.2rem;font-size:.92rem}
.aviso a{text-decoration:underline}

/* ---------- LEGAL ---------- */
.legal{max-width:760px;color:var(--ink-soft)}
.legal h2{font-family:var(--serif);color:var(--ink);font-weight:500;font-size:1.5rem;margin:2rem 0 .4rem}
.legal p{margin-bottom:.7rem}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:#b8c5cc;padding:clamp(4rem,8vw,6rem) 0 2rem;margin-top:0;position:relative;overflow:hidden}
.footer-marca{font-family:var(--script);font-size:clamp(3.2rem,10vw,7rem);color:#fff;line-height:1;opacity:.95}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1.1fr 1fr 1.25fr;gap:2rem;margin-top:3rem;padding-top:3rem;border-top:1px solid rgba(255,255,255,.1)}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr}}
footer h4{font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:#fff;font-weight:400;margin-bottom:1rem}
footer ul{list-style:none;display:grid;gap:.45rem;font-size:.92rem}
footer a:hover{color:#fff}
footer p{font-size:.92rem;max-width:32ch}
.redes{display:flex;gap:.6rem;margin-top:1.4rem}
.redes a{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;transition:.3s}
.redes a:hover{background:#fff;color:var(--ink)}
.redes .ico{width:18px;height:18px}
.copy{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;color:#7f8f99}

/* ---------- WHATSAPP FLOTANTE ---------- */
.wa-flot{position:fixed;right:18px;bottom:18px;z-index:90;width:58px;height:58px;border-radius:50%;background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px -8px rgba(0,0,0,.35);transition:transform .4s var(--ease);transform:scale(0);animation:entra .6s var(--ease) 1.4s forwards}
.wa-flot:hover{transform:scale(1.08)!important}
.wa-flot .ico{width:28px;height:28px}
@keyframes entra{to{transform:scale(1)}}

/* ---------- REVEAL ---------- */
.rv{opacity:0;transform:translateY(34px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rv.visible{opacity:1;transform:none}
.rv-hijos > *{opacity:0;transform:translateY(30px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv-hijos.visible > *{opacity:1;transform:none}
.rv-hijos.visible > *:nth-child(2){transition-delay:.08s}.rv-hijos.visible > *:nth-child(3){transition-delay:.16s}
.rv-hijos.visible > *:nth-child(4){transition-delay:.24s}.rv-hijos.visible > *:nth-child(5){transition-delay:.32s}
.rv-hijos.visible > *:nth-child(6){transition-delay:.4s}.rv-hijos.visible > *:nth-child(n+7){transition-delay:.48s}
.cortina{position:fixed;inset:0;z-index:999;background:var(--ivory);display:flex;align-items:center;justify-content:center;animation:cortina .9s var(--ease) .25s forwards;pointer-events:none}
.cortina span{font-family:var(--script);font-size:2.6rem;color:var(--ink);opacity:0;animation:aparece .5s ease forwards}
@keyframes cortina{to{opacity:0;visibility:hidden}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv,.rv-hijos > *{opacity:1;transform:none}
  .linea-txt > span{transform:none}
}
footer .horario{border-top:none}
footer .horario .fila{border-color:rgba(255,255,255,.1);padding:.45rem 0;font-size:.88rem}
footer .horario .fila span:last-child{font-size:1rem;color:#fff}
footer .horario .fila.hoy span:first-child::after{background:var(--blue)}
.nav.abierto{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:var(--ivory)!important;box-shadow:none!important}
@media(max-width:1000px){.menu{height:100vh;height:100dvh;overflow-y:auto}}

/* =========================================================
   v3 · MÁS AZUL + FOTOS + PÁGINA DE SERVICIO
   ========================================================= */
.btn{background:var(--blue-deep)}
.btn::after{background:var(--ink)}
.btn.linea{background:transparent;color:var(--blue-deep);border-color:rgba(43,108,139,.45)}
.btn.linea::after{background:var(--blue-deep)}
.btn.linea:hover{border-color:var(--blue-deep)}
.btn.claro{background:#fff;color:var(--blue-deep)}
.btn.claro::after{background:var(--blue-soft)}
.btn.claro:hover{color:var(--ink)}
.sec.dark,footer{background:linear-gradient(160deg,#1f5f7e 0%,#174a63 55%,#123a4f 100%)}
.sec.dark .lead,.paso p{color:#bcd6e3}
.cta{background:linear-gradient(140deg,#2b6c8b 0%,#1d5470 60%,#163f55 100%)}
.cta p{color:#d3e6ef}
.cta .mancha{opacity:.55}
footer{color:#c6dce7}
.copy{color:#9dbccb}
.kicker{color:var(--blue-deep)}
.h2 em,.h-display em{color:var(--blue-deep)}
.mancha.m3{background:radial-gradient(circle,rgba(191,224,239,.9) 0%,rgba(191,224,239,0) 70%)}
.marquesina{background:linear-gradient(90deg,#e3f1f8,#f4fafd,#e3f1f8)}
.marquesina span::after{background:var(--blue-mid)}
.pilar .ic,.datos-contacto .ic,.carta-cat .lado .ic{background:#dcedf6}
.estrellas{color:#e0b44c}
.sec.paper{background:linear-gradient(180deg,#fbfeff 0%,#eef7fb 100%)}
.tarjeta{background:linear-gradient(135deg,#2b6c8b 0%,#1d5470 50%,#143c51 100%)}
.sello.lleno{background:#cfe8f4;border-color:#cfe8f4;color:var(--blue-deep)}
.nav.solida{background:rgba(241,248,252,.9)}
.filtros{background:rgba(241,248,252,.94)}
.chip.on{background:var(--blue-deep);border-color:var(--blue-deep)}
.faq details[open] summary .mas{background:var(--blue-deep)}

/* --- hero con foto --- */
.hero-visual{position:relative;justify-self:end;width:min(440px,100%)}
.arco{border-radius:999px 999px 28px 28px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sombra-2);position:relative}
.arco img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:zoomin 2.4s var(--ease) forwards}
.arco::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(43,108,139,0) 55%,rgba(22,50,70,.35) 100%)}
@keyframes zoomin{to{transform:scale(1)}}
.hero-visual .hero-sello{position:absolute;width:150px;left:-60px;bottom:40px;z-index:2}
.hero-visual .hero-sello .disco{inset:16%}
.hero-visual .hero-sello svg.giro text{font-size:9.4px;letter-spacing:3.2px}
.hero-visual .hero-sello::before{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(251,254,255,.92);backdrop-filter:blur(6px);box-shadow:var(--sombra)}
@media(max-width:900px){
  .hero-visual{justify-self:center;width:min(340px,86vw);order:-1;margin-bottom:.5rem}
  .hero-visual .hero-sello{width:118px;left:-18px;bottom:18px}
}
@media(max-height:760px){.scroll-ind{display:none}}

/* --- categorías con foto --- */
.cat{padding:0;min-height:0;color:inherit!important}
.cat::before{display:none}
.cat::after{display:none}
.cat:hover{color:inherit}
.cat-foto{aspect-ratio:4/3;overflow:hidden;position:relative}
.cat-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.cat:hover .cat-foto img{transform:scale(1.08)}
.cat-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(22,50,70,.25))}
.cat > div:not(.cat-foto){padding:0 1.4rem}
.cat .ic{width:54px;height:54px;margin-top:-27px;position:relative;z-index:2;background:var(--paper);border-color:var(--paper);box-shadow:var(--sombra)}
.cat:hover .ic{border-color:var(--paper);color:var(--blue-deep);transform:rotate(-10deg)}
.cat .ic{transition:transform .6s var(--ease)}
.cat .num{top:.9rem;right:1rem;color:#fff;z-index:2;font-size:1.05rem}
.cat:hover .num{color:#fff}
.cat h3{margin-top:.9rem;font-size:1.55rem}
.cat:hover p{color:var(--ink-soft)}
.cat .pie{margin:1.2rem 1.4rem 1.4rem;padding-top:.9rem}
.cat:hover .pie{border-color:var(--line)}

/* --- populares con foto --- */
.pop{padding:0;overflow:hidden}
.pop-foto{display:block;aspect-ratio:16/11;overflow:hidden}
.pop-foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.pop:hover .pop-foto img{transform:scale(1.06)}
.pop-in{padding:1.4rem 1.5rem 1.5rem;display:flex;flex-direction:column;flex:1}
.pop h3{margin-top:.4rem}
.acc-btns{display:flex;gap:.5rem;align-items:center}
.btn-wa{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e8f8ee;color:#1aa851;transition:.3s var(--ease);flex:none}
.btn-wa:hover{background:var(--wa);color:#fff;transform:translateY(-2px)}
.btn-wa .ico{width:20px;height:20px}

/* --- carta con miniaturas --- */
.item{grid-template-columns:88px 1fr auto;column-gap:1.4rem}
.item-foto{grid-row:1/4;width:88px;height:88px;border-radius:18px;overflow:hidden;display:block}
.item-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.item:hover .item-foto img{transform:scale(1.08)}
.item .t,.item p,.item .meta{grid-column:2/3}
.item .precio{grid-column:3/4}
.item .acc{grid-column:3/4}
.item h3 a:hover{color:var(--blue-deep)}
@media(max-width:600px){
  .item{grid-template-columns:72px 1fr}
  .item-foto{width:72px;height:72px;grid-row:1/3;border-radius:14px}
  .item .t,.item p{grid-column:2/3}
  .item .meta,.item .acc{grid-column:1/3}
}

/* --- página de servicio --- */
.det-hero{position:relative;padding:clamp(7.5rem,13vw,10rem) 0 clamp(2rem,5vw,4rem);background:radial-gradient(ellipse 60% 70% at 85% 10%,rgba(156,203,225,.55) 0%,transparent 70%),var(--ivory);overflow:hidden}
.det-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,5rem);align-items:center}
@media(max-width:900px){.det-grid{grid-template-columns:1fr}}
.det-txt .h-display{font-size:clamp(2.4rem,5.6vw,4.4rem);margin:1rem 0 1.2rem}
.volver{display:inline-flex;align-items:center;gap:.6rem;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--blue-deep)}
.volver .atras{transform:rotate(180deg);transition:transform .4s var(--ease)}
.volver:hover .atras{transform:rotate(180deg) translateX(4px)}
.det-datos{display:flex;gap:2.4rem;margin:2rem 0;padding:1.2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.det-datos small{display:block;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.det-datos b{font-family:var(--serif);font-weight:500;font-size:2rem;line-height:1.1}
.det-foto{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sombra-2)}
.det-foto img{width:100%;height:100%;object-fit:cover;animation:zoomin 2s var(--ease) forwards;transform:scale(1.08)}
@media(max-width:900px){.det-foto{aspect-ratio:4/3;order:-1}}
.det-badge{position:absolute;left:1rem;bottom:1rem;background:rgba(251,254,255,.9);backdrop-filter:blur(8px);border-radius:100px;padding:.5em 1.1em;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue-deep)}
.det-info{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem)}
@media(max-width:800px){.det-info{grid-template-columns:1fr}}
.lista-check{list-style:none;display:grid;gap:.9rem;margin-top:1.4rem}
.lista-check li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;color:var(--ink-2)}
.lista-check .ico{width:30px;height:30px;padding:6px;border-radius:50%;background:#dcedf6;color:var(--blue-deep);stroke-width:2}
.frec{display:flex;gap:.9rem;align-items:flex-start;margin-top:1.6rem;padding:1.1rem 1.2rem;border-radius:16px;background:var(--paper);border:1px solid var(--line-2)}
.frec .ico{width:22px;height:22px;color:var(--blue-deep);margin-top:.2rem}
.frec small{display:block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.reserva-banda{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;border-radius:30px;padding:clamp(2rem,5vw,3.4rem);background:linear-gradient(140deg,#2b6c8b 0%,#1d5470 100%);color:#fff}
.reserva-banda .lead{color:#d3e6ef;margin-top:.6rem}
.reserva-banda .h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}

/* --- productos --- */
.stock{display:inline-block;margin-top:.5rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#23845a}
.stock.poco{color:#c07a1c}
.stock.no{color:var(--muted)}
.prod .vis{background:radial-gradient(circle at 30% 20%,#fff 0%,#e1f0f7 60%,#c6e2ef 100%)!important}
.teaser{background:linear-gradient(135deg,#fbfeff 0%,#e3f1f8 100%)}
.teaser .foto-prod{border-radius:24px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sombra-2)}
.teaser .foto-prod img{width:100%;height:100%;object-fit:cover}
@media(max-width:860px){.teaser .foto-prod{order:-1}}
.credito{font-size:.72rem;color:#9dbccb}

/* =========================================================
   v3.1 · LOGO + ABBELLIMENTI
   ========================================================= */
.marca .logo-nav{width:auto;height:64px;border-radius:0;box-shadow:none;object-fit:contain;transition:height .4s var(--ease)}
.nav.solida .marca .logo-nav{height:48px}
@media(max-width:1000px){.marca .logo-nav{height:48px}.nav.solida .marca .logo-nav{height:42px}}
.footer-logo{width:min(320px,70vw);height:auto;display:block}
.cortina span{display:none}
.cortina{background:var(--ivory) url("logo-trasparente.png") center/min(260px,60vw) no-repeat}

/* subrayado acuarela en las palabras en cursiva */
.h2 em,.h-display em{background:linear-gradient(transparent 62%,rgba(156,203,225,.32) 64%,rgba(156,203,225,.32) 90%,transparent 88%);padding:0 .08em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* destello decorativo junto a los títulos de sección */
.cab .h2{position:relative}
.cab.centro .h2::after,.cab:not(.centro) .kicker::after{content:"";display:inline-block;width:14px;height:14px;margin-left:.6rem;vertical-align:middle;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236aaecb' d='M12 2l2.2 7.8L22 12l-7.8 2.2L12 22l-2.2-7.8L2 12l7.8-2.2z'/%3E%3C/svg%3E") center/contain no-repeat;animation:titila 3.5s ease-in-out infinite}
.cab:not(.centro) .kicker::after{width:11px;height:11px;margin-left:.2rem;opacity:.9}
@keyframes titila{0%,100%{transform:scale(.8) rotate(0);opacity:.6}50%{transform:scale(1.15) rotate(45deg);opacity:1}}

/* separador de pincel entre secciones */
.sec + .sec::before,.marquesina + .sec::before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);width:120px;height:26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M4 13c20-9 36 9 56 0s36-9 56 0' fill='none' stroke='%239ccbe1' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='60' cy='13' r='3.2' fill='%236aaecb'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.9;z-index:2}
.sec.dark + .sec::before,.sec + .sec.dark::before{display:none}

/* burbujas suaves que flotan en el hero */
.burbujas{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.burbujas i{position:absolute;bottom:-40px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.95),rgba(156,203,225,.35) 60%,rgba(156,203,225,0) 72%);animation:burbuja linear infinite}
.burbujas i:nth-child(1){left:8%;width:26px;height:26px;animation-duration:16s}
.burbujas i:nth-child(2){left:22%;width:14px;height:14px;animation-duration:12s;animation-delay:-4s}
.burbujas i:nth-child(3){left:46%;width:34px;height:34px;animation-duration:20s;animation-delay:-8s}
.burbujas i:nth-child(4){left:63%;width:18px;height:18px;animation-duration:14s;animation-delay:-2s}
.burbujas i:nth-child(5){left:80%;width:24px;height:24px;animation-duration:18s;animation-delay:-11s}
.burbujas i:nth-child(6){left:92%;width:12px;height:12px;animation-duration:11s;animation-delay:-6s}
@keyframes burbuja{0%{transform:translateY(0) translateX(0);opacity:0}10%{opacity:1}100%{transform:translateY(-110vh) translateX(30px);opacity:0}}

/* brillo que cruza los botones principales */
.btn:not(.linea):not(.peq)::before{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);animation:destello 5s ease-in-out infinite;z-index:1;pointer-events:none}
@keyframes destello{0%,70%{left:-60%}100%{left:130%}}

/* borde luminoso en tarjetas al pasar el ratón */
.pop,.cat,.prod{position:relative}
.pop::after,.prod::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(156,203,225,0),rgba(106,174,203,.8),rgba(156,203,225,0));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .5s;pointer-events:none}
.pop:hover::after,.prod:hover::after{opacity:1}

/* marquesina con estrellitas */
.marquesina span::after{width:12px;height:12px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236aaecb' d='M12 2l2.2 7.8L22 12l-7.8 2.2L12 22l-2.2-7.8L2 12l7.8-2.2z'/%3E%3C/svg%3E") center/contain no-repeat}

/* footer: acuarela de fondo */
footer::before{content:"";position:absolute;width:600px;height:600px;right:-200px;top:-250px;border-radius:50%;background:radial-gradient(circle,rgba(156,203,225,.25),transparent 65%);pointer-events:none}
@media(prefers-reduced-motion:reduce){.burbujas{display:none}.btn::before{display:none}}

/* =========================================================
   v4 · CUENTA, OPINIONES, NÚMEROS
   ========================================================= */
.nav-cuenta{display:inline-flex;align-items:center;gap:.45em;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;padding:.55em .95em;border:1px solid var(--line);border-radius:100px;margin-left:.4rem;color:var(--ink-2);transition:.3s var(--ease)}
.nav-cuenta:hover,.nav-cuenta.activo{border-color:var(--blue-deep);color:var(--blue-deep)}
.nav-cuenta .ico{width:16px;height:16px}
@media(max-width:1000px){.nav-cuenta{font-family:var(--serif);font-size:1.6rem;letter-spacing:0;text-transform:none;border:none;padding:.5em 0;margin:0;justify-content:flex-start}.nav-cuenta .ico{width:22px;height:22px}}
@media(max-width:1180px) and (min-width:1001px){.menu > a:not(.btn){padding:.6em .6em;letter-spacing:.12em}}

.datos{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(1rem,6vw,5rem)}
.dato{min-width:180px;transition:transform .4s var(--ease)}
a.dato:hover{transform:translateY(-3px)}
.dato .estrellas{justify-content:center;margin-top:.4rem}
.dato .estrellas .ico{width:14px;height:14px}

.resenas{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
@media(max-width:900px){.resenas{grid-template-columns:1fr}}
.resena{display:flex;flex-direction:column;gap:1rem;background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);padding:1.8rem 1.6rem;position:relative;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.resena:hover{transform:translateY(-4px);box-shadow:var(--sombra)}
.resena::before{content:"“";position:absolute;top:.2rem;right:1.2rem;font-family:var(--serif);font-size:5.5rem;line-height:1;color:var(--blue);opacity:.5}
.resena .estrellas .ico{width:16px;height:16px}
.resena blockquote{font-family:var(--serif);font-size:1.18rem;line-height:1.5;color:var(--ink-2);flex:1;font-style:italic}
.pie-resena{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding-top:1rem;border-top:1px solid var(--line-2)}
.pie-resena b{font-weight:500;display:block}
.pie-resena small{font-size:.78rem;color:var(--muted)}
.pie-resena .fuente{display:inline-flex;align-items:center;gap:.4em;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue-deep);white-space:nowrap}
.pie-resena .fuente .ico{width:14px;height:14px}

.cuenta-fuera{max-width:520px;margin:0 auto}
.tabs-cuenta{display:flex;background:var(--sand);border-radius:100px;padding:5px;margin-bottom:1.2rem}
.tab-cuenta{flex:1;border:none;background:transparent;border-radius:100px;padding:.8em 1em;cursor:pointer;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);transition:.3s var(--ease)}
.tab-cuenta.on{background:var(--paper);color:var(--blue-deep);box-shadow:var(--sombra)}
.dos-campos{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:480px){.dos-campos{grid-template-columns:1fr;gap:0}}
.cuenta-cab{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:2rem}
.reserva-fila{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line-2)}
.reserva-fila:last-child{border-bottom:none}
.reserva-fila b{font-weight:500;display:block}
.reserva-fila small{color:var(--muted);font-size:.8rem}
.chip-estado{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;padding:.4em .9em;border-radius:100px;background:#fde8f0;color:#c2416f;white-space:nowrap}
.chip-estado.confermata{background:#dcedf6;color:var(--blue-deep)}
.chip-estado.ritirata{background:#e3f5ec;color:#23845a}
.chip-estado.annullata{background:#eef1f3;color:var(--muted)}
.sin-reservas{color:var(--ink-soft)}
.sin-reservas .enlace{margin-left:.4rem}
.filo .txt .enlace{display:inline-flex}
.menu > a,.nav-cuenta{white-space:nowrap}
@media(max-width:1320px) and (min-width:1001px){
  .menu > a:not(.btn){padding:.6em .55em;letter-spacing:.1em;font-size:.7rem}
  .nav-cuenta span{display:none}
  .nav-cuenta{padding:.55em;margin-left:.2rem}
  .marca .logo-nav{height:54px}
}
.pie-resena{flex-wrap:wrap}
.pie-resena > div{min-width:0;flex:1 1 160px}

/* v5 · productos con foto del catálogo */
.prod .vis:has(img){background:#fff!important}
.prod .vis img{object-fit:contain;padding:1.2rem;transition:transform .8s var(--ease)}
.prod:hover .vis img{transform:scale(1.05)}
.prod .linea-prod{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-deep);margin-bottom:.35rem}
.prod .desc{font-size:.86rem;line-height:1.55;margin-top:.5rem}
.prod h3{flex:none}
.prod .cuerpo .pie{margin-top:auto;padding-top:1.1rem}

/* =========================================================
   v6 · MÁS SOBRIO Y PROFESIONAL
   ========================================================= */
.cortina{display:none!important}
.burbujas{display:none!important}
.btn::before{display:none!important}
.cab.centro .h2::after,.cab:not(.centro) .kicker::after{display:none!important}
.sec + .sec::before,.marquesina + .sec::before{display:none!important}
.h2 em,.h-display em{background:none;padding:0}
.marquesina{padding:1rem 0;background:var(--paper)}
.marquesina span{font-size:clamp(1.1rem,2vw,1.5rem);gap:2.6rem;color:var(--ink-soft)}
.marquesina span::after{width:5px;height:5px;border-radius:50%;background:var(--blue-mid)}
.marquesina .pista{animation-duration:60s}
.sec{padding:clamp(4rem,9vw,7rem) 0}

/* logo en el círculo del inicio */
.hero-visual .hero-sello{width:170px;left:-70px;bottom:36px}
.hero-visual .hero-sello::before{background:#fff;backdrop-filter:none}
.hero-visual .hero-sello .disco{inset:15%;z-index:1;background:#fff;box-shadow:0 0 0 1px var(--line-2)}
.hero-visual .hero-sello .disco img{object-fit:contain;padding:12%;width:100%;height:100%}
.hero-visual .hero-sello svg.giro{z-index:2}
.hero-visual .hero-sello svg.giro text{fill:var(--blue-deep)}
@media(max-width:900px){.hero-visual .hero-sello{width:128px;left:-14px;bottom:16px}}

/* cabeceras con enlace a la derecha */
.cab-fila{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.cab-fila .lead{margin-top:.8rem}

/* números encima de las opiniones */
.datos-top{margin:0 0 clamp(2.4rem,5vw,3.6rem);padding:0 0 clamp(2rem,4vw,3rem);border-top:none;border-bottom:1px solid var(--line)}
.resena{background:var(--paper)}
.resena::before{opacity:.35}

/* productos destacados en el inicio (sin precio) */
.prods-home{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.prods-home{grid-template-columns:1fr 1fr}}
.prods-home .prod .vis{aspect-ratio:1/1}
.prods-home .prod .cuerpo{padding:1.1rem 1.2rem 1.3rem}
.prods-home .prod h3{font-size:1.15rem}

/* pie de página con reserva */
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap}
.footer-top .footer-logo{width:min(260px,60vw)}

/* =========================================================
   v7 · TOQUE CREATIVO Y JUGUETÓN (burbujas, estrellitas, animalitos)
   ========================================================= */
:root{--doodle:#2b6c8b;--doodle-fill:#e3f1f7;--miel:#f5dc8f}
/* burbujas de jabón */
.burbujas{display:block!important}
.burbujas i{border:1px solid rgba(43,108,139,.22);background:radial-gradient(circle at 32% 28%,rgba(255,255,255,1) 0 12%,rgba(255,255,255,.35) 22%,rgba(156,203,225,.18) 60%,rgba(156,203,225,.05) 100%);box-shadow:inset -3px -4px 8px rgba(106,174,203,.18)}
.burbujas i:nth-child(7){left:35%;width:20px;height:20px;animation-duration:17s;animation-delay:-13s}
.burbujas i:nth-child(8){left:72%;width:30px;height:30px;animation-duration:22s;animation-delay:-16s}
.page-hero .burbujas i:nth-child(n+6){display:none}

/* estrellitas que titilan */
.chispas{position:absolute;inset:0;pointer-events:none;z-index:3}
.ch{position:absolute;width:24px;height:24px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236aaecb' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E") center/contain no-repeat;animation:titila 3.2s ease-in-out infinite}
.ch:nth-child(2n){width:14px;height:14px;animation-delay:-1.1s;animation-duration:2.6s}
.ch:nth-child(3n){width:17px;height:17px;animation-delay:-2s;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f3a6c0' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E")}
.chispas.hv .c1{top:6%;right:-6%}.chispas.hv .c2{top:20%;right:-11%}.chispas.hv .c3{top:48%;left:-7%}.chispas.hv .c4{bottom:-4%;right:12%}
.chispas.ph .c1{top:32%;right:14%}.chispas.ph .c2{top:52%;right:24%}.chispas.ph .c3{top:24%;right:32%}
.chispas.fi .c1{top:12%;left:4%}.chispas.fi .c2{top:20%;left:8%}.chispas.fi .c3{bottom:14%;right:5%}.chispas.fi .c4{bottom:22%;right:9%}

/* destellos junto a los títulos y separadores de pincel de nuevo, suaves */
.cab.centro .h2::after{display:inline-block!important}
.sec + .sec::before,.marquesina + .sec::before{display:block!important;opacity:.75}
.btn:not(.linea):not(.peq)::before{display:block!important;animation-duration:7s}
.marquesina span::after{width:12px;height:12px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236aaecb' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E") center/contain no-repeat}

/* trazo dibujado a mano bajo "cuidada al detalle" */
.con-garabato{position:relative;display:inline-block!important}
.garabato{position:absolute;left:0;bottom:.02em;width:100%;height:.28em;overflow:visible;pointer-events:none}
.garabato path{fill:none;stroke:var(--blue-mid);stroke-width:3;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420;animation:dibuja 1.6s 1.3s var(--ease) forwards}
@keyframes dibuja{to{stroke-dashoffset:0}}

/* trazo base de los dibujitos */
.mariposa svg,.pajarito svg,.abeja svg,.gato svg,.ramita{overflow:visible}
.mariposa path,.mariposa circle,.pajarito path,.pajarito circle,.abeja ellipse,.abeja path,.abeja circle,.ramita path{stroke:var(--doodle);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none}

/* mariposa que revolotea */
.mariposa{position:absolute;width:70px;z-index:4;pointer-events:none;animation:vuela 16s ease-in-out infinite}
.hero-visual .mariposa{top:-34px;left:-10px}
.page-hero .mariposa{top:34%;right:8%;width:60px}
.mariposa .ala path{fill:var(--doodle-fill)}
.mariposa .pto{fill:var(--blue)!important;stroke:none!important}
.mariposa .cuerpo{stroke-width:2.6}
.mariposa .ala{transform-box:fill-box;animation:aleteo .28s ease-in-out infinite alternate}
.mariposa .izq{transform-origin:right center}.mariposa .der{transform-origin:left center}
@keyframes aleteo{from{transform:scaleX(1)}to{transform:scaleX(.35)}}
@keyframes vuela{0%,100%{transform:translate(0,0) rotate(-8deg)}25%{transform:translate(60px,-26px) rotate(6deg)}50%{transform:translate(110px,10px) rotate(-4deg)}75%{transform:translate(40px,30px) rotate(10deg)}}

/* pajarito sobre una ramita junto a las opiniones */
.con-pajarito{position:relative}
.pajarito{position:absolute;width:104px;right:max(0px,calc(50% - 360px));top:-18px}
.pajarito .cuerpo{fill:var(--doodle-fill)!important}
.pajarito .cola{fill:var(--blue)!important}
.pajarito .pico{fill:var(--miel)!important}
.pajarito .ojo circle{fill:var(--doodle)!important;stroke:none!important}
.pajarito .mejilla{fill:#f6c6d6!important;stroke:none!important}
.pajarito .hoja{fill:#d7ecdf!important}
.pajarito .nota{fill:#f6a9c2!important;stroke:none!important;opacity:0;animation:corazon 5s ease-out infinite}
.pajarito .ave{transform-box:fill-box;transform-origin:50% 100%;animation:saltito 5s ease-in-out infinite}
.pajarito .ojo{transform-box:fill-box;transform-origin:center;animation:parpadeo 4.5s infinite}
@keyframes saltito{0%,60%,100%{transform:translateY(0) rotate(0)}66%{transform:translateY(-6px) rotate(-6deg)}72%{transform:translateY(0) rotate(0)}78%{transform:translateY(-3px) rotate(4deg)}84%{transform:translateY(0)}}
@keyframes corazon{0%,62%{opacity:0;transform:translate(0,6px) scale(.6)}70%{opacity:1}100%{opacity:0;transform:translate(6px,-14px) scale(1.1)}}
@keyframes parpadeo{0%,92%,100%{transform:scaleY(1)}95%{transform:scaleY(.1)}}

/* abejita en productos */
.con-abeja{position:relative}
.abeja-vuelo{position:absolute;width:160px;height:60px;right:-190px;top:4px;pointer-events:none}
.estela{width:100%;height:100%}
.estela path{fill:none;stroke:var(--blue-mid);stroke-width:1.4;stroke-dasharray:2 7;stroke-linecap:round;opacity:.7}
.abeja{position:absolute;width:40px;left:0;top:0;offset-path:path("M4 40C30 10 50 56 80 30s50-20 76 4");offset-rotate:0deg;animation:zumba 7s ease-in-out infinite alternate}
.abeja svg{animation:bamboleo .9s ease-in-out infinite alternate}
.abeja .cuerpoB{fill:var(--miel)}
.abeja .alaB{fill:rgba(255,255,255,.85);transform-box:fill-box;transform-origin:50% 100%;animation:zumbido .12s linear infinite alternate}
.abeja .ojoB{fill:var(--doodle);stroke:none}
@keyframes zumba{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes bamboleo{from{transform:rotate(-6deg)}to{transform:translateY(-4px) rotate(6deg)}}
@keyframes zumbido{from{transform:scaleY(1)}to{transform:scaleY(.55)}}
@media(max-width:1180px){.abeja-vuelo{right:auto;left:auto;top:-46px;right:0;width:120px}}

/* ramita dibujada en filosofía */
#filosofia{overflow:hidden}
.ramita{position:absolute;width:150px;right:4%;top:2%;opacity:.7;transform:rotate(-8deg)}
.ramita path:not(:first-child){fill:#e3f1f7}

/* gatito asomado al pie de página */
.gato-borde{position:relative;height:0;z-index:5;pointer-events:none}
.gato{position:absolute;right:12%;bottom:-2px;width:112px;animation:asoma 9s ease-in-out infinite;transform-origin:bottom center}
.gato .cabeza{fill:#1f5f7e;stroke:#9ccbe1;stroke-width:1.6;stroke-linejoin:round}
.gato .oreja,.gato .boca,.gato .bigote{fill:none;stroke:#9ccbe1;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.gato .bigote{opacity:.7}
.gato .nariz{fill:#f6a9c2}
.gato .ojos ellipse{fill:#fbfeff;transform-box:fill-box;transform-origin:center;animation:parpadeo 4s infinite}
.gato .pata{fill:#1f5f7e;stroke:#9ccbe1;stroke-width:1.6}
@keyframes asoma{0%,100%{transform:translateY(0) rotate(0)}40%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(0) rotate(3deg)}80%{transform:translateY(38%)}88%{transform:translateY(0)}}

@media(max-width:900px){
  .hero-visual .mariposa{left:12%;top:-22px;width:52px}
  .page-hero .mariposa{top:18%;right:4%;width:38px}
  .pajarito{width:64px;right:0;top:-40px}
  .gato{width:76px;right:8%}
  .ramita{width:100px;top:3%;right:2%}
  .chispas.hv .c2{right:-4%}
}
@media(prefers-reduced-motion:reduce){
  .mariposa,.mariposa .ala,.pajarito .ave,.pajarito .ojo,.abeja,.abeja svg,.abeja .alaB,.gato,.gato .ojos ellipse,.ch{animation:none!important}
  .abeja{offset-distance:50%}
  .garabato path{animation:none;stroke-dashoffset:0}
  .burbujas{display:none!important}
}

/* =========================================================
   v8 · CREATIVIDAD REPARTIDA + UNA PERSONALIDAD POR PÁGINA
   ========================================================= */
@property --ang{syntax:"<angle>";initial-value:0deg;inherits:false}
:root{--rosa:#f3a6c0;--rosa-soft:#fde8f0;--salvia:#b9dcc8;--agua:#8fd3d1;--lila:#c9c2ec;--oro:#e8c77a}
.mej{fill:#f8c3d5!important;stroke:none!important}

/* --- separadores distintos en cada sección --- */
.sec.sep-estrellas::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M4 13h34M82 13h34' stroke='%239ccbe1' stroke-width='1.4' stroke-linecap='round' stroke-dasharray='1 6'/%3E%3Cpath fill='%236aaecb' d='M60 3c.4 4 1.6 6.6 8 7.6-6.4 1-7.6 3.6-8 7.6-.4-4-1.6-6.6-8-7.6 6.4-1 7.6-3.6 8-7.6z'/%3E%3Cpath fill='%23f3a6c0' d='M46 9c.2 2 .8 3.3 4 3.8-3.2.5-3.8 1.8-4 3.8-.2-2-.8-3.3-4-3.8 3.2-.5 3.8-1.8 4-3.8zM74 9c.2 2 .8 3.3 4 3.8-3.2.5-3.8 1.8-4 3.8-.2-2-.8-3.3-4-3.8 3.2-.5 3.8-1.8 4-3.8z'/%3E%3C/svg%3E")!important;width:150px!important;height:30px!important}
.sec.sep-corazon::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M4 14c14-8 26 8 40 0M76 14c14-8 26 8 40 0' fill='none' stroke='%239ccbe1' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath fill='%23f3a6c0' d='M60 22s-8-4.8-8-10.4A4.4 4.4 0 0 1 60 9a4.4 4.4 0 0 1 8 2.6C68 17.2 60 22 60 22z'/%3E%3C/svg%3E")!important;width:150px!important;height:30px!important}
.sec.sep-hoja::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Cpath d='M4 16c20 0 34-6 52-4M64 12c18-2 32 4 52 4' fill='none' stroke='%239ccbe1' stroke-width='1.5' stroke-linecap='round'/%3E%3Cpath d='M52 18c0-9 8-14 16-14 0 9-7 14-16 14zM53 17l12-10' fill='%23d7ecdf' stroke='%232b6c8b' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E")!important;width:150px!important;height:30px!important}
.sec.sep-burbujas::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 26'%3E%3Ccircle cx='44' cy='15' r='4' fill='%23e3f1f7' stroke='%236aaecb' stroke-width='1.2'/%3E%3Ccircle cx='60' cy='11' r='7' fill='%23e3f1f7' stroke='%236aaecb' stroke-width='1.2'/%3E%3Ccircle cx='57.5' cy='8.5' r='1.6' fill='%23fff'/%3E%3Ccircle cx='76' cy='16' r='3' fill='%23e3f1f7' stroke='%236aaecb' stroke-width='1.2'/%3E%3Cpath d='M4 16h32M88 16h28' stroke='%239ccbe1' stroke-width='1.4' stroke-linecap='round' stroke-dasharray='1 6'/%3E%3C/svg%3E")!important;width:150px!important;height:30px!important}

/* --- OPINIONES que brillan --- */
#opiniones{overflow:hidden}
.chispas.op .c1{top:16%;left:7%}.chispas.op .c2{top:24%;left:11%}.chispas.op .c3{top:60%;right:4%}
.chispas.op .c4{top:12%;right:12%}.chispas.op .c5{bottom:10%;left:3%}.chispas.op .c6{bottom:6%;right:9%}
.datos-top .num{background:linear-gradient(100deg,var(--ink) 0%,var(--ink) 38%,#7cc0dd 46%,#f3a6c0 50%,#e8c77a 54%,var(--ink) 62%,var(--ink) 100%);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent!important;animation:oro-txt 5.5s ease-in-out infinite}
@keyframes oro-txt{0%{background-position:100% 0}60%,100%{background-position:0 0}}
.resenas{perspective:1200px}
.resena{overflow:visible;isolation:isolate;transform:rotate(var(--rot,0deg)) rotateY(calc(var(--mx,0)*7deg)) rotateX(calc(var(--my,0)*-7deg));transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.resena:nth-child(1){--rot:-1.4deg}.resena:nth-child(2){--rot:.9deg;margin-top:1.2rem}.resena:nth-child(3){--rot:-.6deg}
.resena:hover{--rot:0deg;transform:translateY(-6px) rotateY(calc(var(--mx,0)*7deg)) rotateX(calc(var(--my,0)*-7deg));box-shadow:0 24px 60px -24px rgba(43,108,139,.45)}
/* borde de purpurina que gira */
.resena::after{content:"";position:absolute;inset:-1.5px;border-radius:calc(var(--r) + 1.5px);padding:1.5px;background:conic-gradient(from var(--ang),rgba(156,203,225,.15),#9ccbe1,#f3a6c0,#e8c77a,#9ccbe1,rgba(156,203,225,.15) 70%,rgba(156,203,225,.15));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:gira-borde 6s linear infinite;pointer-events:none;z-index:2;opacity:.85}
.resena:nth-child(2)::after{animation-delay:-2s}.resena:nth-child(3)::after{animation-delay:-4s}
@keyframes gira-borde{to{--ang:360deg}}
/* barrido de luz */
.resena .barrido{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:1}
.resena .barrido::before{content:"";position:absolute;top:-20%;bottom:-20%;width:38%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75) 45%,rgba(243,166,192,.18) 55%,transparent);transform:skewX(-18deg);animation:barre 6.5s ease-in-out infinite}
.resena:nth-child(2) .barrido::before{animation-delay:2.1s}.resena:nth-child(3) .barrido::before{animation-delay:4.2s}
@keyframes barre{0%,72%{left:-60%}100%{left:140%}}
/* estrellitas en las esquinas */
.resena .ch{z-index:3;pointer-events:none}
.resena .ch.c1{top:-11px;left:18px}.resena .ch.c2{top:30px;right:-8px}.resena .ch.c3{bottom:-8px;left:42%}
.resena:nth-child(2) .ch{animation-delay:-1.4s}.resena:nth-child(3) .ch{animation-delay:-2.3s}
/* estrellas de valoración que se encienden una a una */
.resena .estrellas .ico{animation:enciende 3.6s ease-in-out infinite;transform-origin:center}
.resena .estrellas .ico:nth-child(2){animation-delay:.15s}.resena .estrellas .ico:nth-child(3){animation-delay:.3s}.resena .estrellas .ico:nth-child(4){animation-delay:.45s}.resena .estrellas .ico:nth-child(5){animation-delay:.6s}
@keyframes enciende{0%,70%,100%{transform:scale(1);filter:none}80%{transform:scale(1.35) rotate(15deg);filter:drop-shadow(0 0 5px rgba(232,199,122,.95))}}
@media(max-width:900px){.resena:nth-child(2){margin-top:0}}

/* --- TRATAMIENTOS: caracol + burbujas en hover + iconos que se mueven --- */
.con-caracol{overflow:hidden}
.caracol{position:absolute;bottom:14px;left:0;width:80px;z-index:3;animation:repta 70s linear infinite;pointer-events:none}
.caracol svg{overflow:visible;animation:estira 2.4s ease-in-out infinite;transform-origin:left bottom}
.caracol path,.caracol circle{stroke:var(--doodle);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;fill:none}
.caracol .pie-c,.caracol .cabeza-c{fill:#e8f4ea}
.caracol .concha{fill:var(--rosa-soft)}
.caracol .punta,.caracol .ojo-c{fill:var(--doodle);stroke:none}
.caracol .antena{animation:antenas 3s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}
@keyframes repta{from{transform:translateX(-120px)}to{transform:translateX(calc(100vw + 40px))}}
@keyframes estira{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.06)}}
@keyframes antenas{0%,100%{transform:rotate(0)}50%{transform:rotate(-8deg)}}
.cat{isolation:isolate}
.cat .ic{transition:transform .6s var(--ease),background .4s}
.cat:hover .ic{transform:rotate(-12deg) scale(1.1);background:var(--blue-soft)}
.cat .cat-foto::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle at 20% 100%,rgba(255,255,255,.9) 0 5px,transparent 6px),radial-gradient(circle at 45% 100%,rgba(255,255,255,.8) 0 8px,transparent 9px),radial-gradient(circle at 70% 100%,rgba(255,255,255,.85) 0 4px,transparent 5px),radial-gradient(circle at 88% 100%,rgba(255,255,255,.7) 0 6px,transparent 7px);background-size:100% 100%}
.cat:hover .cat-foto::before{opacity:1;animation:sube-burbujas 1.6s ease-out infinite}
@keyframes sube-burbujas{from{background-position:0 30px,0 50px,0 20px,0 40px}to{background-position:0 -260px,0 -200px,0 -280px,0 -230px}}

/* --- PRODUCTOS con profundidad --- */
#prodSec{overflow:hidden}
.prods{perspective:1200px}
.prod{transform:rotateY(calc(var(--mx,0)*9deg)) rotateX(calc(var(--my,0)*-9deg));transition:transform .45s var(--ease),box-shadow .5s var(--ease)}
.prod:hover{box-shadow:0 30px 60px -26px rgba(43,108,139,.5)}
.prod .vis:has(img){background:radial-gradient(circle at 50% 44%,#fff 0 30%,transparent 31%),radial-gradient(circle at 30% 20%,#fff 0%,var(--blue-soft) 55%,#d6eaf4 100%)!important}
.prod:nth-child(4n+2) .vis:has(img){background:radial-gradient(circle at 50% 44%,#fff 0 30%,transparent 31%),radial-gradient(circle at 30% 20%,#fff 0%,var(--rosa-soft) 55%,#f6d7e3 100%)!important}
.prod:nth-child(4n+3) .vis:has(img){background:radial-gradient(circle at 50% 44%,#fff 0 30%,transparent 31%),radial-gradient(circle at 30% 20%,#fff 0%,#eaf5ee 55%,#d3ebdd 100%)!important}
.prod:nth-child(4n) .vis:has(img){background:radial-gradient(circle at 50% 44%,#fff 0 30%,transparent 31%),radial-gradient(circle at 30% 20%,#fff 0%,#fbf3e2 55%,#f1e3c3 100%)!important}
.prod .vis:has(img)::after{content:"";position:absolute;left:28%;right:28%;bottom:9%;height:7%;border-radius:50%;background:radial-gradient(ellipse,rgba(22,50,70,.28),transparent 70%);animation:sombra-flota 5s ease-in-out infinite;z-index:0}
.prod .vis img{position:relative;z-index:1;padding:1.6rem 1.6rem 2.2rem!important;filter:drop-shadow(0 14px 14px rgba(22,50,70,.16));animation:flota-prod 5s ease-in-out infinite;translate:calc(var(--mx,0)*-18px) calc(var(--my,0)*-14px);transition:translate .4s var(--ease),scale .6s var(--ease)}
.prod:hover .vis img{transform:none;scale:1.07}
.prod:nth-child(2n) .vis img,.prod:nth-child(2n) .vis::after{animation-delay:-1.6s}
.prod:nth-child(3n) .vis img,.prod:nth-child(3n) .vis::after{animation-delay:-3.1s}
@keyframes flota-prod{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes sombra-flota{0%,100%{transform:scaleX(1);opacity:1}50%{transform:scaleX(.78);opacity:.6}}
/* reflejo brillante que cruza al pasar el ratón */
.prod .vis::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.65) 48%,transparent 60%);background-size:260% 100%;background-position:130% 0;transition:background-position 1.1s var(--ease)}
.prod:hover .vis::before{background-position:-40% 0}
#prodSec .burbujas i{opacity:.7}

/* --- clic: estallido de burbujas y estrellitas --- */
.estallido{position:fixed;width:0;height:0;z-index:9999;pointer-events:none}
.estallido i{position:absolute;left:0;top:0;border-radius:50%;animation:estalla .9s var(--ease) forwards}
.estallido .eb{width:10px;height:10px;margin:-5px;border:1px solid rgba(43,108,139,.35);background:radial-gradient(circle at 30% 30%,#fff 0 20%,rgba(156,203,225,.35) 60%,rgba(156,203,225,.1))}
.estallido .es{width:12px;height:12px;margin:-6px;border-radius:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f3a6c0' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E") center/contain no-repeat}
.estallido .es:nth-child(3n){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236aaecb' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E")}
@keyframes estalla{0%{transform:translate(0,0) scale(.3);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(90deg);opacity:0}}

/* =========== PERSONALIDAD DE CADA PÁGINA =========== */
.page-hero .wrap{position:relative;z-index:4}
.page-hero svg{overflow:visible}

/* Tratamientos · agua y spa */
.tema-agua{padding-bottom:clamp(5rem,9vw,7rem)}
.tema-agua .mancha.m1{background:radial-gradient(circle at 40% 40%,#c4ecea 0%,#8fd3d1 45%,rgba(143,211,209,0) 70%)}
.olas{position:absolute;left:0;right:0;bottom:-1px;height:70px;z-index:3;pointer-events:none;overflow:hidden}
.ola{position:absolute;left:0;right:0;bottom:0;height:100%;background-repeat:repeat-x;background-size:300px 100%}
.ola.o1{opacity:.7;bottom:10px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 60' preserveAspectRatio='none'%3E%3Cpath fill='%239ccbe1' fill-opacity='.45' d='M0 30C150 0 150 60 300 30V60H0z'/%3E%3C/svg%3E");animation:ola 12s linear infinite}
.ola.o2{height:80%;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 60' preserveAspectRatio='none'%3E%3Cpath fill='%23f1f8fc' d='M0 30C150 60 150 0 300 30V60H0z'/%3E%3C/svg%3E");animation:ola 8s linear infinite reverse}
@keyframes ola{from{background-position:0 0}to{background-position:-300px 0}}
.patito{position:absolute;right:14%;bottom:30px;width:74px;z-index:3;animation:flotar-pato 3.2s ease-in-out infinite;transform-origin:50% 100%}
.patito path,.patito circle{stroke:var(--doodle);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.patito .cuerpo-p{fill:#fbe39b}.patito .pico-p{fill:#f7b267}.patito .ojo-p{fill:var(--doodle);stroke:none}.patito .ala-p{fill:none}
@keyframes flotar-pato{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-7px) rotate(5deg)}}
.pg-servicios .filtros{border-top:none}

/* Productos · botánica, productos que levitan */
.tema-botanica .mancha.m1{background:radial-gradient(circle at 40% 40%,#dff0e6 0%,#b9dcc8 45%,rgba(185,220,200,0) 70%)}
.trio{position:absolute;right:max(3vw,calc(50% - 640px));top:50%;width:min(36vw,440px);aspect-ratio:1.2;transform:translateY(-38%);z-index:3;pointer-events:none}
.flotante{position:absolute;width:44%;animation:levita 6s ease-in-out infinite}
.flotante img{width:100%;filter:drop-shadow(0 22px 20px rgba(22,50,70,.2))}
.flotante i{position:absolute;left:18%;right:18%;bottom:-12%;height:9%;border-radius:50%;background:radial-gradient(ellipse,rgba(22,50,70,.22),transparent 70%);animation:sombra-flota 6s ease-in-out infinite}
.flotante.f1{left:4%;top:24%;width:40%;animation-delay:-1s}
.flotante.f2{left:34%;top:0;width:36%;animation-delay:-3s;z-index:2}
.flotante.f3{left:62%;top:30%;width:38%;animation-delay:-4.6s}
.flotante.f1 i{animation-delay:-1s}.flotante.f2 i{animation-delay:-3s}.flotante.f3 i{animation-delay:-4.6s}
@keyframes levita{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-16px) rotate(3deg)}}
.tema-botanica .chispas.ph .c1{top:22%;right:30%}.tema-botanica .chispas.ph .c2{top:64%;right:6%}.tema-botanica .chispas.ph .c3{top:20%;right:6%}
@media(max-width:900px){.trio{position:relative;right:auto;top:auto;transform:none;width:min(86vw,360px);margin:1.5rem auto -1rem}}
.como{position:relative}
.mariquita{position:absolute;top:-30px;left:0;width:30px;z-index:3;animation:pasea 22s ease-in-out infinite;pointer-events:none}
.mariquita path,.mariquita circle{stroke:var(--doodle);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;fill:none}
.mariquita .caparazon{fill:#f6a4a8}.mariquita .cabeza-m{fill:var(--doodle)}.mariquita .pt{fill:var(--doodle);stroke:none}
.mariquita .patitas{animation:patitas .25s linear infinite alternate}
@keyframes patitas{to{transform:translateY(1px)}}
@keyframes pasea{0%{transform:translateX(0) rotate(90deg)}45%{transform:translateX(calc(min(1180px,90vw) - 60px)) rotate(90deg)}50%{transform:translateX(calc(min(1180px,90vw) - 60px)) rotate(-90deg)}95%{transform:translateX(0) rotate(-90deg)}100%{transform:translateX(0) rotate(90deg)}}

/* Tarjeta · fiesta con confeti y regalo */
.tema-fiesta .mancha.m1{background:radial-gradient(circle at 40% 40%,#fde8f0 0%,#f3c3d5 45%,rgba(243,195,213,0) 70%)}
.confeti{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.confeti i{position:absolute;top:-20px;width:8px;height:12px;border-radius:2px;animation:cae linear infinite;opacity:.85}
.confeti .f1{background:var(--blue)}.confeti .f2{background:var(--rosa)}.confeti .f3{background:var(--oro)}.confeti .f4{background:var(--salvia)}
.confeti .k2{width:7px;height:7px;border-radius:50%}.confeti .k3{width:12px;height:4px}
@keyframes cae{0%{transform:translateY(0) rotate(0) rotateY(0)}100%{transform:translateY(560px) rotate(540deg) rotateY(720deg)}}
.regalo-d{position:absolute;right:max(6vw,calc(50% - 600px));bottom:12%;width:130px;z-index:3}
.regalo-d path,.regalo-d rect,.regalo-d circle{stroke:var(--doodle);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.regalo-d .caja-r{fill:#fff}.regalo-d .cinta{fill:none;stroke:var(--rosa);stroke-width:5}
.regalo-d .lazo{fill:var(--rosa-soft)}
.regalo-d .es{fill:var(--oro);stroke:none;opacity:0}.regalo-d .e2{fill:var(--rosa)}.regalo-d .e3{fill:var(--blue)}
.regalo-d .tapa{transform-box:fill-box;transform-origin:10% 100%;animation:tapa 4s ease-in-out infinite}
.regalo-d svg{animation:menea 4s ease-in-out infinite;transform-origin:50% 100%}
.regalo-d .es{animation:salta 4s ease-out infinite}
@keyframes tapa{0%,55%,100%{transform:none}65%,80%{transform:translateY(-10px) rotate(-14deg)}}
@keyframes menea{0%,40%,100%{transform:rotate(0)}44%{transform:rotate(-4deg)}48%{transform:rotate(4deg)}52%{transform:rotate(0)}}
@keyframes salta{0%,60%{opacity:0;transform:translateY(14px)}70%{opacity:1}90%{opacity:0;transform:translateY(-22px)}100%{opacity:0}}
@media(max-width:900px){.regalo-d{width:84px;right:5%;bottom:6%}}
/* tarjeta holográfica */
.pg-fidelidad .tarjeta::after,.pg-cuenta .tarjeta::after{background:linear-gradient(115deg,transparent 20%,rgba(243,166,192,.22) 35%,rgba(255,255,255,.28) 45%,rgba(156,203,225,.3) 55%,rgba(232,199,122,.22) 65%,transparent 80%);background-size:250% 100%;mix-blend-mode:screen}
.pg-fidelidad .tarjeta-ejemplo{position:relative}
.pg-fidelidad .tarjeta-ejemplo::before,.pg-fidelidad .tarjeta-ejemplo::after{content:"";position:absolute;width:22px;height:22px;z-index:2;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23e8c77a' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E") center/contain no-repeat;animation:titila 2.8s ease-in-out infinite}
.pg-fidelidad .tarjeta-ejemplo::before{top:-12px;left:8%}.pg-fidelidad .tarjeta-ejemplo::after{bottom:-10px;right:10%;animation-delay:-1.3s;width:16px;height:16px}
.reglas .n{transition:transform .5s var(--ease)}
.reglas li:hover .n{transform:rotate(-12deg) scale(1.15);background:var(--rosa-soft)}

/* Contacto · avión de papel y pin que bota */
.tema-viaje .mancha.m1{background:radial-gradient(circle at 40% 40%,#ece9fa 0%,#c9c2ec 45%,rgba(201,194,236,0) 70%)}
.vuelo-avion{position:absolute;right:max(3vw,calc(50% - 640px));top:28%;width:min(40vw,460px);aspect-ratio:400/140;z-index:3;pointer-events:none}
.vuelo-avion .ruta{position:absolute;inset:0;width:100%;height:100%}
.vuelo-avion .ruta path{fill:none;stroke:var(--blue-mid);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:2 8;vector-effect:non-scaling-stroke}
.avion{position:absolute;left:0;top:0;width:46px;offset-path:path("M10 120C80 120 90 40 160 50s60 70 120 40 70-80 110-80");offset-rotate:auto;animation:vuela-avion 8s ease-in-out infinite}
.avion svg{transform:rotate(14deg)}
.avion path{stroke:var(--doodle);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.avion .ala-a{fill:#fff}.avion .pliegue{fill:none}
@keyframes vuela-avion{0%{offset-distance:0%;opacity:0}8%{opacity:1}88%{opacity:1}100%{offset-distance:100%;opacity:0}}
@media(max-width:900px){.vuelo-avion{display:none}}
.mapa-wrap{position:relative}
.pin-d{position:absolute;top:-30px;right:28px;width:46px;z-index:5;pointer-events:none}
.pin-d svg{animation:bota 1.8s cubic-bezier(.3,0,.4,1) infinite}
.pin-c{fill:var(--rosa);stroke:var(--doodle);stroke-width:1.5}
.pin-h{fill:#fff}
.pin-sombra{display:block;width:26px;height:6px;margin:2px auto 0;border-radius:50%;background:rgba(22,50,70,.25);animation:sombra-pin 1.8s cubic-bezier(.3,0,.4,1) infinite}
@keyframes bota{0%,100%{transform:translateY(0)}45%{transform:translateY(-16px)}55%{transform:translateY(-16px)}}
@keyframes sombra-pin{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.55);opacity:.5}}
.pg-contacto .datos-contacto a .ic{transition:transform .5s var(--ease)}
.pg-contacto .datos-contacto a:hover .ic{transform:rotate(-12deg) scale(1.1)}

/* Mi cuenta · conejito y corazones */
.tema-cuenta .mancha.m1{background:radial-gradient(circle at 40% 40%,#fdeef3 0%,#f6cddb 45%,rgba(246,205,219,0) 70%)}
.corazones{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.corazones i{position:absolute;bottom:-30px;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f3a6c0' d='M12 21s-8.5-5.2-8.5-11.5A4.8 4.8 0 0 1 12 6.6a4.8 4.8 0 0 1 8.5 2.9C20.5 15.8 12 21 12 21z'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.7;animation:sube-corazon linear infinite}
.corazones i:nth-child(2n){width:12px;height:12px;filter:hue-rotate(170deg) saturate(.7)}
@keyframes sube-corazon{0%{transform:translateY(0) translateX(0) rotate(-10deg);opacity:0}15%{opacity:.75}100%{transform:translateY(-420px) translateX(24px) rotate(12deg);opacity:0}}
.cuenta-fuera{position:relative;padding-top:84px}
.conejito{position:absolute;top:8px;right:34px;width:96px;z-index:0;pointer-events:none}
.conejito svg{overflow:visible}
.conejito path,.conejito circle{stroke:var(--doodle);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.conejito .piel{fill:#fff}.conejito .int{fill:none;stroke:var(--rosa)}
.conejito .ojos-c circle{fill:var(--doodle);stroke:none}
.conejito .ojos-c{transform-box:fill-box;transform-origin:center;animation:parpadeo 4s infinite}
.conejito .nariz-c{fill:var(--rosa)}.conejito .boca-c{fill:none}
.conejito .oreja-d{transform-box:fill-box;transform-origin:0% 100%;animation:oreja 5s ease-in-out infinite}
.conejito .manita{transform-box:fill-box;transform-origin:20% 100%;animation:saluda 5s ease-in-out infinite}
@keyframes oreja{0%,70%,100%{transform:rotate(0)}76%{transform:rotate(14deg)}82%{transform:rotate(-4deg)}88%{transform:rotate(0)}}
@keyframes saluda{0%,20%,50%,100%{transform:rotate(0)}26%,38%{transform:rotate(-18deg)}32%,44%{transform:rotate(8deg)}}
.tabs-cuenta{position:relative;z-index:1}
.chispas.ph .ch{z-index:3}

/* Privacidad: tranquila */
.tema-legal .burbujas i:nth-child(n+4){display:none}

@media(prefers-reduced-motion:reduce){
  .resena::after,.resena .barrido::before,.resena .estrellas .ico,.datos-top .num,.caracol,.caracol svg,.prod .vis img,.prod .vis::after,.flotante,.flotante i,.mariquita,.confeti i,.regalo-d *,.regalo-d svg,.avion,.pin-d svg,.pin-sombra,.corazones i,.conejito *,.ola,.patito{animation:none!important}
  .confeti,.corazones,.estallido{display:none}
  .avion{offset-distance:60%}
}

/* =========================================================
   v9 · MENOS ANIMALITOS, EFECTOS DE CALIDAD EN CADA SECCIÓN
   ========================================================= */
.estallido{display:none!important}
.chispas.tr .c1{top:10%;right:6%}.chispas.tr .c2{top:16%;right:10%}.chispas.tr .c3{bottom:10%;left:4%}

/* títulos: la línea del kicker se dibuja al aparecer */
.rv .kicker::before,.rv .kicker.centro::after{width:0;transition:width 1s .25s var(--ease)}
.rv.visible .kicker::before,.rv.visible .kicker.centro::after{width:28px}

/* palabras en cursiva de los títulos: subrayado a mano que se traza */
.rv .h2 em{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 18' preserveAspectRatio='none'%3E%3Cpath d='M4 12C40 3 70 17 110 9s70-6 110 2 56 4 76-3' fill='none' stroke='%236aaecb' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 100%/0% .32em;padding-bottom:.1em;transition:background-size 1.4s .5s var(--ease)}
.rv.visible .h2 em{background-size:100% .32em}

/* fotos que se descubren con una cortina suave */
.rv-hijos .cat-foto,.rv-hijos .pop-foto{clip-path:inset(100% 0 0 0 round 0);transition:clip-path 1.3s var(--ease)}
.rv-hijos.visible .cat-foto,.rv-hijos.visible .pop-foto{clip-path:inset(0 0 0 0)}
.rv-hijos.visible > :nth-child(2) .cat-foto,.rv-hijos.visible > :nth-child(2) .pop-foto{transition-delay:.12s}
.rv-hijos.visible > :nth-child(3) .cat-foto,.rv-hijos.visible > :nth-child(3) .pop-foto{transition-delay:.24s}
.rv-hijos.visible > :nth-child(4) .cat-foto{transition-delay:.36s}.rv-hijos.visible > :nth-child(5) .cat-foto{transition-delay:.48s}
.cat-foto img{transform:scale(1.12);transition:transform 1.6s var(--ease)}
.rv-hijos.visible .cat-foto img{transform:scale(1)}
.cat:hover .cat-foto img{transform:scale(1.07)!important}

/* marquesina: palabras alternas en contorno */
.marquesina span:nth-child(even){color:transparent;-webkit-text-stroke:.8px var(--blue-deep)}

/* filosofía: iconos en una forma orgánica que respira */
.pilar .ic{border-radius:58% 42% 50% 50%/45% 55% 45% 55%;background:linear-gradient(135deg,var(--blue-soft),#f7e6ee);animation:blob 9s ease-in-out infinite}
.pilar:nth-child(2) .ic{animation-delay:-3s;background:linear-gradient(135deg,#eaf5ee,var(--blue-soft))}
.pilar:nth-child(3) .ic{animation-delay:-6s;background:linear-gradient(135deg,#fbf3e2,var(--blue-soft))}
@keyframes blob{0%,100%{border-radius:58% 42% 50% 50%/45% 55% 45% 55%}33%{border-radius:42% 58% 60% 40%/55% 45% 55% 45%}66%{border-radius:50% 50% 38% 62%/40% 60% 50% 50%}}
.pilar{position:relative;transition:padding .5s var(--ease)}
.pilar::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:linear-gradient(90deg,var(--blue-mid),var(--rosa));transition:width .8s var(--ease)}
.pilar:hover::after{width:100%}
.pilar:hover{padding-left:.6rem}

/* secciones oscuras y pie: aurora lenta + luz que sigue al ratón */
.sec.dark,footer{isolation:isolate}
.sec.dark::after,footer::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(420px circle at var(--lx,70%) var(--ly,20%),rgba(156,203,225,.16),transparent 60%),
             radial-gradient(60% 50% at 15% 110%,rgba(243,166,192,.13),transparent 70%),
             radial-gradient(50% 60% at 95% -10%,rgba(156,203,225,.18),transparent 70%);
  background-size:100% 100%,180% 180%,180% 180%;animation:aurora 18s ease-in-out infinite alternate}
@keyframes aurora{from{background-position:0 0,0% 0%,100% 0%}to{background-position:0 0,40% 30%,60% 40%}}
.paso h3{transition:transform .5s var(--ease),color .4s}
.paso:hover h3{transform:translateX(6px);color:var(--blue)}

/* preguntas frecuentes */
.faq details{position:relative;transition:background .4s}
.faq details::before{content:"";position:absolute;left:-1.2rem;top:1.6rem;bottom:1.6rem;width:2px;border-radius:2px;background:linear-gradient(var(--blue-mid),var(--rosa));transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease)}
.faq details:hover::before,.faq details[open]::before{transform:scaleY(1)}
.faq summary{transition:color .3s,padding .4s var(--ease)}
.faq summary:hover{color:var(--blue-deep)}
.faq details[open] .resp{animation:resp-in .6s var(--ease)}
@keyframes resp-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.faq summary:hover .mas{transform:rotate(90deg);border-color:var(--blue-mid)}

/* carta de tratamientos */
.carta-cat .lado .ic{border-radius:58% 42% 50% 50%/45% 55% 45% 55%;background:linear-gradient(135deg,var(--blue-soft),#f7e6ee);animation:blob 10s ease-in-out infinite}
.carta-cat .lado .n{display:block;font-size:3.4rem;line-height:1;font-style:italic;color:transparent;-webkit-text-stroke:1px var(--blue-mid);margin-bottom:.2rem}
.item{position:relative;transition:transform .5s var(--ease)}
.item::before{content:"";position:absolute;inset:.4rem -1.2rem;border-radius:var(--r-s);background:linear-gradient(90deg,var(--blue-soft),rgba(227,241,247,0));opacity:0;transform:scaleX(.9);transform-origin:left;transition:opacity .45s,transform .6s var(--ease);z-index:-1}
.item:first-child::before{top:-.8rem}
.item:hover::before{opacity:1;transform:none}
.carta-cat > div:last-child{position:relative;z-index:0}
.item-foto img{transition:transform .9s var(--ease)}
.item:hover .item-foto img{transform:scale(1.1) rotate(-2deg)}
.item h3 a{background:linear-gradient(var(--blue-mid),var(--blue-mid)) no-repeat 0 100%/0 1px;transition:background-size .5s var(--ease)}
.item:hover h3 a{background-size:100% 1px}

/* tarjeta de ejemplo: los sellos se llenan uno a uno */
.tarjeta-ejemplo .sello.lleno{animation:none;opacity:0;transform:scale(.3)}
.tarjeta-ejemplo.llenando .sello.lleno{animation:sello .55s var(--ease) both}
.tarjeta-ejemplo.llenando .sello:nth-child(2){animation-delay:.18s}.tarjeta-ejemplo.llenando .sello:nth-child(3){animation-delay:.36s}
.tarjeta-ejemplo.llenando .sello:nth-child(4){animation-delay:.54s}.tarjeta-ejemplo.llenando .sello:nth-child(5){animation-delay:.72s}
.tarjeta-ejemplo.llenando .sello:nth-child(6){animation-delay:.9s}.tarjeta-ejemplo.llenando .sello:nth-child(7){animation-delay:1.08s}
.tarjeta-ejemplo .sello.regalo{animation:latido 2.4s 1.6s ease-in-out infinite}
@keyframes latido{0%,100%{transform:scale(1)}12%{transform:scale(1.14)}24%{transform:scale(1)}}

/* mi cuenta: tarjeta del formulario con borde de luz */
.cuenta-fuera{padding-top:0}
.cuenta-fuera .caja{position:relative;isolation:isolate;box-shadow:0 30px 70px -40px rgba(43,108,139,.45)}
.cuenta-fuera .caja::after{content:"";position:absolute;inset:-1px;border-radius:calc(var(--r) + 1px);padding:1px;background:conic-gradient(from var(--ang),rgba(156,203,225,.2),#9ccbe1,#f3a6c0,rgba(156,203,225,.2) 45%,rgba(156,203,225,.2));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:gira-borde 9s linear infinite;pointer-events:none}
.campo input{transition:border-color .4s,box-shadow .4s}
.campo input:focus{box-shadow:0 8px 20px -14px rgba(43,108,139,.6)}

/* contacto */
.datos-contacto .ic{transition:background .4s,color .4s,transform .5s var(--ease)}
.datos-contacto a:hover .ic{background:var(--blue-deep);color:#fff;transform:rotate(-10deg)}
.mapa{transition:transform .6s var(--ease),box-shadow .6s}
.mapa-wrap:hover .mapa{transform:translateY(-4px);box-shadow:0 30px 60px -30px rgba(43,108,139,.5)}

/* detalle de servicio */
.det-foto{overflow:visible;isolation:isolate}
.det-foto img{border-radius:28px}
.det-foto::before{content:"";position:absolute;inset:0;border:1.5px solid var(--blue);border-radius:28px;transform:translate(16px,16px);z-index:-1;transition:transform .8s var(--ease)}
.det-foto:hover::before{transform:translate(8px,8px)}
.det-foto::after{content:"";position:absolute;top:-14px;left:-12px;width:28px;height:28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%236aaecb' d='M12 1c.6 5.6 2.3 9.4 11 11-8.7 1.6-10.4 5.4-11 11-.6-5.6-2.3-9.4-11-11 8.7-1.6 10.4-5.4 11-11z'/%3E%3C/svg%3E") center/contain no-repeat;animation:titila 3.2s ease-in-out infinite}
.rv .lista-check li{opacity:0;transform:translateX(-14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.visible .lista-check li{opacity:1;transform:none}
.rv.visible .lista-check li:nth-child(2){transition-delay:.15s}.rv.visible .lista-check li:nth-child(3){transition-delay:.3s}
.lista-check .ico{transition:transform .5s var(--ease)}
.lista-check li:hover .ico{transform:rotate(-12deg) scale(1.12)}

/* hero de páginas: menos movimiento */
.tema-fiesta .confeti i{opacity:.6}

@media(prefers-reduced-motion:reduce){
  .pilar .ic,.carta-cat .lado .ic,.sec.dark::after,footer::after,.cuenta-fuera .caja::after,.tarjeta-ejemplo .sello.regalo{animation:none!important}
  .tarjeta-ejemplo .sello.lleno{opacity:1;transform:none}
  .rv-hijos .cat-foto,.rv-hijos .pop-foto{clip-path:none}
}
.reserva-banda{position:relative;overflow:hidden;isolation:isolate}
.reserva-banda::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(380px circle at var(--lx,80%) var(--ly,10%),rgba(156,203,225,.3),transparent 60%),radial-gradient(40% 70% at 0% 100%,rgba(243,166,192,.18),transparent 70%);background-size:160% 160%;animation:aurora 14s ease-in-out infinite alternate}
.reserva-banda .h2 em{background:none}

/* =========================================================
   v10 · LIMPIO Y PROFESIONAL — el movimiento solo en productos y opiniones
   ========================================================= */
.ola{animation:none!important}
.ola.o1{opacity:.5}
.pilar .ic,.carta-cat .lado .ic{animation:none!important;border-radius:50%}
.sec.dark::after,footer::after{animation:none!important;background:radial-gradient(60% 50% at 15% 110%,rgba(243,166,192,.1),transparent 70%),radial-gradient(50% 60% at 95% -10%,rgba(156,203,225,.16),transparent 70%)!important}
.reserva-banda::after{animation:none!important;background:radial-gradient(50% 80% at 100% 0%,rgba(156,203,225,.3),transparent 70%)!important}
.cuenta-fuera .caja::after{animation:none!important;background:linear-gradient(135deg,#9ccbe1,rgba(156,203,225,.15) 40%,rgba(243,166,192,.15) 70%,#f3a6c0)!important;opacity:.6}
.tarjeta-ejemplo .sello.regalo{animation:none!important}
.pg-fidelidad .tarjeta-ejemplo::before,.pg-fidelidad .tarjeta-ejemplo::after,.det-foto::after{display:none!important}
.cab.centro .h2::after{display:none!important}
.btn:not(.linea):not(.peq)::before{display:none!important}
.marquesina span::after{width:5px!important;height:5px!important;border-radius:50%!important;background:var(--blue-mid)!important}
.marquesina span:nth-child(even){-webkit-text-stroke:0;color:var(--ink-soft)}
.chispas.op .c5,.chispas.op .c6{display:none}
.trio .flotante{animation-duration:8s}
.flotante.f1,.flotante.f3{animation-name:levita-suave}
@keyframes levita-suave{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* =========================================================
   v11 · sin separadores, carta por categorías, productos más limpios
   ========================================================= */
.sec + .sec::before,.marquesina + .sec::before,.sec.sep-estrellas::before,.sec.sep-corazon::before,.sec.sep-hoja::before,.sec.sep-burbujas::before{display:none!important}
.cat .num{display:none}

/* productos: sin el disco blanco, solo un degradado de color suave */
.prod .vis:has(img){background:radial-gradient(70% 60% at 50% 42%,rgba(255,255,255,.75),rgba(255,255,255,0) 70%),linear-gradient(160deg,#eef7fb,#d5eaf4)!important}
.prod:nth-child(4n+2) .vis:has(img){background:radial-gradient(70% 60% at 50% 42%,rgba(255,255,255,.75),rgba(255,255,255,0) 70%),linear-gradient(160deg,#fdf1f5,#f5d9e4)!important}
.prod:nth-child(4n+3) .vis:has(img){background:radial-gradient(70% 60% at 50% 42%,rgba(255,255,255,.75),rgba(255,255,255,0) 70%),linear-gradient(160deg,#f0f8f3,#d6ecdf)!important}
.prod:nth-child(4n) .vis:has(img){background:radial-gradient(70% 60% at 50% 42%,rgba(255,255,255,.75),rgba(255,255,255,0) 70%),linear-gradient(160deg,#fcf6ea,#f1e3c6)!important}

/* cabecera de productos con más color */
.tema-botanica{background:linear-gradient(120deg,#e4f3ea 0%,#e6f2f9 45%,#fbe7ef 100%)}
.tema-botanica .mancha.m1{background:radial-gradient(circle at 40% 40%,#cfe9da 0%,#a9d6bd 45%,rgba(169,214,189,0) 70%);opacity:.9}
.tema-botanica .mancha.m2{background:radial-gradient(circle,#f6cbdc 0%,rgba(246,203,220,0) 70%);opacity:.8}
.tema-botanica .mancha.m3{background:radial-gradient(circle,#b9dcef 0%,rgba(185,220,239,0) 70%);opacity:.9}
.tema-botanica .kicker{color:#2f7a5a}
.tema-botanica .h-display{color:#163246}
.tema-botanica .trio::before{content:"";position:absolute;inset:6% 8% 0;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.85),rgba(255,255,255,0) 68%);z-index:-1}
#prodSec{background:linear-gradient(180deg,var(--ivory) 0%,#eef6f1 40%,#fbf0f4 100%)}

/* ---- TRATAMIENTOS: elige categoría, ves solo esa ---- */
.pg-servicios .page-hero{padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.carta-nav{padding:clamp(1rem,2vw,1.6rem) 0 0}
.cat-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem}
.cat-tab{position:relative;display:flex;flex-direction:column;text-align:left;padding:0;border:1px solid var(--line-2);border-radius:var(--r-s);background:var(--paper);overflow:hidden;cursor:pointer;transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s}
.cat-tab:hover{transform:translateY(-3px);box-shadow:var(--sombra)}
.ct-foto{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--sand)}
.ct-foto img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease),filter .4s}
.cat-tab:not(.on) .ct-foto img{filter:saturate(.75)}
.cat-tab:hover .ct-foto img{transform:scale(1.06)}
.ct-txt{display:flex;flex-direction:column;padding:.8rem 1rem .9rem}
.ct-txt b{font-family:var(--serif);font-weight:500;font-size:1.2rem;line-height:1.15}
.ct-txt small{font-size:.74rem;color:var(--muted);margin-top:.15rem}
.cat-tab.on{border-color:var(--blue-deep);box-shadow:0 14px 30px -18px rgba(43,108,139,.6)}
.cat-tab.on .ct-txt{background:var(--blue-deep);color:#fff}
.cat-tab.on .ct-txt small{color:#cfe4ee}
.carta-nav .buscador{margin-top:1rem;max-width:360px}
@media(max-width:900px){
  .cat-tabs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.7rem;margin:0 calc(var(--pad)*-1);padding:0 var(--pad) .4rem;scrollbar-width:none}
  .cat-tabs::-webkit-scrollbar{display:none}
  .cat-tab{flex:0 0 42%;scroll-snap-align:start}
  .carta-nav .buscador{max-width:none}
}
.carta-sec{padding-top:clamp(2rem,4vw,3rem)}
.carta-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.6rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.carta-cab p{color:var(--ink-soft);margin-top:.4rem;max-width:60ch}
.carta-n{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blue-deep)}
.srv-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;animation:resp-in .5s var(--ease)}
@media(max-width:800px){.srv-grid{grid-template-columns:1fr}}
.srv{display:grid;grid-template-columns:92px 1fr;gap:1.1rem;padding:1rem;border-radius:var(--r-s);background:var(--paper);border:1px solid var(--line-2);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.srv:hover{transform:translateY(-2px);box-shadow:var(--sombra);border-color:var(--blue)}
.srv-foto{display:block;width:92px;height:92px;border-radius:12px;overflow:hidden;background:var(--sand)}
.srv-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.srv:hover .srv-foto img{transform:scale(1.08)}
.srv-txt{display:flex;flex-direction:column;min-width:0}
.srv-cat{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--blue-deep)}
.srv-top{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem}
.srv-top b{font-family:var(--serif);font-weight:500;font-size:1.22rem;line-height:1.2}
.srv-precio{font-family:var(--serif);font-size:1.2rem;color:var(--blue-deep);white-space:nowrap}
.srv-desc{font-size:.86rem;color:var(--ink-soft);line-height:1.5;margin-top:.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.srv-pie{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:.5rem;font-size:.74rem;color:var(--muted)}
.srv-pie .dur{display:inline-flex;align-items:center;gap:.35em}
.srv-pie .dur .ico{width:14px;height:14px}
.srv-mas{display:inline-flex;align-items:center;gap:.4em;letter-spacing:.16em;text-transform:uppercase;font-size:.66rem;color:var(--blue-deep)}
.srv-mas .ico{width:14px;height:14px;transition:transform .4s var(--ease)}
.srv:hover .srv-mas .ico{transform:translateX(4px)}
.carta-sec .nota-deco{margin-top:1.4rem}
.carta-nav .buscador{width:100%;max-width:380px}@media(max-width:900px){.carta-nav .buscador{max-width:none}}

/* =========================================================
   v12 · correcciones para móvil
   ========================================================= */
@media(max-width:700px){
  /* trazo bajo el título: solo bajo la última línea, sin salirse */
  .garabato{display:none}
  .h-display em{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 18' preserveAspectRatio='none'%3E%3Cpath d='M4 12C40 3 70 17 110 9s70-6 110 2 56 4 76-3' fill='none' stroke='%236aaecb' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat 0 100%/100% .22em;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-bottom:.06em}
  /* opiniones: rectas, sin estrellitas pegadas al borde de la pantalla */
  .resena,.resena:hover{--rot:0deg!important;transform:none!important;margin-top:0!important}
  .resena .ch.c2,.chispas.op{display:none}
  .resena .ch.c1{left:22px}
  /* números: Booksy y Google uno al lado del otro */
  .datos-top{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
  .datos-top .dato{min-width:0}
  .datos-top .dato.oculto + .dato{grid-column:auto}
  .datos-top .num{font-size:2.6rem}
  /* categorías del inicio: tarjetas compactas en 2 columnas */
  #cats{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
  #cats .cat{min-height:0;padding:0}
  #cats .cat-foto{aspect-ratio:1/1}
  #cats .cat > div:not(.cat-foto){padding:.8rem .9rem 0}
  #cats .cat .ic{display:none}
  #cats .cat h3{font-size:1.2rem;margin-top:0}
  #cats .cat p{font-size:.76rem;line-height:1.4}
  #cats .cat .pie{margin:.6rem .9rem .9rem;padding-top:.6rem;font-size:.6rem;letter-spacing:.12em}
  #cats .cat:last-child{grid-column:1/-1}
  #cats .cat:last-child .cat-foto{aspect-ratio:2/1}
  /* carta: nombre y precio sin apretarse */
  .srv{grid-template-columns:72px 1fr;gap:.8rem;padding:.8rem}
  .srv-foto{width:72px;height:72px}
  .srv-top b{font-size:1.1rem}
  /* productos: sin inclinación 3D en el móvil */
  .prod{transform:none!important}
  .prod .vis img{translate:none!important}
}
@media(max-width:700px){#cats .cat .pie{letter-spacing:.06em;font-size:.58rem;white-space:nowrap;gap:.3rem}#cats .cat .pie .ico{width:14px;height:14px}}
.olvido-linea{margin-top:1rem;text-align:center}
.enlace-boton{background:none;border:none;padding:0;cursor:pointer;font:inherit;font-size:.86rem;color:var(--blue-deep);text-decoration:underline;text-underline-offset:3px}
.caja-tit{font-family:var(--serif);font-weight:500;font-size:1.5rem}

/* bonos con descuento (presoterapia) */
.bonos{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;align-items:stretch}
@media(max-width:800px){.bonos{grid-template-columns:1fr}}
.bono{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;padding:2rem 1.4rem 1.6rem;border-radius:var(--r);background:var(--paper);border:1px solid var(--line-2);transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.bono:hover{transform:translateY(-4px);box-shadow:var(--sombra)}
.bono.top{border:1.5px solid var(--blue-deep);box-shadow:0 26px 60px -30px rgba(43,108,139,.55);background:linear-gradient(180deg,#fff,var(--blue-soft))}
.bono-tag{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--blue-deep);color:#fff;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;padding:.45em 1.1em;border-radius:100px;white-space:nowrap}
.bono-n{display:flex;align-items:baseline;gap:.4rem}
.bono-n b{font-family:var(--serif);font-weight:400;font-size:3.2rem;line-height:1;color:var(--blue-deep)}
.bono-n span{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.bono-precio{font-family:var(--serif);font-size:2rem;color:var(--ink);margin-top:.4rem}
.bono-por{font-size:.86rem;color:var(--ink-soft)}
.bono-ahorro{font-size:.78rem;font-weight:500;color:#23845a;background:#e3f5ec;border-radius:100px;padding:.3em .9em;margin:.4rem 0 1rem}
.bono-ahorro.vacio{background:none}
.bono .btn{margin-top:auto}
.srv-bono{align-self:flex-start;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#23845a;background:#e3f5ec;border-radius:100px;padding:.25em .7em;margin-bottom:.3rem}

/* ===== PRESOTERAPIA en evidencia ===== */
.pill-nuevo{display:inline-flex;align-items:center;gap:.6rem;padding:.35rem .9rem .35rem .4rem;margin-bottom:1.4rem;border-radius:100px;background:#fff;border:1px solid var(--line);box-shadow:0 8px 24px -14px rgba(43,108,139,.5);font-size:.8rem;color:var(--ink-2);transition:transform .4s var(--ease),box-shadow .4s}
.pill-nuevo:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(43,108,139,.6)}
.pill-nuevo b{background:linear-gradient(135deg,#f08aae,#e2588a);color:#fff;font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:.35em .8em;border-radius:100px}
.pill-nuevo .ico{width:14px;height:14px;color:var(--blue-deep)}
.pill-nuevo.solo{padding:.3rem;margin-bottom:.8rem;box-shadow:none;border:none;background:none}
.promo-presso{background:linear-gradient(135deg,#eaf5fb 0%,#f7eef4 55%,#fdf6ee 100%);overflow:hidden}
.promo-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
@media(max-width:900px){.promo-grid{grid-template-columns:1fr}}
.promo-foto{position:relative;border-radius:200px 200px 28px 28px;overflow:visible}
.promo-foto img{width:100%;aspect-ratio:9/10;object-fit:cover;border-radius:200px 200px 28px 28px;box-shadow:var(--sombra-2)}
.promo-sello{position:absolute;top:8%;right:-14px;width:92px;height:92px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f08aae,#e2588a);color:#fff;box-shadow:0 14px 30px -12px rgba(226,88,138,.7);transform:rotate(12deg)}
.promo-sello b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:1.35rem}
.promo-oferta{position:absolute;left:-14px;bottom:10%;display:flex;align-items:center;gap:.7rem;background:#fff;border-radius:16px;padding:.8rem 1.1rem;box-shadow:var(--sombra)}
.promo-oferta b{font-family:var(--serif);font-size:1.9rem;color:#e2588a;line-height:1}
.promo-oferta span{font-size:.78rem;color:var(--ink-soft);max-width:12ch;line-height:1.3}
@media(max-width:600px){.promo-sello{right:6px;width:76px;height:76px}.promo-oferta{left:8px}}
.promo-puntos{list-style:none;display:grid;gap:.7rem;margin-top:1.4rem}
.promo-puntos li{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;color:var(--ink-2)}
.promo-puntos .ico{width:26px;height:26px;padding:5px;border-radius:50%;background:#fff;color:var(--blue-deep);stroke-width:2}
.promo-precios{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem;margin-top:1.6rem}
.promo-precios > div{position:relative;background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:.8rem .9rem;display:flex;flex-direction:column}
.promo-precios > div.top{border:1.5px solid var(--blue-deep)}
.promo-precios small{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.promo-precios b{font-family:var(--serif);font-weight:400;font-size:1.6rem;color:var(--ink)}
.promo-precios i{position:absolute;top:-9px;right:8px;font-style:normal;font-size:.66rem;font-weight:500;color:#fff;background:#23845a;border-radius:100px;padding:.15em .55em}
@media(max-width:480px){.promo-precios{grid-template-columns:1fr 1fr 1fr;gap:.45rem}.promo-precios b{font-size:1.25rem}.promo-precios small{font-size:.56rem;letter-spacing:.04em}}
.srv-chips{display:flex;gap:.35rem;flex-wrap:wrap}
.srv-chips .srv-bono{margin-bottom:.3rem}
.srv-nuevo{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#f08aae,#e2588a);border-radius:100px;padding:.25em .7em;margin-bottom:.3rem}
.srv.destacado{border:1.5px solid #f2b6cb;background:linear-gradient(135deg,#fff,#fdf1f6)}
.det-oferta{display:flex;align-items:center;gap:.6rem;margin-top:1rem;padding:.7rem 1rem;border-radius:14px;background:#fdeef4;color:#b23a68;font-size:.92rem}
.det-oferta .ico{width:20px;height:20px;flex:none}
/* banner presoterapia */
.upsell{display:grid;grid-template-columns:140px 1fr auto;gap:1.6rem;align-items:center;padding:1.2rem 1.6rem 1.2rem 1.2rem;border-radius:var(--r);background:linear-gradient(120deg,#fdf1f6 0%,#eef7fb 100%);border:1.5px solid #f2c4d5;box-shadow:0 24px 50px -36px rgba(226,88,138,.55)}
.up-foto{display:block;width:140px;height:140px;border-radius:50%;overflow:hidden;box-shadow:var(--sombra)}
.up-foto img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.upsell:hover .up-foto img{transform:scale(1.07)}
.up-kick{display:inline-block;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,#f08aae,#e2588a);border-radius:100px;padding:.35em .9em}
.up-txt h3{font-family:var(--serif);font-weight:500;font-size:1.6rem;line-height:1.15;margin:.5rem 0 .3rem}
.up-txt p{font-size:.92rem;color:var(--ink-soft);max-width:60ch}
.up-precios{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}
.up-precios span{font-size:.78rem;background:#fff;border:1px solid var(--line-2);border-radius:100px;padding:.25em .8em;color:var(--ink-2)}
.up-precios span.top{border-color:#23845a;color:#23845a;font-weight:500}
@media(max-width:800px){.upsell{grid-template-columns:90px 1fr;padding:1rem}.up-foto{width:90px;height:90px}.up-btn{grid-column:1/-1;justify-self:stretch}.up-txt h3{font-size:1.3rem}}
.carta-upsell{margin-bottom:1.6rem}
@media(max-width:800px){.upsell{align-items:start}}
.bono-precio s,.promo-precios s,.up-precios s{font-size:.55em;color:var(--muted);margin-left:.2em}
.bono.primera{border:1.5px solid #f2b6cb;background:linear-gradient(180deg,#fff,#fdf1f6)}
.bono-tag.rosa{background:linear-gradient(135deg,#f08aae,#e2588a)}
.up-precios span.primera{border-color:#e2588a;color:#b23a68;font-weight:500}
.up-precios span.primera s{font-size:.9em}
.promo-precios > div.primera{border:1.5px solid #f2b6cb;background:#fff}
.promo-precios i.rosa{background:#e2588a}
.promo-oferta b{white-space:nowrap}
.det-datos s.tachado{font-size:.6em;color:var(--muted)}.det-prima{font-family:var(--sans);font-size:.42em;letter-spacing:.12em;text-transform:uppercase;color:#b23a68;background:#fdeef4;border-radius:100px;padding:.3em .8em;vertical-align:middle;margin-left:.3em}
/* foto presoterapia (orizzontale) */
img[src*="presoterapia"]{object-position:68% 50%}
.promo-foto,.promo-foto img{border-radius:28px}
.promo-foto img{aspect-ratio:4/3}
.det-foto.ancha{aspect-ratio:4/3;align-self:center}
@media(max-width:900px){.det-foto.ancha{aspect-ratio:4/3}}

/* =========================================================
   v13 · allineamenti mobile
   ========================================================= */
@media(max-width:600px){
  /* pulsanti: tutti a tutta larghezza, uno sotto l'altro, centrati */
  .btns{flex-direction:column;align-items:stretch;gap:.7rem}
  .btns .btn{width:100%;justify-content:center}
  .reserva-banda{text-align:left}
  .reserva-banda .btns{width:100%}
  /* timbro con il logo nella foto del titolo: dentro lo schermo */
  .hero-visual .hero-sello{left:8px}
  /* cornice sfalsata della foto: niente sbordi */
  .det-foto::before{transform:translate(8px,8px)}
  .det-foto{margin-right:8px}
  /* prezzi della presoterapia in home: centrati */
  .promo-precios > div{align-items:center;text-align:center;padding:.9rem .4rem .7rem}
  .promo-precios b{display:flex;flex-direction:column;align-items:center;line-height:1.1}
  .promo-precios b s{margin:0}
  .promo-precios i{right:50%;transform:translateX(50%)}
  .promo-grid .btns{margin-top:1.4rem!important}
  /* banner presoterapia: foto in alto, testo sotto */
  .upsell{grid-template-columns:1fr;gap:1rem;padding:0 0 1.2rem;overflow:hidden;text-align:left}
  .up-foto{width:100%;height:auto;aspect-ratio:16/9;border-radius:0}
  .up-txt,.up-btn{margin:0 1.1rem}
  .up-btn{justify-self:stretch;justify-content:center}
  .up-kick{white-space:normal}
  /* pacchetti nella pagina: card più compatte */
  .bono{padding:1.6rem 1.2rem 1.3rem}
  /* scheda trattamento: piede su una riga */
  .srv-pie{gap:.6rem}
  .srv-pie .dur .ico{width:13px;height:13px}
  .hero-meta{gap:.6rem 1.2rem}
}
.srv-pie .dur .ico.fill{color:#25d366}

/* ===== carta fedeltà 3D: fronte e retro ===== */
.tarjeta-escena{perspective:1400px;display:flex;flex-direction:column;align-items:center;gap:.9rem}
.tarjeta-giro{position:relative;display:grid;width:100%;max-width:440px;margin:0 auto;transform-style:preserve-3d;cursor:pointer;
  transform:rotateX(var(--rx,0deg)) rotateY(calc(var(--flip,0deg) + var(--ry,0deg)));transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.tarjeta-giro.girada{--flip:180deg}
.tarjeta-giro > .tarjeta{grid-area:1/1;margin:0;max-width:none;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.tarjeta-giro .cara-retro{transform:rotateY(180deg);background:linear-gradient(135deg,#e9f4fa 0%,#cfe6f1 55%,#f6dce7 100%);color:var(--ink)}
.tarjeta-giro .cara-retro::before{background:radial-gradient(circle,rgba(255,255,255,.8) 0%,rgba(255,255,255,0) 65%)}
.retro-top{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}
.retro-top .ico{width:30px;height:30px;color:#e2588a}
.cara-retro .mk{color:var(--blue-deep)}
.retro-reglas{display:grid;gap:.6rem;position:relative;z-index:1}
.retro-reglas div{display:flex;align-items:center;gap:.8rem}
.retro-reglas b{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,5vw,2.1rem);color:var(--blue-deep);min-width:2.2ch;text-align:center;line-height:1}
.retro-reglas span{font-size:.86rem;color:var(--ink-2)}
.retro-pie{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.3rem 1rem;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);position:relative;z-index:1;border-top:1px solid rgba(22,50,70,.12);padding-top:.7rem}
.girar-tarjeta{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);background:var(--paper);border-radius:100px;padding:.5em 1.1em;font:inherit;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--blue-deep);cursor:pointer;transition:transform .4s var(--ease),box-shadow .4s}
.girar-tarjeta:hover{transform:translateY(-2px);box-shadow:var(--sombra)}
.girar-tarjeta .ico{width:16px;height:16px;transition:transform .6s var(--ease)}
.girar-tarjeta:hover .ico{transform:rotate(180deg)}
/* i timbri della carta d'esempio: non devono "scomparire" con il retro */
.tarjeta-giro .tarjeta{transform-style:flat}

/* ===== recensioni su telefono: centrate ===== */
@media(max-width:600px){
  .resena{text-align:center;align-items:center}
  .resena .estrellas{justify-content:center}
  .pie-resena{flex-direction:column;align-items:center;text-align:center;gap:.6rem}
  .pie-resena > div{flex:none}
  .resena .ch.c1{left:50%}
  .resena::before{right:50%;transform:translateX(50%);top:-.6rem;opacity:.25}
}

/* ===== logo chiaro a piè di pagina ===== */
.footer-top .footer-logo{background:#fbfeff;border-radius:22px;padding:14px 26px;width:min(250px,62vw);box-shadow:0 20px 40px -24px rgba(0,0,0,.45)}
footer .horario .fila span:last-child{white-space:nowrap}footer .horario .fila{gap:.8rem}

/* carta 3D: rotazione stabile (anche Safari/iPhone) */
.tarjeta-giro{transform:rotateY(var(--flip,0deg));-webkit-transform-style:preserve-3d;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.3,.7,.2,1);will-change:transform}
.tarjeta-giro > .tarjeta{transition:none;transform:rotateY(0deg) translateZ(1px);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.tarjeta-giro > .cara-retro{transform:rotateY(180deg) translateZ(1px)}
.tarjeta-giro .tarjeta *{-webkit-backface-visibility:hidden;backface-visibility:hidden}
.tarjeta-giro .tarjeta::after{animation:none}
.tarjeta-giro .sello.lleno{animation:none}
.reglas li{align-items:start}

/* =========================================================
   v14 · sfondo con più vita + separatori a ghirigoro (non tagliati)
   ========================================================= */
.sec{isolation:isolate}
.sec > .wrap{position:relative;z-index:1}
/* macchie di acquerello morbide, diverse da sezione a sezione */
.sec::after{content:"";position:absolute;z-index:0;pointer-events:none;width:min(560px,70vw);aspect-ratio:1;border-radius:50%;filter:blur(40px);opacity:.55;
  background:radial-gradient(circle,#cfe7f3 0%,rgba(207,231,243,0) 68%);top:-120px;right:-180px}
.sec:nth-of-type(2n)::after{background:radial-gradient(circle,#f9dbe7 0%,rgba(249,219,231,0) 68%);left:-200px;right:auto;top:auto;bottom:-160px}
.sec:nth-of-type(3n)::after{background:radial-gradient(circle,#dff0e6 0%,rgba(223,240,230,0) 68%);right:-160px;top:30%}
.sec.dark::after{display:none}
/* trama a puntini leggera sulle sezioni chiare */
.sec.paper{background-image:radial-gradient(rgba(43,108,139,.09) 1px,transparent 1.3px);background-size:22px 22px}
/* ghirigori tra le sezioni: dentro la sezione, mai tagliati */
.sec.sep-estrellas::before,.sec.sep-corazon::before,.sec.sep-hoja::before,.sec.sep-burbujas::before{display:block!important;content:"";position:absolute;left:50%;top:clamp(14px,2.4vw,26px)!important;transform:translateX(-50%)!important;width:170px!important;height:34px!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;opacity:.9!important;z-index:2}
#filosofia.sep-burbujas::before{top:clamp(14px,2.4vw,26px)!important}
@media(max-width:600px){.sec::after{width:85vw;filter:blur(30px)}}

/* logo a piè di pagina: medaglione con bordo a onde */
.footer-top .footer-logo{width:190px!important;height:190px;object-fit:contain;padding:30px!important;background:#fbfeff;border-radius:50%!important;
  box-shadow:0 0 0 8px rgba(255,255,255,.12),0 0 0 9px rgba(156,203,225,.55),0 26px 50px -24px rgba(0,0,0,.5)}
@media(max-width:600px){.footer-top .footer-logo{width:150px!important;height:150px;padding:22px!important}}
.sec{overflow-x:clip}

/* v15 seo: breadcrumb + footer trattamenti */
.migas{display:flex;flex-wrap:wrap;gap:.35rem;font-size:.82rem;color:#6b7c86;margin:0 0 1rem}
.migas a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}
.migas a:hover{color:#2b6c8b}
.migas span[aria-hidden]{opacity:.5}
.footer-grid ul.trat li{margin:.25rem 0}
@media(max-width:1100px){.footer-grid{grid-template-columns:1fr 1fr 1fr}}

/* =========================================================
   v16 · sfondo diverso per ogni pagina + foto più vive e azzurre
   ========================================================= */
body{--fa:#bfe3f3;--fb:#f8d9e6;--fc:#d4ecf6;--motivo:none}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    var(--motivo),
    radial-gradient(42vmax 36vmax at 6% 12%,var(--fa) 0%,transparent 70%),
    radial-gradient(38vmax 34vmax at 96% 38%,var(--fb) 0%,transparent 70%),
    radial-gradient(46vmax 40vmax at 30% 104%,var(--fc) 0%,transparent 72%);
  opacity:.75}
/* motivi leggeri, uno per pagina */
.pg-index{--fa:#bde2f4;--fb:#f9d6e4;--fc:#cfeaf6}
.pg-servicios{--fa:#a9daf0;--fb:#dcd6f6;--fc:#c3e9f2;
  --motivo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40'%3E%3Cpath d='M0 20 Q15 8 30 20 T60 20 T90 20 T120 20' fill='none' stroke='%232b6c8b' stroke-opacity='.07' stroke-width='1.4'/%3E%3C/svg%3E")}
.pg-productos{--fa:#cdeedd;--fb:#bfe0f2;--fc:#e6f3d9;
  --motivo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cpath d='M35 22c6 6 6 14 0 22-6-8-6-16 0-22z' fill='%232b6c8b' fill-opacity='.05'/%3E%3C/svg%3E")}
.pg-fidelidad{--fa:#f9d3e2;--fb:#bfe1f3;--fc:#fbe7c8;
  --motivo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cpath d='M40 30l2.4 5.6 5.6 2.4-5.6 2.4L40 46l-2.4-5.6L32 38l5.6-2.4z' fill='%232b6c8b' fill-opacity='.08'/%3E%3C/svg%3E")}
.pg-contacto{--fa:#bfe3f3;--fb:#fde0cf;--fc:#d2eef0;
  --motivo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26'%3E%3Ccircle cx='13' cy='13' r='1.3' fill='%232b6c8b' fill-opacity='.08'/%3E%3C/svg%3E")}
.pg-centro{--fa:#c9e6f5;--fb:#f5dbe8;--fc:#d9efe3}
.pg-cuenta,.pg-privacidad{--fa:#cde8f5;--fb:#e3e0f7;--fc:#d6edf6}
/* pagine dei trattamenti: colore secondo la categoria */
.pg-servicio{--motivo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40'%3E%3Cpath d='M0 20 Q15 8 30 20 T60 20 T90 20 T120 20' fill='none' stroke='%232b6c8b' stroke-opacity='.06' stroke-width='1.4'/%3E%3C/svg%3E")}
.cat-manos{--fa:#f9d3df;--fb:#bfe2f3;--fc:#fde6d8}
.cat-unas{--fa:#dfd5f6;--fb:#bfe2f3;--fc:#f6d8e6}
.cat-relax{--fa:#a8dcef;--fb:#c9eee8;--fc:#d9e9fb}
.cat-mirada{--fa:#fbe2cc;--fb:#bfe2f3;--fc:#f3d7e4}
.cat-depilacion{--fa:#cdeedd;--fb:#bfe1f3;--fc:#f9dbe6}
@media(max-width:700px){body::before{opacity:.6}}

/* foto: più luce, più colore, un velo azzurro */
.srv-foto img,.det-foto img,.pop-foto img,.cat-foto img,.ct-foto img,.up-foto img,.hero-visual img,.page-hero img,.carta-cat img,.promo-presso img{
  filter:url(#ng-azzurro) saturate(1.12) contrast(1.04) brightness(1.03)}

/* =========================================================
   v17 · MAGIA: aurora che cambia colore, icone animate,
   brillantini, bolle di sapone, testo iridescente
   ========================================================= */
body{--fd:#e2d3f7;--fe:#ffe6c7}
body::before{display:none}
.pg-index{--fd:#d9ccf6;--fe:#ffe1ec}
.pg-servicios{--fd:#f7d3e6;--fe:#c9f0ea}
.pg-productos{--fd:#fbe7c8;--fe:#d6ecfb}
.pg-fidelidad{--fd:#e2d3f7;--fe:#c6ecf7}
.pg-contacto{--fd:#f7d6e8;--fe:#d4f0e2}
.cat-manos{--fd:#e7d6f7;--fe:#ffe6cf}
.cat-unas{--fd:#f9d6e6;--fe:#cdeaf8}
.cat-relax{--fd:#e0d5f6;--fe:#d3f3ea}
.cat-mirada{--fd:#f6d1df;--fe:#d6e9fb}
.cat-depilacion{--fd:#ffe8c2;--fe:#e1d6f7}

/* aurora: 4 macchie grandi che si muovono piano e cambiano colore */
.ng-aurora{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.ng-aurora span{position:absolute;width:62vmax;height:62vmax;border-radius:50%;opacity:.62;will-change:transform;
  background:radial-gradient(circle at 50% 50%,var(--fa) 0%,transparent 64%)}
.ng-aurora span::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--fd) 0%,transparent 64%);opacity:0;animation:ng-cambia 14s ease-in-out infinite alternate}
.ng-aurora span:nth-child(1){left:-22vmax;top:-24vmax;animation:ng-deriva1 34s ease-in-out infinite alternate}
.ng-aurora span:nth-child(2){right:-26vmax;top:8vh;background:radial-gradient(circle,var(--fb) 0%,transparent 64%);animation:ng-deriva2 40s ease-in-out infinite alternate}
.ng-aurora span:nth-child(2)::after{background:radial-gradient(circle,var(--fe) 0%,transparent 64%);animation-delay:-5s}
.ng-aurora span:nth-child(3){left:10vw;bottom:-36vmax;background:radial-gradient(circle,var(--fc) 0%,transparent 64%);animation:ng-deriva3 46s ease-in-out infinite alternate}
.ng-aurora span:nth-child(3)::after{background:radial-gradient(circle,var(--fb) 0%,transparent 64%);animation-delay:-9s}
.ng-aurora span:nth-child(4){width:34vmax;height:34vmax;left:44vw;top:30vh;opacity:.45;background:radial-gradient(circle,var(--fd) 0%,transparent 64%);animation:ng-deriva2 30s ease-in-out infinite alternate-reverse}
.ng-aurora span:nth-child(4)::after{background:radial-gradient(circle,var(--fa) 0%,transparent 64%)}
@keyframes ng-cambia{0%,20%{opacity:0}80%,100%{opacity:1}}
@keyframes ng-deriva1{to{transform:translate(18vw,14vh) scale(1.15)}}
@keyframes ng-deriva2{to{transform:translate(-16vw,22vh) scale(.9)}}
@keyframes ng-deriva3{to{transform:translate(24vw,-10vh) scale(1.1)}}
.sec.paper{background:rgba(251,254,255,.55);background-image:none;backdrop-filter:blur(2px)}

/* titoli: parole in corsivo iridescenti che cambiano colore */
.h2 em,.h-display em,.hero h1 em{background:linear-gradient(100deg,#2b6c8b 0%,#7b8fd6 25%,#c46fa0 50%,#5fb3cf 75%,#2b6c8b 100%);background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:ng-iride 10s linear infinite}
.sec.dark .h2 em{background-image:linear-gradient(100deg,#9ccbe1,#e6c2f2,#f7b6cf,#9ccbe1)}
@keyframes ng-iride{to{background-position:300% 0}}

/* bottoni principali: lampo di luce che passa ogni tanto */
.btn:not(.linea):not(.claro){background-image:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.38) 48%,rgba(255,255,255,0) 60%);background-size:260% 100%;background-repeat:no-repeat;animation:ng-lampo 5.5s ease-in-out infinite}
@keyframes ng-lampo{0%,70%{background-position:130% 0}100%{background-position:-60% 0}}
.btn:hover{box-shadow:0 10px 30px -10px rgba(196,111,160,.45),0 6px 24px -12px rgba(43,108,139,.55)}

/* ---------- icone animate ---------- */
.ng-ico{--c1:#f7c6da;--c2:#bfe3f5;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#2b6c8b;
  background:radial-gradient(circle at 30% 25%,#fff 0%,#eef8fc 45%,#d9eef8 100%);box-shadow:0 6px 18px -8px rgba(43,108,139,.5),inset 0 0 0 1px rgba(255,255,255,.9);position:relative;isolation:isolate}
.ng-ico::before{content:"";position:absolute;inset:-3px;border-radius:50%;z-index:-1;-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3.5px),#000 calc(100% - 3px));background:conic-gradient(from 0deg,#f7c6da,#bfe3f5,#d9c9f7,#ffe3a3,#f7c6da);opacity:.0;transition:opacity .4s;animation:ng-gira 4s linear infinite}
.srv:hover .ng-ico::before,.ng-ico.gioca::before,.ng-ico.grande::before,.cat-tab.on .ng-ico::before{opacity:1}
@keyframes ng-gira{to{transform:rotate(360deg)}}
.ng-ico svg{width:72%;height:72%;overflow:visible}
.ng-ico .trazo{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ng-ico .trazo.fino{stroke-width:1.1;opacity:.5}
.ng-ico .trazo.grueso{stroke-width:2.6}
.ng-ico .f1{fill:var(--c1)}.ng-ico .f2{fill:var(--c2)}
.ng-ico .f1.trazo,.ng-ico .f2.trazo,.ng-ico .blanco.trazo{stroke:currentColor;stroke-width:1.6}
.ng-ico .blanco{fill:#fff}.ng-ico .pupila{fill:#2b4f63}.ng-ico .mejilla{fill:#f4a9c4;opacity:.7}
.ng-ico .tapa{fill:#2b6c8b}.ng-ico .luz{stroke:#fff;stroke-width:2;stroke-linecap:round;opacity:.7}
.ng-ico .a-gota{fill:var(--c1)}.ng-ico .a-cera{fill:#f5c46a;stroke:#c98a2b;stroke-width:1.2}
.ng-ico.ng-cera .a-gota{fill:#f5c46a}
.ng-ico .a-brillo{fill:#ffd36e}
.ng-ico .a-bur{fill:rgba(255,255,255,.75);stroke:#6aaecb;stroke-width:1.3}
.ng-ico .a-hoja{fill:#9fd6b5;stroke:#4f9a72;stroke-width:1.1}
.ng-ico .seg{fill:#cfe7f3;stroke:#2b6c8b;stroke-width:1.4}
.ng-ico .a-flecha{stroke:#c46fa0}
/* colori per tipo */
.ng-esmalte{--c1:#f39bbd;--c2:#f39bbd}.ng-una{--c1:#f7c6da}.ng-ojo,.ng-ceja{--c1:#7cc3e0}
.ng-cara{--c1:#fde3d6;--c2:#ffd36e}.ng-piedras{--c1:#cfc6ee;--c2:#e7e2f6}.ng-burbujas{--c1:#bfe3f5}
/* dimensioni */
.ng-ico.mini{position:absolute;right:-6px;bottom:-6px;width:38px;height:38px;z-index:2}
.srv-foto{position:relative;overflow:visible!important}
.srv-foto img{border-radius:inherit}
.ct-foto{position:relative}
.ct-foto .ng-ico.mini{right:8px;bottom:8px;width:42px;height:42px}
.ng-ico.grande{display:flex;width:84px;height:84px;margin:.6rem 0 1rem;cursor:pointer}
@media(max-width:600px){.ng-ico.mini{width:32px;height:32px;right:-4px;bottom:-4px}.ng-ico.grande{width:70px;height:70px}}

/* animazioni (partono al passaggio del mouse o al tocco) */
.ng-ico svg *{transform-box:fill-box;transform-origin:center}
.gioca .a-bote{animation:ng-inclina 1.2s var(--ease)}
.gioca .a-gota{animation:ng-goccia 1.2s ease-in}
.gioca.ng-esmalte .f1,.gioca.ng-una .f1{animation:ng-smalto 1.4s linear}
.gioca .a-brillo{animation:ng-scintilla 1.1s ease-in-out}
.gioca .a-brillo.b2{animation-delay:.25s}
.gioca .a-ojo{animation:ng-ammicca 1.2s ease-in-out}
.gioca .a-pestanas{animation:ng-ciglia 1.2s ease-in-out}
.gioca .a-cejita{animation:ng-sopracciglio 1.2s var(--ease)}
.gioca .a-cera{transform-origin:50% 0;animation:ng-cola 1.3s ease-in-out}
.gioca .a-piedras{animation:ng-dondola 1.2s ease-in-out}
.gioca .a-hoja{transform-origin:0 100%;animation:ng-foglia 1.2s ease-in-out}
.gioca .a-bur{animation:ng-sali 1.4s ease-out}
.gioca .a-bur.b2{animation-delay:.15s}.gioca .a-bur.b3{animation-delay:.3s}
.gioca .seg{animation:ng-pressione 1.3s ease-in-out}
.gioca .s2{animation-delay:.15s}.gioca .s3{animation-delay:.3s}.gioca .s4{animation-delay:.45s}
.gioca .a-flecha{animation:ng-su 1.3s ease-in-out}
.ng-ico.gioca{animation:ng-salto .6s var(--ease)}
@keyframes ng-salto{40%{transform:scale(1.14) rotate(-6deg)}}
@keyframes ng-inclina{30%{transform:rotate(-22deg)}60%{transform:rotate(8deg)}}
@keyframes ng-goccia{0%{transform:translateY(0);opacity:1}60%{transform:translateY(22px) scale(.8);opacity:1}61%{opacity:0}62%{transform:translateY(0) scale(0)}100%{transform:scale(1);opacity:1}}
@keyframes ng-smalto{0%{fill:#f39bbd}25%{fill:#c9a7f2}50%{fill:#7cc3e0}75%{fill:#ffb38a}100%{fill:#f39bbd}}
@keyframes ng-scintilla{0%{transform:scale(1) rotate(0)}40%{transform:scale(1.7) rotate(90deg)}100%{transform:scale(1) rotate(180deg)}}
@keyframes ng-ammicca{0%,30%,60%,100%{transform:scaleY(1)}40%,48%{transform:scaleY(.08)}}
@keyframes ng-ciglia{0%,30%,60%,100%{transform:translateY(0)}40%,48%{transform:translateY(10px) scaleY(.4)}}
@keyframes ng-sopracciglio{40%{transform:translateY(-4px) rotate(-4deg)}}
@keyframes ng-cola{40%{transform:scaleY(1.35)}70%{transform:scaleY(.95)}}
@keyframes ng-dondola{25%{transform:rotate(-7deg)}55%{transform:rotate(6deg)}80%{transform:rotate(-2deg)}}
@keyframes ng-foglia{30%{transform:rotate(-18deg)}65%{transform:rotate(10deg)}}
@keyframes ng-sali{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-16px) scale(1.3);opacity:0}}
@keyframes ng-pressione{0%,100%{fill:#cfe7f3;transform:scale(1)}40%{fill:#7cc3e0;transform:scaleX(.88)}}
@keyframes ng-su{50%{transform:translateY(-5px)}}

/* card dei servizi: un po' più di vita */
.srv{position:relative;overflow:visible}
.srv::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .45s;
  background:linear-gradient(120deg,rgba(247,198,218,.0) 30%,rgba(247,198,218,.35) 45%,rgba(191,227,245,.35) 55%,rgba(217,201,247,.0) 70%);background-size:250% 100%}
.srv:hover::after{opacity:1;animation:ng-olografico 1.4s ease-out}
@keyframes ng-olografico{from{background-position:120% 0}to{background-position:-20% 0}}
.srv:hover{border-color:rgba(196,111,160,.35)}
.srv-precio{background:linear-gradient(100deg,#2b6c8b,#c46fa0,#2b6c8b);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.srv:hover .srv-precio{animation:ng-iride 2.4s linear infinite}

/* brillantini (canvas) */
.ng-glitter{position:fixed;inset:0;z-index:9998;pointer-events:none}

/* bolle di sapone cliccabili ai lati */
.ng-bolla{position:fixed;bottom:-80px;z-index:40;border:0;padding:0;border-radius:50%;cursor:pointer;
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.95) 0 8%,rgba(255,255,255,0) 22%),
    radial-gradient(circle at 70% 75%,rgba(247,198,218,.55),rgba(191,227,245,.25) 45%,rgba(217,201,247,.35) 70%,rgba(255,255,255,.15) 100%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),inset -4px -6px 12px rgba(156,203,225,.45),0 4px 14px rgba(43,108,139,.12);
  animation-name:ng-sale,ng-ondeggia;animation-timing-function:linear,ease-in-out;animation-iteration-count:1,infinite;animation-direction:normal,alternate}
.ng-bolla:hover{filter:brightness(1.08) saturate(1.2)}
.ng-bolla.scoppia{animation:ng-scoppio .26s ease-out forwards!important}
@keyframes ng-sale{from{transform:translateY(0)}to{transform:translateY(-118vh)}}
@keyframes ng-ondeggia{from{margin-left:-14px}to{margin-left:14px}}
@keyframes ng-scoppio{to{transform:scale(1.6);opacity:0}}

/* pulsante suono */
.ng-suono{position:fixed;left:18px;bottom:22px;z-index:60;width:46px;height:46px;border-radius:50%;border:1px solid rgba(43,108,139,.18);cursor:pointer;
  background:rgba(255,255,255,.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#2b6c8b;box-shadow:0 8px 24px -10px rgba(43,108,139,.5);display:flex;align-items:center;justify-content:center;transition:transform .3s}
.ng-suono:hover{transform:scale(1.08)}
.ng-suono svg{width:22px;height:22px}
.ng-suono .onda,.ng-suono .muto{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.ng-suono .muto{display:block}.ng-suono .onda{display:none}
.ng-suono.on .muto{display:none}.ng-suono.on .onda{display:block;animation:ng-onda 1.6s ease-in-out infinite}
.ng-suono.on .o2{animation-delay:.2s}
@keyframes ng-onda{50%{opacity:.35}}
@media(max-width:600px){.ng-suono{width:40px;height:40px;left:12px;bottom:18px}}

@media(prefers-reduced-motion:reduce){
  .ng-aurora span,.ng-aurora span::after,.h2 em,.h-display em,.btn,.ng-ico::before{animation:none!important}
  .ng-bolla{display:none}
}

/* =========================================================
   v18 · icone illustrate (benefici, consigli, FAQ, carta)
   ========================================================= */
.ng-li{--sz:48px;flex:none;width:var(--sz);height:var(--sz);display:inline-flex;align-items:center;justify-content:center;position:relative;isolation:isolate;
  border-radius:46% 54% 52% 48%/52% 46% 54% 48%;background:linear-gradient(145deg,#ffffff 0%,#f3f9fd 60%,#e9f3fa 100%);
  box-shadow:0 10px 22px -12px rgba(43,108,139,.55),inset 0 0 0 1px rgba(255,255,255,.95);
  opacity:0;transform:scale(.4) rotate(-12deg);transition:opacity .6s var(--ease),transform .8s cubic-bezier(.34,1.56,.64,1);transition-delay:calc(var(--i,0) * .09s)}
.ng-li.visto{opacity:1;transform:none}
.ng-li::before{content:"";position:absolute;inset:-2px;z-index:-1;border-radius:inherit;background:conic-gradient(from 0deg,#f7c6da,#bfe3f5,#d9c9f7,#ffe3a3,#f7c6da);opacity:.55;animation:ng-gira 6s linear infinite}
.ng-li::after{content:"";position:absolute;inset:1.5px;z-index:-1;border-radius:inherit;background:inherit;background:linear-gradient(145deg,#fff 0%,#f3f9fd 60%,#e9f3fa 100%)}
.ng-li svg{width:74%;height:74%;overflow:visible}
.ng-li .t{stroke:#2b5f7c;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ng-li path.t:not([fill]),.ng-li path[class~="t"]:not([fill]){fill:none}
.ng-li svg *{transform-box:fill-box;transform-origin:center}
.ng-li.gioca{animation:ng-boing .7s cubic-bezier(.34,1.56,.64,1)}
.ng-li.gioca::before{opacity:1;animation-duration:1.4s}
@keyframes ng-boing{35%{transform:scale(1.16) rotate(-7deg)}70%{transform:scale(.96) rotate(3deg)}}
/* liste dei trattamenti */
.lista-check li{align-items:center}
.lista-check li .ng-li{--sz:44px}
.frec{align-items:center}
.frec .ng-li{--sz:44px}
/* micro-animazioni */
.gioca .a-late,.gioca .a-cor{animation:ng-batti 1s ease-in-out}
@keyframes ng-batti{20%{transform:scale(1.25)}40%{transform:scale(.95)}60%{transform:scale(1.15)}}
.a-aguja{transform-origin:50% 100%!important}
.gioca .a-aguja{animation:ng-giro1 1.2s cubic-bezier(.6,0,.3,1)}
@keyframes ng-giro1{to{transform:rotate(360deg)}}
.a-arco2{stroke-dasharray:1;stroke-dashoffset:1}
.visto .a-arco2{stroke-dashoffset:.72;transition:stroke-dashoffset 1.2s var(--ease) .3s}
.gioca .a-arco2{animation:ng-arco 1.2s ease-in-out}
@keyframes ng-arco{0%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}
.gioca .a-pluma{animation:ng-volo 1.5s ease-in-out}
@keyframes ng-volo{30%{transform:translate(-3px,-5px) rotate(-10deg)}65%{transform:translate(2px,-2px) rotate(6deg)}}
.gioca .a-mota{animation:ng-sali 1.3s ease-out}.gioca .m2{animation-delay:.2s}
.gioca .a-st1{animation:ng-scintilla 1.2s ease-in-out}
.gioca .a-st2{animation:ng-scintilla 1.2s ease-in-out .2s}
.gioca .a-st3{animation:ng-pulse 1s ease-in-out .35s}
@keyframes ng-pulse{50%{transform:scale(1.8);opacity:.6}}
.gioca .a-gota2{transform-origin:50% 100%!important;animation:ng-squash 1s cubic-bezier(.34,1.56,.64,1)}
@keyframes ng-squash{25%{transform:scale(1.12,.84)}55%{transform:scale(.92,1.1) translateY(-3px)}}
.a-p1{transform-origin:100% 100%!important}.a-p2{transform-origin:0 100%!important}
.gioca .a-p1{animation:ng-petalo1 1.3s ease-in-out}.gioca .a-p2{animation:ng-petalo2 1.3s ease-in-out}
.gioca .a-p0{transform-origin:50% 100%!important;animation:ng-cresce 1.3s ease-in-out}
@keyframes ng-petalo1{40%{transform:rotate(-14deg)}}@keyframes ng-petalo2{40%{transform:rotate(14deg)}}@keyframes ng-cresce{40%{transform:scaleY(1.1)}}
.a-o{stroke-dasharray:7 4}
.gioca .a-o{animation:ng-flusso 1.4s linear}.gioca .o2{animation-delay:.12s}.gioca .o3{animation-delay:.24s}
@keyframes ng-flusso{to{stroke-dashoffset:-44}}
.a-check{stroke-dasharray:1;stroke-dashoffset:1}
.visto .a-check{stroke-dashoffset:0;transition:stroke-dashoffset .8s var(--ease) .35s}
.gioca .a-check{animation:ng-arco .8s ease-out}
.gioca .a-ceja{animation:ng-sopracciglio 1.2s var(--ease)}
.gioca .a-ojo2{animation:ng-ammicca 1.2s ease-in-out}
.a-traz{stroke-dasharray:1;stroke-dashoffset:1}
.visto .a-traz{stroke-dashoffset:0;transition:stroke-dashoffset 1s var(--ease) .4s}
.gioca .a-traz{animation:ng-arco 1s ease-out}
.gioca .a-pinc{transform-origin:80% 20%!important;animation:ng-pennello 1s ease-in-out}
@keyframes ng-pennello{25%{transform:rotate(-14deg)}55%{transform:rotate(10deg)}}
.gioca .a-rayos{animation:ng-giro1 1.6s ease-in-out}
.gioca .a-frasco{animation:ng-inclina 1.2s var(--ease)}
.gioca .a-burb{animation:ng-sali 1.2s ease-out}.gioca .a-burb.b2{animation-delay:.18s}
.gioca .a-d{animation:ng-punto .9s ease-in-out}.gioca .d2{animation-delay:.12s}.gioca .d3{animation-delay:.24s}
@keyframes ng-punto{40%{transform:translateY(-4px)}}
.gioca .a-lazo{transform-origin:50% 100%!important;animation:ng-lazo 1s cubic-bezier(.34,1.56,.64,1)}
@keyframes ng-lazo{30%{transform:translateY(-4px) scale(1.15)}60%{transform:translateY(0) scale(.95)}}
.a-s{transform:scale(0)}
.visto .a-s{transform:scale(1);transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.visto .s1{transition-delay:.3s}.visto .s2{transition-delay:.5s}.visto .s3{transition-delay:.7s}
.gioca .a-s{animation:ng-timbro .9s cubic-bezier(.34,1.56,.64,1)}.gioca .s2{animation-delay:.12s}.gioca .s3{animation-delay:.24s}
@keyframes ng-timbro{0%{transform:scale(0)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.gioca .a-arco{transform-origin:100% 100%!important;animation:ng-apri 1.1s ease-in-out}
@keyframes ng-apri{40%,60%{transform:translateY(-4px) rotate(-12deg)}}
.gioca .a-pin{transform-origin:50% 100%!important;animation:ng-rimbalzo .9s cubic-bezier(.34,1.56,.64,1)}
.gioca .a-sombra{animation:ng-ombra .9s ease}
@keyframes ng-rimbalzo{35%{transform:translateY(-6px)}}@keyframes ng-ombra{35%{transform:scaleX(.6);opacity:.08}}

/* FAQ più belle */
.faq{border-top:0;display:grid;gap:.8rem}
.faq details{border:1px solid var(--line-2);border-radius:22px;background:rgba(255,255,255,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:0 1.2rem;transition:box-shadow .4s,border-color .4s,background .4s}
.faq details:hover{border-color:rgba(196,111,160,.3);box-shadow:0 14px 34px -22px rgba(43,108,139,.5)}
.faq details[open]{background:#fff;border-color:rgba(106,174,203,.45);box-shadow:0 18px 40px -24px rgba(43,108,139,.55)}
.faq summary{padding:1rem 0;gap:1rem;justify-content:flex-start}
.faq summary .faq-q{flex:1}
.faq-ico .ng-li{--sz:46px}
.faq summary .mas{border:0;background:linear-gradient(135deg,#ffe0ec,#d7ecf8)}
.faq details[open] summary .mas{background:linear-gradient(135deg,#c46fa0,#2b6c8b)}
.faq .resp{padding:0 0 1.3rem calc(46px + 1rem)}
@media(max-width:600px){.faq details{padding:0 .9rem}.faq-ico .ng-li{--sz:40px}.faq .resp{padding-left:0}}

/* vantaggi della carta */
.ventajas{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.ventaja{text-align:center;padding:2rem 1.4rem 1.8rem;border-radius:28px;background:rgba(255,255,255,.75);border:1px solid var(--line-2);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:transform .5s var(--ease),box-shadow .5s}
.ventaja:hover{transform:translateY(-6px);box-shadow:0 22px 44px -26px rgba(43,108,139,.55)}
.ventaja .ng-li{--sz:78px;margin-bottom:1rem}
.ventaja h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;margin-bottom:.4rem}
.ventaja p{color:var(--ink-2);font-size:.95rem}
@media(max-width:800px){.ventajas{grid-template-columns:1fr}}

/* prodotto aperto dalla home */
.prod.prod-elegido{outline:2px solid transparent;box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(196,111,160,.55),0 26px 50px -24px rgba(43,108,139,.6);animation:ng-elegido 2.4s ease-in-out 3}
@keyframes ng-elegido{50%{box-shadow:0 0 0 3px #fff,0 0 0 8px rgba(106,174,203,.6),0 26px 50px -24px rgba(43,108,139,.6)}}
@media(prefers-reduced-motion:reduce){.ng-li{opacity:1;transform:none}.ng-li::before{animation:none}}
