/* Component: availability */
.pdgs-availability--shortcode{
  margin:0 0 28px;
  padding:24px;
  border-radius:26px;
  background:linear-gradient(180deg,#fff 0%,#fcfbf9 100%);
  border:1px solid rgba(217,207,193,.78);
  box-shadow:var(--pdgs-shadow-sm);
}

.pdgs-availability--shortcode .pdgs-availability__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}

.pdgs-availability--shortcode .pdgs-availability__day{
  padding:14px;
  border:1px solid var(--pdgs-line);
  border-radius:18px;
  background:#fff;
}

.pdgs-availability--shortcode .pdgs-availability__day--available{
  background:#f2fbf4;
  border-color:#cfe5d2;
}

.pdgs-availability--shortcode .pdgs-availability__day--unavailable,
.pdgs-availability--shortcode .pdgs-availability__day--booked,
.pdgs-availability--shortcode .pdgs-availability__day--blocked{
  background:#fff4f3;
  border-color:#efd2cf;
}

.pdgs-availability--shortcode .pdgs-availability__date{
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin-bottom:10px;
}

.pdgs-availability--shortcode .pdgs-availability__date span,
.pdgs-availability--shortcode .pdgs-availability__meta{
  color:var(--pdgs-muted);
}

.pdgs-availability--shortcode .pdgs-availability__status{
  font-weight:800;
  margin-bottom:6px;
  color:var(--pdgs-text);
}

.pdgs-availability--shortcode .pdgs-availability__empty{
  padding:12px 4px;
  color:var(--pdgs-muted);
  font-weight:600;
}

.pdgs-availability--shortcode.pdgs-availability--calendar .pdgs-availability__scroller{
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:8px;
  -webkit-overflow-scrolling:touch;
}

.pdgs-availability--shortcode .pdgs-availability-calendar{
  position:relative;
  min-width:max-content;
}

.pdgs-availability--shortcode .pdgs-inline-calendar-input{
  position:absolute;
  opacity:0;
  pointer-events:none;
  width:0;
  height:0;
  border:0;
  padding:0;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-calendar.inline{
  display:block;
  width:max-content !important;
  min-width:max-content !important;
  border:1px solid var(--pdgs-line-strong);
  border-radius:24px;
  box-shadow:var(--pdgs-shadow-lg);
  background:#fff;
  overflow:visible;
  padding:12px;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-months,
.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-weekdays,
.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-days{
  width:max-content !important;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-months{
  display:flex;
  align-items:center;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-weekdays{
  display:flex;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-days{
  display:flex;
  overflow:visible !important;
  margin-top:4px;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-month,
.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-weekdaycontainer,
.pdgs-availability--shortcode .pdgs-availability-calendar .dayContainer{
  flex:0 0 307.875px;
  width:307.875px;
  min-width:307.875px;
  max-width:307.875px;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-month{
  height:44px;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-current-month{
  padding-top:6px;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-weekdaycontainer{
  display:flex;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-weekday{
  flex:1 1 14.2857%;
  max-width:14.2857%;
  text-align:center;
  font-weight:700;
  color:var(--pdgs-muted);
}

.pdgs-availability--shortcode .pdgs-availability-calendar .dayContainer{
  box-sizing:border-box;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .dayContainer + .dayContainer{
  margin-left:10px;
  padding-left:10px;
  border-left:1px solid rgba(0,0,0,.06);
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day{
  max-width:14.2857%;
  flex:0 0 14.2857%;
  height:46px;
  line-height:40px;
  position:relative;
}

.pdgs-availability--shortcode .pdgs-day-price{
  position:absolute;
  top:3px;
  right:3px;
  font-size:9px;
  line-height:1;
  color:#7a8694;
  pointer-events:none;
  font-weight:700;
  white-space:nowrap;
}

.pdgs-availability--shortcode .pdgs-day-minstay{
  position:absolute;
  bottom:3px;
  left:3px;
  font-size:8px;
  line-height:1;
  color:#7a8694;
  pointer-events:none;
  font-weight:700;
  white-space:nowrap;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day.pdgs-day-split{
  text-decoration:none !important;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day.pdgs-day-split::after{
  content:none !important;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day.pdgs-day-split-end::after{
  content:"" !important;
  position:absolute;
  bottom:5px;
  left:50%;
  width:6px;
  height:6px;
  margin-left:-3px;
  border-radius:999px;
  background:#28a745;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day.pdgs-day-split-start::after{
  content:"" !important;
  position:absolute;
  bottom:5px;
  left:50%;
  width:6px;
  height:6px;
  margin-left:-3px;
  border-radius:999px;
  background:#28a745;
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day.pdgs-day-split-start:not(.selected):not(.startRange):not(.endRange){
  background:linear-gradient(to right,rgba(40,167,69,.06) 0 50%,rgba(220,53,69,.08) 50% 100%);
}

.pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day.pdgs-day-split-end:not(.selected):not(.startRange):not(.endRange){
  background:linear-gradient(to right,rgba(220,53,69,.08) 0 50%,rgba(40,167,69,.06) 50% 100%);
}

@media (max-width:1024px){
  .pdgs-availability--shortcode .pdgs-availability__grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:767px){
  .pdgs-availability--shortcode{
    padding:18px;
  }

  .pdgs-availability--shortcode .pdgs-availability__grid{
    grid-template-columns:1fr;
  }

  .pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-month,
  .pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-weekdaycontainer,
  .pdgs-availability--shortcode .pdgs-availability-calendar .dayContainer{
    flex:0 0 290px;
    width:290px;
    min-width:290px;
    max-width:290px;
  }

  .pdgs-availability--shortcode .pdgs-availability-calendar .flatpickr-day{
    height:42px;
    line-height:36px;
  }

  .pdgs-availability--shortcode .pdgs-day-price{
    font-size:8px;
  }

  .pdgs-availability--shortcode .pdgs-day-minstay{
    font-size:7px;
  }
}
