:root {
  --grey-75: #999999;
  --grey-50: #dddddd;
  --grey-25: #f9f9f9;
  --white: #ffffff;

  --mx-reservation-status-unavailable: #b42e2e;
  --mx-reservation-range: #49b42e;
  --mx-reservation-range-edge: #2f8f22;

  --mx-reservation-button: #0094d9;
  --mx-reservation-button-hover: #17469e;
}

.mx_reservation .mx_reservation_events {
  display: none;
}

.mx_reservation {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  height: auto;
}

.mx_reservation * {
  box-sizing: border-box;
}

.mx_reservation .mx_reservation_calendar_controls {
  position: relative;
  width: 100%;
  min-height: 27px;
  padding: 10px 0;
  color: var(--mx-reservation-button);
}

.mx_reservation .mx_reservation_current_date {
  padding-top: 5px;
  text-align: center;
}

.mx_reservation .mx_reservation_current_month {
  margin-right: 0;
}

.mx_reservation .mx_reservation_current_year {
  display: none;
}

.mx_reservation .mx_reservation_the_months {
  width: 100%;
  background: var(--white);
}

.mx_reservation .mx_reservation_the_months > * {
  width: 100%;
}

.mx_reservation .mx_reservation_main_month {
  border: 1px solid var(--grey-50);
  border-top: 0;
  background: var(--white);
}

.mx_reservation .mx_reservation_month_title {
  position: relative;
  padding: 12px 50px;
  text-align: center;
  font-weight: bold;
  color: var(--white);
  background: var(--mx-reservation-range);
}

.mx_reservation .mx_reservation_arrow_left,
.mx_reservation .mx_reservation_arrow_right {
  position: absolute;
  top: 50%;
  width: 44px;
  height: 44px;
  transform: translateY(-50%);
  cursor: pointer;
}

.mx_reservation .mx_reservation_arrow_left {
  left: 8px;
}

.mx_reservation .mx_reservation_arrow_right {
  right: 8px;
}

.mx_reservation .mx_reservation_arrow_left::before,
.mx_reservation .mx_reservation_arrow_right::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 10px;
  height: 10px;
  border-top: 2px solid var(--white);
  border-right: 2px solid var(--white);
}

.mx_reservation .mx_reservation_arrow_left::before {
  transform: translate(-35%, -50%) rotate(-135deg);
}

.mx_reservation .mx_reservation_arrow_right::before {
  transform: translate(-65%, -50%) rotate(45deg);
}

.mx_reservation .mx_reservation_arrow_left:hover::before,
.mx_reservation .mx_reservation_arrow_right:hover::before {
  opacity: 0.85;
}

.mx_reservation .mx_reservation_month_row,
.mx_reservation .mx_reservation_header_row {
  line-height: 1;
  white-space: nowrap;
}

.mx_reservation .mx_reservation_month_row::after,
.mx_reservation .mx_reservation_header_row::after {
  content: "";
  display: block;
  clear: both;
}

.mx_reservation .mx_reservation_month_row:first-child .mx_reservation_day {
  border-top: 1px solid var(--grey-50);
}

.mx_reservation .mx_reservation_day {
  display: inline-block;
  vertical-align: top;
  width: calc(100% / 7);
  padding: 13px 7px;
  text-align: center;
  font: 11px/1.2 Arial, sans-serif;
  background: var(--grey-50);
  opacity: 0.75;
  border-right: 1px solid var(--grey-50);
  border-bottom: 1px solid var(--grey-50);
}

.mx_reservation .mx_reservation_day:last-child {
  border-right: 0;
}

.mx_reservation .mx_reservation_header_row .mx_reservation_day {
  background: var(--grey-25);
  font-size: 8px;
  border-top: 0;
}

.mx_reservation .mx_reservation_day_outside_month {
  opacity: 0.3;
}

.mx_reservation .mx_reservation_day_past {
  opacity: 0.5;
  cursor: default !important;
}

.mx_reservation .mx_reservation_day_current_month {
  cursor: pointer;
}

.mx_reservation .mx_reservation_day_today {
  font-weight: bold;
}

.mx_reservation .mx_reservation_status_unavailable {
  background: var(--mx-reservation-status-unavailable) !important;
  color: var(--white);
}

.mx_reservation .mx_reservation_day_in_range {
  background: var(--mx-reservation-range) !important;
  color: var(--white) !important;
  opacity: 1 !important;
}

.mx_reservation .mx_reservation_day_range_start,
.mx_reservation .mx_reservation_day_range_end {
  background: var(--mx-reservation-range-edge) !important;
  color: var(--white) !important;
  font-weight: bold !important;
  opacity: 1 !important;
}

.mx_reservation .mx_reservation_footer {
  clear: both;
  margin-top: 15px;
  text-align: center;
}

.mx_reservation .mx_reservation_button {
  display: none;
  padding: 12px 20px;
  background: var(--mx-reservation-button);
  color: var(--white);
  text-decoration: none;
  border-radius: 4px;
  font-weight: bold;
}

.mx_reservation .mx_reservation_button:hover {
  background: var(--mx-reservation-button-hover);
}

.mx_reservation .mx_reservation_the_months.mx_reservation_the_months_double {
  display: flex;
  gap: 20px;
}

.mx_reservation .mx_reservation_the_months.mx_reservation_the_months_double > .mx_reservation_main_month {
  width: calc(50% - 10px);
}

@media (max-width: 767px) {
  .mx_reservation .mx_reservation_the_months.mx_reservation_the_months_double {
    display: block;
  }

  .mx_reservation .mx_reservation_the_months.mx_reservation_the_months_double > .mx_reservation_main_month {
    width: 100%;
  }

  .mx_reservation .mx_reservation_the_months.mx_reservation_the_months_double > .mx_reservation_main_month + .mx_reservation_main_month {
    margin-top: 20px;
  }
}