.kb-booking {
  --bb-color-text: #333;
  --bb-color-muted: #555;
  --bb-color-border: #e0e0e0;
  --bb-color-border-light: #eee;
  --bb-color-surface: #fff;
  --bb-color-surface-muted: #f0f9f0;
  --bb-color-accent: #5d6a5b;
  --bb-color-accent-hover: #4a5549;
  --bb-color-accent-soft: #aab397;
  --bb-color-accent-soft-bg: rgba(170, 179, 151, 0.25);
  --bb-color-success-bg: #e8f5e9;
  --bb-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.12);
  --bb-shadow-dropdown: 0 6px 24px rgba(0, 0, 0, 0.15);
}

.kb-booking .bb-section {
  background: transparent;
  padding: 24px 20px;
}

.kb-booking .booking-bar {
  display: flex;
  align-items: center;
  background: var(--bb-color-surface);
  border-radius: 50px;
  padding: 8px 8px 8px 24px;
  box-shadow: var(--bb-shadow-card);
  max-width: 860px;
  margin: 0 auto;
  gap: 0;
}

.kb-booking .bb-date {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1.2;
  cursor: pointer;
  padding-right: 24px;
  border-right: 1px solid var(--bb-color-border);
  min-width: 0;
}

.kb-booking .bb-date-icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: var(--bb-color-text);
}

.kb-booking .bb-date input[type="text"] {
  border: none;
  outline: none;
  font-size: 15px;
  color: var(--bb-color-text);
  background: transparent;
  cursor: pointer;
  width: 100%;
  min-width: 0;
  font-family: inherit;
}

.kb-booking .bb-date input[type="text"]::placeholder {
  color: var(--bb-color-muted);
}

.kb-booking .bb-type {
  flex: 1;
  padding: 0 24px;
  position: relative;
  border-right: 1px solid var(--bb-color-border);
}

.kb-booking .bb-type-trigger {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.kb-booking .bb-type-display {
  display: block;
  font-size: 15px;
  color: var(--bb-color-muted);
  user-select: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.kb-booking .bb-type-display.has-value {
  color: var(--bb-color-text);
}

.kb-booking .bb-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 20px);
  left: 0;
  background: var(--bb-color-surface);
  border-radius: 14px;
  box-shadow: var(--bb-shadow-dropdown);
  min-width: 220px;
  z-index: 9999;
  overflow: hidden;
}

.kb-booking .bb-dropdown.open {
  display: block;
}

.kb-booking .bb-dropdown ul {
  list-style: none;
  margin: 0;
  padding: 8px 0;
}

.kb-booking .bb-dropdown ul li {
  padding: 12px 20px;
  cursor: pointer;
  font-size: 15px;
  color: var(--bb-color-text);
  transition: background 0.15s;
  font-family: inherit;
}

.kb-booking .bb-dropdown ul li:hover {
  background: var(--bb-color-surface-muted);
  color: #2e7d32;
}

.kb-booking .bb-dropdown ul li.selected {
  background: var(--bb-color-success-bg);
  color: #2e7d32;
  font-weight: 600;
}

.kb-booking .bb-search-btn {
  background: var(--bb-color-accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 50px !important;
  padding: 14px 32px !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: background 0.2s, transform 0.1s !important;
  font-family: inherit !important;
  flex-shrink: 0 !important;
  margin-left: 8px !important;
}

.kb-booking .bb-search-btn:hover {
  background: var(--bb-color-accent-hover) !important;
}

.kb-booking .bb-search-btn:active {
  transform: scale(0.98);
}

.kb-booking #bb-search-period {
  display: none;
  text-align: center;
  padding: 36px 20px 20px;
}

.kb-booking #bb-search-period.is-visible {
  display: block;
}

.kb-booking #bb-search-period .pre-text {
  display: block;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--bb-color-muted);
  margin-bottom: 6px;
}

.kb-booking #bb-search-period h2 {
  font-size: clamp(26px, 4vw, 42px);
  font-weight: 900;
  margin: 0;
  line-height: 1.15;
  color: #111;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-months {
  display: flex;
  align-items: center;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-month {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  overflow: visible;
  flex: 1;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month {
  position: relative;
  left: auto;
  width: auto;
  height: auto;
  padding: 0;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  transform: none;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .cur-month,
.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .numInputWrapper,
.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month input.cur-year {
  font: inherit;
  color: inherit;
  line-height: inherit;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .cur-month {
  display: inline;
  margin: 0;
  padding: 0;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .numInputWrapper {
  background: transparent;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .numInputWrapper {
  display: inline-flex;
  align-items: baseline;
  width: auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month input.cur-year {
  all: unset;
  display: inline-block;
  width: 3.8ch;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  box-shadow: none;
  appearance: textfield;
  -webkit-appearance: none;
  -moz-appearance: textfield;
  cursor: text;
}

.elementor-kit-12 .flatpickr-calendar.kb-booking-calendar .flatpickr-current-month input.cur-year:not([type="button"]):not([type="submit"]) {
  all: unset;
  display: inline-block;
  width: 3.8ch;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: inherit;
  font: inherit;
  line-height: inherit;
  text-align: left;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  appearance: textfield;
  -webkit-appearance: none;
  -moz-appearance: textfield;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .numInputWrapper span {
  display: none;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .numInputWrapper:hover,
.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month .flatpickr-monthDropdown-months:hover,
.flatpickr-calendar.kb-booking-calendar .flatpickr-current-month span.cur-month:hover {
  background: transparent;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-days .dayContainer {
  justify-content: space-around;
  flex-wrap: wrap;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-day {
  width: 14.2857143%;
  flex-basis: 14.2857%;
  max-width: 39px;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-day.hidden,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.prevMonthDay.hidden,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.nextMonthDay.hidden {
  display: inline-block !important;
  visibility: hidden !important;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected:focus,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected.inRange,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.startRange,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.startRange:hover,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.startRange:focus,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.startRange.inRange,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected.startRange {
  background: #aab397;
  border-color: #aab397;
  box-shadow: none;
  color: #fff;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-day.endRange,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.endRange:hover,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.endRange:focus,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.endRange.inRange,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected.endRange,
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.startRange.endRange {
  background: #5d6a5b;
  border-color: #5d6a5b;
  box-shadow: none;
  color: #fff;
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-day.inRange {
  background: rgba(170, 179, 151, 0.25);
  border-color: transparent;
  box-shadow: -5px 0 0 rgba(170, 179, 151, 0.25), 5px 0 0 rgba(170, 179, 151, 0.25);
  color: var(--bb-color-text);
}

.flatpickr-calendar.kb-booking-calendar .flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n + 1)),
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n + 1)),
.flatpickr-calendar.kb-booking-calendar .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n + 1)) {
  box-shadow: -10px 0 0 #aab397;
}

@media (max-width: 768px) {
  .flatpickr-calendar.kb-booking-calendar {
    width: min(307.875px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    left: 50% !important;
    right: auto;
    transform: translateX(-50%);
  }

  .flatpickr-calendar.kb-booking-calendar .flatpickr-innerContainer,
  .flatpickr-calendar.kb-booking-calendar .flatpickr-rContainer,
  .flatpickr-calendar.kb-booking-calendar .flatpickr-weekdays,
  .flatpickr-calendar.kb-booking-calendar .flatpickr-weekdaycontainer,
  .flatpickr-calendar.kb-booking-calendar .flatpickr-days,
  .flatpickr-calendar.kb-booking-calendar .dayContainer {
    width: 100%;
    min-width: 100%;
    max-width: 100%;
  }

  .flatpickr-calendar.kb-booking-calendar .flatpickr-weekdays {
    height: auto;
    padding: 0 0 8px;
  }

  .flatpickr-calendar.kb-booking-calendar span.flatpickr-weekday {
    font-size: 14px;
  }

  .flatpickr-calendar.kb-booking-calendar .flatpickr-day {
    width: 14.2857143%;
    flex-basis: 14.2857143%;
    max-width: none;
    height: 36px;
    line-height: 36px;
  }

  .flatpickr-calendar.kb-booking-calendar .flatpickr-current-month {
    font-size: 14px;
  }

  .flatpickr-calendar.kb-booking-calendar .flatpickr-month + .flatpickr-month,
  .flatpickr-calendar.kb-booking-calendar .dayContainer + .dayContainer {
    display: none !important;
  }

  .kb-booking .csob-field-contentWrapper select:not(.csob-countryPhonePrefixResultField) {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

.kb-booking #bb-date-input,
.kb-booking #bb-date-input.flatpickr-input {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: 0;
  color: var(--bb-color-text);
}

.kb-booking .deleteBookingButton i {
  color: var(--bb-color-text) !important;
}

.kb-booking .csob-field__row {
  margin-bottom: 16px !important;
}

.kb-booking .csob-field-contentWrapper {
  padding: 4px 0 !important;
}

.kb-booking .csob-field-contentWrapper select {
  min-width: 70px !important;
  width: auto !important;
}

.kb-booking .csob-field-contentWrapper select.csob-countryPhonePrefixResultField {
  height: 100% !important;
  min-height: 48px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 48px !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  color: inherit !important;
  text-align: center !important;
  text-align-last: center !important;
}

.kb-booking .csob-field-contentWrapper input[type="text"]:not(:placeholder-shown),
.kb-booking .csob-field-contentWrapper input[type="email"]:not(:placeholder-shown),
.kb-booking .csob-field-contentWrapper input[type="tel"]:not(:placeholder-shown),
.kb-booking .csob-field-contentWrapper textarea:not(:placeholder-shown) {
  padding-top: 18px !important;
  padding-bottom: 7px !important;
  line-height: 1.2 !important;
}

.kb-booking .cart__main .main__header,
.kb-booking #bb-cart .main__header,
.kb-booking .main__header {
  padding-top: 24px !important;
  margin-top: 0 !important;
}

.kb-booking .step__info .current__step {
  display: block !important;
  padding-top: 8px !important;
}

.kb-booking .csob-unit-infowindow-container-description {
  text-align: left !important;
  text-justify: auto !important;
  word-spacing: normal !important;
  letter-spacing: normal !important;
}

.kb-booking #bb-cart table,
.kb-booking .cart__main table,
.kb-booking #bb-results table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: transparent;
  box-shadow: none;
}

.kb-booking #bb-cart thead,
.kb-booking .cart__main thead,
.kb-booking #bb-results thead {
  background: transparent;
}

.kb-booking #bb-cart th,
.kb-booking #bb-cart td,
.kb-booking .cart__main th,
.kb-booking .cart__main td,
.kb-booking #bb-results th,
.kb-booking #bb-results td {
  border: 0 !important;
  background: transparent !important;
  padding: 10px 0 !important;
  vertical-align: top;
}

.kb-booking #bb-cart tbody tr,
.kb-booking .cart__main tbody tr,
.kb-booking #bb-results tbody tr {
  box-shadow: none;
}

.kb-booking #bb-cart tbody tr + tr td,
.kb-booking .cart__main tbody tr + tr td,
.kb-booking #bb-results tbody tr + tr td {
  border-top: 1px solid rgba(0, 0, 0, 0.08) !important;
}

.kb-booking #bb-cart tfoot,
.kb-booking .cart__main tfoot {
  background: transparent;
}

.kb-booking #bb-cart tfoot td,
.kb-booking #bb-cart tfoot th,
.kb-booking .cart__main tfoot td,
.kb-booking .cart__main tfoot th {
  border: 0 !important;
  background: transparent !important;
  padding-top: 18px !important;
}

.kb-booking #bb-cart tfoot tr,
.kb-booking .cart__main tfoot tr,
.kb-booking #bb-cart tfoot tr:last-child,
.kb-booking .cart__main tfoot tr:last-child,
.kb-booking #bb-cart tfoot tr:last-child td,
.kb-booking #bb-cart tfoot tr:last-child th,
.kb-booking .cart__main tfoot tr:last-child td,
.kb-booking .cart__main tfoot tr:last-child th {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.kb-booking #bb-cart .total,
.kb-booking #bb-cart .totalAmount,
.kb-booking #bb-cart .amountTotal,
.kb-booking .cart__main .total,
.kb-booking .cart__main .totalAmount,
.kb-booking .cart__main .amountTotal {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.kb-booking #bb-booking-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px 60px;
}

.kb-booking #bb-large-calendar,
.kb-booking #bb-small-calendar {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

.kb-booking #bb-error {
  display: none;
  margin: 16px 0;
  color: #a61b1b;
}

.kb-booking #bb-error.is-visible {
  display: block;
}

.kb-booking #bb-content-layout {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.kb-booking #bb-filters {
  flex-shrink: 0;
  width: 220px;
}

.kb-booking #bb-results {
  flex: 1;
  min-width: 0;
}

@media (max-width: 768px) {
  .kb-booking .booking-bar {
    flex-direction: column;
    border-radius: 18px;
    padding: 16px;
    gap: 0;
  }

  .kb-booking .bb-date {
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid var(--bb-color-border-light);
    padding-bottom: 14px;
    margin-bottom: 14px;
    width: 100%;
  }

  .kb-booking .bb-type {
    padding-left: 0;
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid var(--bb-color-border-light);
    padding-bottom: 14px;
    margin-bottom: 14px;
    width: 100%;
  }

  .kb-booking .bb-search-btn {
    width: 100%;
    margin-left: 0;
    text-align: center;
  }

  .kb-booking #bb-content-layout {
    flex-direction: column;
  }

  .kb-booking #bb-filters {
    width: 100%;
  }
}