.ibk-calendar {
  box-sizing: border-box;
  color: var(--grayText);
  width: 330px;
  display: inline-block;
}

.ibk-calendar * { box-sizing: border-box; }

.ibk-calendar__label {
  font-family: var(--fontGeometria);
  font-size: 14px;
  padding-bottom: 5px;
  display: block;
  font-weight: 500;
  color: var(--gray1);
}

.ibk-calendar__subtitle {
  font-family: var(--fontMontserrat);
  color: var(--grayText);
  font-size: 14px;
  font-weight: 500;
  padding-bottom: 7px;
  display: block;
}

.ibk-calendar__selector {
  border: 1px solid var(--gray4);
  border-radius: 4px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  transition: var(--fast);
  width: 100%;
  background-color: white;
}

.ibk-calendar__selector:hover { border-color: var(--gray3); }

.ibk-calendar__input {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: none;
  font-family: var(--fontGeometria);
  font-weight: 500;
  font-size: 16px;
  height: 100%;
  pointer-events: none;
  padding: 0 5px;
  outline: none;
  width: 100%;
}

.ibk-calendar__input::placeholder {
  color: var(--gray2);
  font-weight: 400;
}

.ibk-calendar__icon {
  font-size: 20px;
  color: var(--primaryGreen1);
  padding: 0 10px 0 15px;
  pointer-events: none;
}

.ibk-calendar__arrow {
  padding: 0 15px;
  color: var(--primaryGreen1);
  font-size: 6px;
  pointer-events: none;
  text-align: center;
  transition: var(--fast);
}

.ibk-calendar__dates {
  position: absolute;
  border: 1px solid var(--gray4);
  border-radius: 4px;
  z-index: 1;
  background-color: white;
}

.ibk-calendar__range-selector {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 20px 20px 0 20px;
  border: 1px solid var(--gray4);
  border-radius: 4px;
}

.ibk-calendar__range-selector__button {
  width: calc(100% / 3);
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-color: transparent;
  border: none;
  height: 46px;
  color: var(--gray2);
  font-family: var(--fontGeometria);
  font-size: 16px;
  cursor: pointer;
  transition: var(--fast);
  border-radius: 2px;
  outline: none;
  position: relative;
}

.ibk-calendar__range-selector__button:not(.ibk-calendar__range-selector__button--selected):hover { background-color: var(--gray5); }

.ibk-calendar__range-selector__button:nth-child(2)::before,
.ibk-calendar__range-selector__button:nth-child(2)::after {
  content: '';
  display: block;
  height: 100%;
  width: 1px;
  background-color: var(--gray4);
  position: absolute;
  top: 0;
  z-index: 1;
}

.ibk-calendar__range-selector__button:nth-child(2)::before { left: 0; }
.ibk-calendar__range-selector__button:nth-child(2)::after { right: 0; }

.ibk-calendar__range-selector__button--selected {
  background-color: var(--primaryGreen1);
  color: white;
  font-weight: 500;
  -webkit-box-shadow: 0px 0px 0px 1px var(--primaryGreen1);
  -moz-box-shadow: 0px 0px 0px 1px var(--primaryGreen1);
  box-shadow: 0px 0px 0px 1px var(--primaryGreen1);
  z-index: 1;
}

.ibk-calendar__range-selector__button--selected:nth-child(2)::before,
.ibk-calendar__range-selector__button--selected:nth-child(2)::after {
  background-color: var(--primaryGreen1);
}

.ibk-calendar__months {
  display: flex;
  align-items: flex-start;
}

.ibk-calendar__month {
  padding: 20px;
  display: inline-block;
}

.ibk-calendar__month-name {
  font-family: var(--fontMontserrat);
  font-size: 14px;
  display: block;
  text-align: center;
  margin-bottom: 20px;
  font-weight: 500;
  position: relative;
}

.ibk-calendar__month-arrow {
  position: absolute;
  font-size: 10px;
  color: var(--primaryGreen1);
  cursor: pointer;
  width: 30px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-top: 2px;
}

.ibk-calendar__month-arrow.icon-xs-arrow-left { left: 0; }
.ibk-calendar__month-arrow.icon-xs-arrow-right { right: 0; }

.ibk-calendar__month-arrow:active { transform: translateY(1px); }

.ibk-calendar__day-name {
  font-family: var(--fontGeometria);
  font-size: 12px;
  color: var(--gray2);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 30px;
  text-align: center;
  cursor: default;
}

.ibk-calendar__days {
  display: flex;
  align-items: center;
}
.ibk-calendar__days:not(:last-child) { margin-bottom: 3px; }

.ibk-calendar__day-number {
  font-family: var(--fontGeometria);
  font-size: 13px;
  display: inline-flex;
  height: 44px;
  width: 44px;
  align-items: center;
  justify-content: center;
  font-weight: 500;
  cursor: pointer;
  border-radius: 50%;
  transition: background-color var(--fast);
  user-select: none;
  background-color: transparent;
  border: none;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  outline: none;
  position: relative;
}

.ibk-calendar__day-number__text { z-index: 1; }

.ibk-calendar__day-number:not(.ibk-calendar__day-number--selected):hover { background-color: var(--gray4); }
.ibk-calendar__day-number:active { transform: translateY(1px); }

.ibk-calendar__day-number--disabled {
  pointer-events: none;
  color: var(--gray3);
}

.ibk-calendar__day-number--range::before {
  content: '';
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: #f7f7f7;
  z-index: -1;
}

.ibk-calendar__day-number--range:first-child:before { border-radius: 4px 0 0 4px; }
.ibk-calendar__day-number--range:last-child:not(.ibk-calendar__day-number--shadow-out):before { border-radius: 0 4px 4px 0; }

.ibk-calendar__day-number--selected {
  background-color: var(--grayText);
  color: white;
  font-size: 14px;
  border-radius: 50%;
}

.ibk-calendar__day-number--init-range::before,
.ibk-calendar__day-number--end-range::before {
  content: '';
  position: absolute;
  height: 100%;
  width: 50%;
  background-color: #f7f7f7;
  z-index: -1;
}

.ibk-calendar__day-number--init-range::before { right: 0; }
.ibk-calendar__day-number--end-range::before { left: 0; }

.ibk-calendar__day-number--shadow-in::after,
.ibk-calendar__day-number--shadow-out::after {
  content: '';
  position: absolute;
  height: 100%;
  width: 100%;
  z-index: -1;
}

.ibk-calendar__day-number--shadow-in::after,
.ibk-calendar--range .ibk-calendar__day-number--shadow-in::after {
  background: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(247,247,247,1) 100%);;
  right: 100%;
}

.ibk-calendar__day-number--shadow-out::after,
.ibk-calendar--range .ibk-calendar__day-number--shadow-out::after {
  background: linear-gradient(-90deg, rgba(255,255,255,1) 50%, rgba(247,247,247,1) 100%);;
  left: 100%;
}

/* Full */
.ibk-calendar--full { width: 100%; }

/* Range */
.ibk-calendar__day-number--over::before {
  content: '';
  position: absolute;
  height: 100%;
  width: 100%;
  background-color: #f7f7f7;
  z-index: -1;
}

/* Open */
.ibk-calendar--open .ibk-calendar__arrow { transform: rotate(-180deg); }

/* Error */
.ibk-calendar--error .ibk-calendar__selector { border-color: var(--extendedWatermelon1); }

.ibk-calendar--error .ibk-calendar__icon { color: var(--extendedWatermelon1); }

.ibk-calendar__error-message {
  font-family: var(--fontMontserrat);
  font-size: 12px;
  color: var(--extendedWatermelon1);
  font-weight: 500;
  margin-top: 7px;
  display: block;
  min-height: 15px;
}