/* Capa interactiva del index. No reemplaza el diseño global. */
body.lunita-modal-open{overflow:hidden}
.live-results{max-width:1180px;margin:0 auto;padding:22px 20px 60px;display:none}
.live-results.is-visible{display:block}
.live-results__head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:16px}
.live-results__head h2{margin:0;font-size:22px;letter-spacing:-.35px}
.live-results__head p{margin:4px 0 0;color:#667085;font-size:14px}
.live-results__status{font-size:12px;color:#667085;white-space:nowrap}
.live-results__list{display:grid;gap:14px}
.live-result-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;display:grid;grid-template-columns:300px minmax(0,1fr) 220px;min-height:205px;box-shadow:0 4px 18px rgba(15,23,42,.06);opacity:0;transform:translateY(20px);transition:opacity .42s ease,transform .42s ease,box-shadow .2s ease}
.live-result-card.is-in{opacity:1;transform:translateY(0)}
.live-result-card:hover{box-shadow:0 8px 24px rgba(15,23,42,.09)}
.live-result-card__media{min-height:205px;background:#eef1f4;overflow:hidden}
.live-result-card__media img{width:100%;height:100%;display:block;object-fit:cover}
.live-result-card__body{padding:20px 22px;display:flex;flex-direction:column;justify-content:center}
.live-result-card__eyebrow{font-size:12px;font-weight:700;color:#6b7280;margin-bottom:4px}
.live-result-card__title{font-size:20px;line-height:1.18;margin:0 0 7px}
.live-result-card__desc{margin:0 0 13px;color:#5f6672;font-size:13px;line-height:1.5}
.live-result-card__facts{display:flex;flex-wrap:wrap;gap:7px}
.live-chip{font-size:11px;font-weight:700;padding:6px 9px;border:1px solid #e5e7eb;border-radius:999px;background:#fafafa;color:#434a55}
.live-result-card__price{border-left:1px solid #eceff2;padding:20px 18px;display:flex;flex-direction:column;justify-content:center;gap:7px}
.live-result-card__price small{color:#737b87;font-size:11px}
.live-result-card__price strong{font-size:23px;line-height:1.1}
.live-result-card__price .pernight{font-size:11px;color:#737b87;margin-bottom:5px}
.live-actions{display:grid;grid-template-columns:1fr;gap:7px;margin-top:3px}
.live-btn{appearance:none;border:1px solid #d9dde3;border-radius:7px;background:#fff;color:#252a31;font:inherit;font-size:12px;font-weight:750;padding:10px 12px;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease}
.live-btn:hover{transform:translateY(-1px);background:#f7f8fa}
.live-btn--primary{background:#520019;border-color:#520019;color:#fff}
.live-btn--primary:hover{background:#680020;border-color:#680020}
.live-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.live-empty{border:1px solid #e5e7eb;background:#fff;border-radius:12px;padding:26px;text-align:center;color:#555f6d}
.live-searching{
  position:fixed;
  inset:0;
  z-index:13000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.10);
  backdrop-filter:blur(1.5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .5s ease, visibility 0s linear .5s;
}
.live-searching.is-visible{
  opacity:1;
  visibility:visible;
  transition:opacity .5s ease;
}
.live-searching.is-leaving{
  opacity:0;
  visibility:visible;
  transition:opacity .5s ease;
}
.live-searching__box{
  display:flex;
  align-items:center;
  gap:12px;
  width:min(330px,calc(100vw - 36px));
  padding:14px 16px;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(148,163,184,.28);
  border-radius:12px;
  box-shadow:0 14px 38px rgba(15,23,42,.16);
  transform:translateY(7px) scale(.985);
  transition:transform .5s ease;
}
.live-searching.is-visible .live-searching__box{transform:translateY(0) scale(1)}
.live-searching.is-leaving .live-searching__box{transform:translateY(-4px) scale(.99)}
.live-searching__ring{
  width:26px;
  height:26px;
  flex:0 0 26px;
  border:3px solid #e6e8ec;
  border-top-color:#520019;
  border-radius:50%;
  margin:0;
  animation:liveSpin .8s linear infinite;
}
.live-searching__copy{min-width:0}
.live-searching strong{
  display:block;
  font-size:13px;
  line-height:1.2;
  color:#1f2937;
  font-weight:800
}
.live-searching span{
  display:block;
  font-size:10px;
  line-height:1.25;
  color:#7b8491;
  margin-top:3px
}
@keyframes liveSpin{to{transform:rotate(360deg)}}


.live-modal{position:fixed;inset:0;z-index:12000;display:none;align-items:center;justify-content:center;padding:18px}
.live-modal.is-open{display:flex}
.live-modal__backdrop{position:absolute;inset:0;background:rgba(16,20,27,.56);backdrop-filter:blur(2px)}
.live-modal__panel{position:relative;z-index:1;width:min(880px,96vw);max-height:min(760px,92vh);overflow:auto;background:#fff;border-radius:12px;box-shadow:0 22px 70px rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.5);animation:modalIn .2s ease}
.live-modal__panel--reserve{width:min(700px,96vw)}
@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.988)}to{opacity:1;transform:none}}
.live-modal__top{display:grid;grid-template-columns:1.08fr .92fr;min-height:310px}
.live-modal__gallery{background:#eef1f4;min-height:310px;position:relative;overflow:hidden}
.live-modal__gallery img{width:100%;height:310px;display:block;object-fit:cover}
.live-gallery-nav{position:absolute;inset:auto 12px 12px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.live-gallery-nav button{pointer-events:auto;border:0;background:rgba(255,255,255,.9);width:34px;height:34px;border-radius:50%;cursor:pointer;font-weight:900}
.live-gallery-count{background:rgba(20,24,30,.68);color:#fff;font-size:11px;padding:5px 9px;border-radius:999px}
.live-modal__info{padding:24px}
.live-modal__info h2{font-size:23px;margin:2px 0 7px}.live-modal__info p{font-size:13px;color:#5d6672;line-height:1.55}
.live-modal__services{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;margin:16px 0}
.live-service{font-size:12px;color:#3f4650}.live-service:before{content:'✓';margin-right:6px;color:#520019;font-weight:900}
.live-modal__summary{border-top:1px solid #eceff2;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fbfbfc}
.live-modal__summary .meta{font-size:12px;color:#667085}.live-modal__summary strong{font-size:22px}
.live-modal__actions{display:flex;justify-content:flex-end;gap:8px;padding:14px 24px 20px}
.live-modal__actions .live-btn{min-width:116px}

.reserve-head{padding:22px 24px 15px;border-bottom:1px solid #eceff2}.reserve-head h2{margin:0 0 4px;font-size:21px}.reserve-head p{margin:0;color:#68717d;font-size:12px}
.reserve-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 24px;background:#fafafb;border-bottom:1px solid #eceff2}.reserve-summary div{font-size:11px;color:#707886}.reserve-summary strong{display:block;color:#242a31;font-size:13px;margin-top:2px}
.reserve-form{padding:20px 24px}.reserve-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reserve-field label{display:block;font-size:11px;font-weight:700;color:#5b6370;margin-bottom:5px}.reserve-field input{width:100%;box-sizing:border-box;border:1px solid #dfe3e8;border-radius:7px;padding:11px 12px;font:inherit;font-size:13px;outline:none}.reserve-field input:focus{border-color:#520019;box-shadow:0 0 0 3px rgba(82,0,25,.08)}
.reserve-message{display:none;margin:0 24px 16px;padding:10px 12px;border-radius:7px;font-size:12px}.reserve-message.is-visible{display:block}.reserve-message.is-error{background:#fff1f2;color:#9f1239}.reserve-message.is-ok{background:#ecfdf3;color:#166534}

@media(max-width:820px){
  .live-result-card{grid-template-columns:1fr;min-height:0}.live-result-card__media{height:220px;min-height:220px}.live-result-card__body{padding:17px}.live-result-card__price{border-left:0;border-top:1px solid #eceff2;padding:15px 17px}.live-actions{grid-template-columns:1fr 1fr}.live-modal__top{grid-template-columns:1fr}.live-modal__gallery,.live-modal__gallery img{min-height:230px;height:230px}.live-modal__info{padding:18px}.live-modal__summary{padding:14px 18px}.live-modal__actions{padding:12px 18px 18px}.reserve-summary{grid-template-columns:1fr 1fr}.reserve-fields{grid-template-columns:1fr}.live-results{padding-left:13px;padding-right:13px}.live-results__head{align-items:start;flex-direction:column;gap:3px}}
@media(max-width:480px){.live-result-card__media{height:205px}.live-actions{grid-template-columns:1fr}.live-modal{padding:8px}.live-modal__panel{max-height:95vh;border-radius:10px}.live-modal__services{grid-template-columns:1fr}.live-modal__summary{align-items:flex-start}.live-modal__actions{display:grid;grid-template-columns:1fr 1fr}.live-modal__actions .live-btn{min-width:0}.reserve-summary{grid-template-columns:1fr 1fr}.live-results__head h2{font-size:19px}}
.live-results.is-searching .live-results__head,.live-results.is-searching .live-results__list{display:none}

/* Actualización 2 · jerarquía de nombre y desglose de precios */
.live-result-card{grid-template-columns:300px minmax(0,1fr) 258px}
.live-result-card__title{font-size:22px;font-weight:800;letter-spacing:-.35px;margin:0 0 4px;color:#111827;line-height:1.12}
.live-result-card__eyebrow{margin:0 0 12px;font-size:12px;font-weight:700;color:#68717d}
.live-result-card__price{gap:0;padding:16px 17px 15px}
.live-price-caption{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8a929e;margin-bottom:8px}
.live-price-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:4px 0;font-size:11px;color:#667085}
.live-price-row span{min-width:0}
.live-price-row b{font-size:12px;color:#2e3540;font-weight:750;white-space:nowrap}
.live-price-row small{font-size:9px;font-weight:600;color:#8a929e}
.live-price-row--subtotal{margin-top:3px;padding-top:7px;border-top:1px solid #edf0f2}
.live-price-row--subtotal span,.live-price-row--subtotal b{color:#343b45;font-weight:800}
.live-price-row--deposit{margin-top:3px;color:#520019}
.live-price-row--deposit span{font-weight:800}
.live-price-row--deposit b{font-size:14px;color:#520019;font-weight:900}
.live-price-row--balance span{font-weight:700;color:#505966}
.live-price-row--balance span small{display:block;font-size:8px;line-height:1;margin-top:1px;font-weight:500;letter-spacing:.01em;text-transform:none}
.live-price-total{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:7px;padding-top:8px;border-top:1px solid #dfe3e8}
.live-price-total span{font-size:10px;font-weight:900;letter-spacing:.08em;color:#4a525e}
.live-price-total strong{font-size:22px;line-height:1;color:#15191f;font-weight:900;letter-spacing:-.45px}
.live-result-card__price .live-actions{margin-top:11px}
@media(max-width:820px){
  .live-result-card{grid-template-columns:1fr}
  .live-result-card__price{padding:15px 17px 17px}
  .live-price-row{font-size:12px;padding:5px 0}
  .live-price-row b{font-size:13px}
  .live-price-row--deposit b{font-size:15px}
  .live-price-total strong{font-size:24px}
}


/* Actualización 3 · miniaturas interiores en cards de escritorio */
@media(min-width:821px){
  .live-result-card__body{justify-content:flex-start;padding:18px 20px 16px}
  .live-card-gallery{margin-top:auto;padding-top:15px}
  .live-card-gallery__title{font-size:13px;font-weight:800;color:#111827;margin:0 0 7px}
  .live-card-gallery__thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
  .live-card-thumb{appearance:none;border:1px solid #d9dde3;background:#f4f5f6;border-radius:10px;padding:0;overflow:hidden;aspect-ratio:1.45/1;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
  .live-card-thumb:hover{transform:translateY(-2px);border-color:#b9bec6;box-shadow:0 5px 14px rgba(15,23,42,.10)}
  .live-card-thumb img{width:100%;height:100%;display:block;object-fit:cover}
}
@media(max-width:820px){
  .live-card-gallery{display:none}
}


/* Actualización 5 · buscador más compacto y resultados con mayor contraste */

/* Compactar el bloque principal de búsqueda sin alterar su identidad visual */
.hero .card,
.center .card{
  padding-top:22px;
  padding-bottom:18px;
}
.card-header{
  margin-bottom:16px;
}
.card-header .kicker{
  margin-bottom:5px;
}
.card-header h1{
  line-height:1.1;
}
.form .row{
  gap:9px;
}
.field label{
  margin-bottom:4px;
}
.field input,
.field select{
  padding-top:10px;
  padding-bottom:10px;
}
.form .btn{
  height:42px;
  padding-top:10px;
  padding-bottom:10px;
}
.note:empty{
  display:none;
}

/* Reducir espacio entre buscador y bloque de resultados */
.live-results{
  padding-top:18px;
  padding-bottom:34px;
}
.live-results__head{
  margin-bottom:10px;
  padding:11px 14px;
  border-radius:10px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.40);
  box-shadow:0 4px 16px rgba(15,23,42,.08);
}
.live-results__head h2,
#liveResultsTitle{
  color:#1f2937 !important;
  margin:0 0 2px;
  line-height:1.12;
}
.live-results__head p,
#liveResultsSub{
  color:#626b78 !important;
  margin:0;
}
.live-results__status,
#liveResultsStatus{
  color:#6b7280 !important;
  font-weight:600;
}

/* Acercar las cards al resumen */
.live-results__list{
  gap:10px;
}
.live-result-card{
  margin-top:0;
}

/* Ajustes de compacidad en escritorio */
@media(min-width:821px){
  .hero .card,
  .center .card{
    padding:20px 24px 16px;
  }
  .live-results{
    padding-top:14px;
  }
  .live-results__head{
    margin-bottom:9px;
  }
}

/* En móvil se mantiene respiración suficiente sin volver alto el buscador */
@media(max-width:820px){
  .hero .card,
  .center .card{
    padding:18px 16px 15px;
  }
  .card-header{
    margin-bottom:13px;
  }
  .form .row{
    gap:8px;
  }
  .live-results{
    padding-top:12px;
    padding-bottom:26px;
  }
  .live-results__head{
    margin-bottom:8px;
    padding:10px 11px;
  }
}


/* Actualización 6 · buscador en una sola línea en PC */
@media(min-width:821px){
  /* +20 px respecto del ancho anterior */
  .hero .card,
  .center .card{
    max-width:740px;
    padding-top:16px;
    padding-bottom:13px;
  }

  .card-header{
    margin-bottom:11px;
  }

  .card-header .kicker{
    margin-bottom:3px;
  }

  .form .row{
    display:flex;
    flex-wrap:nowrap;
    align-items:flex-end;
    gap:7px;
  }

  /* Entrada / salida */
  .form .field:not(.small){
    flex:0 0 222px;
    min-width:222px;
  }

  /* Adultos / menores / bebés */
  .form .field.small{
    flex:0 0 78px;
    min-width:78px;
  }

  .field label{
    margin-bottom:3px;
    font-size:9px;
    letter-spacing:.35px;
    white-space:nowrap;
  }

  .field input,
  .field select{
    height:36px;
    min-height:36px;
    padding:7px 9px;
    font-size:12px;
    border-radius:8px;
  }

  .form .btn{
    flex:0 0 166px;
    width:166px;
    height:36px;
    min-height:36px;
    padding:7px 10px;
    font-size:11px;
    letter-spacing:.5px;
    border-radius:8px;
  }
}

/* Tablet y teléfono mantienen disposición vertical/fluida */
@media(max-width:820px){
  .form .row{
    flex-wrap:wrap;
  }
}


/* Actualización 7 · proporciones del buscador según referencia */
@media(min-width:821px){
  .hero .card,
  .center .card{
    max-width:660px;
    padding:14px 18px 12px;
    border-radius:20px;
  }

  .card-header{
    margin-bottom:7px;
  }

  .card-header .kicker{
    margin-bottom:1px;
    font-size:8px;
    letter-spacing:3px;
  }

  .card-header h1{
    font-size:23px;
    line-height:1;
    margin:0;
  }

  .form .row{
    display:grid;
    grid-template-columns:minmax(200px,2.45fr) repeat(3,minmax(72px,.9fr)) minmax(112px,1.25fr);
    gap:8px;
    align-items:end;
  }

  .form .field,
  .form .field.small{
    min-width:0;
    width:auto;
    flex:none;
  }

  .field label{
    display:block;
    margin:0 0 3px;
    font-size:8px;
    line-height:1;
    letter-spacing:1.1px;
    white-space:nowrap;
  }

  .field input,
  .field select{
    width:100%;
    height:40px;
    min-height:40px;
    padding:7px 10px;
    font-size:12px;
    border-radius:10px;
  }

  .form .btn{
    width:100%;
    min-width:0;
    height:40px;
    min-height:40px;
    padding:5px 8px;
    font-size:10px;
    line-height:1.15;
    letter-spacing:1px;
    white-space:normal;
    border-radius:10px;
  }
}


/* Actualización 8 · controles al ~60% de la altura anterior en PC */
@media(min-width:821px){
  .hero .card,
  .center .card{
    max-width:660px;
    padding:10px 16px 9px;
    border-radius:18px;
  }

  .card-header{
    margin-bottom:5px;
  }

  .card-header .kicker{
    margin-bottom:0;
    font-size:7px;
    line-height:1;
    letter-spacing:2.5px;
  }

  .card-header h1{
    font-size:20px;
    line-height:1;
    margin:0;
  }

  .form .row{
    grid-template-columns:minmax(205px,2.5fr) repeat(3,minmax(68px,.85fr)) minmax(110px,1.25fr);
    gap:6px;
    align-items:end;
  }

  .field label{
    margin:0 0 2px;
    font-size:7px;
    line-height:1;
    letter-spacing:.9px;
  }

  .field input,
  .field select{
    height:24px;
    min-height:24px;
    padding:2px 7px;
    font-size:10px;
    line-height:20px;
    border-radius:7px;
  }

  .form .btn{
    height:24px;
    min-height:24px;
    padding:2px 7px;
    font-size:8px;
    line-height:1.05;
    letter-spacing:.8px;
    border-radius:7px;
  }
}


/* Actualización 9 · buscador PC reordenado y proporcionado */
@media(min-width:821px){

  /* Contenedor: ancho suficiente para que nada se pise */
  .hero .card,
  .center .card{
    width:720px;
    max-width:calc(100vw - 48px);
    padding:13px 18px 12px;
    border-radius:18px;
  }

  /* Encabezado compacto pero legible */
  .card-header{
    margin-bottom:10px;
  }

  .card-header .kicker{
    margin:0 0 3px;
    font-size:7px;
    line-height:1;
    letter-spacing:2.7px;
  }

  .card-header h1{
    margin:0;
    font-size:20px;
    line-height:1.05;
  }

  /* Una sola fila, con anchos pensados para los textos reales */
  .form .row{
    display:grid;
    grid-template-columns:
      minmax(220px, 2.45fr)
      minmax(74px, .72fr)
      minmax(94px, .92fr)
      minmax(86px, .84fr)
      minmax(118px, 1.15fr);
    gap:8px;
    align-items:end;
    width:100%;
  }

  .form .field,
  .form .field.small{
    min-width:0;
    width:100%;
    flex:none;
  }

  /* Labels: pequeños pero sin invadir el control vecino */
  .field label{
    display:block;
    width:100%;
    margin:0 0 4px;
    font-size:7px;
    line-height:1;
    font-weight:700;
    letter-spacing:.75px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:clip;
  }

  /* Controles compactos y proporcionados */
  .field input,
  .field select{
    display:block;
    width:100%;
    height:30px;
    min-height:30px;
    padding:4px 9px;
    font-size:10px;
    line-height:20px;
    border-radius:8px;
  }

  /* El campo de fechas necesita un poco más de lectura */
  .form .field:not(.small) input{
    font-size:10px;
    padding-left:10px;
    padding-right:10px;
  }

  /* Botón alineado a la misma altura de controles */
  .form .btn{
    width:100%;
    min-width:0;
    height:30px;
    min-height:30px;
    margin:0;
    padding:3px 8px;
    font-size:8px;
    line-height:1.08;
    font-weight:800;
    letter-spacing:.75px;
    white-space:normal;
    border-radius:8px;
  }
}


/* Actualización 10 · compactación vertical fina del buscador PC */
@media(min-width:821px){

  .hero .card,
  .center .card{
    width:720px;
    max-width:calc(100vw - 48px);
    padding:8px 18px 10px;
    border-radius:18px;
  }

  /* Menor distancia entre borde superior y RESERVAS */
  .card-header{
    margin:0 0 6px;
    padding:0;
  }

  /* Restituir presencia visual de RESERVAS */
  .card-header .kicker{
    display:block;
    margin:0 0 2px;
    font-size:9px;
    line-height:1;
    letter-spacing:3px;
  }

  /* Menor distancia entre RESERVAS y Elegí tus fechas */
  .card-header h1{
    margin:0;
    font-size:21px;
    line-height:1;
  }

  /* Menor distancia entre título y filtros */
  .form{
    margin-top:0;
  }

  .form .row{
    display:grid;
    grid-template-columns:
      minmax(220px,2.5fr)
      minmax(78px,.8fr)
      minmax(102px,1fr)
      minmax(92px,.9fr)
      minmax(90px,.9fr);
    gap:7px;
    align-items:end;
    width:100%;
    margin-top:0;
  }

  .form .field,
  .form .field.small{
    min-width:0;
    width:100%;
    margin:0;
  }

  /* Labels completos y legibles */
  .field label{
    display:block;
    width:100%;
    margin:0 0 3px;
    font-size:9px;
    line-height:1;
    font-weight:700;
    letter-spacing:.7px;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
  }

  /* Controles bajos, pero con texto normal */
  .field input,
  .field select{
    width:100%;
    height:30px;
    min-height:30px;
    padding:4px 9px;
    font-size:12px;
    line-height:20px;
    border-radius:8px;
  }

  .form .field:not(.small) input{
    font-size:12px;
  }

  /* Botón idéntico en altura y alineación a los controles */
  .form .btn{
    width:100%;
    min-width:0;
    height:30px;
    min-height:30px;
    margin:0;
    padding:4px 10px;
    font-size:10px;
    line-height:20px;
    font-weight:800;
    letter-spacing:1px;
    white-space:nowrap;
    border-radius:8px;
    align-self:end;
  }
}


/* Actualización 11 · más servicios visibles en cards */
.live-result-card__facts{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:6px;
  margin-top:10px;
}

.live-result-card__facts .live-chip{
  margin:0;
}

/* En escritorio reservamos espacio visual para hasta tres filas */
@media(min-width:821px){
  .live-result-card__facts{
    min-height:78px;
    max-height:78px;
    overflow:hidden;
  }
}

/* En móvil dejamos fluir normalmente para no forzar altura */
@media(max-width:820px){
  .live-result-card__facts{
    min-height:0;
    max-height:none;
  }
}


/* Actualización 12 · contraste en modal Detalles */
#detailModal #detailTitle{
  color:#1f2937 !important;
  opacity:1 !important;
}
#detailModal #detailTotal{
  color:#1f2937 !important;
  opacity:1 !important;
}
#detailModal .live-modal__summary{
  color:#1f2937;
}
#detailModal .live-modal__summary .meta{
  color:#6b7280;
}


/* Actualización 13 · resumen económico en modal Completar reserva */
#reserveModal #reserveTitle{
  color:#1f2937 !important;
  opacity:1 !important;
}

#reserveModal .reserve-summary{
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}

/* Primera fila: se conserva Cabaña / Fechas / Huéspedes */
#reserveModal .reserve-summary__main{
  min-width:0;
}

/* Segunda fila ocupa el ancho que antes usaba el resumen */
#reserveModal .reserve-price-row{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:1.08fr .82fr 1fr 1.12fr 1.18fr;
  gap:0;
  align-items:center;
  border-top:1px solid #e7e9ed;
  padding-top:8px;
  margin-top:1px;
}

#reserveModal .reserve-price-item{
  min-width:0;
  padding:0 9px;
  border-right:1px solid #e7e9ed;
  color:#707886;
}

#reserveModal .reserve-price-item:first-child{padding-left:0}
#reserveModal .reserve-price-item:last-child{
  border-right:0;
  padding-right:0;
  text-align:right;
}

#reserveModal .reserve-price-item span{
  display:block;
  margin:0;
  font-size:9px;
  line-height:1.05;
  color:#7a8390;
  white-space:nowrap;
}

#reserveModal .reserve-price-item span small{
  display:block;
  margin-top:1px;
  font-size:7px;
  line-height:1;
  font-weight:500;
  color:#9aa1ab;
}

#reserveModal .reserve-price-item strong{
  display:block;
  margin-top:2px;
  font-size:12px;
  line-height:1.05;
  color:#2a3038;
  white-space:nowrap;
}

/* Jerarquía visual */
#reserveModal .reserve-price-item--deposit span{
  color:#520019;
  font-weight:800;
}
#reserveModal .reserve-price-item--deposit strong{
  color:#520019;
  font-size:14px;
}

#reserveModal .reserve-price-item--balance strong{
  font-size:12px;
  font-weight:700;
}

#reserveModal .reserve-price-item--total span{
  color:#4b5563;
  font-size:8px;
  font-weight:800;
  letter-spacing:.6px;
}
#reserveModal .reserve-price-item--total strong{
  color:#1f2937;
  font-size:18px;
  font-weight:900;
  letter-spacing:-.4px;
}

/* Responsive: sigue dentro del mismo resumen, sin imponer nuevas alturas */
@media(max-width:820px){
  #reserveModal .reserve-price-row{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:0;
  }
  #reserveModal .reserve-price-item{
    padding:0 5px;
  }
  #reserveModal .reserve-price-item span{
    font-size:7px;
    white-space:normal;
  }
  #reserveModal .reserve-price-item strong{
    font-size:10px;
  }
  #reserveModal .reserve-price-item--deposit strong{
    font-size:11px;
  }
  #reserveModal .reserve-price-item--total strong{
    font-size:14px;
  }
}


/* Actualización 14 · validación visual de campos de reserva */
#reserveModal .reserve-input-wrap{
  position:relative;
}

#reserveModal .reserve-input-wrap input{
  padding-right:31px;
}

#reserveModal .reserve-valid-check{
  position:absolute;
  right:9px;
  top:50%;
  transform:translateY(-50%) scale(.8);
  width:17px;
  height:17px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#15803d;
  color:#fff;
  font-size:10px;
  font-weight:900;
  line-height:1;
  opacity:0;
  visibility:hidden;
  transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
  pointer-events:none;
}

#reserveModal [data-validate-field].is-valid .reserve-valid-check{
  opacity:1;
  visibility:visible;
  transform:translateY(-50%) scale(1);
}

#reserveModal [data-validate-field].is-valid input{
  border-color:#b9d8c1;
  box-shadow:0 0 0 2px rgba(21,128,61,.05);
}

#reserveModal .reserve-email-note{
  display:block;
  margin-top:3px;
  font-size:9px;
  line-height:1.15;
  color:#7b8490;
  font-weight:500;
}

/* Mantener el alto general del modal: compactamos mínimamente sólo el interior del formulario */
#reserveModal .reserve-form{
  padding-top:17px;
  padding-bottom:17px;
}

#reserveModal .reserve-fields{
  row-gap:9px;
}

@media(max-width:820px){
  #reserveModal .reserve-email-note{
    font-size:8px;
  }
}


/* Actualización 15 · errores destacados y validación al cambiar foco */
#reserveModal .reserve-message.is-error{
  font-weight:800;
}
#reserveModal .reserve-message.is-error strong{
  font-weight:800;
}
#reserveModal #resWhatsapp::placeholder{
  color:#a0a6af;
  opacity:1;
}


/* Actualización 16 · último modal de pago */
#paymentModal .live-modal__panel--payment{
  width:min(660px,96vw);
}

#paymentModal .payment-head{
  padding:20px 24px 14px;
  border-bottom:1px solid #eceff2;
}

#paymentModal .payment-step{
  margin-bottom:4px;
  color:#7b8490;
  font-size:9px;
  font-weight:900;
  letter-spacing:1.5px;
}

#paymentModal #paymentTitle{
  margin:0 0 4px;
  color:#1f2937 !important;
  font-size:21px;
  line-height:1.1;
}

#paymentModal .payment-head p{
  margin:0;
  color:#68717d;
  font-size:11px;
  line-height:1.35;
}

#paymentModal .payment-code{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:11px 24px;
  background:#fafafb;
  border-bottom:1px solid #eceff2;
}

#paymentModal .payment-code span{
  color:#737b87;
  font-size:10px;
}

#paymentModal .payment-code strong{
  color:#520019;
  font-size:15px;
  letter-spacing:.3px;
}

#paymentModal .payment-stay{
  display:grid;
  grid-template-columns:1.1fr 1.25fr 1.35fr;
  gap:8px;
  padding:13px 24px 10px;
}

#paymentModal .payment-stay span,
#paymentModal .payment-amount span{
  display:block;
  color:#747d89;
  font-size:9px;
  line-height:1.1;
}

#paymentModal .payment-stay strong{
  display:block;
  margin-top:2px;
  color:#252b33;
  font-size:11px;
  line-height:1.2;
}

#paymentModal .payment-amounts{
  display:grid;
  grid-template-columns:1fr 1.16fr 1fr;
  gap:0;
  margin:0 24px;
  padding:11px 0;
  border-top:1px solid #eceff2;
  border-bottom:1px solid #eceff2;
}

#paymentModal .payment-amount{
  padding:0 14px;
  border-right:1px solid #eceff2;
}

#paymentModal .payment-amount:first-child{padding-left:0}
#paymentModal .payment-amount:last-child{
  padding-right:0;
  border-right:0;
  text-align:right;
}

#paymentModal .payment-amount span small{
  font-size:7px;
  color:#9aa1ab;
}

#paymentModal .payment-amount strong{
  display:block;
  margin-top:3px;
  color:#2a3038;
  font-size:15px;
  line-height:1;
}

#paymentModal .payment-amount--deposit{
  text-align:center;
}

#paymentModal .payment-amount--deposit span{
  color:#148642;
  font-weight:800;
}

#paymentModal .payment-amount--deposit strong{
  color:#148642;
  font-size:22px;
  font-weight:900;
}

#paymentModal .payment-notice{
  margin:11px 24px 0;
  padding:9px 11px;
  border-radius:8px;
  background:#f6f7f8;
  color:#646d79;
  font-size:9px;
  line-height:1.35;
}

#paymentModal .payment-actions{
  padding-top:12px;
}

#paymentModal .payment-view{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

#paymentModal .payment-pay{
  background:#148642;
  border-color:#148642;
}

#paymentModal .payment-pay:hover{
  background:#106f37;
}

#paymentModal .payment-pay:disabled{
  opacity:.72;
  cursor:wait;
}

@media(max-width:820px){
  #paymentModal .payment-stay{
    grid-template-columns:1fr;
    gap:5px;
  }

  #paymentModal .payment-amounts{
    grid-template-columns:1fr 1fr 1fr;
  }

  #paymentModal .payment-amount{
    padding:0 7px;
  }

  #paymentModal .payment-amount strong{
    font-size:12px;
  }

  #paymentModal .payment-amount--deposit strong{
    font-size:17px;
  }

  #paymentModal .payment-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}


/* Actualización 17 · confirmación post-pago en el index */
.reservation-success-banner{
  width:min(720px,calc(100% - 28px));
  margin:14px auto 4px;
  padding:13px 14px;
  display:flex;
  align-items:center;
  gap:12px;
  background:#f0fbf4;
  border:1px solid #bfe6cc;
  border-radius:11px;
  box-shadow:0 5px 18px rgba(18,99,50,.08);
  opacity:0;
  transform:translateY(6px);
  transition:opacity .25s ease,transform .25s ease;
}
.reservation-success-banner[hidden]{display:none}
.reservation-success-banner.is-visible{opacity:1;transform:none}
.reservation-success-banner__icon{
  flex:0 0 28px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:#168443;color:#fff;font-size:15px;font-weight:900
}
.reservation-success-banner__copy{flex:1;min-width:0}
.reservation-success-banner__copy strong{display:block;color:#155d32;font-size:13px;line-height:1.15}
.reservation-success-banner__copy span{display:block;margin-top:2px;color:#557061;font-size:9px;line-height:1.25}
.reservation-success-banner .live-btn{min-width:122px;text-align:center;text-decoration:none}
@media(max-width:620px){
  .reservation-success-banner{align-items:flex-start;flex-wrap:wrap}
  .reservation-success-banner__copy{flex:1 1 calc(100% - 44px)}
  .reservation-success-banner .live-btn{width:100%}
}


/* Actualización 18 · bloqueo de formulario y cancelar flujo */
#reserveModal .reserve-field input:disabled{
  background:#f4f5f6;
  color:#6b7280;
  cursor:not-allowed;
  opacity:.9;
}

#paymentModal .payment-actions{
  grid-template-columns:auto auto auto;
}

#paymentModal .payment-cancel{
  color:#7b273d;
  border-color:#d8c4ca;
  background:#fff;
}

#paymentModal .payment-cancel:hover{
  background:#faf5f7;
}

@media(max-width:820px){
  #paymentModal .payment-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  #paymentModal .payment-cancel{
    grid-column:1 / -1;
    order:3;
  }
}


/* Actualización 19 · placeholder compacto del selector de fechas */
@media(min-width:821px){
  #dates::placeholder{
    font-size:10px;
    letter-spacing:0;
    color:#8b929d;
    opacity:1;
  }
  #dates{
    text-overflow:ellipsis;
    white-space:nowrap;
    overflow:hidden;
  }
}
@media(max-width:820px){
  #dates::placeholder{
    font-size:11px;
    letter-spacing:0;
    opacity:1;
  }
}
