/* ============================================================
   MEJORAS.CSS — Refinamiento visual del motor de reservas
   Monnaber Nou Boutique Hotel

   Paleta conservada:
     #8FA318  verde oliva (principal, botones, acentos)
     #60B9B1  teal/cian (calendario, bordes)
     #B9C66F  oliva claro (hover, fondos suaves)
     #d2dba4  salvia (fondos, separadores)
     #D69942  naranja (textos informativos)
     #3B490A  verde oscuro (títulos, labels)
     #626567  carbón (texto inputs)
   ============================================================ */


/* ============================================================
   1. TIPOGRAFÍA BASE
   ============================================================ */

* {
  font-size: 13px;
  line-height: 1.5;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#bgResults h1,
.pcodes-item a span {
  font-size: 15px;
  line-height: 1.4;
  letter-spacing: 0.3px;
}

.bg_resultDescription p.descr {
  font-size: 13px;
  line-height: 1.5;
  color: #555;
}

/* Ocultar iconos info y cámara duplicados dentro de la descripción */
.bg_resultDescription p.descr > a > img,
.bg_resultDescription p.descr > a {
  display: none !important;
}

.bgDialogs h2,
.bgDialogs .type2 .hd {
  letter-spacing: 0.3px;
}


/* ============================================================
   2. CORRECCIÓN DE COLORES FUERA DE PALETA
   ============================================================ */

/* Labels: darkolivegreen → verde oscuro de marca */
label {
  color: #3B490A;
  font-size: 11.5px;
  letter-spacing: 0.02em;
}

/* Cabeceras y párrafos informativos: purple → verde oscuro */
.infohome p,
.booking p {
  color: #3B490A;
}

/* Acordeón jQuery UI: rgb(121,0,140) → verde de marca */
.ui-accordion-header,
.ui-widget-header {
  background: #8FA318 !important;
  background-image: none !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
}

.ui-widget-header .ui-icon {
  background-image: none;
}

/* Título sección pago en modal: rgb(121,0,140) → verde de marca */
#bgUserData .columnTitle #bgFillPaymentInfoLabel {
  background-color: #8FA318 !important;
  color: #fff;
  padding: 4px 12px;
  border-radius: 4px;
}

/* Bloque "selecciona fechas" — azul → gradiente de marca */
#blockRooms {
  background: linear-gradient(135deg, rgba(143,163,24,0.9), rgba(96,185,177,0.85)) !important;
  position: relative !important;
  width: 100% !important;
  box-sizing: border-box;
  margin-top: 20px !important;
  padding: 80px 30px !important;
  border-radius: 12px;
  letter-spacing: 0.3px;
  font-weight: 500;
  box-shadow: 0 4px 20px rgba(143,163,24,0.25);
}


/* ============================================================
   3. INPUTS, SELECTS Y FORMULARIOS
   ============================================================ */

input[type=text],
input[type=tel],
input[type=email],
input[type=password],
select,
textarea {
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Estado focus con aura de marca */
input[type=text]:focus,
input[type=tel]:focus,
input[type=email]:focus,
input[type=password]:focus,
select:focus,
textarea:focus {
  outline: none !important;
  border-color: #8FA318 !important;
  box-shadow: 0 0 0 3px rgba(143,163,24,0.18) !important;
}

/* Inputs dentro del modal de datos de usuario */
#bgUserData_c input:not([type=checkbox]):not([type=radio]),
#bgUserData_c select,
#bgUserData_c textarea {
  height: 40px !important;
  padding: 0 10px !important;
  border: 1px solid #d2dba4 !important;
  border-radius: 5px !important;
  background-color: #fafdf3 !important;
  font-size: 13px !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
#bgUserDataFormArea textarea,
#bgMoreDetailsNotesInput {
  height: auto !important;
  min-height: 48px !important;
}

.bgDialogs .type2 input#bgMoreDetailsNotesInput,
#bgMoreDetailsNotesInput {
  height: auto;
  padding: 8px 10px;
}

/* Form-control del nav de búsqueda */
.row .form-control {
  border: 1px solid #d2dba4;
  border-radius: 4px;
  font-size: 13px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.row .form-control:focus {
  border-color: #8FA318;
  box-shadow: 0 0 0 3px rgba(143,163,24,0.18);
  outline: none;
}


/* ============================================================
   4. BOTONES
   ============================================================ */

/* --- Botón principal "Reservar" --- */
.bgBtnBook,
.bgBtnProductsYes {
  border-radius: 5px;
  letter-spacing: 0.5px;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.bgBtnBook:not(.disabled):hover,
.bgBtnProductsYes:not(.disabled):hover {
  background-color: #7d8f16 !important;
  box-shadow: 0 4px 14px rgba(143,163,24,0.35);
  transform: translateY(-1px);
}

.bgBtnBook:not(.disabled):active,
.bgBtnProductsYes:not(.disabled):active {
  transform: translateY(0);
  box-shadow: 0 1px 5px rgba(143,163,24,0.2);
}

/* --- Botones secundarios (confirmar, cancelar, tipo) --- */
.bgBtnBookSmall,
.bgBtnCancel,
.bgBtnConfirm,
.bgBtnProdType {
  border-radius: 4px;
  letter-spacing: 0.3px;
  transition: background-color 0.2s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.bgBtnBookSmall:hover,
.bgBtnCancel:hover,
.bgBtnConfirm:hover,
.bgBtnProdType:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  transform: translateY(-1px);
}

/* --- Botón confirmar reserva (verde) --- */
#bgUserDataFooter .bgBtnConfirm:not(.disabled) {
  letter-spacing: 0.5px;
  font-weight: bold;
}

#bgUserDataFooter .bgBtnConfirm:not(.disabled):hover {
  background-color: #7d8f16 !important;
  box-shadow: 0 4px 12px rgba(143,163,24,0.35);
  transform: translateY(-1px);
}

/* --- Botón búsqueda en buscador.css --- */
input[type=submit].bookingButton {
  border-radius: 4px;
  letter-spacing: 0.5px;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

input[type=submit].bookingButton:hover {
  background-color: #7d8f16;
  box-shadow: 0 3px 10px rgba(143,163,24,0.32);
  transform: translateY(-1px);
}

input[type=submit].bookingButton:active {
  transform: translateY(0);
}

/* --- Botones del calendario (Deseleccionar, Nueva búsqueda) --- */
.calendarButtons .btn {
  border-color: #8FA318;
  color: #3B490A;
  border-radius: 4px;
  font-size: 12px;
  letter-spacing: 0.3px;
  transition: all 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  .calendarButtons .btn:hover {
    background-color: #8FA318;
    border-color: #8FA318;
    color: #fff;
    box-shadow: 0 2px 8px rgba(143,163,24,0.25);
  }
}

.calendarButtons .btn:focus,
.calendarButtons .btn:active,
.calendarButtons .btn:active:focus {
  outline: 0 !important;
  box-shadow: 0 0 0 2px rgba(143,163,24,0.25) !important;
}

/* --- Botón seleccionar tarifa dentro de tarjeta --- */
.bg_promoRoomsList dl .bg_select .bg_buttonSelectRoom {
  border-radius: 4px;
  letter-spacing: 0.4px;
  transition: background-color 0.2s ease, box-shadow 0.2s ease, transform 0.12s ease;
}

.bg_promoRoomsList dl .bg_select .bg_buttonSelectRoom:hover {
  background-color: #7d8f16 !important;
  box-shadow: 0 2px 8px rgba(143,163,24,0.3);
  transform: translateY(-1px);
}


/* ============================================================
   5. TARJETAS DE HABITACIÓN
   ============================================================ */

.bg_notRoom,
.bg_product,
.bg_promo,
.bg_result {
  border: 2px solid #e0e8b8 !important;
  border-radius: 7px;
  box-shadow: 0 1px 5px rgba(0,0,0,0.06);
  margin: 4px 4px 10px 0;
  transition: box-shadow 0.2s ease, transform 0.15s ease, border-color 0.2s ease;
}

/* Hover: borde más oscuro y visible (2px ya fijado en base, no hay layout shift) */
.bg_result:hover,
.bg_promo:hover,
.bg_product:hover {
  box-shadow: 0 5px 18px rgba(0,0,0,0.13) !important;
  transform: translateY(-2px);
  border-color: #6a7d12 !important;
}

/* Seleccionado: borde igualmente oscuro y destacado */
.bg_result.bg_selected,
.bg_promo.bg_selected,
.bg_product.selected,
.bg_result.selected {
  border-color: #6a7d12 !important;
  box-shadow: 0 3px 12px rgba(106,125,18,0.2) !important;
}

/* Imagen de habitación con bordes redondeados */
.bg_resultImage {
  border-radius: 6px !important;
  overflow: visible !important;
  margin: 7px 0 0 7px;
}

.bg_resultImage .bg_resultImage {
  border-radius: 6px !important;
  margin: 0;
}

/* Panel de precio */
.bg_resultPrice {
  border-left: 1px solid #e8edca !important;
  border-radius: 0 7px 7px 0;
  transition: background-color 0.2s ease;
}

/* Descripción de habitación */
.bg_resultDescription p {
  color: #5a5a5a;
}

/* Link "más info" */
.moreinfo_trigger,
.moreinfo_trigger span {
  font-size: 11.5px;
  transition: color 0.15s ease;
}

.moreinfo_trigger:hover,
.moreinfo_trigger:hover span {
  color: #8FA318 !important;
}

/* Fila de tarifa (hover dentro de tarjeta) */
.bg_promoRoomsList dl {
  height: auto !important;
  min-height: 46px;
  overflow: visible !important;
  border-top: 1px solid #e8edca;
  transition: background-color 0.15s ease;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding-top: 6px;
  padding-bottom: 6px;
}

/* dt y dd necesitan altura automática para no cortar las fechas */
.bg_promoRoomsList dd,
.bg_promoRoomsList dt {
  height: auto !important;
  min-height: 30px;
  float: none;
}

.bg_promoRoomsList dd.bg_roomRate {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  flex: 1;
  overflow: visible !important;
  white-space: normal !important;
  margin-top: 0 !important;
  text-align: left !important;
}

/* Override fixed pixel widths from estilos.css — use flex so they adapt to any column width */
.bg_roomRate div.bg_dateInfo {
  line-height: 1.4 !important;
  width: auto !important;
  min-width: 140px !important;
  flex: 1 1 140px !important;
  float: none !important;
  overflow: visible !important;
}

.bg_roomRate div.bg_dateNightInfo {
  width: auto !important;
  flex: 0 0 auto !important;
  float: none !important;
  padding-left: 6px;
  padding-right: 18px !important;
  margin-right: 16px !important;
  white-space: nowrap;
}

.bg_roomRate div.bg_priceMiddleInfo {
  width: auto !important;
  flex: 1 1 220px !important;
  float: none !important;
  margin-top: 0 !important;
}

.bg_promoRoomsList dd.bg_select {
  display: flex;
  align-items: center;
  height: auto !important;
  line-height: normal !important;
}

/* Ocultar botón BOOK NOW en tarifas no seleccionadas */
.bg_promoRoomsList dl:not(.selected) .bg_select .bg_buttonSelectRoom {
  display: none;
}

/* Mostrar botón solo en la tarifa seleccionada */
.bg_promoRoomsList dl.selected .bg_select .bg_buttonSelectRoom {
  display: inline-block;
}

/* Badge de oferta */
.offer {
  background: linear-gradient(135deg, #6a9c18, #3B490A);
  border-radius: 4px;
  font-weight: 600;
}


/* ============================================================
   6. CALENDARIO
   ============================================================ */

/* Contenedor general: padding exterior para que respire */
#calendar-container {
  padding: 14px 16px;
  background: #fff;
  border-radius: 10px;
  display: inline-block;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}

/* Más padding en la banda verde (botones de navegación y título del mes) */
#calendar-container .calendar .button {
  padding: 5px 10px;
}

#calendar-container .calendar thead .title {
  padding: 5px 12px;
}

#calendar-container .calendar table {
  border: 1px solid #d2dba4 !important;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: none;
  font-family: Arial, sans-serif !important;
}

#calendar-container .calendar tbody .day {
  transition: background-color 0.12s ease;
  font-family: Arial, sans-serif !important;
}

#calendar-container .calendar tbody .day:not(.disabled):hover {
  background-color: #f2f5df !important;
  cursor: pointer;
}

/* Día seleccionado (check-in) */
#calendar-container .calendar tbody td.selected {
  background-color: #B9C66F !important;
  color: #3B490A !important;
  border-radius: 0;
}

/* Día seleccionado entrada */
#calendar-container .calendar tbody td.selectede {
  background-color: #8FA318 !important;
  color: #fff !important;
}

/* Día seleccionado salida */
#calendar-container .calendar tbody td.selecteds {
  background-color: #D69942 !important;
  color: #fff !important;
}

/* Precio en celda del calendario */
#calendar-container .precio {
  color: #3B490A;
  font-weight: 700;
  font-size: 11px;
}

/* Cabecera mes */
#calendar-container .calendar thead .title {
  letter-spacing: 0.5px;
  font-size: 13px;
}


/* ============================================================
   7. MODAL DE DATOS DE USUARIO
   ============================================================ */


/* .bgDialogs panel styles removed — modal redesigned */

/* Separadores del resumen */
#bgUserDataAmount .bgRow,
.bgTotalAmountShell,
.bgDialogTotals .summaryTotals dl {
  border-color: #d2dba4 !important;
}

/* Precio total */
#bgUserDataAmount #bgTotalFinalLabel,
#bgUserDataAmount #bgTotalFinalValue,
#bgUserDataAmount #bgTotalFinalValue span {
  font-size: 15px !important;
  font-weight: 700;
  letter-spacing: 0.3px;
}

/* Títulos de sección en modal */
#bgUserData h2,
#bgMoreDetailsLastTitleLabel {
  letter-spacing: 0.3px;
}


/* ============================================================
   8. BARRA DE CONTROL (navegación fechas/personas)
   ============================================================ */

/* Cabecera informativa superior */
.infohome {
  padding: 12px 0 12px 2%;
}

.booking {
  padding: 12px 0 12px 2%;
}

/* Margen superior del formulario de búsqueda */
.cResults > nav > .row {
  margin-top: 5px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  overflow: visible !important;
}

/* Columnas del nav: que no se partan las etiquetas */
.row .col-md-1.without-margin,
.row .col-md-2.without-margin {
  white-space: nowrap;
  flex: 0 0 auto;
}

/* Labels de columna en el nav */
.row .col-md-1 .cab_info,
.row .col-md-2 .cab_info,
.row .col-md-1 .cab_info_aditional,
.row .col-md-2 .cab_info_aditional {
  font-size: 11px;
  letter-spacing: 0.2px;
  white-space: nowrap;
}


/* Desplegable cancelación gratuita — tooltip flotante */
#dialogParent {
  position: relative;
}

/* Cabecera "Cancelación Gratuita / Paga Después" — siempre legible.
   estilos.css la pone blanca (invisible sobre fondo claro) y el accordion
   de jQuery UI (disabled:true) le baja la opacidad. Forzamos verde oscuro
   y opacidad completa en cualquier estado. */
#dialog,
#dialog h4,
#dialog .ui-accordion-header {
  color: #3B490A !important;
  opacity: 1 !important;
  filter: none !important;
}
#dialog.ui-state-disabled,
#dialog .ui-state-disabled,
#dialog .ui-accordion-header.ui-state-disabled,
#dialogParent .ui-state-disabled {
  opacity: 1 !important;
}
#dialog h4 img,
#dialog .ui-accordion-header img {
  opacity: 1 !important;
  vertical-align: middle;
}

#dialog .ui-accordion-content {
  overflow: visible !important;
  height: auto !important;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 9999;
  background: #fff;
  border: 1px solid #d2dba4;
  border-radius: 6px;
  box-shadow: 0 6px 24px rgba(0,0,0,0.18);
  padding: 12px 16px;
  width: 600px;
  max-width: 90vw;
  font-size: 12px;
  line-height: 1.6;
}

#dialog .ui-accordion-content p {
  margin: 0;
  white-space: normal;
  word-wrap: break-word;
}

/* ============================================================
   9. OVERLAY DE CARGA
   ============================================================ */

.fieldOpacity {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background-color: rgba(120, 130, 100, 0.72) !important;
  background-image: none !important;
}

.fieldOpacity::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60px;
  height: 60px;
  margin: -30px 0 0 -30px;
  border: 6px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spinLoader 0.8s linear infinite;
}

@keyframes spinLoader {
  to { transform: rotate(360deg); }
}


/* ============================================================
   10. DIÁLOGO CANCELACIÓN / ACORDEÓN
   ============================================================ */

#dialog h4 {
  font-size: 13px;
  letter-spacing: 0.2px;
  color: #3B490A;
}

#dialog p {
  font-size: 12px;
  line-height: 1.6;
  color: #555;
}


/* ============================================================
   11. BUSCADOR (buscador.css complemento)
   ============================================================ */

.search-title {
  letter-spacing: 0.5px;
  line-height: 1.3;
}

.search-subtitle {
  letter-spacing: 0.3px;
}

.showOption {
  transition: color 0.15s ease;
}

#check {
  transition: color 0.15s ease;
}


/* ============================================================
   12. ZONA DE RESULTADOS — CABECERA RESUMEN
   ============================================================ */

#bgResults {
  position: relative;
}

/* Separador del footer */
#bgFooter {
  border-top: 1px solid #d2dba4 !important;
}


/* ============================================================
   13. VALIDACIÓN DE FORMULARIOS
   ============================================================ */

#bgFirstNameInput:invalid,
#bgLastNameInput:invalid,
#bgEmailInput:invalid,
#bgPhoneInput:invalid,
#bgPhonePrefixInput:invalid,
#bgCardTypeInput:invalid,
#bgExpirationDateMonthInput:invalid,
#bgAddressInput:invalid,
#bgCityInput:invalid,
#bgZipInput:invalid,
#bgCountryInput:invalid,
#bgStateSelect:invalid,
#bgStateInput:invalid,
#bgCardHolderNumberInput:invalid,
#bgCardHolderNameInput:invalid,
#bgPolicy:invalid,
#bgExpirationDateYearInput:invalid {
  outline: none !important;
  border: 1.5px solid #F16260 !important;
  box-shadow: 0 0 0 3px rgba(241,98,96,0.15) !important;
}


/* ============================================================
   14. SCROLLBAR PERSONALIZADO (navegadores webkit)
   ============================================================ */

.bgDialogs .bd::-webkit-scrollbar {
  width: 6px;
}

.bgDialogs .bd::-webkit-scrollbar-track {
  background: #f5f8e8;
  border-radius: 3px;
}

.bgDialogs .bd::-webkit-scrollbar-thumb {
  background: #B9C66F;
  border-radius: 3px;
}

.bgDialogs .bd::-webkit-scrollbar-thumb:hover {
  background: #8FA318;
}


/* ============================================================
   15. LAYOUT BOXED — 80% desktop, full-width mobile
   ============================================================ */

/* Contenedor principal centrado y acotado */
#container {
  max-width: 1280px;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* cResults: layout flex en fila — nav arriba, luego calendario + resultados.
   El calendario ocupa su ancho natural y los resultados rellenan el resto,
   quedando pegados (sin hueco) a la derecha del calendario. */
.cResults {
  width: 100% !important;
  display: flex !important;
  flex-wrap: wrap;
  align-items: flex-start;
  box-sizing: border-box;
}

/* La barra de nav (personas, promo, botón) ocupa toda la fila */
.cResults > nav {
  flex: 0 0 100%;
  width: 100%;
}

/* El <br> entre nav y secciones no aporta nada en flex */
.cResults > br {
  display: none;
}

/* Sección calendario: ancho natural (el del calendario) */
.cResults > section {
  width: auto !important;
  flex: 0 0 auto !important;
  float: none !important;
  box-sizing: border-box;
}

/* Sección resultados: rellena todo el espacio restante, pegada al calendario */
.cResults > section.right {
  width: auto !important;
  flex: 1 1 0% !important;
  min-width: 0 !important;
  float: none !important;
  box-sizing: border-box;
}

/* El bloque de resultados/prompt ocupa todo el ancho de su columna */
#blockRooms,
#bgResults {
  width: 100% !important;
  box-sizing: border-box;
}

/* Mobile: columnas apiladas, prompt/resultados arriba y en pequeño (≤650px) */
@media only screen and (max-width: 650px) {
  html, body {
    overflow-x: hidden !important;
  }
  #container {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  .cResults {
    width: 100% !important;
    flex-direction: column !important;
  }
  /* "Disolver" section.right (display:contents) para que #blockRooms (aviso)
     y #bgResults (resultados) sean items flex directos de .cResults y poder
     intercalar el calendario entre ellos:
     nav (0) → aviso (1) → calendario (2) → resultados (3) */
  .cResults > section.right {
    display: contents !important;
  }
  .cResults > nav { order: 0 !important; }
  #blockRooms { order: 1 !important; }
  .cResults > section {
    order: 2 !important;
    width: 100% !important;
    flex: 0 0 auto !important;
    float: none !important;
  }
  #bgResults { order: 3 !important; }

  /* Calendario a ancho completo y sin scroll horizontal en móvil */
  #calendar-container {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    box-sizing: border-box;
  }

  #calendar-container .calendar table {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Bloque "seleccione fechas" — compacto y visible por defecto en móvil.
     display sin !important para que el JS pueda ocultarlo (inline) al mostrar
     resultados; vence a #blockRooms{display:none} de style_mobile.css por orden
     de carga (mejoras.css va después). */
  #blockRooms {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 20px 0 12px 0 !important;
    padding: 16px !important;
    width: 100% !important;
    box-sizing: border-box;
    font-size: 15px !important;
    line-height: 1.4 !important;
    box-shadow: 0 2px 10px rgba(143,163,24,0.2);
  }

  /* Tarjeta de habitación: información centrada y apilada en móvil */
  .bg_result_aux {
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }
  .bg_resultDescription {
    width: 100% !important;
    text-align: center !important;
  }
  .bg_roomRate {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
    width: 100% !important;
  }
  .bg_roomRate div.bg_dateInfo,
  .bg_roomRate div.bg_dateNightInfo,
  .bg_roomRate div.bg_priceMiddleInfo {
    width: 100% !important;
    flex: 0 0 auto !important;
    text-align: center !important;
    padding: 2px 0 !important;
    margin: 0 !important;
  }
  .bg_promoRoomsList dd.bg_select {
    justify-content: center !important;
    width: 100% !important;
  }
}

/* ≤768px: non-column layout concerns only */
@media only screen and (max-width: 768px) {
}


/* ============================================================
   16. ICONOS INFO Y CÁMARA — más pequeños
   ============================================================ */

/* Mostrar iconos info/cámara junto al nombre (por defecto están ocultos) */
.imageInformation {
  display: inline !important;
}

/* Los iconos info.png y camera.png son imágenes dentro de <a> en la descripción */
.bg_resultDescription a > img,
.bg_resultDescription p > a > img {
  width: 20px !important;
  height: 20px !important;
  vertical-align: middle;
  opacity: 0.85;
  transition: opacity 0.15s ease, transform 0.12s ease;
}

.bg_resultDescription a:hover > img {
  opacity: 1;
  transform: scale(1.1);
}

/* También el icono info que aparece en el <h1> */
#bgResults h1 > img {
  width: 18px !important;
  height: 18px !important;
  vertical-align: middle;
  opacity: 0.8;
}


/* ============================================================
   17. RESPONSIVE — ajustes en móvil
   ============================================================ */

@media only screen and (max-width: 1224px) {
  .bg_resultDescription {
    height: auto !important;
    overflow: visible !important;
  }

  .bg_resultDescription p.descr {
    display: block !important;
    font-size: 12px;
    line-height: 1.4;
    color: #555;
    margin-top: 4px;
  }

  /* Ocultar completamente las fechas/noches de las tarifas no seleccionadas
     (por defecto usan visibility:hidden que reserva espacio) */
  .bg_roomRate div.bg_dateInfoHidden,
  .bg_roomRate div.bg_dateNightInfoHidden {
    display: none !important;
  }
}

/* Tablet portrait and below: board name on its own row so dates have full width */
@media only screen and (max-width: 1100px) {
  .bg_promoRoomsList dt {
    flex: 0 0 100% !important;
    width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    height: auto !important;
    line-height: 1.4 !important;
  }
  .bg_promoRoomsList dd.bg_roomRate {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .bg_promoRoomsList dd.bg_select {
    flex: 0 0 auto !important;
    width: auto !important;
  }
}

@media only screen and (max-width: 320px) {
  .bg_notRoom,
  .bg_product,
  .bg_promo,
  .bg_result {
    border-radius: 5px;
    margin: 3px 0 8px 0;
  }

  .bgBtnBook,
  .bgBtnProductsYes {
    border-radius: 4px;
  }
}


/* ============================================================
   MODAL DE RESERVA — OLD (disabled, styles now in modal-v2.css)
   ============================================================ */
/*  OLD MODAL CSS START
#bgUserData_c {
  width: auto !important;
  max-height: none !important;
  margin: 0 !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  visibility: visible !important;
}
#bgUserData {
  width: 100% !important;
  visibility: visible !important;
}
#bgUserDataFormArea {
  width: 100% !important;
  margin-top: 0 !important;
}
#bgUserDataFormArea .bgRow,
#bgUserDataFormArea ul.bgRow,
#bgUserDataFormArea .bgRow.bgSimpleRow {
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
#bgUserDataFormArea .bgColumn {
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
}
#bgUserDataFormArea .bgHalf .bgRow {
  width: 100% !important;
  height: auto !important;
}
#paymentInfo {
  height: auto !important;
  position: static !important;
}
#paymentTypeShell {
  position: static !important;
  z-index: auto !important;
}
#paymentTypeShell > .bgRow {
  width: 100% !important;
  height: auto !important;
}
#creditCardInfo {
  position: static !important;
  width: 100% !important;
}
#creditCardInfo .bgHalf {
  overflow: visible !important;
}
#bgExpirationDateYearInput { width: auto !important; }
#bgExpirationDateMonthInput { width: auto !important; margin-right: 0 !important; }
#bgUserDataAmount {
  width: 100% !important;
  float: none !important;
}
#bgUserDataAmount .bgRow {
  height: auto !important;
  overflow: visible !important;
}
#bgUserDataAmount .bgRow dd,
#bgUserDataAmount .bgRow dt {
  width: auto !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
}
#bgUserDataAmount .bgRow.bgHalf label {
  width: auto !important;
}
#bgUserDataShell {
  overflow: visible !important;
}
#bgReservationSummary {
  float: none !important;
  height: auto !important;
}
#bgUserDataFooter {
  width: auto !important;
  float: none !important;
}
#bgUserDataFooter .buttons {
  position: static !important;
  width: auto !important;
}
#bgUserDataOkButton {
  display: inline-block !important;
}
#cardFlags {
  top: auto !important;
  height: auto !important;
  width: auto !important;
  position: static !important;
}
#bgUserData .columnTitle {
  padding: 0 !important;
}
#bgUserData h2 {
  font-size: inherit !important;
  line-height: inherit !important;
}
/* ---- FIN RESET ---- */

/* Backdrop */
#modal-backdrop { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:9999; }
#modal-backdrop.active { display:block; }

/* ---- Contenedor: 90 % pantalla ---- */
#bgUserData_c {
  display: none !important;
  position: fixed !important;
  z-index: 10000 !important;
  top: 3vh !important;
  left: 5vw !important;
  width: 90vw !important;
  height: 94vh !important;
  overflow: hidden !important;
  background: #fff !important;
  border-radius: 10px !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.4) !important;
}
#bgUserData_c.modal-open { display: block !important; }

#bgUserData {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}
#bgUserDataForm {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 0% !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

/* Título */
#bgTitle {
  flex-shrink: 0;
  padding: 14px 24px 10px;
  font-size: 20px;
  font-weight: 300;
  color: #3c3c3c;
  border-bottom: 1px dotted #ccc;
}

/* Cerrar */
#bgUserData_c .container-close {
  position: absolute; top: 10px; right: 16px;
  font-size: 26px; color: #888; text-decoration: none; z-index: 10; line-height: 1;
}
#bgUserData_c .container-close:hover { color: #333; }

/* ---- Cuerpo flex ---- */
.modal-body {
  display: flex !important;
  flex: 1 !important;
  min-height: 0 !important;
}

/* Columnas 50/50 */
.modal-col-left {
  flex: 1 1 50% !important;
  overflow-y: auto !important;
  padding: 20px 28px 28px !important;
  box-sizing: border-box !important;
}
.modal-col-right {
  flex: 1 1 50% !important;
  overflow-y: auto !important;
  background: #f5f8e8 !important;
  padding: 20px 24px 24px !important;
  box-sizing: border-box !important;
  border-radius: 0 0 10px 0 !important;
  display: flex !important;
  flex-direction: column !important;
}

/* ==== FORMULARIO ==== */

#bgUserDataFormArea { margin: 0; }

#bgUserDataFormArea h2 {
  font-size: 15px;
  font-weight: 700;
  color: #3B490A;
  margin: 0 0 14px;
}

/* Fila genérica (label + input en línea) */
.form-row {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 10px !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
}
.form-row > label {
  font-weight: 600 !important;
  font-size: 12.5px !important;
  color: #3B490A !important;
  min-width: 85px !important;
  flex-shrink: 0 !important;
  text-align: right !important;
  margin: 0 !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

/* Inputs / selects base */
.form-row > input,
.form-row > select,
.form-field > input,
.form-field > select,
.form-field > textarea,
.form-row > textarea,
.card-type-row > select {
  height: 40px !important;
  padding: 0 8px !important;
  border: 1px solid #ccd5a8 !important;
  border-radius: 4px !important;
  background: #fafdf3 !important;
  font-size: 12.5px !important;
  flex: 1 !important;
  min-width: 0 !important;
  box-sizing: border-box !important;
  font-family: inherit !important;
  width: auto !important;
}
.form-field > textarea,
.form-row > textarea {
  height: auto !important;
  min-height: 48px !important;
  padding: 6px 8px !important;
  resize: vertical !important;
}
.form-row > input:focus,
.form-row > select:focus,
.form-field > input:focus,
.form-field > select:focus,
.form-field > textarea:focus,
.form-row > textarea:focus {
  outline: none !important;
  border-color: #8FA318 !important;
  box-shadow: 0 0 0 2px rgba(143,163,24,.18) !important;
}

/* Fila de dos campos lado a lado */
.form-row--half {
  display: flex !important;
  gap: 14px !important;
  margin-bottom: 10px !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
}

/* Fila de campo a ancho completo (label arriba) */
.form-row--full {
  display: flex !important;
  flex-direction: column !important;
  gap: 3px !important;
  margin-bottom: 10px !important;
  width: 100% !important;
  height: auto !important;
  padding: 0 !important;
}
.form-row--full > label {
  font-weight: 600 !important;
  font-size: 12.5px !important;
  color: #3B490A !important;
}

.form-field {
  flex: 1 !important;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
#iInputState[style*="display: none"],
#iInputState[style*="display:none"] {
  display: none !important;
}
.form-field > label {
  font-weight: 600 !important;
  font-size: 12px !important;
  color: #3B490A !important;
  text-align: left !important;
  width: auto !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

/* ==== SECCIÓN PAGOS ==== */

.payment-section {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dotted #aab56a;
}

.payment-section h2#bgFillPaymentInfoLabel {
  font-size: 15px;
  font-weight: 700;
  color: #3B490A;
  margin: 0 0 12px;
  padding: 0;
  border: none;
}

.pay-option {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-bottom: 10px;
  font-size: 12.5px;
  line-height: 1.5;
  color: #3c3c3c;
  cursor: pointer;
}
.pay-option input[type=radio] {
  margin: 3px 0 0 0;
  flex-shrink: 0;
}

.pay-note {
  font-size: 12px;
  line-height: 1.5;
  color: #555;
  margin: 0 0 12px 22px;
  padding: 0;
}

.card-type-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.card-type-row > label {
  font-weight: 600;
  font-size: 12.5px;
  color: #3B490A;
  flex-shrink: 0;
}
.card-type-row > select {
  height: 32px;
  padding: 0 8px;
  border: 1px solid #ccd5a8;
  border-radius: 4px;
  background: #fafdf3;
  font-size: 12.5px;
}
.card-icons {
  display: inline-flex;
  gap: 4px;
  align-items: center;
}

#creditCardInfo { margin-top: 6px; }
#paymentInfo { position: relative; }

/* ==== COLUMNA DERECHA: RESUMEN ==== */

#bgUserDataAmount { overflow: visible !important; width: 100% !important; float: none !important; }
#bgUserDataAmount h2 {
  font-size: 15px !important; font-weight: 700 !important; color: #3B490A !important;
  margin: 0 0 8px !important; padding: 0 0 6px !important;
  border-bottom: 1px dotted #b5c46a !important;
  float: none !important; height: auto !important; width: 100% !important;
}
#bgUserDataAmount .bgRow {
  height: auto !important; min-height: 18px !important; padding: 3px 0 !important;
  overflow: visible !important; border-bottom: 1px dotted #d2dba4 !important;
  display: block !important; width: 100% !important; margin: 0 !important;
}
#bgUserDataAmount .bgRow dt,
#bgUserDataAmount .bgRow dd {
  display: inline !important; overflow: visible !important; white-space: normal !important;
  font-size: 12.5px !important; width: auto !important; text-overflow: clip !important;
  padding: 0 !important;
}
#bgUserDataAmount .bgRow dt { font-weight: 600 !important; }
#bgUserDataAmount .bgRow.bgHalf label { width: auto !important; text-align: left !important; overflow: visible !important; }
#bgUserDataAmount label {
  margin-right: 4px !important;
}
#bgUserDataAmount label::after {
  content: ": ";
}
#bgUserDataAmount #bgTotalFinalLabel,
#bgUserDataAmount #bgTotalFinalValue,
#bgUserDataAmount #bgTotalFinalValue span { font-size: 14px !important; font-weight: 700 !important; }

/* Observaciones */
#bgMoreDetailsNotesInput {
  width: 100%; min-height: 45px; padding: 6px 8px;
  border: 1px solid #ccd5a8; border-radius: 4px;
  background: #fafdf3; box-sizing: border-box; font-size: 12px; resize: vertical;
}
#bgMoreDetailsLastTitleLabel {
  font-size: 13px; font-weight: 700; color: #3B490A; display: block; margin-bottom: 3px;
}

/* Footer — barra centrada al pie del modal */
#bgUserDataFooter {
  flex-shrink: 0 !important;
  padding: 12px 24px !important;
  border-top: 1px solid #d2dba4 !important;
  background: #f9faf4 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
  border-radius: 0 0 10px 10px !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  right: auto !important;
  bottom: auto !important;
}
.policy-row {
  display: flex !important; align-items: center !important; gap: 6px !important; font-size: 12px !important;
  margin: 0 !important; text-align: center !important;
}
.policy-row a { color: #3B490A !important; }

#bgUserDataFooter .buttons {
  display: flex !important; gap: 12px !important; justify-content: center !important;
}
#bgUserDataFooter .bgBtnConfirm {
  display: inline-block !important; padding: 10px 30px !important; background: #8FA318 !important; color: #fff !important;
  border-radius: 5px !important; font-weight: 700 !important; font-size: 14px !important; text-decoration: none !important;
  cursor: pointer !important; transition: background .2s !important;
}
#bgUserDataFooter .bgBtnConfirm:hover { background: #7a8e10 !important; }
#bgUserDataFooter .bgBtnConfirm.disabled { background: #b5c46a !important; cursor: default !important; }
#bgUserDataFooter .bgBtnCancel {
  display: inline-block !important; padding: 10px 22px !important; background: #eee !important; color: #555 !important;
  border-radius: 5px !important; font-size: 13px !important; text-decoration: none !important; cursor: pointer !important;
}
#bgUserDataFooter .bgBtnCancel:hover { background: #ddd !important; }

/* ==== MOBILE ==== */
@media only screen and (max-width: 900px) {
  #bgUserData_c {
    top: 0 !important; left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    transform: none !important;
    max-height: none !important;
  }
  #bgUserData {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  #bgTitle { padding: 10px 14px 8px !important; font-size: 16px !important; flex-shrink: 0 !important; }

  .modal-body {
    flex-direction: column !important;
    flex: 1 1 0% !important;
    overflow-y: scroll !important;
    -webkit-overflow-scrolling: touch !important;
    min-height: 0 !important;
  }
  .modal-col-left,
  .modal-col-right {
    flex: none !important;
    width: 100% !important;
    overflow: visible !important;
    padding: 14px 16px !important;
    box-sizing: border-box !important;
  }
  .modal-col-right { border-radius: 0 !important; }

  /* Labels en línea con campos — NO apilar */
  .form-row {
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
    flex-wrap: nowrap !important;
  }
  .form-row > label {
    text-align: right !important;
    min-width: 75px !important;
    font-size: 11.5px !important;
  }

  /* Mitades: apilar los form-field verticalmente */
  .form-row--half {
    flex-direction: column !important;
    gap: 0 !important;
  }
  .form-field {
    margin-bottom: 8px !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 6px !important;
  }
  .form-field > label {
    min-width: 75px !important;
    text-align: right !important;
    font-size: 11.5px !important;
    flex-shrink: 0 !important;
  }

  /* Full-width rows en mobile tambien inline */
  .form-row--full {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 6px !important;
  }
  .form-row--full > label {
    min-width: 75px !important;
    text-align: right !important;
    padding-top: 8px !important;
    flex-shrink: 0 !important;
  }

  .card-type-row {
    flex-wrap: wrap !important;
  }

  /* Footer en mobile */
  #bgUserDataFooter {
    flex-shrink: 0 !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 8px 16px !important;
    border-radius: 0 !important;
  }
  #bgUserDataFooter .buttons {
    width: 100% !important;
    justify-content: center !important;
  }
}


/* ============================================================
   CALENDARIO — Selección entrada / salida y hover
   ============================================================ */

#calendar-container .calendar tbody td.selecteds {
  background-color: #e36868 !important;
  color: #fff !important;
}

#calendar-container .calendar tbody td.selectede {
  background-color: #4bd32d !important;
  color: #fff !important;
}

#calendar-container .calendar tbody .day:not(.disabled):hover {
  background-color: #bdc48e !important;
  cursor: pointer;
}
/* OLD MODAL CSS END */
@media only screen and (max-width: 650px) {
  .lightboxOverlay {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
  }

  .lightbox {
    position: fixed !important;
    top: 50px !important;
    left: 0 !important;
  }
}
