.calendar-row {
  margin: 0px 0px 0px auto;
  max-width: 550px;
}
.calendar-row-single {
  max-width: 275px;
}
.calendar-row .row {
  margin-left: 0px;
  margin-right: 0px;
}
.calendar-row .row > div {
  border-top: 2px #000000 solid;
  border-bottom: 2px #000000 solid;
  padding-left: 0px;
  padding-right: 0px;
}
.calendar-row .row > div:first-of-type {
  padding-right: 0px;
  border-left: 2px #000000 solid;
  border-right: 1px #000000 solid;
}
.calendar-row .row > div:last-of-type {
  padding-left: 0px;
  border-left: 1px #000000 solid;
  border-right: 2px #000000 solid;
}

.calendar {
  position: relative;
  /*background-color: #f00;*/
  font-size: 0.7em;
}
.calendar-arrow-left,
.calendar-arrow-right {
  position: absolute;
  top: 0px;
  width: 26px;
  height: 26px;
  line-height: 26px;
  border: 0px;
  margin: 0px;
  padding: 0px;
  background: transparent;
  font-size: 1.4em;
  border:0px;
  border-radius: 0px;
}
.calendar-arrow-left{
  left: 0px;
}
.calendar-arrow-right {
  right: 0px;
}
.calendar-arrow-left:hover, .calendar-arrow-left:active, .calendar-arrow-left:focus,
.calendar-arrow-right:hover, .calendar-arrow-right:active, .calendar-arrow-right:focus {
  border: 0px;
  outline: 0px;
}

.calendar-arrow-close {
  position: absolute;
  top: -20px;
  right: -2px;
  width: 35px;
  height: 20px;
  border: 0px;
  margin: 0px;
  padding: 0px;
  background: transparent;
  font-size: 1em;
  border:0px;
  border-radius: 0px;
  background-color: #fff;

  border-top: 2px #000000 solid;
  border-left: 2px #000000 solid;
  border-right: 2px #000000 solid;
}
.calendar-arrow-close:hover, .calendar-arrow-close:active, .calendar-arrow-close:focus {
  outline: 0px;
}
.calendar-arrow-close:hover {
  background-color: #000000;
  color: #fff;
}

.calendar h3 {
  margin-top: 0px;
  text-transform: uppercase;
  font-size: 1em;
  text-align: center;
  padding: 0px;
  background-color: transparent;
  border-bottom: 0px;
}
.calendar h3 span {
  font-weight: normal;
}
.calendar .table {
  margin: 0px!important;
  border: 0px;
}
.calendar .table th {
  font-weight: 600;
  border-top-width: 1px;
  border-bottom-width: 1px;
  padding: 0px!important;
  margin: 0px!important;
}
.calendar .table td,
.calendar .table th {
  position: relative;
  padding: 0px;
  width: 14.28%!important;
  text-align: center;
  border: 0px;
}
.calendar .table td:before,
.calendar .table th:before {
  content: '';
  display: block;
  margin-top: 100%;
}
/*.calendar.calendar-style-v2 .table td:before,
.calendar.calendar-style-v2 .table th:before {
  margin-top: 75%;
}*/

.calendar .table td span,
.calendar .table th span {
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}

.calendar .table td div {
  position: absolute;
  bottom: 0px;
  left: 0px;
  text-align: center;
  font-size: 9px;
  width: 100%;
}

.calendar .table td.day-hover {
  cursor: pointer;
}
.calendar .table td.day-hover.in-past {
  cursor: default;
}
.calendar .table td.in-past {
  opacity: 0.2;
}
.calendar .table td.day-hover.in-past div {
  display: none;
}
.calendar .table td.day-hover:hover {
  background-color: #007d56;
}
.calendar .table td.in-past.day-hover:hover {
  background-color: transparent;
}
.calendar .table td.day{
  background-color: #9BD1B8;
}
.calendar .table td.today {
  border: 2px #000000 solid;
}

/*selected*/
.calendar .table td.selected {
  background-color: #007d56;
}
.calendar .table td.selected.selected-from:not(.as-full-days) {
  background-color: #007d56;
  background-image: -webkit-linear-gradient(135deg, #007d56 50%, #fff 50%);
}
.calendar.calendar-style-v2 .table td.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(126deg, #007d56 50%, #fff 50%);
}

.calendar .table td.selected.selected-to:not(.as-full-days) {
  background-color: #007d56;
  background-image: -webkit-linear-gradient(315deg, #007d56 50%, #fff 50%);
}
.calendar.calendar-style-v2 .table td.selected.selected-to:not(.as-full-days) {
  background-image: -webkit-linear-gradient(306deg, #007d56 50%, #fff 50%);
}

  /*booked*/
.calendar .table td.is-booked {
  background-color: #b6b6b6;
  color: #fff;
}
.calendar .table td.is-booked:hover,
.calendar .table td.is-booked.selected {
  background-color: #b6b6b6;
}

.calendar .table td.is-booked.is-booked-from {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(135deg, #b6b6b6 50%, #fff 50%);
  color: #000;
}
.calendar.calendar-style-v2 .table td.is-booked.is-booked-from {
  background-image: -webkit-linear-gradient(126deg, #b6b6b6 50%, #fff 50%);
}

.calendar .table td.is-booked-from:hover,
.calendar .table td.is-booked-from.selected,
.calendar .table td.is-booked-from.selected.selected-to:not(.as-full-days){
  background-image: -webkit-linear-gradient(135deg, #b6b6b6 50%, #007d56 50%);
}
.calendar.calendar-style-v2 .table td.is-booked-from:hover,
.calendar.calendar-style-v2 .table td.is-booked-from.selected,
.calendar.calendar-style-v2 .table td.is-booked-from.selected.selected-to:not(.as-full-days){
  background-image: -webkit-linear-gradient(126deg, #b6b6b6 50%, #007d56 50%);
}

.calendar .table td.is-booked-to {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(315deg, #b6b6b6 50%, #fff 50%);
  color: #000;
}
.calendar.calendar-style-v2 .table td.is-booked-to {
  background-image: -webkit-linear-gradient(306deg, #b6b6b6 50%, #fff 50%);
}

.calendar .table td.is-booked-to:hover,
.calendar .table td.is-booked-to.selected,
.calendar .table td.is-booked-to.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(315deg, #b6b6b6 50%, #007d56 50%);
}
.calendar.calendar-style-v2 .table td.is-booked-to:hover,
.calendar.calendar-style-v2 .table td.is-booked-to.selected,
.calendar.calendar-style-v2 .table td.is-booked-to.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(306deg, #b6b6b6 50%, #007d56 50%);
}


/*clear settings*/
.calendar .table td.is-booked.is-booked-morning,
.calendar .table td.is-booked.is-booked-midday,
.calendar .table td.is-booked.is-booked-evening {
  background-color: transparent;
  background-image: none;
  color: inherit;
}

/*morning+midday+evening*/
.calendar .table td.is-booked.is-booked-morning.is-booked-midday.is-booked-evening {
  background-color: #b6b6b6;
  color: #fff;
}
/*morning+midday*/
.calendar .table td.is-booked.is-booked-morning.is-booked-midday:not(.is-booked-evening) {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 66%, #fff 33%);
  color: #000;
}
.calendar .table td.is-booked.is-booked-morning.is-booked-midday:not(.is-booked-evening):hover,
.calendar .table td.is-booked.is-booked-morning.is-booked-midday:not(.is-booked-evening).selected {
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 66%, #007d56 33%);
}

/*morning+evening*/
.calendar .table td.is-booked.is-booked-morning.is-booked-evening:not(.is-booked-midday) {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 33%, #fff 0%);
  color: #000;
}
.calendar .table td.is-booked.is-booked-morning.is-booked-evening:not(.is-booked-midday):after {
  content: '';
  display: block;
  width: 100%;
  height: 33%;
  background-color: #b6b6b6;
  position: absolute;
  bottom: 0px;
  left: 0px;
  z-index: 1;
}
.calendar .table td.is-booked.is-booked-morning.is-booked-evening:not(.is-booked-midday):hover,
.calendar .table td.is-booked.is-booked-morning.is-booked-evening:not(.is-booked-midday).selected {
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 33%, #007d56 0%);
}

/*midday+evening*/
.calendar .table td.is-booked.is-booked-midday.is-booked-evening:not(.is-booked-morning) {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(-90deg, #fff 33%, #b6b6b6 0%);
  color: #000;
}
.calendar .table td.is-booked.is-booked-midday.is-booked-evening:not(.is-booked-morning):hover,
.calendar .table td.is-booked.is-booked-midday.is-booked-evening:not(.is-booked-morning).selected {
  background-image: -webkit-linear-gradient(-90deg, #007d56 33%, #b6b6b6 0%);
}

/*morning*/
.calendar .table td.is-booked.is-booked-morning:not(.is-booked-midday):not(.is-booked-evening) {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 33%, #fff 0%);
  color: #000;
}
.calendar .table td.is-booked.is-booked-morning:not(.is-booked-midday):not(.is-booked-evening):hover,
.calendar .table td.is-booked.is-booked-morning:not(.is-booked-midday):not(.is-booked-evening).selected {
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 33%, #007d56 0%);
}

/*midday*/
.calendar .table td.is-booked.is-booked-midday:not(.is-booked-morning):not(.is-booked-evening):hover,
.calendar .table td.is-booked.is-booked-midday:not(.is-booked-morning):not(.is-booked-evening).selected{
  background-color: #007d56;
}

.calendar .table td.is-booked.is-booked-midday:not(.is-booked-morning):not(.is-booked-evening):after {
  content: '';
  display: block;
  width: 100%;
  height: 33%;
  background-color: #b6b6b6;
  position: absolute;
  bottom: 33%;
  left: 0px;
  z-index: 1;
}
/*evening*/
.calendar .table td.is-booked.is-booked-evening:not(.is-booked-morning):not(.is-booked-midday) {
  background-color: #b6b6b6;
  background-image: -webkit-linear-gradient(-90deg, #fff 66%, #b6b6b6 0%);
  color: #000;
}
.calendar .table td.is-booked.is-booked-evening:not(.is-booked-morning):not(.is-booked-midday):hover,
.calendar .table td.is-booked.is-booked-evening:not(.is-booked-morning):not(.is-booked-midday).selected {
  background-image: -webkit-linear-gradient(-90deg, #007d56 66%, #b6b6b6 0%);
}

/*loading*/
.calendar .loading-holder {
  display: none;
  position: absolute;
  bottom: -20px;
  left: -2px;
  right: -2px;
  background-color: #000;
  /* width: 100%; */
  height: 20px;
  line-height: 20px;
  color: #fff;
  text-align: center;
  /* border: 2px #000 solid; */
}
.calendar.loading .loading-holder {
  display: block;
}

/**/

.calendar .table td.day-hover:hover,
.domain-holiday-homes .calendar .table td.selected,
.domain-holiday-homes .calendar .table td.selected.selected-from:not(.as-full-days),
.domain-holiday-homes .calendar .table td.selected.selected-to:not(.as-full-days),
.domain-holiday-homes .calendar .table td.is-booked.is-booked-midday:not(.is-booked-morning):not(.is-booked-evening):hover,
.domain-holiday-homes .calendar .table td.is-booked.is-booked-midday:not(.is-booked-morning):not(.is-booked-evening).selected {
  background-color: #619B00;
}
.domain-holiday-homes .calendar .table td.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(134deg, #619B00 50%, #fff 50%);
}
.domain-holiday-homes .calendar.calendar-style-v2 .table td.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(134deg, #619B00 50%, #fff 50%);
}
.domain-holiday-homes .calendar .table td.selected.selected-to:not(.as-full-days) {
  background-image: -webkit-linear-gradient(315deg, #619B00 50%, #fff 50%);
}
.domain-holiday-homes .calendar.calendar-style-v2 .table td.selected.selected-to:not(.as-full-days) {
  background-image: -webkit-linear-gradient(315deg, #619B00 50%, #fff 50%);
}

.domain-holiday-homes .calendar .table td.is-booked-from:hover,
.domain-holiday-homes .calendar .table td.is-booked-from.selected,
.domain-holiday-homes .calendar .table td.is-booked-from.selected.selected-to:not(.as-full-days){
  background-image: -webkit-linear-gradient(134deg, #b6b6b6 50%, #619B00 50%);
}
.domain-holiday-homes .calendar.calendar-style-v2 .table td.is-booked-from:hover,
.domain-holiday-homes .calendar.calendar-style-v2 .table td.is-booked-from.selected,
.domain-holiday-homes .calendar.calendar-style-v2 .table td.is-booked-from.selected.selected-to:not(.as-full-days){
  background-image: -webkit-linear-gradient(134deg, #b6b6b6 50%, #619B00 50%);
}

.domain-holiday-homes .calendar .table td.is-booked-to:hover,
.domain-holiday-homes .calendar .table td.is-booked-to.selected,
.domain-holiday-homes .calendar .table td.is-booked-to.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(315deg, #b6b6b6 50%, #619B00 50%);
}
.domain-holiday-homes .calendar.calendar-style-v2 .table td.is-booked-to:hover,
.domain-holiday-homes .calendar.calendar-style-v2 .table td.is-booked-to.selected,
.domain-holiday-homes .calendar.calendar-style-v2 .table td.is-booked-to.selected.selected-from:not(.as-full-days) {
  background-image: -webkit-linear-gradient(315deg, #b6b6b6 50%, #619B00 50%);
}

.domain-holiday-homes .calendar .table td.is-booked.is-booked-morning.is-booked-midday:not(.is-booked-evening):hover,
.domain-holiday-homes .calendar .table td.is-booked.is-booked-morning.is-booked-midday:not(.is-booked-evening).selected {
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 66%, #619B00 33%);
}

.domain-holiday-homes .calendar .table td.is-booked.is-booked-morning.is-booked-evening:not(.is-booked-midday):hover,
.domain-holiday-homes .calendar .table td.is-booked.is-booked-morning.is-booked-evening:not(.is-booked-midday).selected {
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 33%, #619B00 0%);
}

.domain-holiday-homes .calendar .table td.is-booked.is-booked-midday.is-booked-evening:not(.is-booked-morning):hover,
.domain-holiday-homes .calendar .table td.is-booked.is-booked-midday.is-booked-evening:not(.is-booked-morning).selected {
  background-image: -webkit-linear-gradient(-90deg, #619B00 33%, #b6b6b6 0%);
}

.domain-holiday-homes .calendar .table td.is-booked.is-booked-morning:not(.is-booked-midday):not(.is-booked-evening):hover,
.domain-holiday-homes .calendar .table td.is-booked.is-booked-morning:not(.is-booked-midday):not(.is-booked-evening).selected {
  background-image: -webkit-linear-gradient(-90deg, #b6b6b6 33%, #619B00 0%);
}

.domain-holiday-homes .calendar .table td.is-booked.is-booked-evening:not(.is-booked-morning):not(.is-booked-midday):hover,
.domain-holiday-homes .calendar .table td.is-booked.is-booked-evening:not(.is-booked-morning):not(.is-booked-midday).selected {
  background-image: -webkit-linear-gradient(-90deg, #619B00 66%, #b6b6b6 0%);
}