/*
 * Always-on shared booking-calendar presentation carried over from the
 * previously mixed Flatpickr files. Every calendar rule is scoped to a
 * runtime marker added by the owning provider during Flatpickr onReady.
 */

.zas-booking-calendar-runtime .flatpickr-rContainer {
  width: 100% !important;
}

@media (max-width: 991px) {
  .zas-booking-calendar-runtime .flatpickr-innerContainer {
    padding-bottom: 50px !important;
  }
}

.zas-booking-calendar-runtime .nextMonthDay,
.zas-booking-calendar-runtime .prevMonthDay {
  color: transparent !important;
  pointer-events: none !important;
}

.zas-booking-calendar-runtime .flatpickr-swipe-gesture {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 55px;
  height: 55px;
  background-image: url('../../images/swipe-icon-animated.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: drop-shadow(0 0 30px rgba(0, 0, 0, 0.3));
  z-index: 1000;
  pointer-events: none;
}

.zas-booking-calendar-runtime .flatpickr-title {
  font-size: 18px;
  font-weight: 600;
  color: #192d59;
  border-bottom: 1px solid #e8eaee;
  width: calc(100% - 70px);
  margin-right: auto;
  margin-left: auto;
  padding-top: 25px;
  padding-bottom: 18px;
}

.flatpickr-backdrop.zas-booking-calendar-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9998;
}

@media (max-width: 768px) {
  .flatpickr-calendar.zas-booking-calendar-runtime {
    position: fixed !important;
    bottom: 0 !important;
    top: auto !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 20px 20px 0 0 !important;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
    z-index: 9999 !important;
    transition: transform 0.6s ease;
    font-size: 16px;
  }

  .zas-booking-calendar-runtime .flatpickr-months .flatpickr-prev-month,
  .zas-booking-calendar-runtime .flatpickr-months .flatpickr-next-month {
    top: 90px !important;
  }

  .flatpickr-calendar.zas-booking-calendar-runtime.open {
    transform: translateY(0);
  }

  .flatpickr-calendar.zas-booking-calendar-runtime::before,
  .flatpickr-calendar.zas-booking-calendar-runtime::after {
    display: none !important;
  }
}

.zas-booking-calendar-runtime .flatpickr-day:hover,
.zas-booking-calendar-runtime .flatpickr-day:focus {
  border-color: #e2f3fa !important;
  background: #e2f3fa !important;
}

.zas-booking-calendar-runtime .flatpickr-disabled:hover {
  border-color: #fff !important;
  background: #fff !important;
}

.zas-booking-calendar-runtime .flatpickr-months .flatpickr-next-month:hover svg,
.zas-booking-calendar-runtime .flatpickr-months .flatpickr-prev-month:hover svg {
  fill: #007dc1 !important;
}

.zas-booking-calendar-runtime .flatpickr-day.selected {
  background: #192d59 !important;
  border-color: #fff !important;
  color: #fff !important;
}

.zas-booking-calendar-runtime .flatpickr-days {
  width: 100% !important;
}

.zas-booking-calendar-runtime .dayContainer {
  max-width: 100% !important;
  width: 100% !important;
}

.zas-booking-calendar-runtime .flatpickr-day {
  max-width: 100% !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
}

.zas-booking-calendar-runtime .flatpickr-current-month .numInputWrapper .cur-year {
  padding: 0 !important;
  border: none !important;
  margin-left: 8px !important;
  font-size: 18px;
  color: #0a2640 !important;
  font-weight: 400 !important;
}

.zas-booking-calendar-runtime .flatpickr-month,
.zas-booking-calendar-runtime .flatpickr-weekdays {
  margin-bottom: 10px;
}

.zas-booking-calendar-runtime .flatpickr-prev-month,
.zas-booking-calendar-runtime .flatpickr-next-month {
  top: 22px !important;
  color: #0a2640 !important;
  fill: #0a2640 !important;
}

.zas-booking-calendar-runtime .flatpickr-next-month {
  right: 35px !important;
}

.zas-booking-calendar-runtime .flatpickr-prev-month {
  left: 35px !important;
}

#cfwc-flatpickr::placeholder,
#datepicker-input::placeholder,
#travelotopos-datepicker::placeholder {
  color: #0a2640;
}

#datepicker-input.flatpickr-input {
  color: #0a2640 !important;
}

.zas-booking-calendar-runtime .flatpickr-current-month .cur-month {
  pointer-events: none !important;
  font-size: 18px;
  color: #0a2640 !important;
  font-weight: 600 !important;
}

.zas-booking-calendar-runtime .flatpickr-current-month .numInputWrapper {
  pointer-events: none !important;
  color: #0a2640 !important;
}

.flatpickr-calendar.zas-booking-calendar-runtime {
  box-shadow: 0 0 42px -11px rgba(0, 0, 0, 0.5) !important;
  border-radius: 20px;
  margin-left: 35px;
}

.zas-booking-calendar-runtime .flatpickr-weekday,
.zas-booking-calendar-runtime .flatpickr-day {
  color: #0a2640;
}

.zas-booking-calendar-runtime span.flatpickr-weekday {
  font-weight: 200 !important;
  font-size: 13px !important;
}

.zas-booking-calendar-runtime .dayContainer + .dayContainer {
  box-shadow: -1px 0 0 #fff !important;
}

.zas-booking-calendar-runtime .flatpickr-days,
.zas-booking-calendar-runtime .flatpickr-weekdays {
  display: flex !important;
  gap: 25px;
}

.zas-booking-calendar-runtime .flatpickr-day.flatpickr-disabled {
  color: #ccc;
}

.zas-booking-calendar-runtime .flatpickr-months {
  padding-top: 25px !important;
  padding-bottom: 4px !important;
}

.zas-booking-calendar-runtime .flatpickr-innerContainer {
  padding-bottom: 35px;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

.flatpickr-calendar.zas-booking-calendar-runtime::before,
.flatpickr-calendar.zas-booking-calendar-runtime::after {
  display: none !important;
}
