.booking-product-images { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.booking-product-images a { max-width: 100%; }
.booking-product-images img { display: block; width: 260px; max-width: 100%; height: 220px; object-fit: contain; background: #fff; border: 1px solid #ddd; border-radius: 4px; }
#BookingCalendar .bbCalendarItem { pointer-events: none; }
#BookingProductDescription { white-space: pre-line; overflow-wrap: anywhere; }
.booking-step[hidden], [data-provider][hidden], #SalePriceGroup[hidden] { display: none !important; }

.booking-slot-choice { position: relative; padding-right: 48px; }
.booking-slot-check { position: absolute; top: 14px; right: 14px; width: 24px; height: 24px; border: 1px solid #829087; border-radius: 4px; text-align: center; line-height: 22px; font-size: 20px; font-weight: bold; color: #087c36; background: #fff; }
.booking-slot-choice.is-selected { background: #e8f5ed; }
.booking-slot-choice.is-selected .booking-slot-check { border-color: #087c36; }
.booking-slot-choice:disabled { cursor: not-allowed; }
.booking-slot-choice:disabled:not(.is-selected) { background: #f4f5f6; color: #657284; box-shadow: none; border-color: #d8dee8; }
.booking-slot-choice:focus-visible { outline: 3px solid #087c36; outline-offset: 2px; }
.booking-slot-summary { display: inline-block; margin: 8px 0; }

.booking-slot-choice.is-booked:disabled { background: #f9dede; border-color: #a12626; color: #761919; opacity: 1; }
.booking-slot-choice.is-booked .booking-muted { color: #761919; font-weight: 600; }
.booking-slot-choice.is-booked .booking-slot-check { display: none; }
#BookingCalendar .bbCalendarDayCell.has-slots {
    background: #e4f3e9;
    color: #173d27;
    border-color: #287341;
    box-shadow: inset 0 -3px 0 #287341;
    opacity: 1;
}
#BookingCalendar .bbCalendarDayCell.has-bookings.has-slots {
    background: #fff0c2;
    color: #513900;
    border-color: #8a5a00;
    box-shadow: inset 0 -3px 0 #8a5a00;
}
#BookingCalendar .bbCalendarDayCell.fully-booked {
    background: #f9dede;
    color: #761919;
    border-color: #a12626;
    box-shadow: inset 0 -3px 0 #a12626;
    opacity: 1;
}
#BookingCalendar .bbCalendarDayCell .bbCalendarItem {
    font-weight: 600;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.35;
}
#BookingCalendar .has-slots .bbCalendarItem { background: #206938; color: #fff; }
#BookingCalendar .has-bookings.has-slots .bbCalendarItem { background: #f2cb64; color: #493100; }
#BookingCalendar .fully-booked .bbCalendarItem { background: #a12626; color: #fff; }
#BookingCalendar .bbCalendarDayCell.is-selected-day {
    outline: 3px solid #17251d;
    outline-offset: -3px;
}
@media (max-width: 575px) {
    #BookingCalendar .bbCalendarDayCell { padding: 2px; }
    #BookingCalendar .bbCalendarDayCell .bbCalendarItem { padding: 3px 1px; font-size: 10px; }
}
@media (max-width: 359px) {
    #BookingCalendar .bbCalendarDayCell { padding: 1px; }
    #BookingCalendar .bbCalendarDayCell .bbCalendarItem { padding: 3px 0; }
}


.booking-mode-switch { display: inline-flex; max-width: 100%; border: 1px solid #087c36; border-radius: 4px; overflow: hidden; }
.booking-mode-switch[hidden] { display: none; }
.booking-mode-option { min-width: 100px; min-height: 44px; padding: 8px 20px; border: 0; border-radius: 0; background: #fff; color: #087c36; font: inherit; cursor: pointer; }
.booking-mode-option + .booking-mode-option { border-left: 1px solid #087c36; }
.booking-mode-option[aria-pressed="true"] { background: #087c36; color: #fff; }
.booking-mode-option:focus-visible { outline: 2px solid #17251d; outline-offset: -4px; }

#BookingSummary .booking-summary-line { gap: 16px; }
#BookingSummary .booking-summary-line > * { min-width: 0; overflow-wrap: anywhere; }
#BookingSummary .booking-summary-line > strong { text-align: right; }
#BookingRentalDays { max-width: 120px; }
@media (max-width: 575px) {
    #BookingSummary .booking-summary-line { flex-direction: column; gap: 4px; }
    #BookingSummary .booking-summary-line > span { color: #52616b; font-size: 14px; }
    #BookingSummary .booking-summary-line > strong { text-align: left; }
}
