/* Unified GR calendar language: results editor and property booking. */
:root{
  --gr-cal-text:#111827;
  --gr-cal-muted:#6f7785;
  --gr-cal-disabled:#c7ccd4;
  --gr-cal-line:#e7e9ec;
  --gr-cal-accent:#04acbf;
  --gr-cal-range:#e3f5f7;
  --gr-cal-font:Manrope,Poppins,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

.gr-search-calendar-dialog-head,
.grbb-desk-modal-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:20px!important;
  margin:0 0 26px!important;
  padding:0!important;
}

.gr-search-calendar-dialog-head strong,
.grbb-desk-modal-head strong{
  display:block;
  margin:0!important;
  color:var(--gr-cal-text)!important;
  font-family:var(--gr-cal-font)!important;
  font-size:24px!important;
  line-height:1.18!important;
  font-weight:400!important;
  letter-spacing:-.035em!important;
}

.gr-search-calendar-dialog-head small,
.grbb-desk-modal-head small{
  display:block;
  margin:6px 0 0!important;
  color:var(--gr-cal-muted)!important;
  font-family:var(--gr-cal-font)!important;
  font-size:14px!important;
  line-height:1.35!important;
  font-weight:400!important;
}

.gr-search-calendar-dialog-close,
.grbb-desk-modal-head [data-grbb-close-calendar]{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  display:grid!important;
  place-items:center!important;
  margin:-6px -8px 0 0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--gr-cal-text)!important;
  font:300 29px/1 Arial,sans-serif!important;
  cursor:pointer!important;
}

.gr-search-calendar-dialog-close:hover,
.grbb-desk-modal-head [data-grbb-close-calendar]:hover{background:#f3f5f6!important}

/* Month names and navigation. */
.gr-search-calendar-head strong,
.gr-airbnb-calendar__month-title,
.grbb-desk-month-title{
  color:var(--gr-cal-text)!important;
  font-family:var(--gr-cal-font)!important;
  font-size:17px!important;
  line-height:1.3!important;
  font-weight:400!important;
  letter-spacing:-.02em!important;
}

.gr-search-calendar-nav,
.grbb-desk-cal-head button{
  color:var(--gr-cal-muted)!important;
  background:transparent!important;
  border:0!important;
  font-weight:300!important;
}

/* Weekday headers: light, single-character labels supplied by each renderer. */
.gr-search-calendar-weekdays,
.gr-search-calendar-weekdays span,
.gr-airbnb-calendar__weekday,
.grbb-desk-week span{
  color:var(--gr-cal-muted)!important;
  font-family:var(--gr-cal-font)!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:400!important;
  text-decoration:none!important;
}

/* Every date uses the same type, circular endpoints and soft circular range. */
.gr-search-calendar-day,
.gr-airbnb-calendar__day,
.gr-airbnb-calendar .gr-airbnb-calendar__day,
.grbb-desk-grid button{
  color:var(--gr-cal-text)!important;
  font-family:var(--gr-cal-font)!important;
  font-size:14px!important;
  font-weight:400!important;
  width:40px!important;
  height:40px!important;
  min-width:40px!important;
  max-width:40px!important;
  aspect-ratio:1/1!important;
  justify-self:center!important;
  border-radius:50%!important;
  box-shadow:none!important;
}

.gr-search-calendar-day.is-range,
.gr-airbnb-calendar__day.is-in-range,
.gr-airbnb-calendar__day.is-range,
.grbb-desk-grid button.is-range{
  color:var(--gr-cal-text)!important;
  background:var(--gr-cal-range)!important;
  border-color:transparent!important;
  border-radius:50%!important;
}

.gr-search-calendar-day.is-start,
.gr-search-calendar-day.is-end,
.gr-airbnb-calendar__day.is-selected,
.gr-airbnb-calendar__day.is-range-start,
.gr-airbnb-calendar__day.is-range-end,
.grbb-desk-grid button.is-start,
.grbb-desk-grid button.is-end{
  color:#fff!important;
  background:var(--gr-cal-accent)!important;
  border-color:var(--gr-cal-accent)!important;
  border-radius:50%!important;
}

.gr-airbnb-calendar__day.is-in-range::before,
.gr-airbnb-calendar__day.is-range-start::before,
.gr-airbnb-calendar__day.is-range-end::before,
.gr-airbnb-calendar__day.is-selected::after,
.gr-airbnb-calendar__day.is-range-start::after,
.gr-airbnb-calendar__day.is-range-end::after{
  border-radius:50%!important;
}

/* Remove the older connected range bars: the reference uses individual circles. */
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-in-range{
  color:var(--gr-cal-text)!important;
  background:var(--gr-cal-range)!important;
}
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-selected,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-start,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-end{
  color:#fff!important;
  background:var(--gr-cal-accent)!important;
}
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-in-range::before,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-start::before,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-end::before,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-selected::after,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-start::after,
.gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-end::after{
  display:none!important;
  content:none!important;
}

/* Guest selectors share the visual language, while retaining contextual sizes. */
.gr-search-guest-row,
.grbb-guests-row{
  color:var(--gr-cal-text)!important;
  font-family:var(--gr-cal-font)!important;
}
.gr-search-stepper button,
.grbb-guests-control button{
  border:1px solid #d9dde2!important;
  border-radius:50%!important;
  background:#fff!important;
  color:var(--gr-cal-text)!important;
  font-family:var(--gr-cal-font)!important;
  font-weight:400!important;
  box-shadow:none!important;
}
.gr-search-stepper button:hover:not(:disabled),
.grbb-guests-control button:hover:not(:disabled){
  border-color:var(--gr-cal-accent)!important;
  color:#078b9a!important;
}
.gr-search-stepper output,
.grbb-guests-control span{
  color:var(--gr-cal-text)!important;
  font-family:var(--gr-cal-font)!important;
  font-weight:500!important;
}

.gr-search-calendar-day:disabled,
.gr-airbnb-calendar__day:disabled,
.grbb-desk-grid button:disabled{
  color:var(--gr-cal-disabled)!important;
  background:transparent!important;
  text-decoration:line-through!important;
}

/* Search results calendar now follows the same dialog proportions. */
.gr-search-calendar-dialog-head{border:0!important}
.gr-search-edit-section[data-gr-search-section="dates"] .gr-search-calendar-status{
  margin:6px 0 0!important;
  color:var(--gr-cal-muted)!important;
  font-family:var(--gr-cal-font)!important;
  font-size:13px!important;
  font-weight:400!important;
}
.gr-search-edit-section[data-gr-search-section="dates"] .gr-search-calendar-head{position:absolute!important;top:112px;left:22px;right:22px;z-index:2;display:flex!important;justify-content:space-between!important;margin:0!important;pointer-events:none}
.gr-search-edit-section[data-gr-search-section="dates"] .gr-search-calendar-nav{pointer-events:auto}
.gr-search-calendar-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}
.gr-search-calendar-month-view{min-width:0}
.gr-search-calendar-month-view>strong{display:block;margin:0 0 18px;text-align:center}
.gr-search-calendar-month-view[hidden]{display:none!important}
.gr-search-calendar-weekdays{margin-bottom:10px!important}
.gr-search-calendar-grid{gap:6px 4px!important}

@media (min-width:901px){
  .gr-search-edit-panel:has([data-gr-search-section="dates"]:not([hidden])){
    width:680px!important;
    padding:24px 28px 26px!important;
  }
}

@media (max-width:900px){
  .gr-search-calendar-dialog-head,
  .grbb-desk-modal-head{margin-bottom:20px!important}

  .gr-search-calendar-dialog-head strong,
  .grbb-desk-modal-head strong{font-size:20px!important}

  .gr-search-calendar-dialog-head small,
  .grbb-desk-modal-head small{font-size:13px!important}

  .gr-search-edit-panel{padding:18px!important}
  .gr-search-calendar-months{grid-template-columns:1fr;gap:0}
  .gr-search-edit-section[data-gr-search-section="dates"] .gr-search-calendar-head{top:105px;left:12px;right:12px}
  .gr-search-calendar-grid{gap:5px 3px!important}

  .gr-search-calendar-day,
  .gr-airbnb-calendar__day,
  .gr-airbnb-calendar .gr-airbnb-calendar__day,
  .grbb-desk-grid button{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    max-width:38px!important;
    line-height:38px!important;
    box-sizing:border-box!important;
    flex:0 0 38px!important;
    padding:0!important;
  }

  .gr-search-calendar-day.is-start,
  .gr-search-calendar-day.is-end,
  .gr-airbnb-calendar .gr-airbnb-calendar__day.is-selected,
  .gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-start,
  .gr-airbnb-calendar .gr-airbnb-calendar__day.is-range-end{
    width:38px!important;
    height:38px!important;
    min-width:38px!important;
    max-width:38px!important;
    border-radius:50%!important;
    clip-path:circle(19px at 50% 50%);
  }
}
