.calender-title {
  color: $mint;
  font-weight: 600;
  font-size: (16em /$global-size);
  margin-bottom: (12em / $global-size);
  line-height: 1.2;
}

.calender-availability-container {
  padding: (6em / 16);
  background-color: white;
  z-index: 1;
  position: relative;
  margin-bottom: 4rem;
  border-radius: (4em / 16);
  border: (2em / 16) solid $light-mint;
  display: inline-block;
  @include breakpoint(medium up) {
    padding: (28em / 16);
    margin-bottom: unset;
  }

  &.request-booking-variant {
    padding: 16px;
    border: none;
    border-radius: 4px;
    -webkit-box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.1);
    box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.1);
    position: absolute;
    left: 0;
    margin-top: 12px;
    min-height: 363px;
    right: 0;
    top: 60px;
    z-index: 80;
    @include breakpoint(medium up) {
      position: absolute;
      min-height: unset;
      left: 50%;
      transform: translateX(-50%);
      right: unset;
    }
    @include breakpoint(xlarge up) {
      display: block;
      width: unset;
    }
  }

  @include breakpoint(xlarge up) {
    width: 66.66666%;
    display: block;
  }

  .calender-controls {
    width: 100%;
    position: relative;

    button {
      position: absolute;
      font-size: (22em / 16);
      display: block;
      top: 0;

      .material-icons {
        display: block;
      }

      &.left {
        left: -0.2em;
        text-align: left;
      }

      &.right {
        right: -0.2em;
        text-align: right;
      }
    }
  }

  .two-calendar-container {
    .calendar-month:nth-child(2) {
      display: none;
    }

    @include breakpoint(xlarge up) {
      .calendar-month:nth-child(2) {
        margin-left: 24px;
        display: block;
      }
      display: flex;
      justify-content: space-between;

      .calendar-month {
        flex: 0 0 328px;
      }
    }
  }

  .calender-footer {
    margin-top: 12px;
    border-top: 2px solid $light-mint;
    @include breakpoint(xlarge up) {
      margin-top: 32px;
    }

    .calender-status-blocks {
      @include breakpoint(xlarge up) {
        display: flex;
        padding-top: 16px;
      }
      padding-top: 12px;
      flex: 1 1 auto;
      justify-content: space-evenly;
      align-items: center;
      text-align: left;

      .block {
        margin-bottom: 12px;
        @include breakpoint(xlarge up) {
          margin-right: 28px;
          margin-bottom: unset;
        }

        .box {
          display: inline-block;
          border-radius: 2px;
          border-width: 2px;
          border-style: solid;
          margin-right: 8px;
          vertical-align: middle;
          width: 20px;
          height: 20px;

        }

        .title {
          display: inline-block;
          color: $charcoal;
          font-size: 12px;
          font-weight: 600;
          line-height: 15px;
          vertical-align: middle;
          text-transform: capitalize;
        }
      }
    }
  }
}

.calendar-month {

  @include breakpoint(medium up) {
    width: 328px;
  }

  .month-year {
    font-size: (18em / 16);
    line-height: (21em / 18);
    color: $charcoal;
    margin-bottom: (24em / 18);
    text-align: center;
    font-weight: 700;
  }

  .weekdays {
    color: $light-grey;
    font-size: (12em / 16);
    margin-bottom: (12em / 12);
    display: flex;
    justify-content: space-around;
    align-items: center;
    text-align: center;

    .day {
      width: (40em / 12);
      line-height: 1em;
    }
  }

  .calendar-cells {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: row;
    flex-wrap: wrap;
    flex: 1 1 auto;
    margin-top: 4px;

    .date {
      display: inline-flex;
      width: 32px;
      height: 32px;
      @media (min-width: 398px) {
        width: 40px;
        height: 40px;
      }
      border-radius: 2px;
      margin-right: 8px;
      margin-bottom: 8px;
      justify-content: center;
      align-items: center;
      font-size: 14px;
      line-height: 17px;
      user-select: none;
      border-style: solid;
      border-width: 1px;
      transition: $button-transition;

      &.date-not-available,
      &.date-available,
      &.date-partially-booked,
      &.date-requested {
        cursor: pointer;
      }

      &.date-available.highlight,
      &.date-available:hover {
        background-color: darken($mint, 10%);
      }

      &.date-requested.highlight,
      &.date-requested:hover {
        background-color: darken(white, 10%);
      }

      &.date-partially-booked.highlight,
      &.date-partially-booked:hover {
        background-color: darken($honey, 10%);
      }

      &.date-not-available.highlight,
      &.date-not-available:hover {
        background-color: darken(white, 10%);
      }

      &.date-booked.highlight,
      &.date-booked:hover {
        background-color: darken($honey, 10%);
      }

      &:nth-child(7n + 0) {
        margin-right: 0;
      }
    }
  }
}

.date-available {
  background: $mint;
  border-color: $mint;
  color: white;
}

.date-booked {
  background: $honey;
  border-color: $honey;
  color: white;
}

.date-partially-booked {
  background: white;
  border-color: $honey;
  color: $honey;
}

.date-requested {
  background: white;
  border-color: $requested;
  color: $requested;
}

.date-disabled {
  background: $off-white;
  border-color: $off-white;
  color: $light-grey;
}

.date-not-available {
  background: white;
  border-color: $light-grey;
  color: $light-grey;
}

.date-hide {
  visibility: hidden;
}

.clear-dates-button {
  margin-right: 12px;
  @include breakpoint(medium up) {
    margin-right: unset;
  }
}