*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,sans-serif;color:#493b48;background:linear-gradient(135deg,#fff8fc,#f5edff,#fff9fc);min-height:100vh}.blob{position:fixed;border-radius:50%;filter:blur(65px);opacity:.45;z-index:-1}.b1{width:350px;height:350px;background:#efc5df;right:-100px;top:-100px}.b2{width:300px;height:300px;background:#d8c5f2;left:-100px;bottom:-80px}header{position:sticky;top:0;z-index:5;background:#ffffffb8;backdrop-filter:blur(14px);border-bottom:1px solid #8d648010}.nav{max-width:1120px;margin:auto;padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.logo{font-size:23px;font-weight:800}.logo span{color:#ae6e9c}nav{display:flex;gap:24px}nav a{color:#604f5e;text-decoration:none;font-weight:600;font-size:14px}.hero,.section{max-width:1120px;margin:auto;padding:85px 22px}.hero{min-height:620px;display:grid;grid-template-columns:1.25fr .75fr;gap:45px;align-items:center}.eyebrow{font-size:12px;letter-spacing:3px;color:#a46890;font-weight:800}h1{font-size:clamp(55px,8vw,88px);line-height:.95;letter-spacing:-4px;margin:15px 0 24px}h1 span{color:#aa6c98}.hero p:not(.eyebrow){font-size:18px;line-height:1.6;color:#776978;max-width:520px}.btn{border:0;background:#9e628d;color:white;border-radius:999px;padding:15px 25px;font-weight:700;display:inline-block;text-decoration:none;cursor:pointer;box-shadow:0 12px 30px #8d507526}.hero-card{height:370px;border-radius:35px;background:#ffffffa8;border:1px solid white;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 25px 70px #76547618}.spark{font-size:78px;color:#ac6d99}.hero-card b{font-size:25px}.hero-card small{color:#897786;margin-top:8px}h2{font-size:42px;margin:8px 0 30px;letter-spacing:-1.5px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.cards article,aside,.form{background:#ffffffb8;border:1px solid #8d648012;border-radius:24px;padding:25px;box-shadow:0 15px 45px #7654760d}.cards b{color:#ad7199;font-size:12px}.cards h3{margin:25px 0 8px}.cards p,.intro{color:#776978;line-height:1.5}.catalog details{background:#ffffffbd;border:1px solid #8d648012;border-radius:20px;margin:12px 0;overflow:hidden}.catalog summary{padding:21px;cursor:pointer;font-weight:800;display:flex;justify-content:space-between}.catalog summary span{font-size:12px;color:#987c91}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 15px 15px}.item{background:#fff7fc;border-radius:12px;padding:14px;display:flex;justify-content:space-between;gap:10px}.item strong{color:#a35e8b}.booking{display:grid;grid-template-columns:1.15fr .85fr;gap:24px}.form label{display:block;font-weight:700;font-size:14px;margin-bottom:15px}.form input,.form select{width:100%;margin-top:7px;padding:13px;border:1px solid #e5d8e3;border-radius:11px;background:white;font:inherit}.checks{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:390px;overflow:auto;margin-top:7px}.checks label{font-weight:500;background:#fff7fc;border-radius:9px;padding:9px;font-size:12px;margin:0}.checks input{width:auto;margin:0 5px 0 0;padding:0}.form .btn{width:100%;font:inherit;margin-top:4px}.form p{font-size:13px;color:#806f7d}.rules h3{margin-top:0}.rules li{margin:0 0 13px;line-height:1.55}.hours{background:#fff7fc;border-radius:16px;padding:17px;margin-top:25px}.hours p{line-height:1.55}footer{text-align:center;padding:45px 20px;border-top:1px solid #8d648012;background:#ffffff80}footer p{color:#8b7a88}@media(max-width:800px){nav{display:none}.hero,.booking{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}.hero-card{height:270px}.grid{grid-template-columns:1fr}}@media(max-width:520px){.section,.hero{padding:65px 16px}.cards{grid-template-columns:1fr}.checks{grid-template-columns:1fr}h2{font-size:34px}.item{font-size:13px}}.footer-contact{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:12px}.footer-contact a{color:inherit;text-decoration:none;opacity:.9}.footer-contact a:hover{text-decoration:underline;opacity:1}

.contact-card{border:0;background:#fff7fc;color:#604f5e;border-radius:14px;padding:12px 18px;font:inherit;font-weight:700;cursor:pointer;transition:.2s;box-shadow:0 8px 25px #76547610}.contact-card:hover{transform:translateY(-2px);background:#f9edf7}.contact-info{max-width:560px;margin:14px auto 0;display:none}.contact-info.show{display:block;animation:contactIn .25s ease}.contact-detail{background:#ffffffd9;border:1px solid #8d648018;border-radius:18px;padding:18px;box-shadow:0 12px 35px #76547612}.contact-detail-title{font-weight:800;font-size:16px;margin-bottom:6px}.contact-detail-text{color:#776978;margin-bottom:14px}.contact-link{display:inline-block;background:#9e628d;color:#fff;text-decoration:none;border-radius:999px;padding:10px 17px;font-size:13px;font-weight:700}.contact-link:hover{opacity:.9}@keyframes contactIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}


/* Horarios que ya pasaron durante el día actual */
.time-btn.past {
  opacity: .42;
  color: #aaa;
  background: #f5f2f5;
  border-color: #e8e2e7;
  cursor: not-allowed;
  text-decoration: line-through;
}

.time-dot.past {
  background: #aaa;
}


/* Selector visual de horarios */
.time-panel{
  margin-top:7px;
  background:#ffffff;
  border:1px solid #e5d8e3;
  border-radius:16px;
  padding:14px;
}

.time-panel-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.time-panel-title{
  font-size:14px;
  font-weight:800;
  color:#604f5e;
}

.time-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:10px;
  font-size:11px;
  font-weight:600;
  color:#806f7d;
}

.time-legend span{
  display:inline-flex;
  align-items:center;
  gap:5px;
}

.time-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  display:inline-block;
  background:#ae6e9c;
}

.time-dot.busy{
  background:#c8c1c7;
}

.time-dot.past{
  background:#aaa;
}

.time-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
}

.time-btn{
  border:1px solid #e3c6dc;
  background:#fff7fc;
  color:#604f5e;
  border-radius:11px;
  min-height:42px;
  padding:8px 6px;
  font:inherit;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
  transition:.18s ease;
}

.time-btn:hover:not(:disabled){
  transform:translateY(-1px);
  background:#f9edf7;
  border-color:#c38aaf;
}

.time-btn.selected{
  background:#9e628d;
  color:#fff;
  border-color:#9e628d;
  box-shadow:0 7px 18px #8d507526;
}

.time-btn.busy,
.time-btn.past{
  opacity:.48;
  color:#9e969e;
  background:#f5f2f5;
  border-color:#e7e1e6;
  cursor:not-allowed;
}

.time-btn.past{
  text-decoration:line-through;
}

.time-empty,
.time-loading,
.time-error{
  padding:14px;
  text-align:center;
  border-radius:12px;
  background:#fff7fc;
  color:#806f7d;
  font-size:13px;
  line-height:1.5;
}

.time-error{
  color:#9b5f7f;
}

@media(max-width:520px){
  .time-grid{
    grid-template-columns:repeat(3,1fr);
  }

  .time-panel-header{
    align-items:flex-start;
    flex-direction:column;
  }

  .time-legend{
    justify-content:flex-start;
  }
}
