*{
margin:0;
padding:0;
box-sizing:border-box;
font-family:'Poppins',sans-serif;
}

:root{--primary:#000000;--secondary:#000000;--ink:#31223d;--muted:#7d6f89;--glass:rgba(255,255,255,.78);--line:rgba(155,89,255,.14);}
body{

background:
linear-gradient(
180deg,
#fcf8ff 0%,
#f6efff 35%,
#fff5fb 70%,
#fffdfd 100%
);

padding:15px;

min-height:100vh;

position:relative;

overflow-x:hidden;
}

/* GLOW BACKGROUND */

body::before,
body::after{
content:"";
position:fixed;
border-radius:50%;
filter:blur(120px);
z-index:-1;
opacity:0.25;
}

body::before{
width:350px;
height:350px;
background:#d8b4fe;
top:-120px;
left:-120px;
}

body::after{
width:350px;
height:350px;
background:#ffc8ea;
bottom:-120px;
right:-120px;
}

.container{
max-width:1200px;
margin:auto;
}

.card{
background:
rgba(255,255,255,0.72);

backdrop-filter:blur(16px);

padding:22px;

border-radius:28px;

margin-bottom:22px;

box-shadow:
0 10px 35px rgba(155,89,255,0.08);

border:
1px solid rgba(255,255,255,0.4);

transition:0.25s;
}

.card:hover{
transform:translateY(-4px);
}

h1{
text-align:center;
margin-bottom:20px;
color:var(--primary);
}

h3{
margin-bottom:15px;
}

h4{
margin:15px 0 10px;
}

.grid-opciones{
display:flex;
flex-wrap:wrap;
gap:12px;
align-items:flex-start;
}

.cantidad-ret img{
width:45px;
height:45px;
object-fit:cover;
border-radius:12px;
}

.cantidad-ret span{
font-weight:bold;
font-size:18px;
}

.opcion{
background:#f7f2ff;
padding:10px;
border-radius:18px;
text-align:center;
cursor:pointer;
transition:0.25s;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:6px;
width:100%;
flex:0 0 auto;
max-width:120px;
min-height:115px;
}

.cantidad-ret{
min-height:80px !important;
max-width:80px !important;
font-size:20px;
font-weight:bold;
border-radius:20px;
background:#f3ecff;
display:flex;
align-items:center;
justify-content:center;
transition:0.2s;
}

.cantidad-ret.activa{
background:var(--primary);
color:white;
transform:scale(1.05);
box-shadow:0 6px 15px rgba(155,89,255,0.25);
}

.opcion img{
width:65px;
height:65px;
object-fit:cover;
border-radius:18px;
padding:4px;
border:3px solid transparent;
transition:0.25s;
background:white;
box-shadow:0 4px 10px rgba(0,0,0,0.08);
}

.opcion:hover{
transform:translateY(-3px) scale(1.02);
}

.opcion.activa{
background:#f7f2ff;
}

.opcion.activa img{
border:3px solid var(--primary);
transform:scale(1.05);
box-shadow:0 8px 20px rgba(155,89,255,0.25);
}

button{
width:100%;
padding:18px;
border:none;
border-radius:18px;

background:
linear-gradient(
90deg,
#c084ff,
var(--primary),
#ff8fd8
);

background-size:200%;

color:white;

font-size:16px;
font-weight:700;

cursor:pointer;

margin-top:18px;

transition:0.3s;

box-shadow:
0 12px 30px rgba(155,89,255,0.25);
}

button:hover{

transform:translateY(-3px);

background-position:right;

box-shadow:
0 18px 40px rgba(155,89,255,0.35);

}

.total-box{
background:linear-gradient(90deg,#c084ff,var(--primary));
padding:20px;
border-radius:16px;
text-align:center;
color:white;
margin-bottom:20px;
}

.resumen-card{
background:white;
border-radius:25px;
padding:20px;
box-shadow:0 10px 30px rgba(155,89,255,0.08);



border:2px solid #f3e6ff;

backdrop-filter:blur(10px);
}

.resumen-item{
padding:12px 0;
border-bottom:1px dashed #eadcff;
display:flex;
justify-content:space-between;
align-items:center;
gap:10px;
font-size:14px;
}

.resumen-item span{
font-weight:600;
color:var(--primary);
}

.total-final{
margin-top:20px;
padding:20px;
border-radius:20px;
background:linear-gradient(135deg,#ffe6fb,#f3e8ff);
text-align:center;
}

.total-final h2{
font-size:42px;
color:#ff4fb3;
}

.total-box h2{
font-size:32px;
}

.input-group{
display:flex;
gap:10px;
margin-bottom:15px;
flex-wrap:wrap;
}

.input-group input{
flex:1;
min-width:140px;
}

.input-group input{
padding:16px;
border-radius:16px;

border:
2px solid transparent;

background:#faf7ff;

outline:none;

font-size:15px;

transition:0.25s;
}

.input-group input:focus{

border:
2px solid #c084ff;

background:white;

box-shadow:
0 0 0 6px rgba(192,132,255,0.15);

}

.calendar-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:15px;
}

.calendario{
display:grid;
grid-template-columns:repeat(7,minmax(38px,1fr));
gap:6px;
width:100%;
}

.dia{
padding:10px 0;
border-radius:10px;
background:#f5f0ff;
text-align:center;
cursor:pointer;
}

.dia.disponible{
background:#eadcff;
}

.dia.ocupado{
background:#ddd;
opacity:0.5;
}

.dia.activo{
background:var(--primary);
color:white;
}

.horas-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:10px;
margin-top:10px;
}

.hora{
padding:12px;
background:#f5f0ff;
border-radius:10px;
text-align:center;
cursor:pointer;
}

.hora.activa{
background:var(--primary);
color:white;
}

@media(max-width:600px){


.input-group{
grid-template-columns:1fr;
}

.horas-grid{
grid-template-columns:1fr 1fr;
}

}

/* HERO PREMIUM */

.hero{
position:relative;
overflow:hidden;
background:
linear-gradient(
135deg,
#c084ff,
#ff8fd8
);
border-radius:35px;
padding:60px 25px;
margin-bottom:25px;
text-align:center;
color:white;
box-shadow:
0 20px 50px rgba(155,89,255,0.25);
}

.hero-content{
position:relative;
z-index:2;
}

/* HERO LOGO ULTRA PREMIUM */

.hero-logo-wrapper{
position:relative;
width:170px;
height:170px;
margin:auto;
margin-bottom:30px;

animation:
floatLogo 4s ease-in-out infinite;
}

/* ANILLO BRILLANTE */

.hero-ring{
position:absolute;
inset:-8px;

border-radius:45px;

background:
conic-gradient(
from 0deg,
#ffffff,
#ffd6f3,
#ffffff,
#d8b4fe,
#ffffff
);

animation:
rotateRing 8s linear infinite;

filter:
blur(1px);

opacity:0.9;
}

/* LOGO */

.hero-logo{
position:absolute;
inset:0;

border-radius:40px;

overflow:hidden;

background:
rgba(255,255,255,0.18);

backdrop-filter:blur(18px);

border:
3px solid rgba(255,255,255,0.35);

box-shadow:
0 20px 45px rgba(255,255,255,0.18),
0 15px 40px rgba(155,89,255,0.25);

z-index:2;
}

.hero-logo img{
width:100%;
height:100%;
object-fit:cover;
}

/* FLOAT */

@keyframes floatLogo{

0%{
transform:translateY(0px);
}

50%{
transform:translateY(-10px);
}

100%{
transform:translateY(0px);
}

}

/* ROTATE */

@keyframes rotateRing{

0%{
transform:rotate(0deg);
}

100%{
transform:rotate(360deg);
}

}

.hero-logo img{
width:100%;
height:100%;
object-fit:cover;
}

.hero h1{
font-size:68px;
line-height:1.1;
}

.hero p{
font-size:20px;
font-weight:300;
letter-spacing:1px;
}

.hero-btn{
width:auto;
padding:16px 28px;
border:none;
border-radius:18px;
background:white;
color:var(--primary);
font-weight:700;
font-size:16px;
cursor:pointer;
box-shadow:0 10px 25px rgba(0,0,0,0.1);
transition:0.25s;
}

.hero-btn:hover{
transform:translateY(-3px) scale(1.03);
}

.hero-glow{
position:absolute;
border-radius:50%;
filter:blur(70px);
opacity:0.35;
}

.glow1{
width:250px;
height:250px;
background:#ffffff;
top:-80px;
left:-80px;
}

.glow2{
width:250px;
height:250px;
background:#ffd6f3;
bottom:-100px;
right:-80px;
}

/* LAYOUT PREMIUM */

.layout{
display:grid;
grid-template-columns:1fr 320px;
gap:25px;
align-items:start;
}

.contenido-principal{
min-width:0;
}

.sidebar-resumen{
width:320px;
flex-shrink:0;
margin-top:20px;
}

/* RESUMEN */

.resumen-card{
background:white;
border-radius:28px;
padding:22px;
box-shadow:
0 15px 35px rgba(155,89,255,0.08);

border:
1px solid rgba(255,255,255,0.5);
}

/* MOBILE */

@media(max-width:1000px){

.layout{
grid-template-columns:1fr;
}

.sidebar-resumen{
position:relative;
top:auto;
}

}

/* CONTENIDO */

.layout-content{
display:grid;
grid-template-columns:1fr 320px;
gap:25px;
align-items:start;
}
.contenido-principal{
flex:1;
}

.sidebar-resumen{
width:320px;
flex-shrink:0;
}

/* MOBILE */

@media(max-width:1000px){
    .sidebar-resumen{
width:100%;
order:99;
}

.layout-content{
grid-template-columns:1fr;
}

}
/* GRID MEJORADO */




/* MOBILE */

@media(max-width:900px){

.contenido-principal{
grid-template-columns:1fr;
}

}
.reserva-card{
margin-top:20px;

background:
linear-gradient(
180deg,
rgba(255,255,255,0.95),
rgba(255,255,255,0.88)
);

border:
1px solid rgba(255,255,255,0.7);

backdrop-filter:blur(20px);

box-shadow:
0 20px 50px rgba(155,89,255,0.12);

border-radius:32px;

overflow:hidden;
position:relative;
}
/* LAYOUT FINAL */

.layout-content{
display:flex;
align-items:flex-start;
gap:25px;
}

.contenido-principal{
display:flex;
flex-direction:column;
gap:22px;
min-width:0;
}

.sidebar-resumen{
width:320px;
flex-shrink:0;
position:sticky;
top:20px;
}

/* MOBILE */

@media(max-width:1000px){

.layout-content{
flex-direction:column;
}

.sidebar-resumen{
width:100%;
position:relative;
top:auto;
}

}
/* HERO FULL WIDTH */

.hero{
width:100%;
min-height:420px;

display:flex;
flex-direction:column;
justify-content:center;
align-items:center;

isolation:isolate;
}
/* HEADER RESERVA */

.reserva-header{
display:flex;
align-items:center;
gap:15px;
margin-bottom:22px;
}

.reserva-icon{
width:60px;
height:60px;
border-radius:20px;

background:
linear-gradient(
135deg,
#c084ff,
#ff8fd8
);

display:flex;
align-items:center;
justify-content:center;

font-size:28px;
color:white;

box-shadow:
0 10px 25px rgba(155,89,255,0.25);
}

.reserva-header h3{
margin:0;
font-size:26px;
}

.reserva-header p{
margin-top:4px;
color:#888;
font-size:14px;
}
@media(max-width:600px){

.calendario{
gap:4px;
}

.dia{
font-size:13px;
padding:9px 0;
border-radius:8px;
}

}

/* TIPOGRAFIA PREMIUM */

h1,
h2,
h3{
font-family:
'Playfair Display',
serif;

letter-spacing:
0.5px;
}

h1{
font-size:58px;
font-weight:800;
}

h3{
font-size:28px;
font-weight:700;
color:#7b2cbf;
}

h4{
font-size:18px;
font-weight:600;
color:var(--primary);
}

p,
span,
div,
input,
button{
font-family:
'Poppins',
sans-serif;
}

/* PARTICLES HERO */

.particles{
position:absolute;
inset:0;
overflow:hidden;
pointer-events:none;
}

/* ESTRELLAS */

.particles span{
position:absolute;
display:block;
width:14px;
height:14px;

background:
radial-gradient(
circle,
rgba(255,255,255,0.95),
rgba(255,255,255,0)
);

border-radius:50%;

animation:
floatStar linear infinite;

opacity:0.7;
}

/* POSICIONES */

.particles span:nth-child(1){
left:10%;
top:80%;
animation-duration:8s;
animation-delay:0s;
}

.particles span:nth-child(2){
left:25%;
top:95%;
width:8px;
height:8px;
animation-duration:10s;
animation-delay:2s;
}

.particles span:nth-child(3){
left:45%;
top:90%;
width:18px;
height:18px;
animation-duration:12s;
animation-delay:1s;
}

.particles span:nth-child(4){
left:65%;
top:85%;
width:10px;
height:10px;
animation-duration:9s;
animation-delay:3s;
}

.particles span:nth-child(5){
left:80%;
top:95%;
width:15px;
height:15px;
animation-duration:11s;
animation-delay:1s;
}

.particles span:nth-child(6){
left:92%;
top:88%;
width:9px;
height:9px;
animation-duration:13s;
animation-delay:4s;
}

/* ANIMACION */

@keyframes floatStar{

0%{
transform:
translateY(0)
scale(1);

opacity:0;
}

20%{
opacity:0.8;
}

50%{
transform:
translateY(-120px)
scale(1.3);
}

100%{
transform:
translateY(-260px)
scale(0.8);

opacity:0;
}

}

/* SHINE HERO */

.hero::after{
content:"";

position:absolute;

top:-50%;
left:-20%;

width:40%;
height:200%;

background:
linear-gradient(
90deg,
transparent,
rgba(255,255,255,0.18),
transparent
);

transform:rotate(20deg);

animation:
shineMove 7s linear infinite;
}

@keyframes shineMove{

0%{
left:-40%;
}

100%{
left:140%;
}

}


/* ===== MEJORAS PROFESIONALES ===== */
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:18px 0 0}.hero-badges span{background:rgba(255,255,255,.78);border:1px solid rgba(155,89,255,.12);border-radius:999px;padding:9px 14px;font-weight:700;color:#7c3aed;box-shadow:0 8px 22px rgba(155,89,255,.08)}
.section-title{text-align:center;margin:35px 0 18px}.section-title h2{font-family:'Playfair Display',serif;color:#7c3aed;font-size:clamp(28px,4vw,44px)}.section-title p{color:#776b83;margin-top:6px}.pro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-bottom:22px}.pro-box{background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.55);border-radius:26px;padding:22px;text-align:center;box-shadow:0 10px 30px rgba(155,89,255,.08);transition:.25s}.pro-box:hover{transform:translateY(-5px)}.pro-box strong{display:block;color:#7c3aed;margin:8px 0;font-size:18px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}.gallery-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:24px;box-shadow:0 10px 25px rgba(0,0,0,.08);transition:.25s;background:#fff}.gallery-grid img:hover{transform:scale(1.03)}.testimonials{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.testimonial{background:rgba(255,255,255,.78);border-radius:24px;padding:20px;box-shadow:0 10px 30px rgba(155,89,255,.08)}.testimonial p{color:#62566f;line-height:1.6}.testimonial b{display:block;margin-top:12px;color:#7c3aed}.info-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.info-strip div{background:#fff;border-radius:20px;padding:16px;border:1px solid #f0e5ff}.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:50;background:#25D366;color:#fff;text-decoration:none;width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:31px;box-shadow:0 12px 30px rgba(37,211,102,.35);transition:.2s}.whatsapp-float:hover{transform:scale(1.06)}.input-group input{width:100%}@media(max-width:760px){:root{--primary:#000000;--secondary:#000000;--ink:#31223d;--muted:#7d6f89;--glass:rgba(255,255,255,.78);--line:rgba(155,89,255,.14);}
body{padding:10px}.hero{min-height:auto;padding:35px 12px}.layout-content{display:block}.sidebar-resumen{position:static;width:100%}.card{border-radius:22px;padding:16px}.opcion{max-width:104px}.whatsapp-float{width:56px;height:56px;font-size:28px}}



/* ===== AJUSTES MODO OSCURO Y LEGIBILIDAD ===== */
.reveal{opacity:0;transform:translateY(24px);transition:.7s}
.reveal.show{opacity:1;transform:translateY(0)}
.premium-loader{position:fixed;inset:0;background:#fff;z-index:9999;display:grid;place-items:center}
.premium-loader span{width:54px;height:54px;border:5px solid #f1e6ff;border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dark-toggle{
  position:fixed!important;
  right:18px!important;
  bottom:92px!important;
  left:auto!important;
  top:auto!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  padding:0!important;
  z-index:9996!important;
  border:1px solid rgba(255,255,255,.25)!important;
  border-radius:50%!important;
  background:#241333!important;
  color:#fff!important;
  box-shadow:0 12px 28px rgba(0,0,0,.25)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:22px!important;
  cursor:pointer!important;
}
body.dark{background:linear-gradient(180deg,#160d1f,#271537,#110b18);color:#f9eefe}
body.dark .card,body.dark .pro-box,body.dark .resumen-card{background:rgba(40,24,55,.86);color:#f8eaff;border-color:rgba(255,255,255,.14)}
body.dark h1,body.dark h2,body.dark h3,body.dark h4,body.dark .section-title h2{color:#e9d5ff}
body.dark p,body.dark label,body.dark .section-title p,body.dark .testimonial p{color:#f2e8ff}
body.dark .opcion{background:#fff;color:#3b204d;font-weight:700;border:1px solid rgba(155,89,255,.22)}
body.dark .opcion span,body.dark .opcion small,body.dark .opcion div{color:#3b204d!important}
body.dark .opcion.activa{background:#f4e8ff;color:#241333;box-shadow:0 10px 25px rgba(255,255,255,.08)}
body.dark .cantidad-ret{background:#fff;color:#3b204d}
body.dark .cantidad-ret.activa{background:var(--primary);color:#fff}
body.dark .resumen-item{color:#f9eefe;border-bottom-color:rgba(255,255,255,.35)}
body.dark .resumen-item span{color:#ffffff}
body.dark input,body.dark select,body.dark textarea{background:#fff!important;color:#241333!important;border-color:#eadcff!important}
body.dark input::placeholder,body.dark textarea::placeholder{color:#6b5b75!important}
body.dark .info-strip div,body.dark .testimonial,body.dark .filter-btn,body.dark .social-pill{background:#fff;color:#3b204d}
body.dark .total-final{background:linear-gradient(135deg,#fff0fb,#f3e8ff);color:#241333}
body.dark .total-final h2{color:#ff4fb3}
@media(max-width:760px){.dark-toggle{right:14px!important;bottom:88px!important;width:48px!important;height:48px!important;min-width:48px!important}}
.promo-popup{position:fixed;inset:0;background:rgba(20,10,30,.45);display:none;place-items:center;z-index:9998;padding:18px}.promo-box{max-width:460px;background:#fff;border-radius:30px;padding:28px;box-shadow:0 30px 70px rgba(0,0,0,.25);text-align:center}.promo-close{float:right;border:0;background:#f5eaff;border-radius:999px;padding:8px 12px}.newsletter{display:flex;gap:10px;flex-wrap:wrap}.newsletter input{flex:1;min-width:220px}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.82);display:none;place-items:center;z-index:9997}.lightbox img{max-width:92vw;max-height:88vh;border-radius:20px}.gallery-filter{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 20px}.filter-btn{border:0;padding:10px 16px;border-radius:999px;background:#fff;color:var(--primary);font-weight:700;box-shadow:0 8px 20px rgba(155,89,255,.11)}.map-box iframe{width:100%;min-height:320px;border:0;border-radius:24px}.social-pill{display:inline-flex;align-items:center;gap:6px;margin:6px;padding:10px 14px;border-radius:999px;background:#fff;color:var(--primary);text-decoration:none;font-weight:700}


/* ===== INDEX PREMIUM PRO ===== */
body{color:var(--ink);} 
.hero{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.55);box-shadow:0 30px 90px rgba(155,89,255,.16);}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 10%,rgba(255,255,255,.9),transparent 28%),radial-gradient(circle at 80% 20%,rgba(255,111,181,.26),transparent 26%),linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,246,252,.38));pointer-events:none;}
.hero h1{font-size:clamp(42px,8vw,86px);line-height:.95;letter-spacing:-2px;text-shadow:0 12px 35px rgba(155,89,255,.12);}
.hero p{font-size:clamp(16px,2vw,22px);max-width:720px;margin:auto;color:#695873;line-height:1.7;}
.hero-btn,.btn-premium{background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 18px 45px rgba(155,89,255,.28);font-weight:800;letter-spacing:.2px;}
.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}.hero-actions a{text-decoration:none}.hero-actions .btn-outline{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 22px;border-radius:999px;border:1px solid rgba(155,89,255,.2);background:rgba(255,255,255,.76);color:var(--primary);font-weight:800;box-shadow:0 10px 30px rgba(155,89,255,.08)}
.trust-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:24px 0}.trust-card{background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.62);border-radius:24px;padding:18px;text-align:center;box-shadow:0 14px 35px rgba(155,89,255,.08)}.trust-card b{display:block;font-size:clamp(24px,3vw,36px);font-family:'Playfair Display',serif;color:var(--primary)}.trust-card span{color:#75667f;font-weight:600;font-size:14px}
.lux-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin-bottom:24px}.lux-card{position:relative;overflow:hidden;border-radius:30px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.65);padding:24px;box-shadow:0 18px 45px rgba(155,89,255,.1);transition:.25s}.lux-card:hover{transform:translateY(-6px)}.lux-card::after{content:"";position:absolute;width:120px;height:120px;right:-45px;top:-45px;border-radius:50%;background:linear-gradient(135deg,rgba(155,89,255,.18),rgba(255,111,181,.18));}.lux-icon{width:54px;height:54px;border-radius:18px;background:linear-gradient(135deg,rgba(155,89,255,.16),rgba(255,111,181,.16));display:flex;align-items:center;justify-content:center;font-size:26px;margin-bottom:12px}.lux-card h3{color:#3b204d}.lux-card p{color:#74657d;line-height:1.65}.lux-card small{display:inline-block;margin-top:10px;color:var(--primary);font-weight:800}
.featured-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.service-card{background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 16px 42px rgba(0,0,0,.08);border:1px solid #f3eaff;transition:.25s}.service-card:hover{transform:translateY(-5px)}.service-card img{width:100%;height:170px;object-fit:cover;background:#f8efff}.service-card .service-body{padding:18px}.service-card h3{color:#3b204d;margin-bottom:6px}.service-card .price{font-weight:900;color:var(--primary);font-size:22px}.service-card a{display:inline-flex;margin-top:12px;color:#fff;background:linear-gradient(135deg,var(--primary),var(--secondary));border-radius:999px;padding:10px 15px;text-decoration:none;font-weight:800}
.gallery-grid{grid-auto-flow:dense}.gallery-grid img:nth-child(3n){grid-row:span 2;aspect-ratio:1/1.95}.gallery-grid img{cursor:zoom-in}.service-card img,.opcion img,.cantidad-ret img{cursor:default!important}.gallery-caption{text-align:center;color:#7a6b86;margin-top:12px;font-weight:600}
.before-after{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.ba-card{position:relative;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 18px 45px rgba(155,89,255,.1)}.ba-card img{width:100%;height:260px;object-fit:cover;display:block;filter:saturate(1.06)}.ba-card span{position:absolute;left:14px;top:14px;background:rgba(255,255,255,.9);color:var(--primary);font-weight:900;border-radius:999px;padding:8px 13px}.ba-note{padding:16px;color:#6c5f78;font-weight:600}
.process{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;counter-reset:step}.process-step{background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.65);border-radius:26px;padding:20px;position:relative}.process-step::before{counter-increment:step;content:"0"counter(step);display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:15px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;font-weight:900;margin-bottom:12px}.process-step h3{color:#3b204d}.process-step p{color:#75667f;line-height:1.6}
.faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.faq-item{background:#fff;border:1px solid #f2e8ff;border-radius:24px;padding:18px}.faq-item b{color:#3b204d}.faq-item p{color:#75667f;margin-top:8px;line-height:1.6}
.footer-pro{margin-top:24px;background:linear-gradient(135deg,rgba(59,32,77,.96),rgba(96,42,132,.94));color:#fff;border-radius:32px;padding:28px;box-shadow:0 22px 55px rgba(59,32,77,.22)}.footer-pro h2{font-family:'Playfair Display',serif;font-size:clamp(28px,4vw,44px);margin-bottom:6px}.footer-pro p,.footer-pro a{color:#f6eaff}.footer-pro-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:20px}.footer-pro b{display:block;margin-bottom:8px;color:#fff}.footer-pro a{text-decoration:none;display:inline-block;margin:4px 0}.footer-bottom{margin-top:20px;padding-top:15px;border-top:1px solid rgba(255,255,255,.18);font-size:13px;color:#eadfff}
.map-box{margin-top:18px}.cta-band{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:linear-gradient(135deg,rgba(155,89,255,.92),rgba(255,111,181,.9));color:#fff;border-radius:30px;padding:24px;box-shadow:0 20px 55px rgba(155,89,255,.2);margin-bottom:24px}.cta-band h2{font-family:'Playfair Display',serif;font-size:clamp(26px,3vw,40px)}.cta-band p{color:#fff;opacity:.92}.cta-band a{background:#fff;color:var(--primary);border-radius:999px;padding:14px 20px;text-decoration:none;font-weight:900}
body.dark .trust-card,body.dark .lux-card,body.dark .service-card,body.dark .process-step,body.dark .faq-item{background:#2a1a38!important;border-color:rgba(255,255,255,.12)!important;color:#f8efff!important}body.dark .lux-card h3,body.dark .service-card h3,body.dark .process-step h3,body.dark .faq-item b{color:#fff!important}body.dark .lux-card p,body.dark .process-step p,body.dark .faq-item p,body.dark .trust-card span,body.dark .ba-note{color:#eadfff!important}body.dark .hero p{color:#f0e5ff}body.dark .hero-actions .btn-outline{background:#fff;color:#6d28d9}body.dark .service-card .service-body,body.dark .ba-note{background:#2a1a38}body.dark .ba-card{background:#2a1a38}body.dark .section-title h2{color:#fff!important}body.dark .footer-pro{background:linear-gradient(135deg,#190f23,#351a4b)}
@media(max-width:760px){.hero-actions{flex-direction:column}.hero-actions .hero-btn,.hero-actions .btn-outline{width:100%}.footer-pro-grid{grid-template-columns:1fr}.cta-band a{width:100%;text-align:center}.gallery-grid img:nth-child(3n){grid-row:auto;aspect-ratio:1/1}}


/* ===== CORRECCION VISUAL 2026-05-25 =====
   Corrige botón negro del hero y textos ilegibles en testimonios/modo oscuro. */
.hero-actions{
  position:relative!important;
  z-index:5!important;
  align-items:center!important;
}
.hero-actions a{
  display:inline-flex!important;
  width:auto!important;
}
.hero-actions .hero-btn,
.hero .hero-actions .hero-btn,
a .hero-btn{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:220px!important;
  min-height:56px!important;
  padding:0 28px!important;
  border:0!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--primary),var(--secondary))!important;
  color:#ffffff!important;
  font-size:16px!important;
  font-weight:900!important;
  line-height:1!important;
  text-align:center!important;
  text-decoration:none!important;
  box-shadow:0 18px 45px rgba(155,89,255,.32)!important;
  opacity:1!important;
  visibility:visible!important;
}
.hero-actions .hero-btn:hover{
  transform:translateY(-3px) scale(1.02)!important;
  filter:brightness(1.04)!important;
}
.hero-actions .btn-outline{
  color:var(--primary)!important;
  background:#ffffff!important;
}
.testimonial,
body.dark .testimonial{
  background:rgba(255,255,255,.92)!important;
  border:1px solid rgba(155,89,255,.16)!important;
}
.testimonial p,
body.dark .testimonial p{
  color:#31223d!important;
  opacity:1!important;
  font-weight:600!important;
  text-shadow:none!important;
}
.testimonial b,
body.dark .testimonial b{
  color:var(--primary)!important;
  opacity:1!important;
  text-shadow:none!important;
}
body.dark .info-strip div{
  background:rgba(255,255,255,.95)!important;
  color:#31223d!important;
}
body.dark .info-strip div,
body.dark .info-strip div *{
  color:#31223d!important;
}
body.dark .hero h1,
body.dark .hero p,
body.dark .hero-badges span{
  opacity:1!important;
  text-shadow:0 8px 26px rgba(0,0,0,.22)!important;
}
@media(max-width:760px){
  .hero-actions a,.hero-actions .hero-btn,.hero-actions .btn-outline{width:100%!important;min-width:0!important;}
}

/* ===== CORRECCION CALENDARIO RESERVA 2026-05-25 =====
   Hace visibles los días del calendario y evita que se salgan del recuadro en móvil. */
.reserva-card,
.reserva-box,
.form-reserva,
#reserva,
.reserva-panel{
  overflow:visible!important;
}
.calendar-header{
  display:grid!important;
  grid-template-columns:48px 1fr 48px!important;
  gap:8px!important;
  align-items:center!important;
  width:100%!important;
}
.calendar-header button{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  padding:0!important;
  border:0!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,var(--primary),var(--secondary))!important;
  color:#fff!important;
  font-size:18px!important;
  font-weight:900!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-shadow:0 10px 24px rgba(155,89,255,.24)!important;
}
#mesTitulo{
  display:block!important;
  text-align:center!important;
  color:#f8eaff!important;
  font-weight:900!important;
  font-size:15px!important;
  line-height:1.15!important;
  text-shadow:0 2px 10px rgba(0,0,0,.28)!important;
}
.calendario{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  gap:6px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.dia{
  min-width:0!important;
  width:100%!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:10px!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1!important;
  color:#2b1736!important;
  background:#fff!important;
  border:1px solid rgba(155,89,255,.18)!important;
  opacity:1!important;
  text-shadow:none!important;
}
.dia.disponible{
  background:#f1e2ff!important;
  color:#2b1736!important;
  cursor:pointer!important;
}
.dia.ocupado{
  background:rgba(255,255,255,.34)!important;
  color:rgba(255,255,255,.82)!important;
  border-color:rgba(255,255,255,.12)!important;
  cursor:not-allowed!important;
  opacity:1!important;
}
.dia.activo{
  background:linear-gradient(135deg,var(--primary),var(--secondary))!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 8px 20px rgba(155,89,255,.30)!important;
}
body:not(.dark) #mesTitulo{color:#3b204d!important;text-shadow:none!important;}
body:not(.dark) .dia.ocupado{background:#eee7f4!important;color:#7a6b86!important;border-color:#e4d8ef!important;}
body.dark .dia.disponible{background:#fff!important;color:#241333!important;}
body.dark .dia.ocupado{background:rgba(255,255,255,.22)!important;color:rgba(255,255,255,.72)!important;}
body.dark .dia.activo{color:#fff!important;}
@media(max-width:480px){
  .calendar-header{grid-template-columns:42px 1fr 42px!important;gap:6px!important;}
  .calendar-header button{width:42px!important;height:42px!important;min-width:42px!important;}
  .calendario{gap:4px!important;}
  .dia{font-size:12px!important;border-radius:8px!important;}
  #mesTitulo{font-size:13px!important;}
}

/* Redes sociales visibles en el index */
.hero-socials{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.hero-socials a,
.social-buttons-mini a,
.footer-socials a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-decoration:none;
  border-radius:999px;
  font-weight:800;
  transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.hero-socials a{
  padding:11px 18px;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
  box-shadow:0 10px 25px rgba(155,89,255,.25);
}
.hero-socials a:hover,
.social-buttons-mini a:hover,
.footer-socials a:hover{
  transform:translateY(-2px);
  opacity:.92;
}
.social-buttons-mini{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}
.social-buttons-mini a{
  padding:7px 10px;
  font-size:12px;
  color:#fff;
  background:linear-gradient(135deg,var(--primary),var(--secondary));
}
.footer-socials{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.footer-socials a{
  padding:8px 12px;
  color:#fff;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.25);
}
body.dark .hero-socials a,
body.dark .social-buttons-mini a{
  color:#fff !important;
  background:linear-gradient(135deg,#a855f7,#ec4899) !important;
  box-shadow:0 12px 28px rgba(168,85,247,.28);
}
body.dark .footer-socials a{
  color:#fff !important;
  background:rgba(168,85,247,.18) !important;
  border-color:rgba(236,72,153,.35) !important;
}


/* Página separada de reservas */
.booking-preview{text-align:center; padding:34px 24px;}
.booking-preview-btn,.booking-hero .back-home{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;border-radius:999px;padding:13px 22px;font-weight:800;background:linear-gradient(135deg,#f7a8d8,#9b5cff);color:#fff;box-shadow:0 14px 32px rgba(155,92,255,.25);border:0;}
.booking-preview-btn:hover,.booking-hero .back-home:hover{transform:translateY(-2px);filter:brightness(1.05);}
.booking-page{max-width:1180px;}
.booking-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:22px;margin-bottom:22px;padding:28px;}
.booking-hero h1{font-family:'Playfair Display',serif;font-size:clamp(30px,4vw,54px);margin:8px 0;color:#5a184b;}
.booking-hero p{max-width:680px;color:#6a4c63;font-weight:600;line-height:1.7;}
.booking-kicker{display:inline-flex;border-radius:999px;padding:8px 14px;background:rgba(247,168,216,.22);color:#a01277;font-weight:900;}
.booking-footer{margin-top:22px;}
body.dark .booking-hero h1, body.dark .booking-hero p{color:#fff;}
body.dark .booking-kicker{background:rgba(247,168,216,.16);color:#ffd8f1;}
@media(max-width:760px){.booking-hero{align-items:flex-start;flex-direction:column}.booking-hero .back-home{width:100%}.booking-preview-btn{width:100%}}

/* ===== FIX CLARO/OSCURO Y LEGIBILIDAD ===== */
:root{
  color-scheme: light;
  --page-bg-light:linear-gradient(180deg,#fcf8ff 0%,#f6efff 35%,#fff5fb 70%,#fffdfd 100%);
  --page-bg-dark:linear-gradient(180deg,#12091b 0%,#21102f 48%,#0f0816 100%);
  --card-light:rgba(255,255,255,.82);
  --card-dark:rgba(36,22,51,.9);
  --text-light:#31223d;
  --text-dark:#f9efff;
  --muted-light:#6f607a;
  --muted-dark:#eadcff;
  --border-light:rgba(155,89,255,.16);
  --border-dark:rgba(255,255,255,.14);
}
body:not(.dark){
  color-scheme: light;
  background:var(--page-bg-light)!important;
  color:var(--text-light)!important;
}
body.dark{
  color-scheme: dark;
  background:var(--page-bg-dark)!important;
  color:var(--text-dark)!important;
}
body:not(.dark) .card,
body:not(.dark) .trust-card,
body:not(.dark) .lux-card,
body:not(.dark) .service-card,
body:not(.dark) .process-step,
body:not(.dark) .faq-item,
body:not(.dark) .resumen-card,
body:not(.dark) .reserva-card,
body:not(.dark) .booking-hero{
  background:var(--card-light)!important;
  color:var(--text-light)!important;
  border-color:var(--border-light)!important;
}
body.dark .card,
body.dark .trust-card,
body.dark .lux-card,
body.dark .service-card,
body.dark .process-step,
body.dark .faq-item,
body.dark .resumen-card,
body.dark .reserva-card,
body.dark .booking-hero,
body.dark .pro-box{
  background:var(--card-dark)!important;
  color:var(--text-dark)!important;
  border-color:var(--border-dark)!important;
}
body:not(.dark) h1,body:not(.dark) h2,body:not(.dark) h3,body:not(.dark) h4,
body:not(.dark) .section-title h2,body:not(.dark) .booking-hero h1,
body:not(.dark) .lux-card h3,body:not(.dark) .service-card h3,
body:not(.dark) .process-step h3,body:not(.dark) .faq-item b{
  color:#3b204d!important;
}
body.dark h1,body.dark h2,body.dark h3,body.dark h4,
body.dark .section-title h2,body.dark .booking-hero h1,
body.dark .lux-card h3,body.dark .service-card h3,
body.dark .process-step h3,body.dark .faq-item b{
  color:#fff7ff!important;
}
body:not(.dark) p,body:not(.dark) label,body:not(.dark) span,
body:not(.dark) .section-title p,body:not(.dark) .booking-hero p,
body:not(.dark) .lux-card p,body:not(.dark) .process-step p,
body:not(.dark) .faq-item p,body:not(.dark) .trust-card span,
body:not(.dark) .resumen-item span{
  color:var(--muted-light)!important;
}
body.dark p,body.dark label,body.dark span,
body.dark .section-title p,body.dark .booking-hero p,
body.dark .lux-card p,body.dark .process-step p,
body.dark .faq-item p,body.dark .trust-card span,
body.dark .resumen-item span,
body.dark .resumen-item b,
body.dark #resExtras{
  color:var(--muted-dark)!important;
}
body.dark .opcion,
body.dark .cantidad-ret,
body.dark input,
body.dark select,
body.dark textarea,
body.dark .hora,
body.dark .dia.disponible{
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.18)!important;
}
body.dark .opcion span,
body.dark .opcion small,
body.dark .opcion div,
body.dark .cantidad-ret span{
  color:#fff!important;
}
body.dark .opcion.activa,
body.dark .cantidad-ret.activa,
body.dark .hora.activa,
body.dark .dia.activo{
  background:linear-gradient(135deg,var(--primary),var(--secondary))!important;
  color:#fff!important;
  border-color:transparent!important;
}
body.dark input::placeholder,body.dark textarea::placeholder{color:#d8c7ee!important;}
body:not(.dark) input,body:not(.dark) select,body:not(.dark) textarea,
body:not(.dark) .hora,body:not(.dark) .dia.disponible{
  background:#fff!important;
  color:#2b1736!important;
  border-color:rgba(155,89,255,.18)!important;
}
body.dark .dia.ocupado{
  background:rgba(255,255,255,.08)!important;
  color:rgba(255,255,255,.48)!important;
  border-color:rgba(255,255,255,.10)!important;
}
.dark-toggle[data-mode="dark"]{background:#fff!important;color:#241333!important;}
.dark-toggle[data-mode="light"]{background:#241333!important;color:#fff!important;}

/* ===== CALENDARIO DE RESERVAS PROFESIONAL V4 ===== */
.booking-page .layout-content{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 390px!important;
  gap:24px!important;
  align-items:start!important;
}
.booking-page .contenido-principal{gap:18px!important;}
.booking-page .sidebar-resumen{width:auto!important;position:sticky!important;top:18px!important;}
.booking-page .card{border-radius:26px!important;box-shadow:0 18px 45px rgba(79,38,111,.10)!important;border:1px solid rgba(155,92,255,.14)!important;}
.booking-page .reserva-card{padding:22px!important;overflow:visible!important;background:rgba(255,255,255,.92)!important;}
body.dark .booking-page .reserva-card{background:rgba(33,18,48,.94)!important;}
.booking-page .reserva-header{margin-bottom:18px!important;gap:12px!important;}
.booking-page .reserva-icon{width:48px!important;height:48px!important;border-radius:16px!important;font-size:23px!important;box-shadow:0 10px 24px rgba(155,92,255,.22)!important;}
.booking-page .reserva-header h3{font-size:24px!important;line-height:1.1!important;}
.booking-page .reserva-header p{font-size:13px!important;margin:3px 0 0!important;}
.booking-form-mini{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px;}
.booking-form-mini label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:800;letter-spacing:.2px;color:#6e537d!important;}
body.dark .booking-form-mini label{color:#eadcff!important;}
.booking-form-mini input{width:100%;border-radius:16px!important;padding:13px 14px!important;border:1px solid rgba(155,92,255,.18)!important;background:#fff!important;outline:none!important;font-size:14px!important;transition:.2s ease!important;}
.booking-form-mini input:focus{border-color:#b36cff!important;box-shadow:0 0 0 4px rgba(179,108,255,.14)!important;}
body.dark .booking-form-mini input{background:rgba(255,255,255,.09)!important;color:#fff!important;border-color:rgba(255,255,255,.16)!important;}
.booking-calendar-panel,.booking-times-panel{border-radius:22px;padding:16px;background:linear-gradient(180deg,rgba(250,247,255,.95),rgba(255,255,255,.86));border:1px solid rgba(155,92,255,.12);margin-bottom:14px;}
body.dark .booking-calendar-panel,body.dark .booking-times-panel{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));border-color:rgba(255,255,255,.12);}
.booking-page .calendar-header{display:grid!important;grid-template-columns:42px 1fr 42px!important;align-items:center!important;gap:10px!important;margin:0 0 14px!important;}
.booking-page .calendar-header button{width:42px!important;height:42px!important;border-radius:14px!important;border:0!important;background:#fff!important;color:#6e2ca3!important;font-weight:900!important;box-shadow:0 8px 18px rgba(74,34,99,.10)!important;cursor:pointer!important;}
body.dark .booking-page .calendar-header button{background:rgba(255,255,255,.12)!important;color:#fff!important;}
.booking-page #mesTitulo{text-align:center!important;font-weight:900!important;text-transform:capitalize!important;font-size:16px!important;color:#3b204d!important;}
body.dark .booking-page #mesTitulo{color:#fff!important;}
.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:7px;}
.weekdays span{text-align:center;font-size:11px;font-weight:900;color:#9a7dac!important;}
body.dark .weekdays span{color:#d9c3ee!important;}
.booking-page .calendario{display:grid!important;grid-template-columns:repeat(7,1fr)!important;gap:6px!important;width:100%!important;}
.booking-page .dia{aspect-ratio:1/1!important;min-height:38px!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important;border-radius:14px!important;border:1px solid transparent!important;font-size:13px!important;font-weight:900!important;cursor:pointer!important;transition:.18s ease!important;}
.booking-page .dia.disponible{background:#fff!important;color:#3b204d!important;border-color:rgba(155,92,255,.13)!important;box-shadow:0 7px 18px rgba(74,34,99,.06)!important;}
.booking-page .dia.disponible:hover{transform:translateY(-1px);border-color:rgba(155,92,255,.34)!important;}
.booking-page .dia.ocupado{background:transparent!important;color:rgba(87,63,101,.28)!important;border-color:rgba(155,92,255,.08)!important;cursor:not-allowed!important;opacity:1!important;}
.booking-page .dia.activo{background:linear-gradient(135deg,#9b5cff,#f7a8d8)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 22px rgba(155,92,255,.30)!important;}
body.dark .booking-page .dia.disponible{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important;}
body.dark .booking-page .dia.ocupado{background:rgba(255,255,255,.035)!important;color:rgba(255,255,255,.28)!important;border-color:rgba(255,255,255,.07)!important;}
body.dark .booking-page .dia.activo{background:linear-gradient(135deg,#9b5cff,#f7a8d8)!important;color:#fff!important;}
.times-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px;}
.times-title h4{margin:0!important;font-size:16px!important;}
.times-title small{font-size:11px;font-weight:700;color:#937aa5!important;text-align:right;}
body.dark .times-title small{color:#d9c3ee!important;}
.booking-page .horas-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin:0!important;}
.booking-page .hora{border-radius:14px!important;padding:11px 10px!important;background:#fff!important;color:#3b204d!important;border:1px solid rgba(155,92,255,.14)!important;box-shadow:0 7px 18px rgba(74,34,99,.05)!important;font-weight:900!important;font-size:13px!important;transition:.18s ease!important;}
.booking-page .hora:hover{transform:translateY(-1px);border-color:rgba(155,92,255,.32)!important;}
.booking-page .hora.activa{background:linear-gradient(135deg,#9b5cff,#f7a8d8)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 22px rgba(155,92,255,.25)!important;}
body.dark .booking-page .hora{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important;}
.empty-hours{grid-column:1/-1;text-align:center;padding:18px 10px;border-radius:16px;background:rgba(155,92,255,.07);color:#7f6792;font-weight:800;font-size:13px;}
body.dark .empty-hours{background:rgba(255,255,255,.07);color:#eadcff;}
.booking-submit{width:100%!important;border:0!important;border-radius:18px!important;padding:15px 16px!important;font-size:15px!important;font-weight:900!important;background:linear-gradient(135deg,#9b5cff,#f7a8d8)!important;color:#fff!important;box-shadow:0 14px 30px rgba(155,92,255,.25)!important;cursor:pointer!important;}
.booking-submit:hover{filter:brightness(1.04);transform:translateY(-1px);}
@media(max-width:1000px){.booking-page .layout-content{grid-template-columns:1fr!important}.booking-page .sidebar-resumen{position:relative!important;top:auto!important}.booking-page .reserva-card{max-width:620px;margin-inline:auto!important;width:100%;}}
@media(max-width:520px){.booking-page .reserva-card{padding:16px!important}.booking-page .calendario,.weekdays{gap:4px!important}.booking-page .dia{border-radius:10px!important;min-height:34px!important;font-size:12px!important}.booking-page .horas-grid{grid-template-columns:1fr 1fr!important}.times-title{display:block}.times-title small{text-align:left;display:block;margin-top:4px}.booking-hero{padding:22px!important}.booking-hero h1{font-size:30px!important;}}

/* ===== INDEX PROFESIONAL LIMPIO V5 ===== */
body:not(.dark) .hero{
  background:linear-gradient(135deg,#fff7fd 0%,#f7edff 52%,#ffe7f5 100%)!important;
  border:1px solid rgba(126,58,171,.14)!important;
  box-shadow:0 24px 70px rgba(109,40,217,.12)!important;
}
body.dark .hero{
  background:linear-gradient(135deg,#241232 0%,#321947 55%,#201026 100%)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.32)!important;
}
.hero{
  min-height:auto!important;
  padding:70px 28px 56px!important;
  border-radius:34px!important;
  margin-top:16px!important;
}
.hero::before{
  background:radial-gradient(circle at 50% 8%,rgba(255,255,255,.82),transparent 20%),radial-gradient(circle at 82% 18%,rgba(255,111,181,.18),transparent 26%)!important;
  opacity:.85!important;
}
.hero-logo-wrapper{margin-bottom:18px!important;}
.hero-logo{width:128px!important;height:128px!important;border-radius:30px!important;background:#fff!important;box-shadow:0 20px 55px rgba(155,92,255,.18)!important;}
.hero-ring,.particles,.hero-glow{display:none!important;}
.hero h1{
  font-family:'Playfair Display',serif!important;
  font-size:clamp(44px,6.5vw,78px)!important;
  color:#4c1d62!important;
  text-shadow:none!important;
  margin-bottom:10px!important;
}
body.dark .hero h1{color:#fff7fd!important;}
.hero p{
  color:#6d5978!important;
  font-weight:500!important;
  max-width:620px!important;
  text-shadow:none!important;
}
body.dark .hero p{color:#f2ddff!important;}
.hero-badges{margin-top:22px!important;}
.hero-badges span{
  background:transparent!important;
  color:#ffffff!important;
  border:none!important;
  box-shadow:none!important;
  padding:0!important;
  font-size:13px!important;
}
body.dark .hero-badges span{
  background:transparent!important;
  color:#ffffff!important;
  border:none!important;
}
.hero-actions{margin-top:24px!important;}
.hero-actions .hero-btn,
.hero .hero-actions .hero-btn,
a .hero-btn{
  min-width:220px!important;
  min-height:56px!important;
  background:#1d1027!important;
  color:#fff!important;
  box-shadow:0 16px 38px rgba(29,16,39,.24)!important;
}
.hero-actions .btn-outline{
  background:#fff!important;
  color:#5f2a7d!important;
  border-color:rgba(95,42,125,.14)!important;
  box-shadow:0 12px 28px rgba(95,42,125,.10)!important;
}
body.dark .hero-actions .btn-outline{background:rgba(255,255,255,.12)!important;color:#fff!important;border-color:rgba(255,255,255,.16)!important;}
.hero-socials{margin-top:16px!important;}
.hero-socials a{
  background:linear-gradient(135deg,#9b5cff,#e449a4)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 12px 26px rgba(155,92,255,.22)!important;
}
body.dark .hero-socials a{background:rgba(255,255,255,.10)!important;color:#fff!important;border:1px solid rgba(255,255,255,.16)!important;}
.trust-row{grid-template-columns:repeat(3,minmax(0,1fr))!important;max-width:860px;margin:22px auto!important;}
.trust-card:nth-child(4){display:none!important;}
.cta-band,.section-title,.lux-grid,.card,.testimonials{max-width:1040px;margin-left:auto!important;margin-right:auto!important;}
.lux-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
.card{box-shadow:0 18px 46px rgba(69,35,99,.08)!important;}
.gallery-grid img{border-radius:22px!important;box-shadow:0 14px 34px rgba(69,35,99,.12)!important;}
.footer-pro{border-radius:30px!important;}
@media(max-width:760px){
  .hero{padding:42px 18px!important;border-radius:26px!important;}
  .hero-logo{width:104px!important;height:104px!important;}
  .trust-row,.lux-grid{grid-template-columns:1fr!important;}
  .trust-card:nth-child(4){display:block!important;}
}

/* ===== BOOKING PROFESIONAL ORDENADO V6 ===== */
.booking-page{
  width:min(1180px,calc(100% - 28px))!important;
  max-width:1180px!important;
  margin:0 auto!important;
  padding:18px 0 34px!important;
}
.booking-page .booking-hero{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  align-items:center!important;
  gap:28px!important;
  width:min(980px,100%)!important;
  margin:16px auto 26px!important;
  padding:26px 30px!important;
  border-radius:28px!important;
  background:linear-gradient(135deg,#fff7ff,#f3e8ff)!important;
  border:1px solid rgba(127,79,168,.18)!important;
  box-shadow:0 22px 55px rgba(58,28,82,.10)!important;
  text-align:left!important;
}
body.dark .booking-page .booking-hero{
  background:linear-gradient(135deg,#221230,#2f1d42)!important;
  border-color:rgba(255,255,255,.12)!important;
  box-shadow:0 22px 55px rgba(0,0,0,.28)!important;
}
.booking-page .booking-hero .back-home{
  min-width:150px!important;
  max-width:max-content!important;
  padding:13px 22px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,#f58bd7,#9d5cff)!important;
  color:#fff!important;
  box-shadow:0 14px 28px rgba(157,92,255,.23)!important;
  white-space:nowrap!important;
}
.booking-page .booking-kicker{
  background:rgba(155,92,255,.12)!important;
  color:#7a2fa4!important;
  border:1px solid rgba(155,92,255,.14)!important;
}
body.dark .booking-page .booking-kicker{
  background:rgba(255,255,255,.10)!important;
  color:#ffd9f2!important;
  border-color:rgba(255,255,255,.12)!important;
}
.booking-page .booking-hero h1{
  max-width:720px!important;
  font-size:clamp(30px,4.1vw,52px)!important;
  line-height:1.08!important;
  margin:10px 0!important;
  color:#30163e!important;
  text-wrap:balance!important;
}
.booking-page .booking-hero p{
  max-width:660px!important;
  margin:0!important;
  color:#6e537d!important;
  font-size:15px!important;
}
body.dark .booking-page .booking-hero h1{color:#fff7fb!important;}
body.dark .booking-page .booking-hero p{color:#e8d7f5!important;}
.booking-page .layout-content{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 360px!important;
  gap:28px!important;
  align-items:start!important;
}
.booking-page .contenido-principal{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:20px!important;
}
.booking-page .contenido-principal .card{
  margin:0!important;
}
.booking-page .contenido-principal .retiro-full{
  grid-column:1 / -1!important;
}
.booking-page .card{
  padding:22px!important;
  border-radius:26px!important;
  background:rgba(255,255,255,.88)!important;
  border:1px solid rgba(127,79,168,.16)!important;
  box-shadow:0 18px 45px rgba(58,28,82,.10)!important;
}
body.dark .booking-page .card{
  background:rgba(34,18,48,.96)!important;
  border-color:rgba(255,255,255,.12)!important;
  box-shadow:0 18px 45px rgba(0,0,0,.25)!important;
}
.booking-page .card h3,.booking-page .card h4{
  color:#2f173e!important;
  margin:0 0 14px!important;
  line-height:1.15!important;
}
body.dark .booking-page .card h3,body.dark .booking-page .card h4{color:#fff8fc!important;}
.booking-page .grid-opciones{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(116px,1fr))!important;
  gap:12px!important;
  align-items:stretch!important;
}
.booking-page .opcion,
.booking-page .cantidad-ret{
  width:100%!important;
  max-width:none!important;
  min-height:118px!important;
  border-radius:20px!important;
  padding:12px 10px!important;
  background:#fbf7ff!important;
  color:#2f173e!important;
  border:1px solid rgba(127,79,168,.16)!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.booking-page .opcion img{
  width:62px!important;
  height:62px!important;
  border-radius:17px!important;
  background:#fff!important;
  border:1px solid rgba(127,79,168,.10)!important;
  box-shadow:0 7px 18px rgba(58,28,82,.08)!important;
}
.booking-page .opcion span,.booking-page .opcion small,.booking-page .opcion div,.booking-page .cantidad-ret span{
  color:#2f173e!important;
  font-weight:800!important;
  line-height:1.25!important;
  text-shadow:none!important;
}
.booking-page .opcion:hover,.booking-page .cantidad-ret:hover{
  transform:translateY(-2px)!important;
  border-color:rgba(155,92,255,.38)!important;
}
.booking-page .opcion.activa,.booking-page .cantidad-ret.activa{
  background:linear-gradient(135deg,#9b5cff,#ee78cf)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 14px 26px rgba(155,92,255,.22)!important;
}
.booking-page .opcion.activa span,.booking-page .opcion.activa small,.booking-page .opcion.activa div,.booking-page .cantidad-ret.activa span{
  color:#fff!important;
}
.booking-page .opcion.activa img{border-color:#fff!important;}
body.dark .booking-page .opcion,body.dark .booking-page .cantidad-ret{
  background:rgba(255,255,255,.075)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.13)!important;
}
body.dark .booking-page .opcion span,body.dark .booking-page .opcion small,body.dark .booking-page .opcion div,body.dark .booking-page .cantidad-ret span{color:#fff!important;}
body.dark .booking-page .opcion img{background:rgba(255,255,255,.96)!important;}
.booking-page .sidebar-resumen{
  width:auto!important;
  position:sticky!important;
  top:18px!important;
  display:flex!important;
  flex-direction:column!important;
  gap:16px!important;
}
.booking-page .resumen-card,.booking-page .reserva-card{margin:0!important;}
.booking-page .resumen-card h3{font-size:24px!important;}
.booking-page .resumen-item{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:12px!important;
  padding:11px 0!important;
  border-bottom:1px dashed rgba(127,79,168,.22)!important;
  color:#5b426b!important;
}
body.dark .booking-page .resumen-item{color:#ecdfff!important;border-bottom-color:rgba(255,255,255,.18)!important;}
.booking-page .resumen-item span,.booking-page .resumen-item b,.booking-page #resExtras{color:inherit!important;font-weight:800!important;}
.booking-page .total-final{
  margin-top:16px!important;
  border-radius:20px!important;
  padding:18px!important;
  background:linear-gradient(135deg,#2f173e,#7b3cc7)!important;
  box-shadow:0 16px 32px rgba(85,45,122,.20)!important;
}
.booking-page .total-final h2{
  color:#fff!important;
  margin:0!important;
  text-align:center!important;
  font-family:'Poppins',sans-serif!important;
  font-size:34px!important;
  letter-spacing:.4px!important;
}
body.dark .booking-page .total-final{background:linear-gradient(135deg,#9b5cff,#ee78cf)!important;}
.booking-page .reserva-header h3{color:#2f173e!important;}
.booking-page .reserva-header p{color:#6e537d!important;}
body.dark .booking-page .reserva-header h3{color:#fff!important;}
body.dark .booking-page .reserva-header p{color:#e3d1f2!important;}
.booking-page .booking-calendar-panel,.booking-page .booking-times-panel{
  background:#fbf7ff!important;
  border:1px solid rgba(127,79,168,.14)!important;
  border-radius:22px!important;
}
body.dark .booking-page .booking-calendar-panel,body.dark .booking-page .booking-times-panel{
  background:rgba(255,255,255,.055)!important;
  border-color:rgba(255,255,255,.12)!important;
}
.booking-page .booking-form-mini input{
  background:#fff!important;
  color:#2f173e!important;
}
body.dark .booking-page .booking-form-mini input{
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
}
.booking-page .dia.disponible,.booking-page .hora{
  background:#fff!important;
  color:#30163e!important;
  border-color:rgba(127,79,168,.15)!important;
}
body.dark .booking-page .dia.disponible,body.dark .booking-page .hora{
  background:rgba(255,255,255,.09)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.14)!important;
}
.booking-page .dia.activo,.booking-page .hora.activa{
  background:linear-gradient(135deg,#9b5cff,#ee78cf)!important;
  color:#fff!important;
  box-shadow:0 10px 22px rgba(155,92,255,.28)!important;
}
.booking-page .dia.ocupado{color:rgba(68,45,82,.34)!important;background:rgba(127,79,168,.05)!important;}
body.dark .booking-page .dia.ocupado{color:rgba(255,255,255,.32)!important;background:rgba(255,255,255,.035)!important;}
.booking-submit{
  background:linear-gradient(135deg,#9b5cff,#ee78cf)!important;
  color:#fff!important;
  box-shadow:0 16px 32px rgba(155,92,255,.25)!important;
}
@media(max-width:1050px){
  .booking-page .layout-content{grid-template-columns:1fr!important;}
  .booking-page .sidebar-resumen{position:relative!important;top:auto!important;display:grid!important;grid-template-columns:1fr 1fr!important;}
}
@media(max-width:760px){
  .booking-page .booking-hero{grid-template-columns:1fr!important;text-align:center!important;padding:24px!important;}
  .booking-page .booking-hero .back-home{margin:auto!important;width:100%!important;max-width:260px!important;}
  .booking-page .contenido-principal{grid-template-columns:1fr!important;}
  .booking-page .sidebar-resumen{display:flex!important;}
}
@media(max-width:520px){
  .booking-page{width:min(100% - 18px,1180px)!important;}
  .booking-page .card{padding:17px!important;border-radius:22px!important;}
  .booking-page .grid-opciones{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
  .booking-page .opcion{min-height:112px!important;}
}

/* ===== CALENDARIO DE RESERVAS MEJORADO V7 ===== */
.booking-page .calendario{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(32px,1fr))!important;
  gap:8px!important;
  min-height:220px!important;
  align-items:center!important;
}
.booking-page .dia,
.booking-page .dia-vacio{
  width:100%!important;
  aspect-ratio:1/1!important;
  min-height:36px!important;
}
.booking-page .dia{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:1px solid rgba(127,79,168,.18)!important;
  outline:none!important;
  padding:0!important;
  margin:0!important;
  border-radius:14px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-family:'Poppins',sans-serif!important;
  font-size:13px!important;
  font-weight:900!important;
  background:#fff!important;
  color:#30163e!important;
  box-shadow:0 8px 18px rgba(74,34,99,.07)!important;
  cursor:pointer!important;
}
.booking-page .dia-vacio{visibility:hidden!important;pointer-events:none!important;}
.booking-page .dia.disponible:hover{transform:translateY(-1px)!important;border-color:rgba(155,92,255,.42)!important;}
.booking-page .dia.ocupado,
.booking-page .dia:disabled{
  background:rgba(127,79,168,.05)!important;
  color:rgba(68,45,82,.34)!important;
  cursor:not-allowed!important;
  box-shadow:none!important;
}
.booking-page .dia.activo{
  background:linear-gradient(135deg,#9b5cff,#ee78cf)!important;
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 12px 26px rgba(155,92,255,.30)!important;
}
.calendar-loading{
  grid-column:1/-1!important;
  text-align:center!important;
  padding:28px 10px!important;
  border-radius:18px!important;
  background:rgba(155,92,255,.08)!important;
  color:#7a5a8f!important;
  font-weight:900!important;
}
body.dark .booking-page .dia{background:rgba(255,255,255,.10)!important;color:#fff!important;border-color:rgba(255,255,255,.14)!important;}
body.dark .booking-page .dia.ocupado,body.dark .booking-page .dia:disabled{background:rgba(255,255,255,.035)!important;color:rgba(255,255,255,.32)!important;}
body.dark .calendar-loading{background:rgba(255,255,255,.07)!important;color:#eadcff!important;}
@media(max-width:520px){.booking-page .calendario{gap:5px!important}.booking-page .dia,.booking-page .dia-vacio{min-height:32px!important;border-radius:11px!important;font-size:12px!important}}
