.calendar, .calendar_weekdays,
.calendar_content {
  max-width: 585px; 
}

.calendar {
  /*float: left;*/
  margin: auto;
  min-width: 320px;
  font-weight: 400;
  background: #fff;
}

.calendar_weekdays {
  color: #aaa;
  font-weight: 300; 
}

.calendar_weekdays div {
  display: inline-block;
  vertical-align: top;
  color: #000;
  font-weight: 700;
  background-color: white;
}

.calendar_content, .calendar_weekdays, .calendar_header {
  position: relative; 
}

.calendar_content:after, .calendar_weekdays:after, .calendar_header:after {
  content: ' ';
  display: table;
  clear: both; 
}

.calendar_weekdays div, .calendar_content div {
  width: 13.5%;
  height: 50px;
  line-height: 50px;
  overflow: hidden;
  text-align: center;
  margin-right: 2px;
  margin-bottom: 2px;
}

@media (min-width: 576px) {
  .calendar_weekdays div, .calendar_content div {
    width: 13.8%;
    height: 60px;
    line-height: 61px;
  }
}

@media (min-width: 768px) {
  .calendar_weekdays div, .calendar_content div {
    width: 13.9%;
    height: 68px;
    line-height: 69px;
  }
}

.calendar_content div {
  float: left;
  border: 1px solid transparent;
  border-radius: 10px; 
  background-color: #fcfcfc;
}

.calendar_content div:hover {
  border: 1px solid #f1f1f1;
}

.calendar_content div.blank:hover {
  border: none; 
}


.calendar_content div.today {
  font-weight: 700;
  font-size: 18px;
  border: 1px solid var(--bs-primary);
}

.calendar_content div.selected {
  background-color: var(--bs-primary);
  border: 1px solid white;
  color: #fff;
}

/* overrule styling for past dates */
.calendar_content div.past-date{

  color: #d5d5d5; 
  /* background-color: white; */
}
.calendar_content div.past-date.selected {
  color: white; 
  background-color: var(--bs-primary-bg-subtle);
}


.calendar_header {
  width: 100%;
  text-align: center;
  position: relative;
  height: 55px;
  display: table;
  vertical-align: middle; 
}

.calendar_header h4 {
  margin-top: 18px;
  padding: 0;
  font-weight: 700;
  font-size: 18px;
  color: #000 !important;
  text-transform: uppercase; 
}

button.switch-month {
  background-color: transparent;
  padding: 0;
  outline: none;
  border: none;
  height: 40px;
  min-height: 4rem;;
  width: 40px;
  min-width: 4rem;;
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  color: var(--bs-primary);
  -webkit-transition: color .2s;
  -o-transition: color .2s;
  transition: color .2s;
}

button.switch-month.switch-left {
  left: 0; 
}

button.switch-month.switch-right {
  right: 0; 
}

button.switch-month:hover {
  color: var(--bs-primary-dark); 
}

button.switch-month:active {
  background-color: transparent; 
}