
.contenedor-cotizador-form {
  overflow-x: visible !important;
  overflow-y: visible !important;
}

@media (max-width: 767px) {
  .contenedor-cotizador-form {
    max-height: none !important;
    overflow-y: visible !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .field {
    max-width: 100% !important;
    width: 100% !important;
  }

  .field-wrapper {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (min-width: 768px) {
  .contenedor-cotizador-form {
    max-height: 151px !important;
    overflow-y: visible !important;
    max-width: 1218px !important;
    width: 100% !important;
  }

}

/* Filas: sin z-index en el wrapper (si no, todo lo de la segunda fila quedaría detrás del contexto
 * del primero). Cada campo con error lleva su propio z escalonado más abajo. */
.contenedor-cotizador-form .cotizador-form-row--primary,
.contenedor-cotizador-form .cotizador-form-row--secondary {
  position: relative;
  overflow: visible;
}

/*
 * Tooltip bajo cada .field-wrapper. El siguiente campo tiene fondo blanco y tapa mensajes previos si
 * comparten z-index → más arriba en el cotizador = z-index MAYOR (“todos por delante” cascada vertical).
 */
.contenedor-cotizador-form .cotizador-form-row--primary > .field-wrapper.has-error:nth-child(1) {
  z-index: 800;
}

.contenedor-cotizador-form .cotizador-form-row--primary > .field-wrapper.has-error:nth-child(2):not(.cotizador-destination-field-error) {
  z-index: 780;
}

.contenedor-cotizador-form .cotizador-form-row--primary > .field-wrapper.cotizador-destination-field-error.has-error:nth-child(2) {
  /* Encima del bloque fechas cuando hace falta, sin superar origen */
  z-index: 788;
}

.contenedor-cotizador-form .cotizador-form-row--primary > .field-wrapper.has-error:nth-child(3) {
  z-index: 760;
}

.contenedor-cotizador-form .cotizador-form-row--secondary > .field-wrapper.has-error:nth-child(1) {
  z-index: 740;
}

.contenedor-cotizador-form .cotizador-form-row--secondary > .field-wrapper.has-error:nth-child(2) {
  z-index: 720;
}

.contenedor-cotizador-form .cotizador-form-row--secondary > .field-wrapper.has-error:nth-child(3) {
  z-index: 700;
}

/* Botón legal al final: por encima de campos pero debajo mensajes cuando hace falta */
.contenedor-cotizador-form .cotizador-form-row--secondary > .flex-1.flex.flex-col.justify-start {
  position: relative;
  z-index: 1;
}

/* Estilos para validación del formulario (tooltip absolute bajo cada .field-wrapper) */
.custom-error-message {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  background-color: #ffffff;
  border-radius: 8px;
  padding: 10px 14px;
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.15),
    0 10px 28px rgba(17, 27, 67, 0.12);
  z-index: 50000;
  font-size: 14px;
  line-height: 1.4;
  display: none;
  animation: cotizadorFadeIn 0.3s ease;
}

/* mayor especificidad que el bloque anterior: sin esto Tailwind/reglas prefijadas dejan display:none siempre activo */
.contenedor-cotizador-form .field-wrapper .custom-error-message.show,
.custom-error-message.show {
  display: block !important;
}

.contenedor-cotizador-form .custom-error-message.cotizador-destination-field-error {
  z-index: 2;
}

.custom-error-message::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-bottom: 8px solid #FFFFFF;
}

.custom-error-message .error-text {
  color: #2b2e4a;
}

.custom-error-message .error-asterisk {
  color: #DB2AC2;
  font-weight: bold;
  margin-right: 4px;
}

.field-wrapper {
  position: relative;
}

.field-wrapper.has-error input,
.field-wrapper.has-error .custom-select-button,
.field-wrapper.has-error .custom-select-button-phone {
  border-bottom: 2px solid #DB2AC2 !important;
}

.field-wrapper.has-error .custom-select-wrapper,
.field-wrapper.has-error .custom-select-wrapper-phone {
  border-bottom: 2px solid #DB2AC2 !important;
}

.field-wrapper.has-error #date-range-container {
  border-bottom: 2px solid #DB2AC2 !important;
}

.field-wrapper.has-error #openModalPassengers {
  border-bottom: 2px solid #DB2AC2 !important;
}

@keyframes cotizadorFadeIn {
  from {
    opacity: 0;
    transform: translateY(-5px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* --- Flatpickr cotizador (home + compartido): morado #6633CC, gris #E6ECF7 --- */
.home-date-range-field {
  position: relative;
  z-index: 0;
  min-width: 0;
  overflow: visible;
}

.home-date-range-field.cotizador-calendar-open {
  z-index: 50;
}

/* Evita que overflow del form recorte el popover de fechas (desktop: calendario encima de la pastilla) */
.contenedor-cotizador-form:has(.cotizador-calendar-open) {
  overflow: visible !important;
}

/* Lista origen/destino: mismo overflow visible que calendario; NO quitar max-height desktop
 * (añadir none generaba alto extra → scroll en el cotizador en contextos con overflow máximo).
 * z-index alta en la columna: la tercera columna (.home-date-range-field tenía z-index: 1 antes
 * y tapaba este desplegable. */
.contenedor-cotizador-form:has(.origin-autocomplete-dropdown.show),
.contenedor-cotizador-form:has(.destination-overlay.show),
.contenedor-cotizador-form:has(.phone-country-dropdown-open) {
  overflow: visible !important;
}

.contenedor-cotizador-form .field-wrapper:has(.origin-autocomplete-dropdown.show),
.contenedor-cotizador-form .field-wrapper:has(.destination-overlay.show),
.contenedor-cotizador-form .field-wrapper:has(.phone-country-dropdown-open) {
  position: relative;
  z-index: 100;
}

.contenedor-cotizador-form .origin-autocomplete-dropdown.show {
  z-index: 5000;
}

.contenedor-cotizador-form .destination-overlay.show {
  z-index: 5000;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown {
  --cot-fp-purple: #6633cc;
  --cot-fp-grey: #e6ecf7;
  --cot-fp-text: #0f1b40;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 8px 28px rgba(17, 27, 67, 0.16);
  box-sizing: border-box;
  position: relative;
  overflow: visible;
  font-size: 13px;
  z-index: 300 !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown::after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 10px;
  height: 10px;
  background: #ffffff;
  box-shadow: 2px 2px 6px rgba(17, 27, 67, 0.1);
  z-index: 2;
  pointer-events: none;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-months {
  background: var(--cot-fp-grey) !important;
  border-radius: 16px 16px 0 0;
  padding: 14px 8px 10px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-months {
  padding: 14px 0 10px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-month {
  background: transparent !important;
  color: #111b43 !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-months .flatpickr-month + .flatpickr-month {
  border-left: 1px solid #ffffff;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-current-month {
  font-size: 15px;
  font-weight: 700;
  color: #111b43 !important;
  padding: 4px 0;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-current-month input.cur-year {
  font-size: 15px;
  font-weight: 700;
  color: #111b43 !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-prev-month,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-next-month {
  padding: 8px 10px;
  top: 12px;
  fill: var(--cot-fp-purple) !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-prev-month svg,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-next-month svg {
  width: 12px !important;
  height: 12px !important;
  display: block;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-prev-month svg path,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-next-month svg path {
  fill: var(--cot-fp-purple) !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-prev-month:hover svg,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-next-month:hover svg {
  fill: #5529b3;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-weekdays {
  background: var(--cot-fp-grey) !important;
  padding: 0 8px 10px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown span.flatpickr-weekday {
  font-size: 11px;
  font-weight: 700;
  color: #8c96a9 !important;
  text-transform: capitalize;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-innerContainer {
  background: #ffffff;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .dayContainer {
  padding: 10px 6px 18px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day {
  height: 36px;
  line-height: 36px;
  font-size: 13px;
  font-weight: 500;
  color: var(--cot-fp-text);
  border-radius: 10px;
  border: none;
  margin: 2px 1px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.prevMonthDay,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.nextMonthDay {
  color: #9ca3af;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.inRange {
  background: var(--cot-fp-grey) !important;
  color: var(--cot-fp-text) !important;
  box-shadow: none !important;
  border-radius: 10px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.startRange,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.endRange {
  background: var(--cot-fp-purple) !important;
  color: #ffffff !important;
  border-radius: 10px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.startRange.inRange,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.endRange.inRange {
  background: var(--cot-fp-purple) !important;
  color: #ffffff !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.selected {
  background: var(--cot-fp-purple) !important;
  color: #ffffff !important;
  border: none;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day:hover:not(.flatpickr-disabled):not(.prevMonthDay):not(.nextMonthDay) {
  background: var(--cot-fp-purple) !important;
  color: #ffffff !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.today {
  border-color: var(--cot-fp-purple);
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.flatpickr-disabled,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.flatpickr-disabled:hover {
  color: #c4c9d4 !important;
  background: transparent !important;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown.rangeMode .flatpickr-day {
  margin: 2px 1px;
}

.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.startRange + .flatpickr-day.inRange,
.flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day.inRange + .flatpickr-day.endRange {
  box-shadow: none !important;
}

/* Cotizador flatpickr (clase .cotizador-flatpickr-dropdown): no depender de .contenedor-cotizador-form para que siempre aplique el tema */
@media (max-width: 767px) {
  /* Home móvil: posición con position:absolute + top (JS) respecto a .home-date-range-field;
     scroll/resize/visualViewport re-alinean mientras está abierto. z-index alto por encima del
     contenido. max-height + overflow en el panel del calendario en viewports bajos. */
  .home-date-range-field .flatpickr-calendar.cotizador-flatpickr-dropdown {
    z-index: 10050 !important;
    max-height: calc(100vh - 80px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  /* La pestaña ::after (apuntando hacia abajo) no tiene sentido cuando el
     calendario está fijo al viewport, porque al hacer scroll el widget se aleja
     y la flechita queda apuntando a la nada. La ocultamos sólo para el home
     móvil (en desktop sigue siendo útil). */
  .home-date-range-field .flatpickr-calendar.cotizador-flatpickr-dropdown::after {
    display: none !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
    font-size: 12px;
    border-radius: 12px;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-months {
    border-radius: 12px 12px 0 0;
    padding: 10px 4px 8px;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-current-month,
  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-current-month .flatpickr-monthDropdown-months,
  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-current-month input.cur-year {
    font-size: 14px;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown span.flatpickr-weekday {
    font-size: 10px;
  }

  /* Ancho fluido: flatpickr.min.css fija ~308px en .flatpickr-days y rContainer es inline-block → hueco a la derecha */
  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-innerContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-rContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: block !important;
    box-sizing: border-box !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-days {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-left: none !important;
    border-right: none !important;
    box-sizing: border-box !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown .dayContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown .flatpickr-day {
    height: 32px;
    line-height: 32px;
    font-size: 12px;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown::after {
    left: auto;
    right: 20%;
    transform: rotate(45deg);
  }
}

/* Desktop: 2 meses — altura fluida y padding inferior (evita recorte de la última fila) */
@media (min-width: 768px) {
  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 14px;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.cotizador-drop-above::after {
    left: 50%;
    right: auto;
    bottom: -5px;
    transform: translateX(-50%) rotate(45deg);
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-innerContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  /* column: primero fila Lun–Dom, debajo la grilla (row rompía el layout y tapaba weekdays) */
  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-rContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-weekdays {
    flex-shrink: 0;
    width: 100% !important;
    position: relative;
    z-index: 1;
    display: flex !important;
    align-items: stretch !important;
    box-sizing: border-box;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth
    .flatpickr-weekdays
    .flatpickr-weekdaycontainer {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    display: flex !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth
    .flatpickr-weekdays
    span.flatpickr-weekday {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Dos meses en fila, mismo ancho; .flatpickr-days encaja al contenido del rContainer */
  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-days {
    flex-shrink: 0;
    flex-grow: 0;
    width: 100% !important;
    max-width: 100% !important;
    position: relative;
    z-index: 0;
    height: auto !important;
    min-height: 0;
    overflow: visible !important;
    padding-bottom: 8px;
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    box-sizing: border-box;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-days .dayContainer {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
    padding: 12px 6px 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    grid-auto-rows: minmax(36px, auto) !important;
    gap: 4px 0 !important;
    justify-content: stretch !important;
    align-content: start !important;
    transform: none !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth .flatpickr-day {
    width: 100% !important;
    max-width: 34px !important;
    justify-self: center !important;
    flex-basis: auto !important;
    -webkit-flex-basis: auto !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
  }

  .flatpickr-calendar.cotizador-flatpickr-dropdown.multiMonth.rangeMode .flatpickr-day {
    margin: 0 !important;
  }
}

/*
 * Respaldo: el calendario vive siempre dentro de estos nodos (appendTo).
 * Si por timing no se añade .cotizador-flatpickr-dropdown, igual aplica el tema frente a flatpickr.min.css y caché.
 */
.home-date-range-field .flatpickr-calendar,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar,
#recotizar-container-2 .recotizar-expanded-date-field .flatpickr-calendar {
  --cot-fp-purple: #6633cc;
  --cot-fp-grey: #e6ecf7;
  --cot-fp-text: #0f1b40;
  background: #ffffff !important;
  color: #0f1b40 !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 28px rgba(17, 27, 67, 0.16) !important;
  box-sizing: border-box;
  overflow: visible !important;
  font-size: 13px;
  z-index: 300 !important;
}

.home-date-range-field .flatpickr-calendar .flatpickr-months,
.home-date-range-field .flatpickr-calendar .flatpickr-weekdays,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-months,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-weekdays {
  background: #e6ecf7 !important;
}

.home-date-range-field .flatpickr-calendar .flatpickr-month,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-month {
  background: transparent !important;
  color: #111b43 !important;
}

.home-date-range-field .flatpickr-calendar .flatpickr-current-month,
.home-date-range-field .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.home-date-range-field .flatpickr-calendar .flatpickr-current-month input.cur-year,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-current-month,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-current-month input.cur-year {
  color: #111b43 !important;
  font-weight: 700 !important;
}

.home-date-range-field .flatpickr-calendar span.flatpickr-weekday,
#dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar span.flatpickr-weekday {
  color: #8c96a9 !important;
}

@media (max-width: 767px) {
  .home-date-range-field .flatpickr-calendar .flatpickr-innerContainer,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-innerContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .home-date-range-field .flatpickr-calendar .flatpickr-rContainer,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-rContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: block !important;
    box-sizing: border-box !important;
  }

  .home-date-range-field .flatpickr-calendar .flatpickr-days,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .flatpickr-days {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    border-left: none !important;
    border-right: none !important;
    box-sizing: border-box !important;
  }

  .home-date-range-field .flatpickr-calendar .dayContainer,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar .dayContainer {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

@media (min-width: 768px) {
  .home-date-range-field .flatpickr-calendar.multiMonth,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth,
  #recotizar-container-2 .recotizar-expanded-date-field .flatpickr-calendar.multiMonth {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    padding-bottom: 14px;
  }

  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-innerContainer,
  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-days,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-innerContainer,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-days {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-rContainer,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-rContainer {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-weekdays,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-weekdays {
    flex-shrink: 0;
    width: 100% !important;
    position: relative;
    z-index: 1;
    display: flex !important;
    align-items: stretch !important;
    box-sizing: border-box;
  }

  .home-date-range-field
    .flatpickr-calendar.multiMonth
    .flatpickr-weekdays
    .flatpickr-weekdaycontainer,
  #dialogRecotizar
    .recotizar-modal-date-field
    .flatpickr-calendar.multiMonth
    .flatpickr-weekdays
    .flatpickr-weekdaycontainer {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    display: flex !important;
  }

  .home-date-range-field
    .flatpickr-calendar.multiMonth
    .flatpickr-weekdays
    span.flatpickr-weekday,
  #dialogRecotizar
    .recotizar-modal-date-field
    .flatpickr-calendar.multiMonth
    .flatpickr-weekdays
    span.flatpickr-weekday {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-days,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-days {
    display: flex !important;
    flex-direction: row !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-days .dayContainer {
    flex: 1 1 0% !important;
    min-width: 0 !important;
    max-width: none !important;
    width: auto !important;
    padding: 12px 6px 0 !important;
    overflow: visible !important;
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    grid-auto-rows: minmax(36px, auto) !important;
    gap: 4px 0 !important;
    align-content: start !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  .home-date-range-field .flatpickr-calendar.multiMonth .flatpickr-day,
  #dialogRecotizar .recotizar-modal-date-field .flatpickr-calendar.multiMonth .flatpickr-day {
    width: 100% !important;
    max-width: 34px !important;
    justify-self: center !important;
    flex-basis: auto !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
  }
}

/* =============================================================================
 * Cotizador (home + widget embed): Lato, pesos placeholder/relleno, pasajeros, teléfono
 * ============================================================================= */
.contenedor-cotizador-form input[type='text'],
.contenedor-cotizador-form input[type='email'],
.contenedor-cotizador-form input[type='number'] {
  font-family: 'Lato', sans-serif !important;
}

.contenedor-cotizador-form input:placeholder-shown {
  font-weight: 400 !important;
}

.contenedor-cotizador-form input:not(:placeholder-shown) {
  font-weight: 700 !important;
}

.contenedor-cotizador-form input::placeholder,
.contenedor-cotizador-form input::-webkit-input-placeholder {
  font-family: 'Lato', sans-serif !important;
  font-weight: 400 !important;
  color: #051f3f !important;
  opacity: 1 !important;
}

.contenedor-cotizador-form .origin-autocomplete-input,
.contenedor-cotizador-form .destination-autocomplete-input {
  font-family: 'Lato', sans-serif !important;
}

.contenedor-cotizador-form .origin-autocomplete-input:placeholder-shown,
.contenedor-cotizador-form .destination-autocomplete-input:placeholder-shown {
  font-weight: 400 !important;
}

.contenedor-cotizador-form .origin-autocomplete-input:not(:placeholder-shown),
.contenedor-cotizador-form .destination-autocomplete-input:not(:placeholder-shown) {
  font-weight: 700 !important;
}

.contenedor-cotizador-form .origin-autocomplete-input::placeholder,
.contenedor-cotizador-form .origin-autocomplete-input::-webkit-input-placeholder,
.contenedor-cotizador-form .destination-autocomplete-input::placeholder,
.contenedor-cotizador-form .destination-autocomplete-input::-webkit-input-placeholder {
  font-family: 'Lato', sans-serif !important;
  font-weight: 400 !important;
  color: #051f3f !important;
  opacity: 1 !important;
}

.contenedor-cotizador-form .cotizador-passengers-label {
  font-family: 'Lato', sans-serif;
  font-weight: 400;
}

.contenedor-cotizador-form .cotizador-passengers-label.cotizador-passengers-filled {
  font-weight: 700;
}

.contenedor-cotizador-form .cotizador-phone-field-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  object-fit: contain;
}

@media (min-width: 768px) {
  .contenedor-cotizador-form .cotizador-phone-field-icon {
    width: 17px;
    height: 17px;
  }
}

/* Mismos patrones fuera del card home (planes: recotibar modal / barra expandida) */
#enviando_formulario .cotizador-passengers-label,
#recotizar-container-2 .cotizador-passengers-label {
  font-family: 'Lato', sans-serif;
  font-weight: 400;
}

#enviando_formulario .cotizador-passengers-label.cotizador-passengers-filled,
#recotizar-container-2 .cotizador-passengers-label.cotizador-passengers-filled {
  font-weight: 700;
}
