@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600;700&family=Figtree:wght@400;500;600;700&display=swap');
@font-face{font-family:'Dancing Script';font-weight:600 700;src:url('fuentes/DancingScript-600.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Figtree';font-weight:400 600;src:url('fuentes/Figtree-latin.woff2') format('woff2');font-display:swap}

:root {
  --fl-malva:#8A5A78;
  --fl-lila:#F1E7EE;
  --fl-salvia:#E3ECE3;
  --fl-arena:#F6EBD0;
  --fl-ciruela:#5A0A3A;
  --fl-tinta:#3A2A33;
  --fl-texto-2:#6F5F68;
  --fl-fondo:#FAF7F8;
  --fl-superficie:#FFFFFF;
  --fl-borde:#E9E0E5;
  --fl-radio:12px;
  --fl-radio-boton:999px;
  --fl-radio-tarjeta:20px;
  --fl-titulo:'Dancing Script',cursive;
  --fl-texto:'Figtree',sans-serif;

  /* Aliases para compatibilidad */
  --vino: var(--fl-malva);
  --vino2: var(--fl-ciruela);
  --rosa: var(--fl-lila);
  --crema: var(--fl-fondo);
  --tx: var(--fl-tinta);
  --tx2: var(--fl-texto-2);
  --linea: var(--fl-borde);
  --wa: #1f8f4e;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px}
body{margin:0;color:var(--fl-tinta);background:var(--fl-fondo);font:400 17px/1.7 var(--fl-texto);-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
a{color:var(--fl-malva);transition:color .2s ease}
a:hover{color:var(--fl-ciruela)}

.ancho{max-width:1080px;margin:0 auto;padding:0 20px}
.top{position:sticky;top:0;z-index:20;background:rgba(250,247,248,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--fl-borde)}
.fila{display:flex;align-items:center;gap:18px;min-height:64px;justify-content:space-between}
.marca img{height:46px;width:auto}
.tabs{border-top:1px solid var(--fl-borde);background:var(--fl-superficie)}
.tabs-in{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;justify-content:center}
.tabs-in::-webkit-scrollbar{display:none}
.tabs a{flex:none;padding:12px 18px;text-decoration:none;color:var(--fl-texto-2);font-weight:600;font-size:16px;border-bottom:3px solid transparent;white-space:nowrap;transition:all .2s ease}
.tabs a:hover{color:var(--fl-ciruela)}
.tabs a.on{color:var(--fl-malva);border-bottom-color:var(--fl-malva)}

.btn{display:inline-block;border-radius:var(--fl-radio-boton);padding:11px 24px;font-weight:600;text-decoration:none;background:var(--fl-malva);color:#fff;border:2px solid var(--fl-malva);font-size:15px;text-align:center;cursor:pointer;font-family:var(--fl-texto);transition:all .2s ease}
.btn:hover{background:var(--fl-ciruela);border-color:var(--fl-ciruela);color:#fff}
.btn.wa{background:var(--wa);border-color:var(--wa);color:#fff}
.btn.wa:hover{background:#166e3b;border-color:#166e3b}
.btn.sec{background:var(--fl-lila);color:var(--fl-malva);border-color:var(--fl-lila)}
.btn.sec:hover{background:#e8dbe4;color:var(--fl-ciruela);border-color:#e8dbe4}
.btn.cta{padding:9px 20px}

.hero{background:linear-gradient(180deg,#ffffff,var(--fl-lila));padding:52px 0 60px;text-align:center;border-bottom:1px solid var(--fl-borde)}
.hero-logo{width:min(440px,82%);margin:0 auto 16px}
.eslogan{font-size:20px;color:var(--fl-texto-2);margin:8px 0 24px;font-weight:500}
.acciones{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.acciones.izq{justify-content:flex-start;margin:22px 0 6px}

.bloque{padding:48px 0}
.bloque.alt{background:var(--fl-superficie);padding:48px 0;border-top:1px solid var(--fl-borde);border-bottom:1px solid var(--fl-borde)}
.ancho.bloque{padding-left:20px;padding-right:20px}

h1{font-family:var(--fl-titulo);font-weight:600;font-size:42px;line-height:1.2;color:var(--fl-tinta);margin:0 0 10px}
h2{font-family:var(--fl-texto);font-weight:600;font-size:28px;color:var(--fl-tinta);line-height:1.25;margin:0 0 12px}
h3{font-family:var(--fl-texto);font-weight:600;font-size:20px;color:var(--fl-tinta);margin:0 0 6px}
.sub{margin-top:24px}
.sub2{margin-top:32px;font-size:22px;color:var(--fl-tinta)}
.lead{font-size:18px;max-width:760px;color:var(--fl-tinta)}
.nota{color:var(--fl-texto-2);font-size:15px}

.explora{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin-top:18px}
.card-link{display:block;background:var(--fl-superficie);border:1px solid var(--fl-borde);border-radius:var(--fl-radio-tarjeta);padding:22px;text-decoration:none;color:var(--fl-tinta);transition:all .2s ease;box-shadow:0 2px 10px rgba(90,10,58,.03)}
.card-link:hover{border-color:var(--fl-malva);box-shadow:0 6px 20px rgba(90,10,58,.08);transform:translateY(-2px)}
.card-link h3{color:var(--fl-malva);font-size:21px}
.card-link p{margin:6px 0 14px;color:var(--fl-texto-2);font-size:15px}
.card-link span{color:var(--fl-malva);font-weight:600}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-top:22px}
.hab{background:var(--fl-superficie);border:1px solid var(--fl-borde);border-radius:var(--fl-radio-tarjeta);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 2px 10px rgba(90,10,58,.03)}
.sinfoto{background:var(--fl-lila);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}
.sinfoto img{width:46%;opacity:.9}
.galeria{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;aspect-ratio:4/3}
.galeria img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start}
.hab .cuerpo{padding:16px 18px 20px}
.hab h3{font-size:20px;color:var(--fl-tinta)}
.hab p{margin:6px 0 0;color:var(--fl-texto-2);font-size:15px}
.hab .camas{color:var(--fl-tinta);margin:8px 0 0}
.hab .tv{font-size:13px;color:var(--fl-texto-2);margin:8px 0 0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.chips span{background:var(--fl-lila);color:var(--fl-malva);border-radius:999px;padding:3px 12px;font-size:13px;font-weight:600}
.num{display:inline-block;min-width:30px;text-align:center;background:var(--fl-lila);color:var(--fl-malva);border-radius:8px;padding:1px 8px;margin-right:6px;font-size:16px;font-weight:600}

.precios{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin:22px 0}
.precio{border:1px solid var(--fl-borde);border-radius:var(--fl-radio-tarjeta);padding:24px 20px;text-align:center;background:var(--fl-superficie);box-shadow:0 2px 10px rgba(90,10,58,.03)}
.precio .monto{display:block;font-size:42px;font-weight:700;color:var(--fl-malva);line-height:1.1}
.precio h3{margin-top:10px;font-size:18px}
.precio p{margin:6px 0 0;color:var(--fl-texto-2);font-size:15px}

.pasos{max-width:740px;padding-left:22px}
.pasos li{margin:10px 0}
.servicios{columns:2;max-width:680px}
.servicios.una{columns:1}
.aviso-web{background:var(--fl-arena);color:#5C4410;border-left:4px solid #BFA15F;padding:12px 16px;border-radius:10px;max-width:760px;margin-top:18px}
.contacto{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;margin-top:16px}
.contacto h3{color:var(--fl-malva);font-size:15px;text-transform:uppercase;letter-spacing:.08em}
.tel-fila{display:flex;align-items:center;gap:12px;margin-top:6px;flex-wrap:wrap}
.tel-numero{font-size:17px;font-weight:600;color:var(--fl-tinta);letter-spacing:.02em}
.btn-wa-directo{display:inline-flex;align-items:center;gap:7px;background:var(--wa);color:#fff!important;text-decoration:none;padding:7px 16px;border-radius:999px;font-size:14px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 8px rgba(31,143,78,.25)}
.btn-wa-directo:hover{background:#166e3b;transform:translateY(-1px);color:#fff!important}
.btn-wa-directo svg{flex:none}
.mapa-caja{margin:22px 0 16px;border:1px solid var(--fl-borde);border-radius:var(--fl-radio-tarjeta);overflow:hidden;box-shadow:0 2px 12px rgba(90,10,58,.04);background:#fff}

.tarjeta-form{background:var(--fl-superficie);border:1px solid var(--fl-borde);border-radius:var(--fl-radio-tarjeta);padding:26px;max-width:760px;margin-top:24px;box-shadow:0 4px 18px rgba(90,10,58,.05)}
.tarjeta-form h2{font-size:24px;margin-bottom:12px}
.tarjeta-form label{display:block;font-weight:600;font-size:15px;margin:14px 0 0}
.tarjeta-form label small{font-weight:400;color:var(--fl-texto-2)}
.tarjeta-form input,.tarjeta-form select,.tarjeta-form textarea{display:block;width:100%;margin-top:6px;padding:11px 13px;border:1px solid var(--fl-borde);border-radius:var(--fl-radio);font:inherit;background:#FAF7F8;color:var(--fl-tinta);transition:border-color .2s ease}
.tarjeta-form input:focus,.tarjeta-form select:focus,.tarjeta-form textarea:focus{outline:2px solid var(--fl-malva);outline-offset:0;border-color:transparent;background:#fff}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.f3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}
.tarjeta-form .chk{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;margin-top:16px}
.tarjeta-form .chk input{width:22px;height:22px;margin:2px 0 0;flex:none}
.trampa{position:absolute!important;left:-9999px;height:0;width:0;opacity:0}
#turnstile{margin-top:14px;min-height:65px}
.info{border-radius:10px;font-size:15px;margin-top:10px}
.info:not(:empty){padding:10px 14px}
.info.ok{background:var(--fl-salvia);color:#2F4A33}
.info.poca{background:var(--fl-arena);color:#5C4410}
.info.no{background:#FDE8E8;color:#A02018}

.habs-res{display:grid;gap:12px;margin-top:12px}
.hab-op{display:flex;gap:12px;border:1px solid var(--fl-borde);border-radius:14px;padding:12px;background:#fff;align-items:stretch;transition:all .2s ease}
.hab-op.sel{border-color:var(--fl-malva);box-shadow:0 0 0 2px var(--fl-malva) inset;background:var(--fl-lila)}
.hab-op img{width:110px;height:92px;object-fit:cover;border-radius:10px;flex:none;background:var(--fl-lila)}
.hab-op .tx{flex:1;min-width:0}
.hab-op h3{font-size:17px;margin:0;color:var(--fl-tinta)}
.hab-op p{margin:4px 0 0;font-size:14px;color:var(--fl-texto-2)}
.tarjeta-form .hab-op .btn{width:auto;margin:0;align-self:center;padding:8px 16px;font-size:14px;flex:none}
.edades{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}

.cot{background:var(--fl-fondo);border:1px solid var(--fl-borde);border-radius:14px;padding:14px 16px;margin-top:14px}
.cot table{width:100%;border-collapse:collapse;font-size:15px}
.cot td{padding:6px 0;vertical-align:top}
.cot td:last-child{text-align:right;white-space:nowrap}
.cot .tot td{font-weight:700;border-top:1px solid var(--fl-borde);padding-top:10px}
.cot small{color:var(--fl-texto-2)}

#fechasTxt{cursor:pointer}
.cal{border:1px solid var(--fl-borde);border-radius:14px;padding:12px;margin-top:8px;background:#fff}
.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cal-nav button{border:0;background:var(--fl-lila);color:var(--fl-malva);width:38px;height:38px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer;transition:all .2s}
.cal-nav button:hover{background:var(--fl-malva);color:#fff}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-ayuda{font-size:14px;color:var(--fl-texto-2);text-align:center}
.meses{display:grid;grid-template-columns:1fr;gap:18px;margin-top:8px}
@media (min-width:700px){.meses{grid-template-columns:1fr 1fr}}
.mes-t{text-align:center;font-weight:600;text-transform:capitalize;color:var(--fl-tinta);margin-bottom:6px}
.sem,.dias{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.sem span{text-align:center;font-size:12px;color:var(--fl-texto-2)}
.dia{border:0;background:none;height:40px;border-radius:10px;font:inherit;font-size:15px;color:var(--fl-tinta);cursor:pointer;padding:0;transition:all .15s}
.dia:hover:not(.off){background:var(--fl-lila)}
.dia.off{color:#C9BCC4;cursor:default}
.dia.hoy{box-shadow:inset 0 0 0 1px var(--fl-malva)}
.dia.dentro{background:var(--fl-lila);border-radius:0}
.dia.ini,.dia.fin{background:var(--fl-malva);color:#fff;font-weight:700}

.acciones-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.acciones-form .btn{margin-top:0}
@media (max-width:560px){.hab-op{flex-wrap:wrap}.hab-op img{width:100%;height:140px}.tarjeta-form .hab-op .btn{width:100%}}
.tarjeta-form .btn{width:100%;margin-top:16px;font-size:16px}
.tarjeta-form .btn:disabled{opacity:.6;cursor:wait}
.ok-form{text-align:center;padding:12px 0}

.persona{border:1px solid var(--fl-borde);border-radius:14px;padding:4px 14px 14px;margin-top:16px;background:var(--fl-fondo)}
.p-top{display:flex;justify-content:space-between;align-items:center;margin-top:8px}
.p-top h3{color:var(--fl-tinta);font-size:18px}
.quitar{border:0;background:none;color:#A02018;font-weight:600;cursor:pointer;font-size:15px}
.menor{background:var(--fl-arena);border-radius:10px;padding:2px 12px 10px;margin-top:12px}
.menor[hidden]{display:none}
.menor p{font-size:14px;color:#5C4410;margin:8px 0 0}
.msg{display:none;color:#A02018;font-size:13px;font-weight:400;margin-top:3px}
.err .msg{display:block}
.err input,.err select{border-color:#A02018!important;background:#FDE8E8!important}

.texto-largo{max-width:800px}
.texto-largo h2{font-size:22px;margin-top:30px}
.texto-largo .version{color:var(--fl-texto-2);font-size:14px}
.tabla-legal{width:100%;border-collapse:collapse;margin:12px 0;font-size:15px}
.tabla-legal th,.tabla-legal td{border:1px solid var(--fl-borde);padding:10px 12px;text-align:left;vertical-align:top}
.tabla-legal th{background:var(--fl-lila);color:var(--fl-tinta);font-weight:600}

footer{background:var(--fl-lila);color:var(--fl-tinta);text-align:center;padding:36px 0 28px;border-top:1px solid var(--fl-borde)}
footer a{color:var(--fl-malva);text-decoration:none}
footer a:hover{color:var(--fl-ciruela);text-decoration:underline}
.logo-pie{height:54px;margin:0 auto 10px;width:auto}
.pie-saludo{font-family:var(--fl-titulo);font-size:28px;font-weight:600;color:var(--fl-tinta);margin-bottom:6px}
footer p{margin:4px 0;color:var(--fl-texto-2);font-size:14px}
footer .copy{font-size:13px;color:var(--fl-texto-2);opacity:.85;margin-top:10px}
.pendiente{background:#FFF3B0;color:#6B5400;border-radius:6px;padding:0 6px;font-size:.85em;font-style:normal}

@media (max-width:760px){
  .servicios{columns:1}
  h1{font-size:32px}
  h2{font-size:24px}
  .hero{padding:36px 0 44px}
  .btn{padding:10px 18px}
  .btn.cta{padding:8px 16px;font-size:14px}
  .tabs-in{justify-content:flex-start;padding:0 8px}
  .tabs a{padding:11px 14px;font-size:15px}
  .f2{grid-template-columns:1fr}
  .f3{grid-template-columns:1fr 1fr 1fr}
  .tarjeta-form{padding:18px}
  html{scroll-padding-top:110px}
  .tabla-legal{font-size:14px}
}
