.booking-steps-wrapper {
  background: #fff;
  /* The boxes of single pages (Styling → Single post → Meta cards → Border radius), not the Popups dialog radius;
     the archive popup sets its own (archive-book-popup.css). */
  border-radius: var(--bs-radius, var(--bk-meta-card-border-radius, 8px));
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 20px;
  /* Width 100 % includes the padding: an embedded wizard ([kezara_book_room] etc.) ran 40 px past a narrow column. */
  box-sizing: border-box;
  max-width: 800px;
  width: 100%;
  margin: 30px auto;
  color: var(--bk-body-color, #666666);
  font-size: var(--bk-body-font-size, 16px);
  font-family: var(
    --bk-body-font-family,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    Roboto,
    "Helvetica Neue",
    sans-serif
  );
}

.booking-steps-wrapper h1,
.booking-steps-wrapper h2,
.booking-steps-wrapper h3,
.booking-steps-wrapper h4,
.booking-steps-wrapper h5,
.booking-steps-wrapper h6 {
  color: var(--bk-heading-color, #333333);
  font-family: var(--bk-heading-font-family, inherit);
  font-size: var(--bk-heading-font-size, 1.25em);
}

/* Service Booking Specific Styles */
.service-booking.booking-steps-wrapper {
  background: var(--bk-svc-shell-bg, #fff);
  border: 1px solid var(--bk-svc-shell-border, #e7e5e0);
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, var(--bk-ui-field-radius));
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06);
  padding: 30px;
  box-sizing: border-box;
}

.service-booking .service-selection {
  margin-bottom: 30px;
}

.service-booking :is(.service-wizard-section-head, .service-choice-selection-head, .bs-svc-panel__heading, .service-selection h4, .extras-selection-wrap > h4, .service-step2-extras-head, .service-choice-selection h4) {
  margin: 0 0 12px;
  font-size: var(--bk-svc-wizard-label-font-size, 0.72rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.4;
  text-align: left;
  color: var(--bk-svc-summary-label, var(--bk-body-color, #646970));
  font-family: var(--bk-heading-font-family, inherit);
}

.service-booking .service-options {
  display: grid;
  /* At most four per row, fewer when the wizard is narrow (cards at least 11rem; 48px = three 16px gaps). */
  grid-template-columns: repeat(auto-fill, minmax(max(11rem, calc((100% - 48px) / 4)), 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .service-booking .service-options {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
}

@media (max-width: 480px) {
  .service-booking .service-options {
    grid-template-columns: 1fr;
  }
}

.service-booking .service-option {
  position: relative;
}

.service-booking .service-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.service-booking .service-option label {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 12px;
  border: 2px solid var(--bk-svc-option-border, var(--bk-theme-border, #e0e0e0));
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, var(--bk-ui-field-radius));
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
  background: var(--bk-svc-option-bg, var(--bk-theme-panel, #fff));
  color: var(--bk-svc-option-text, var(--bk-heading-color, #1c1917));
  min-height: 120px;
  justify-content: center;
  gap: 8px;
}

.service-booking .service-option label:hover {
  border-color: var(--bk-svc-option-selected-border, var(--bk-btn-accent, #007aff));
  background: var(--bk-svc-option-bg, var(--bk-theme-panel, #fff));
  box-shadow: none;
  transform: none;
}

.service-booking .service-option input[type="radio"]:checked + label {
  border-color: var(--bk-svc-option-selected-border, var(--bk-btn-accent, #007aff));
  background: var(--bk-svc-option-selected-bg, var(--bk-svc-option-bg, var(--bk-theme-panel, #fff)));
  color: var(--bk-svc-option-selected-text, var(--bk-svc-option-text, var(--bk-heading-color, #1c1917)));
  box-shadow: 0 0 0 1px var(--bk-svc-option-selected-border, var(--bk-btn-accent, #007aff));
  transform: none;
}

.service-booking .service-option input[type="radio"]:checked + label .service-label,
.service-booking .service-option input[type="radio"]:checked + label .service-description {
  color: inherit;
}

.service-booking .service-option input[type="radio"]:checked + label .service-price {
  color: var(--bk-svc-option-selected-price-text, var(--bk-svc-option-price-text, var(--bk-btn-accent, #007aff)));
  background: var(--bk-svc-option-price-bg, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.1));
}

.service-booking .service-option img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  margin-bottom: 12px;
  object-fit: cover;
  border: 3px solid #f0f0f0;
  transition: border-color 0.3s ease;
}

.service-booking .service-option input[type="radio"]:checked + label img {
  border-color: var(--bk-btn-accent, #007aff);
}

.service-booking .service-label {
  font-weight: 600;
  color: var(--bk-svc-option-text, var(--bk-heading-color, #333333));
  margin-bottom: 0;
  font-size: var(--bk-svc-wizard-field-font-size, 1.1rem);
}

.service-booking .service-description {
  font-size: var(--bk-svc-wizard-body-font-size, 0.9rem);
  color: var(--bk-body-color, #666666);
  line-height: 1.4;
  margin-bottom: 0;
  flex-grow: 0;
}

.service-booking .service-price {
  font-weight: 700;
  color: var(--bk-svc-option-price-text, var(--bk-btn-accent, #007aff));
  font-size: var(--bk-svc-wizard-field-font-size, 1.2rem);
  background: var(--bk-svc-option-price-bg, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.1));
  padding: 6px 12px;
  border-radius: var(--bk-ui-chip-tag-radius);
  margin-top: 0;
}

@media (max-width: 768px) {
  .service-booking .service-options {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
  }
  
  .service-booking .service-option label {
    padding: 16px 12px;
    min-height: 120px;
  }
  
  .service-booking .service-option img {
    width: 60px;
    height: 60px;
  }

  .service-booking .extras-selection.service-extras-grid,
  .service-booking .service-choice-options,
  .service-booking .service-choice-options.service-extras-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .service-booking .service-time-slots-grid {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
}

@media (max-width: 480px) {
  .service-booking .extras-selection.service-extras-grid,
  .service-booking .service-choice-options,
  .service-booking .service-choice-options.service-extras-grid {
    grid-template-columns: 1fr;
  }
}

.service-booking .service-field {
  display: flex;
  flex-direction: column;
}

.service-booking .service-field label {
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--bk-heading-color, #333333);
  font-size: var(--bk-svc-wizard-label-font-size, inherit);
}

.service-booking .form-group label {
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--bk-heading-color, #333333);
  font-size: var(--bk-svc-wizard-label-font-size, inherit);
}

/* Service fields: width/layout; chrome from frontend-field-chrome.css */
.service-booking .form-group :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select:not(.bs-frontend-select__native)),
.service-booking .service-field select:not(.bs-frontend-select__native) {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.service-booking .form-group .bs-frontend-select,
.service-booking .form-group .bs-select-wrap.bs-frontend-select {
  max-width: min(100%, 18rem);
}

.service-booking .extras-selection {
  margin-bottom: 30px;
}

.service-booking .extras-selection.service-extras-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(max(11rem, calc((100% - 48px) / 4)), 1fr)); /* as .service-options */
  gap: 16px;
}

/* Two per row on tablets, one on phones. The same rules above came before the four columns and lost to them, so
   the four columns ran past the wizard's edge on phones. */
@media (max-width: 782px) {
  .service-booking .extras-selection.service-extras-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .service-booking .extras-selection.service-extras-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.service-booking .extras-selection.service-extras-grid h4 {
  grid-column: 1 / -1;
  margin-bottom: 0;
}

.service-booking .extras-selection.service-extras-grid > .service-booking-no-extras {
  grid-column: 1 / -1;
}

.service-booking .details-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 30px;
}

.service-booking .form-group {
  display: flex;
  flex-direction: column;
}

.service-booking .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

.service-booking .form-row.service-datetime-row {
  grid-template-columns: 1fr;
}

.service-booking .extra-option {
  position: relative;
  margin: 0;
}

.service-booking .extra-option input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

.service-booking .extra-option label {
  display: flex;
  flex-direction: column;
  align-items: center;
  /* Was justify-content:space-between, which spreads whatever children exist (icon/name/description/
     price) evenly across the full label height. With only 2 children (name + price — no icon, no
     description, the common case for a plain extra) that spread a big dead gap between them, and
     because the last item (price) always got pinned to the very bottom of the content box, it landed
     right where the number input's own reserved space started, causing overlap ("inputen hamnar ovanpå
     priset"). flex-start + a small fixed gap keeps icon/name/description packed together near the top
     regardless of how many are present, and margin-top:auto on .extra-price (below) is what actually
     pins the price near the bottom — consistent spacing either way, and it respects the padding-bottom
     reserved for the number input instead of racing it to the same edge. */
  justify-content: center;
  gap: 6px;
  text-align: center;
  min-height: 120px;
  height: 100%;
  box-sizing: border-box;
  padding: 16px 12px;
  border: 2px solid var(--bk-svc-option-border, var(--bk-theme-border, #e0e0e0));
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, var(--bk-ui-field-radius));
  cursor: pointer;
  margin: 0;
  background: var(--bk-svc-option-bg, var(--bk-theme-panel, #fff));
  color: var(--bk-svc-option-text, var(--bk-heading-color, #1c1917));
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.service-booking .extra-option label .extra-price {
  margin-top: 0;
}

.service-booking .extra-option label:hover {
  border-color: var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff)));
  background: var(--bk-theme-panel, #f6f7f9);
  box-shadow: none;
}

.service-booking .extra-option.is-selected label,
.service-booking .extra-option input[type="checkbox"]:focus-visible + label {
  border-color: var(--bk-svc-option-selected-border, var(--bk-btn-accent, var(--bs-accent, var(--hb-accent, #007aff))));
  background: var(--bk-svc-option-selected-bg, var(--bk-svc-option-bg, var(--bk-theme-panel, #fff)));
  color: var(--bk-svc-option-selected-text, var(--bk-svc-option-text, var(--bk-body-color, inherit)));
  box-shadow: 0 0 0 1px var(--bk-svc-option-selected-border, var(--bk-btn-accent, var(--bs-accent, var(--hb-accent, #007aff))));
}

.service-booking .extra-option.is-selected label .extra-name,
.service-booking .extra-option.is-selected label .extra-description,
.service-booking .extra-option.is-selected label .extra-duration,
.service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-name,
.service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-description {
  color: inherit;
}

.service-booking .extra-option.is-selected label .extra-option__icon,
.service-booking .extra-option.is-selected label .extra-option__icon i,
.service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-option__icon,
.service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-option__icon i {
  color: var(--bk-service-extra-icon-color, var(--bk-btn-accent, #333333)) !important;
}

.service-booking .extra-option.is-selected label .extra-price,
.service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-price {
  color: var(--bk-svc-extra-selected-price-text, var(--bk-svc-extra-price-text, var(--bk-btn-accent, #007aff)));
}

.service-booking .service-time-slots-field {
  position: relative;
  margin-bottom: 20px;
}

.service-booking .service-time-slots-label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--bk-heading-color, #333333);
  font-size: var(--bk-svc-wizard-label-font-size, inherit);
}

.service-booking .service-time-slots-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
  margin-top: 10px;
  margin-bottom: 12px;
}

.service-booking .service-time-slot-btn {
  display: block;
  width: 100%;
  padding: 12px 10px;
  border: 2px solid var(--bk-svc-option-border, var(--bk-cal-border, #e0e0e0));
  border-radius: var(--bk-ui-field-radius);
  background: var(--bk-svc-slot-bg, var(--bk-cal-bg, #fff));
  /* Buttons do not inherit the font: without this the browser's own (Arial) is used. */
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-svc-wizard-body-font-size, 0.85rem);
  font-weight: 600;
  line-height: 1.2;
  /* Narrow days (popup, phones): "08:00 – 09:00" wraps after the dash instead of being cut to "08:00 – 09:…". */
  white-space: normal;
  color: var(--bk-svc-slot-text, var(--bk-cal-btn-text, var(--bk-heading-color, #333)));
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.service-booking .service-time-slot-btn:hover {
  border-color: var(--bk-svc-option-selected-border, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff)))));
  background: var(--bk-svc-option-selected-bg, var(--bk-cal-btn-bg-hover, var(--bk-theme-panel, #f6f7f9)));
}

.service-booking .service-time-slot-btn.is-selected {
  border-width: 2px;
  border-color: var(--bk-svc-slot-selected-border, var(--bk-svc-option-selected-border, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))))));
  background: var(--bk-svc-slot-selected-bg, var(--bk-svc-option-selected-bg, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))))));
  color: var(--bk-svc-slot-selected-text, var(--bk-svc-slot-text, var(--bk-cal-item-text, var(--bk-cal-date-text, #fff))));
  box-shadow: none;
}

.service-booking .service-slots-loading {
  display: block;
  padding: 12px 0;
  color: var(--bk-body-color, #666);
  font-size: 0.95rem;
}

.service-booking .service-time-select-screen {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Week calendar (service wizard date & time step) */
.service-booking .service-week-calendar-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0.5rem 0 1rem;
}

/* Week arrows look like the month arrows of the event / tour calendars (frontend-buttons.css
   .calendar-navigation button): Calendar & popups → Calendar button colors and the compact field size. */
.service-booking .service-week-nav {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: var(--bk-ui-field-compact-height);
  min-width: var(--bk-ui-field-compact-height);
  padding: 0 var(--bk-ui-field-padding-x);
  border: 1px solid var(--bk-cal-btn-border, var(--bk-theme-border, #e2e8f0));
  border-radius: var(--bk-ui-field-radius);
  background: var(--bk-cal-btn-bg, #fff);
  color: var(--bk-cal-btn-text, var(--bk-heading-color, #333));
  font-family: var(--bk-btn-font-family, inherit);
  font-size: var(--bk-ui-field-compact-font-size);
  font-weight: var(--bk-ui-btn-font-weight);
  line-height: var(--bk-ui-btn-line-height, 1);
  box-shadow: none;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

/* A mouse click leaves :focus (not :focus-visible): keep the normal colors, or a theme's
   [type="button"]:focus (e.g. Hello's pink #c36) shows through. */
.service-booking .service-week-nav:focus {
  outline: none;
  background: var(--bk-cal-btn-bg, #fff);
  color: var(--bk-cal-btn-text, var(--bk-heading-color, #333));
  border-color: var(--bk-cal-btn-border, var(--bk-theme-border, #e2e8f0));
}

.service-booking .service-week-nav:not(:disabled):is(:hover, :focus-visible, :active) {
  outline: none;
  background: var(--bk-cal-btn-bg-hover, var(--bk-theme-panel, #f6f7f9));
  color: var(--bk-cal-btn-text, var(--bk-heading-color, #333));
}

/* Previous week is off on the current week (service.js syncWeekPrevButton): same look, no pointer. */
.service-booking .service-week-nav:disabled,
.service-booking .service-week-nav:disabled:is(:hover, :focus, :active) {
  cursor: default;
  background: var(--bk-cal-btn-bg, #fff);
  color: var(--bk-cal-btn-text, var(--bk-heading-color, #333));
  border-color: var(--bk-cal-btn-border, var(--bk-theme-border, #e2e8f0));
}

.service-booking .service-week-range-label {
  flex: 1;
  text-align: center;
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--bk-heading-color, #333);
}

.service-booking .service-week-calendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.45rem;
  margin-top: 0.25rem;
}

.service-booking .service-week-day {
  border: 1px solid var(--bk-svc-shell-border, var(--bk-cal-border, #e5e5e5));
  border-radius: var(--bk-ui-field-radius);
  padding: 0.35rem 0.3rem 0.5rem;
  min-height: 7.5rem;
  background: var(--bk-svc-cal-day-bg, var(--bk-cal-bg, #fafafa));
  display: flex;
  flex-direction: column;
}

/* Briefly marks the day landed on via "Show next available time" (below) — cleared/re-applied by JS on
   each jump, not persisted across unrelated week navigation. */
.service-booking .service-week-day--target {
  border-color: var(--bk-svc-option-selected-border, var(--bk-cal-today-bg, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))))));
  box-shadow: 0 0 0 2px rgba(var(--bk-btn-accent-rgb, var(--bk-cal-item-rgb, 0, 122, 255)), 0.25);
}

.service-booking .service-week-day__head {
  font-size: var(--bk-svc-wizard-label-font-size, 0.7rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--bk-svc-cal-day-head-text, var(--bk-theme-muted, var(--bk-body-color, #555)));
  margin-bottom: 0.35rem;
  text-align: center;
  line-height: 1.25;
}

.service-booking .service-week-day__slots {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 1px 2px;
  box-sizing: border-box;
}

.service-booking .service-week-day__none {
  font-size: var(--bk-svc-wizard-body-font-size, 0.78rem);
  color: var(--bk-theme-muted, var(--bk-body-color, #999));
  text-align: center;
  padding: 0.35rem 0.15rem;
  line-height: 1.3;
}

.service-booking .service-week-slot-btn {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 0.4rem 0.2rem;
  border: 1px solid var(--bk-svc-option-border, var(--bk-cal-border, #ddd));
  border-radius: var(--bk-ui-chip-category-radius);
  background: var(--bk-svc-slot-bg, var(--bk-cal-bg, #fff));
  font-family: var(--bk-body-font-family, inherit);
  /* Smaller than the body text (at most 13 px) so "09:00 – 09:30" fits one line in a day column. */
  font-size: min(var(--bk-svc-wizard-body-font-size, 0.8125rem), 0.8125rem);
  font-weight: 600;
  line-height: 1.2;
  /* Narrow days (popup, phones): "08:00 – 09:00" wraps after the dash instead of being cut to "08:00 – 09:…". */
  white-space: normal;
  color: var(--bk-svc-slot-text, var(--bk-cal-btn-text, var(--bk-heading-color, #333)));
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.service-booking .service-week-slot-btn:hover {
  border-color: var(--bk-svc-option-selected-border, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff)))));
  background: var(--bk-svc-option-selected-bg, var(--bk-cal-btn-bg-hover, var(--bk-theme-panel, #f6f7f9)));
}

.service-booking .service-week-slot-btn.is-selected {
  border-width: 2px;
  border-color: var(--bk-svc-slot-selected-border, var(--bk-svc-option-selected-border, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))))));
  background: var(--bk-svc-slot-selected-bg, var(--bk-svc-option-selected-bg, var(--bk-cal-item-bg, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))))));
  color: var(--bk-svc-slot-selected-text, var(--bk-svc-slot-text, var(--bk-cal-item-text, var(--bk-cal-date-text, #fff))));
  box-shadow: none;
}

.service-booking .service-week-loading {
  grid-column: 1 / -1;
  padding: 1.25rem 0.5rem;
  text-align: center;
  color: var(--bk-body-color, #666);
  font-size: 0.95rem;
}

/* Empty-week state (#service-slots-empty) — rebuilt in JS (renderWeekEmptyState) as either a plain
   message, or (when the backend found one within the next ~90 days) a message naming the next available
   date plus a button that jumps the calendar straight to that week. */
.service-booking .service-slots-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
  margin: 0.25rem 0 0;
  padding: 28px 20px;
  border: 1px solid var(--bk-theme-border, #e5e5e5);
  /* Not the Popups dialog radius: that setting belongs to the archive popup only. */
  border-radius: 0;
  background: var(--bk-theme-panel, #fafafa);
  color: var(--bk-body-color, var(--bk-body-color, #555555));
  font-size: 0.95rem;
  line-height: 1.5;
}

.service-booking .service-week-goto-next-available {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 22px;
  border: none;
  border-radius: var(--bk-ui-chip-tag-radius);
  background: var(--bk-btn-bg, var(--bk-btn-accent, #007aff));
  color: var(--bk-btn-text, #fff);
  font-weight: 600;
  font-size: 0.85rem;
  font-family: var(--bk-btn-font-family, inherit);
  cursor: pointer;
  transition: background 0.2s ease;
}

.service-booking .service-week-goto-next-available:hover,
.service-booking .service-week-goto-next-available:focus-visible {
  background: var(--bk-btn-accent-hover, #0056b3);
  color: var(--bk-btn-text-hover, #fff);
  outline: none;
}

/* Phones and tablets up to 782 px (seven columns of about 80 px broke every time over two lines): the week as a list — one day per row, its times as wrapping buttons (seven columns only fit by
   scrolling sideways, which nothing told the visitor). */
@media (max-width: 782px) {
  .service-booking .service-week-calendar {
    grid-template-columns: minmax(0, 1fr);
  }

  .service-booking .service-week-day,
  .booking-service-embed .service-booking .service-week-day,
  .bs-single--service .service-booking .service-week-day {
    min-height: 0;
    padding: 0.5rem 0.6rem;
  }

  .service-booking .service-week-day__head {
    text-align: left;
    margin-bottom: 0.4rem;
  }

  .service-booking .service-week-day__slots {
    flex-direction: row;
    flex-wrap: wrap;
    overflow: visible;
  }

  .service-booking .service-week-slot-btn,
  .booking-service-embed .service-booking .service-week-slot-btn {
    width: auto;
    flex: 0 0 auto;
    padding: 0.45rem 0.65rem;
    white-space: nowrap;
  }

  .service-booking .service-week-day__none {
    text-align: left;
    padding: 0;
  }
}

/* Shortcode/embed service wizard: week slots stay on body scale (not field) so ranges fit narrow columns */
.booking-service-embed .service-booking .service-week-slot-btn {
  font-size: min(var(--bk-svc-wizard-body-font-size, 0.8125rem), 0.8125rem);
  padding: 0.4rem 0.2rem;
}

/* Single service page → Compact sidebar (same DOM as classic, narrow card like the room sidebar): no step
   tabs (five tabs do not fit 350 px), and the week always as the phone list above. */
.service-booking.event-sidebar-module--narrow .booking-progress {
  display: none;
}

/* Colors and sizes: Styling → Booking wizards → Compact sidebar (shared with the other modules), mapped onto the
   service wizard's own variables. Service, choice, day and time cards = packages; extras = field rows; section
   labels, summary and pay notice = their Compact sidebar settings. The card itself: the shared card rule above. */
.service-booking.event-sidebar-module--narrow {
  --bk-svc-option-bg: var(--bk-compact-sidebar-package-bg);
  --bk-svc-option-border: var(--bk-compact-sidebar-package-border-color);
  --bk-svc-option-text: var(--bk-compact-sidebar-package-text);
  --bk-svc-option-selected-bg: var(--bk-compact-sidebar-package-selected-bg);
  --bk-svc-option-selected-border: var(--bk-compact-sidebar-package-selected-border-color);
  --bk-svc-option-selected-text: var(--bk-compact-sidebar-package-selected-text);
  --bk-svc-slot-bg: var(--bk-compact-sidebar-package-bg);
  --bk-svc-slot-text: var(--bk-compact-sidebar-package-text);
  --bk-svc-slot-selected-bg: var(--bk-compact-sidebar-package-selected-bg);
  --bk-svc-slot-selected-border: var(--bk-compact-sidebar-package-selected-border-color);
  --bk-svc-slot-selected-text: var(--bk-compact-sidebar-package-selected-text);
  --bk-svc-cal-day-bg: var(--bk-compact-sidebar-row-bg);
  --bk-svc-cal-day-head-text: var(--bk-compact-sidebar-label-color);
  --bk-svc-summary-label: var(--bk-compact-sidebar-label-color);
  --bk-svc-summary-bg: transparent;
  --bk-svc-summary-text: var(--bk-compact-sidebar-summary-text-color);
  --bk-popup-summary-border-color: var(--bk-compact-sidebar-summary-border-color);
  --bk-popup-summary-divider: var(--bk-compact-sidebar-summary-border-color);
  --bk-svc-wizard-label-font-size: var(--bk-compact-sidebar-label-font-size, 0.72rem);
  --bk-svc-wizard-body-font-size: var(--bk-compact-sidebar-body-font-size, 0.875rem);
  --bk-svc-option-price-text: var(--bk-compact-sidebar-package-text);
  --bk-svc-option-selected-price-text: var(--bk-compact-sidebar-package-selected-text);
  --bk-svc-option-price-bg: transparent;
  --bk-svc-extra-price-text: var(--bk-compact-sidebar-row-text-color);
  --bk-svc-extra-selected-price-text: var(--bk-compact-sidebar-row-text-color);
  --bk-svc-shell-border: var(--bk-compact-sidebar-row-border-color);
  /* Icons: theme accent, like the other compact cards' extras (Compact sidebar has no icon color). */
  --bk-service-extra-icon-color: var(--bk-btn-accent);
  --bk-service-choice-option-icon-color: var(--bk-btn-accent);
}

/* The service shell's soft shadow (single-booking-items.css) is not part of the compact card. */
.service-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar {
  box-shadow: none;
}

.service-booking.event-sidebar-module--narrow .extra-option {
  --bk-svc-option-bg: var(--bk-compact-sidebar-row-bg);
  --bk-svc-option-border: var(--bk-compact-sidebar-row-border-color);
  --bk-svc-option-text: var(--bk-compact-sidebar-row-text-color);
  --bk-svc-option-selected-bg: var(--bk-compact-sidebar-row-bg);
  --bk-svc-option-selected-text: var(--bk-compact-sidebar-row-text-color);
}

.service-booking.event-sidebar-module--narrow .booking-wizard-pay-on-site-notice {
  color: var(--bk-compact-sidebar-pay-on-site-notice-color);
}

/* Compact calendar (service.js renderCompactMonth / renderCompactWeek): a month of open days, then the chosen
   day's week as a strip of seven days with that day's times below. Colors follow the time buttons. */
.service-booking .service-week-calendar.service-week-calendar--compact {
  display: block;
}

.service-booking .service-compact-month__weekdays,
.service-booking .service-compact-month__grid,
.service-booking .service-compact-week__days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}

.service-booking .service-compact-month__weekdays span {
  font-size: var(--bk-svc-wizard-label-font-size, 0.7rem);
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
  color: var(--bk-svc-cal-day-head-text, var(--bk-theme-muted, var(--bk-body-color, #555)));
  padding-bottom: 4px;
}

.service-booking .service-compact-month__day,
.service-booking .service-compact-week__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.25rem 0;
  border: 1px solid transparent;
  border-radius: var(--bk-ui-field-radius);
  background: transparent;
  font-size: var(--bk-svc-wizard-body-font-size, 0.8rem);
  font-weight: 600;
  line-height: 1.15;
  color: var(--bk-theme-muted, var(--bk-body-color, #999));
}

.service-booking .service-compact-month__day.is-closed,
.service-booking .service-compact-week__day.is-closed {
  opacity: 0.45;
  font-weight: 400;
  cursor: default;
}

.service-booking button.service-compact-month__day.is-open,
.service-booking button.service-compact-week__day.is-open {
  border-color: var(--bk-svc-option-border, var(--bk-cal-border, #ddd));
  background: var(--bk-svc-slot-bg, var(--bk-cal-bg, #fff));
  color: var(--bk-svc-slot-text, var(--bk-cal-btn-text, var(--bk-heading-color, #333)));
  cursor: pointer;
}

.service-booking button.service-compact-month__day.is-open:hover,
.service-booking button.service-compact-week__day.is-open:hover {
  border-color: var(--bk-svc-option-selected-border, var(--bk-cal-item-bg, var(--bk-btn-accent, #007aff)));
}

.service-booking button.service-compact-month__day.is-open.is-selected,
.service-booking button.service-compact-week__day.is-open.is-selected {
  border-color: var(--bk-svc-slot-selected-border, var(--bk-svc-option-selected-border, var(--bk-cal-item-bg, var(--bk-btn-accent, #007aff))));
  background: var(--bk-svc-slot-selected-bg, var(--bk-svc-option-selected-bg, var(--bk-cal-item-bg, var(--bk-btn-accent, #007aff))));
  color: var(--bk-svc-slot-selected-text, var(--bk-svc-slot-text, var(--bk-cal-item-text, #fff)));
}

.service-booking .service-compact-week__wd {
  font-size: var(--bk-svc-wizard-label-font-size, 0.7rem);
  font-weight: 700;
  text-transform: uppercase;
}

.service-booking .service-compact-back {
  margin: 0 0 0.6rem;
  padding: 0;
  border: none;
  background: none;
  font-size: var(--bk-svc-wizard-body-font-size, 0.8rem);
  font-weight: 600;
  color: var(--bk-svc-option-selected-border, var(--bk-btn-accent, #007aff));
  cursor: pointer;
}

.service-booking .service-compact-week__heading {
  margin: 0.9rem 0 0.5rem;
  font-weight: 700;
  color: var(--bk-heading-color, #333);
}

.service-booking .service-compact-week__slots .service-week-day__slots {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0.4rem;
  overflow: visible;
}

.booking-service-embed .service-booking .service-compact-week__slots .service-week-slot-btn {
  width: auto;
  flex: 0 0 auto;
  padding: 0.45rem 0.65rem;
  white-space: nowrap;
}

/* Services, extras and choices: two per row, sharing the card width; a third and more go on the next row
   (three or four columns left small, uneven cards). */
.service-booking.event-sidebar-module--narrow .service-choice-options.service-extras-grid,
.service-booking.event-sidebar-module--narrow .service-selection .service-options,
.service-booking.event-sidebar-module--narrow .extras-selection.service-extras-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.service-booking.event-sidebar-module--narrow .service-week-calendar {
  grid-template-columns: minmax(0, 1fr);
}

.service-booking.event-sidebar-module--narrow .service-week-day {
  min-height: 0;
  padding: 0.5rem 0.6rem;
}

.service-booking.event-sidebar-module--narrow .service-week-day__head {
  text-align: left;
  margin-bottom: 0.4rem;
}

.service-booking.event-sidebar-module--narrow .service-week-day__slots {
  flex-direction: row;
  flex-wrap: wrap;
  overflow: visible;
}

.booking-service-embed .service-booking.event-sidebar-module--narrow .service-week-slot-btn {
  width: auto;
  flex: 0 0 auto;
  padding: 0.45rem 0.65rem;
  white-space: nowrap;
}

.service-booking.event-sidebar-module--narrow .service-week-day__none {
  text-align: left;
  padding: 0;
}

.booking-service-embed .service-booking .service-week-day__head {
  font-size: var(--bk-svc-wizard-label-font-size, 0.75rem);
}

.service-booking .screen-reader-text,
.service-booking .service-booking-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.service-booking .extra-name {
  font-weight: 600;
  color: var(--bk-svc-option-text, var(--bk-heading-color, #333333));
  font-size: var(--bk-svc-wizard-field-font-size, inherit);
}

.service-booking .extra-description {
  color: var(--bk-body-color, #666666);
  font-style: italic;
  font-size: var(--bk-svc-wizard-body-font-size, 0.9rem);
}

/* The time an extra adds (+15 min), under its description. */
.service-booking .extra-duration {
  color: var(--bk-body-color, #666666);
  font-size: var(--bk-svc-wizard-body-font-size, 0.9rem);
}

.service-booking .extra-price {
  font-weight: 600;
  color: var(--bk-svc-extra-price-text, var(--bk-svc-option-price-text, var(--bk-btn-accent, #007aff)));
}

/* Choice 1 / Choice 2 selection styles */
.service-booking .service-choices-form {
  margin-bottom: 30px;
}

.service-booking .service-choice-selection {
  margin-bottom: 30px;
}

.service-booking .service-choice-options {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.service-booking .service-choice-options.service-extras-grid {
  margin-bottom: 20px;
}

.service-booking .service-choice-option {
  position: relative;
}

.service-booking .service-choice-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.service-booking .service-choice-option label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 120px;
  height: 100%;
  padding: 16px 12px;
  border: 2px solid var(--bk-svc-option-border, var(--bk-theme-border, #e0e0e0));
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, var(--bk-ui-field-radius));
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
  text-align: center;
  background: var(--bk-svc-option-bg, var(--bk-theme-panel, #fff));
  color: var(--bk-svc-option-text, var(--bk-heading-color, #1c1917));
  box-sizing: border-box;
  margin: 0;
}

.service-booking .service-choice-option label:hover {
  border-color: var(--bk-svc-option-border, var(--bk-theme-border, #e0e0e0));
  background: var(--bk-svc-option-bg, var(--bk-theme-panel, #fff));
  box-shadow: none;
}

.service-booking .service-choice-option input[type="radio"]:checked + label {
  border-color: var(--bk-svc-option-selected-border, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))));
  background: var(--bk-svc-option-selected-bg, var(--bk-svc-option-bg, var(--bk-theme-panel, #fff)));
  color: var(--bk-svc-option-selected-text, var(--bk-svc-option-text, var(--bk-heading-color, #1c1917)));
  box-shadow: 0 0 0 1px var(--bk-svc-option-selected-border, var(--bs-accent, var(--hb-accent, var(--bk-btn-accent, #007aff))));
}

.service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-label,
.service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-description {
  color: inherit;
}

.service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-option__icon,
.service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-option__icon i {
  color: var(--bk-service-choice-option-icon-color, var(--bk-service-extra-icon-color, var(--bk-btn-accent, #333333))) !important;
}

.service-booking .service-choice-option img {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  margin-bottom: 8px;
  object-fit: cover;
}

.service-booking .service-choice-option__icon {
  font-size: var(--bk-ui-icon-box-size);
  line-height: 1;
  margin-bottom: 10px;
  color: var(--bk-service-choice-option-icon-color, var(--bk-service-extra-icon-color, var(--bk-btn-accent, #333333)));
}

.service-booking .service-choice-option__icon i {
  display: block;
  color: inherit;
}

.service-booking .extra-option__icon {
  font-size: var(--bk-ui-icon-box-size);
  line-height: 1;
  margin-bottom: 10px;
}

.service-booking .extra-option__icon i {
  display: block;
}

.service-booking .service-choice-label {
  font-weight: 600;
  color: var(--bk-svc-option-text, var(--bk-heading-color, #333333));
  margin-bottom: 0;
  font-size: var(--bk-svc-wizard-field-font-size, var(--bk-ui-field-font-size));
}

.service-booking .service-choice-description {
  font-size: var(--bk-svc-wizard-body-font-size, 0.9rem);
  color: var(--bk-body-color, #666666);
  line-height: 1.2;
}

@media (max-width: 768px) {
  .service-booking .service-choice-options,
  .service-booking .service-choice-options.service-extras-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  
  .service-booking .service-choice-option label {
    padding: 12px;
  }
  
  .service-booking .service-choice-option img {
    width: 50px;
    height: 50px;
  }
  
  .service-booking .form-row {
    grid-template-columns: 1fr;
    gap: 15px;
  }
}




.hotel-booking .guest-selection {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 30px;
}

/* Hotel step 1: guests, rooms, and range date on one row (classic full-width only) */
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-end;
  gap: 16px 20px;
  margin-bottom: 24px;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field {
  flex: 1 1 0;
  min-width: 0;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--dates {
  flex: 2 1 0;
  min-width: 0;
}

/* Phones and narrow columns, every rooms wizard (room page, [kezara_book_room] catalog, popup): the dates on
   their own full row, guests and rooms on the next. In one row the dates shrank to nothing on phones and the
   wizard ran past the screen edge. */
@media (max-width: 782px) {
  .hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row {
    flex-wrap: wrap;
  }

  .hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--dates {
    flex: 1 1 100%;
  }

  .hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--dates .bs-hotel-search-bar__group--dates {
    width: 100%;
    max-width: none;
  }

  .hotel-booking:not(.event-sidebar-module--narrow) :is(.booking-hotel-step1-field--guests, .booking-hotel-step1-field--guests.bs-hotel-party) {
    flex: 1 1 0;
    max-width: none;
  }
}

.hotel-booking:not(.hotel-booking--ui-sidebar) .booking-hotel-step1-field--dates .bs-hotel-wizard-dates-group {
  display: block;
  width: 100%;
}

.hotel-booking:not(.hotel-booking--ui-sidebar) .booking-hotel-step1-field--dates .bs-hotel-search-bar__label.bs-rooms-wizard-section-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
  color: var(
    --bk-rooms-wizard-section-label-color,
    var(--bk-rooms-field-label-color, var(--bk-heading-color, #333333))
  );
}

.hotel-booking .booking-hotel-date-range:not(.bs-hotel-search-bar__range-input) {
  padding: 12px;
  border: 2px solid #ddd;
  border-radius: var(--bk-ui-field-radius);
  font-size: var(--bk-ui-field-font-size);
  background: #fff;
  color: var(--bk-field-text, var(--bk-body-color, #1c1917));
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.3s ease;
}

.hotel-booking .booking-hotel-date-range:not(.bs-hotel-search-bar__range-input):hover,
.hotel-booking .booking-hotel-date-range:not(.bs-hotel-search-bar__range-input):focus {
  outline: none;
  border-color: var(--bk-btn-accent, #007aff);
  box-shadow: 0 0 0 3px rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.1);
}

/* Flatpickr anchor for dates button UX — keep in DOM only; field chrome elsewhere must not restyle it. */
.hotel-booking .bs-hotel-wizard-dates-group .bs-hotel-search-bar__range-input,
.rental-booking .rental-wizard-dates-group .bs-rental-search-bar__range-input,
.bs-hsr-summary-edit .bs-hsr-summary-edit__range-input {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  min-height: 0 !important;
  max-height: 1px !important;
  background: transparent !important;
  box-shadow: none !important;
}

.hotel-booking .bs-hotel-wizard-dates-group,
.rental-booking .rental-wizard-dates-group .bs-rental-search-bar__group--dates {
  position: relative;
}

/* The wizard's date group shares the search bar's classes; where the search CSS is also on the page
   (a list with Book popups, a search page) its `flex: 1 1 180px` would make the group 180 px tall inside
   the column field. */
.hotel-booking .bs-hotel-wizard-dates-group,
.rental-booking .rental-wizard-dates-group {
  flex: 0 0 auto;
}

.hotel-booking .flatpickr-calendar {
  z-index: 100050;
}

.hotel-booking .booking-hotel-packages-slot {
  margin-bottom: 20px;
}

.hotel-booking:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-hotel-extras-heading {
  margin: 0 0 0.65rem;
}

.hotel-booking .booking-hotel-multi-slots-wrap {
  margin-top: 14px;
  width: 100%;
  flex: 1 1 100%;
  min-width: 0;
  box-sizing: border-box;
}

.hotel-booking .booking-hotel-multi-slots-wrap .bs-single__section-title {
  margin: 0 0 0.35rem;
  color: var(
    --bk-rooms-wizard-section-label-color,
    var(--bk-rooms-field-label-color, var(--hb-text, var(--bk-heading-color, #333333)))
  );
}

/* Classic rooms wizard: section labels (check-in, guests, rooms, rates & packages) — not the Summary step title. */
.hotel-booking:not(.event-sidebar-module--narrow) :is(
  .bs-rooms-wizard-section-label,
  .bs-hotel-search-bar__label.bs-rooms-wizard-section-label,
  .bs-single__section-title.bs-rooms-wizard-section-label
) {
  font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-rooms-wizard-section-label-color,
    var(--bk-rooms-field-label-color, var(--hb-text, var(--bk-heading-color, #333333)))
  );
}

.hotel-booking .booking-hotel-multi-slots-wrap .description {
  margin: 0 0 0.5rem;
  font-size: var(--bk-rooms-wizard-body-font-size, 0.88rem);
  line-height: 1.45;
  color: var(--bk-rooms-wizard-row-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
}

.hotel-booking .booking-hotel-multi-slots-wrap ::selection {
  background: rgba(0, 0, 0, 0.16);
  color: var(--bk-rooms-wizard-row-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
}

.hotel-booking.event-sidebar-module--narrow .booking-hotel-multi-slots-wrap .description,
.hotel-booking.event-sidebar-module--narrow .booking-hotel-multi-slots-wrap .booking-hotel-slot-row__title,
.hotel-booking.event-sidebar-module--narrow .booking-hotel-multi-slots-wrap .booking-hotel-slot-row__title strong {
  color: var(--bk-compact-sidebar-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
}

.hotel-booking.event-sidebar-module--narrow .booking-hotel-multi-slots-wrap ::selection {
  background: rgba(255, 255, 255, 0.28);
  color: var(--bk-compact-sidebar-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
}

.hotel-booking .booking-hotel-multi-slots {
  width: 100%;
}

.hotel-booking .booking-hotel-slot-row {
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e8e8e8;
  width: 100%;
  box-sizing: border-box;
}

.hotel-booking .booking-hotel-slot-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0;
}

.hotel-booking .booking-hotel-slot-row__title {
  margin: 0 0 0.5rem;
  color: var(--bk-rooms-wizard-row-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
}

.hotel-booking .booking-hotel-slot-accommodation.guest-field {
  flex: 0 1 auto;
  min-width: 0;
  max-width: min(100%, 320px);
  width: 100%;
  margin-bottom: 12px;
}

.hotel-booking .booking-hotel-slot-accommodation.guest-field select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  cursor: pointer;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--guests,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--rooms {
  flex: 0 1 auto;
  max-width: min(100%, 160px);
}

.hotel-booking.event-sidebar-module--narrow .booking-hotel-slot-accommodation.guest-field {
  max-width: 100%;
}

.hotel-booking .date-field, .hotel-booking .guest-field {
  display: flex;
  flex-direction: column;
}

.hotel-booking .date-field label:not(.bs-rooms-wizard-section-label),
.hotel-booking .guest-field label:not(.bs-rooms-wizard-section-label) {
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--bk-rooms-field-label-color, var(--bk-heading-color, #333333));
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field label.bs-rooms-wizard-section-label {
  margin-bottom: 0.35rem;
}

.hotel-booking.event-sidebar-module--narrow .date-field label,
.hotel-booking.event-sidebar-module--narrow .guest-field label {
  font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
  color: var(
    --bk-compact-sidebar-label-color,
    var(--bk-rooms-field-label-color, var(--bk-heading-color, #333333))
  );
}

.hotel-booking:not(.event-sidebar-module--narrow) .date-field input:not(.bs-hotel-search-bar__range-input), .hotel-booking:not(.event-sidebar-module--narrow) .guest-field select {
  padding: 12px;
  border: 2px solid #ddd;
  border-radius: var(--bk-ui-field-radius);
  font-size: var(--bk-rooms-wizard-field-font-size, var(--bk-ui-field-font-size));
  background: white;
  color: var(--bk-field-text, var(--bk-body-color, #1c1917));
  cursor: pointer;
  transition: border-color 0.3s ease;
}

.hotel-booking:not(.event-sidebar-module--narrow) .date-field input:not(.bs-hotel-search-bar__range-input):focus, .hotel-booking:not(.event-sidebar-module--narrow) .guest-field select:focus {
  outline: none;
  border-color: var(--bk-btn-accent, #007aff);
  box-shadow: 0 0 0 3px rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.1);
}

.hotel-booking:not(.event-sidebar-module--narrow) .date-field input:not(.bs-hotel-search-bar__range-input):hover, .hotel-booking:not(.event-sidebar-module--narrow) .guest-field select:hover {
  border-color: var(--bk-btn-accent, #007aff);
}

/* Date picker styling */
.hotel-booking .date-field {
  position: relative;
}

.hotel-booking .date-field input[type="date"] {
  position: relative;
}

.hotel-booking .date-field input[type="date"]::-webkit-calendar-picker-indicator {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: auto;
  height: auto;
  color: transparent;
  background: transparent;
  cursor: pointer;
}

.hotel-booking .room-option {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  border: 2px solid #e0e0e0;
  border-radius: var(--bk-ui-field-radius);
  margin-bottom: 15px;
  transition: all 0.3s ease;
}

.hotel-booking .room-option:hover {
  border-color: var(--bk-btn-accent, #007aff);
  box-shadow: 0 4px 15px rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.1);
}

.hotel-booking .room-option.room-option--preferred {
  border-color: rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.35);
  background: rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.08);
}

.hotel-booking .room-info h4 {
  font-size: 1.2rem;
  margin-bottom: 5px;
  color: var(--bk-heading-color, #333333);
}

.hotel-booking .room-info p {
  color: var(--bk-body-color, #666666);
  margin-bottom: 10px;
}

.hotel-booking .room-price {
  font-weight: 600;
  color: var(--bk-btn-accent, #007aff);
  font-size: 1.1rem;
}

.hotel-booking .room-quantity {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hotel-booking .room-quantity label {
  font-weight: 600;
  color: var(--bk-heading-color, #333333);
}

.hotel-booking #booking-extras .extra-option {
	margin-bottom: 0;
}

.hotel-booking .extra-option {
  padding: 15px;
  border: 2px solid #e0e0e0;
  border-radius: var(--bk-ui-field-radius);
  margin-bottom: 10px;
  transition: all 0.3s ease;
}

.hotel-booking .extra-option:hover {
  border-color: var(--bk-btn-accent, #007aff);
}

.hotel-booking .extra-option label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
}

.hotel-booking .extra-name {
  font-weight: 600;
  color: var(--bk-heading-color, #333333);
}

.hotel-booking .extra-description {
  color: var(--bk-body-color, #666666);
  font-style: italic;
}

.hotel-booking .extra-price {
  font-weight: 600;
  color: var(--bk-btn-accent, #007aff);
}

.hotel-booking .booking-summary {
  background: #f8f9fa;
  padding: 20px;
  border-radius: var(--bk-ui-field-radius);
  margin-bottom: 30px;
}

.hotel-booking .summary-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  padding: 5px 0;
}

/* Tax note below total: block layout + full width so text aligns with summary-total (not flex-centered). */
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item.summary-item--tax-after-total {
  display: block;
  text-align: right;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  text-align: right;
  box-sizing: border-box;
}

/* Event / Tour classic wide summary — tax note below total (structured summary). */
.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item.summary-item--tax-after-total,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item.summary-item--tax-after-total {
  display: block;
  border-top: none;
  border-bottom: none;
  padding: 0.08rem 0 0;
  margin: 0.08rem 0 0;
  text-align: right;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-total + .summary-item--tax-after-total,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-total + .summary-item--tax-after-total {
  margin-top: 0.08rem;
  padding-top: 0;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item--tax-after-total .bs-booking-tax-note,
.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item--tax-after-total .description,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item--tax-after-total .bs-booking-tax-note,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item--tax-after-total .description {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  font-size: var(--bk-experiences-wizard-body-font-size, 0.72rem);
  line-height: 1.45;
  opacity: 1;
  text-align: right;
  box-sizing: border-box;
  color: var(--bk-experiences-wizard-summary-text-color, inherit);
}

/* Event / Tour classic wide summary — unified row labels, extras heading spacing. */
.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(
  .summary-item > span:first-child,
  .summary-extras h4
),
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(
  .summary-item > span:first-child,
  .summary-extras h4
) {
  margin: 0;
  padding: 0;
  font-family: var(--bk-heading-font-family, inherit);
  font-size: var(--bk-experiences-wizard-label-font-size, 0.8rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.3;
  color: var(
    --bk-experiences-wizard-summary-label-color,
    var(--bk-experiences-wizard-section-label-color, inherit)
  );
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item > span:not(:first-child),
.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(
  .event-summary-tickets-body,
  #event-summary-extras-list
) {
  font-size: var(--bk-experiences-wizard-body-font-size, 0.875rem);
  text-align: right;
  line-height: 1.45;
}

.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item > span:not(:first-child),
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(
  .tour-summary-tickets-body,
  #tour-summary-extras-list
) {
  font-size: var(--bk-experiences-wizard-body-font-size, 0.875rem);
  text-align: right;
  line-height: 1.45;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-total,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-total,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content:has(.event-wizard-summary) .booking-total,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content:has(.tour-wizard-summary) .booking-total {
  font-size: var(--bk-experiences-wizard-total-font-size, 0.875rem);
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-extras {
  margin: 0;
  padding: 0.4rem 0;
  border-bottom: 1px solid var(--bk-experiences-wizard-summary-border-color, var(--bk-experiences-wizard-row-border-color, var(--hb-border)));
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item.summary-item--tickets,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item.summary-item--tickets {
  flex-direction: column;
  align-items: stretch;
  gap: 0.15rem;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-item.summary-item--tickets > span:first-child,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-item.summary-item--tickets > span:first-child {
  flex: none;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras h4,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-extras h4 {
  margin: 0 0 0.15rem;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras :is(
  #event-summary-extras-list,
  #tour-summary-extras-list
) > :first-child,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-extras :is(
  #event-summary-extras-list,
  #tour-summary-extras-list
) > :first-child {
  margin-top: 0;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras .description,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-extras .description {
  margin: 0;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary #event-summary-extras-list,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary #tour-summary-extras-list {
  margin: 0;
  padding: 0;
}

/* Event / Tour classic wide wizard summary — Settings → Styling → Event / Tour */
.event-booking:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary {
  background: var(--bk-experiences-wizard-summary-bg, var(--bk-experiences-wizard-step-panel-bg, var(--bk-theme-panel, transparent)));
  border: var(--bk-experiences-wizard-summary-border-width, 0) solid
    var(--bk-experiences-wizard-summary-border-color, var(--bk-experiences-wizard-step-panel-border-color, var(--bk-theme-border, transparent)));
  border-radius: var(--bk-experiences-wizard-summary-border-radius, var(--bk-experiences-wizard-step-panel-border-radius, 8px));
  padding: 1rem 1.1rem;
  color: var(--bk-experiences-wizard-summary-text-color, var(--bk-experiences-wizard-row-text-color, var(--bk-body-color, #1c1917)));
}

.event-booking:not(.event-sidebar-module--narrow) .extra-row,
.tour-booking:not(.event-sidebar-module--narrow) .extra-row,
.event-booking:not(.event-sidebar-module--narrow) .ticket-row,
.tour-booking:not(.event-sidebar-module--narrow) .ticket-row {
  background: var(--bk-experiences-wizard-row-bg, var(--bk-theme-panel, #f9f9f9));
  color: var(--bk-experiences-wizard-row-text-color, var(--bk-body-color, var(--bk-body-color, #1c1917)));
  font-size: var(--bk-experiences-wizard-field-font-size, var(--bk-ui-field-font-size));
  border-radius: 12px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

.hotel-booking:not(:has(.booking-summary)) .summary-rooms,
.hotel-booking:not(:has(.booking-summary)) .summary-extras {
  margin: 20px 0;
}

.hotel-booking .summary-rooms h4, .hotel-booking .summary-extras h4 {
  margin-bottom: 10px;
  color: var(--bk-heading-color, #333333);
}

.hotel-booking .summary-total {
  border-top: 2px solid #e0e0e0;
  padding-top: 15px;
  margin-top: 20px;
  font-size: 1.2rem;
  text-align: right;
}

.hotel-booking .form-group {
  display: flex;
  flex-direction: column;
}

.hotel-booking .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.hotel-booking .form-group label {
  color: var(--bk-heading-color, #333333);
}

.hotel-booking .form-group input {
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.hotel-booking .form-group textarea,
.hotel-booking .form-group select {
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.hotel-booking .form-group textarea {
  resize: vertical;
}

.hotel-booking .form-group input:focus,
.hotel-booking .form-group textarea:focus,
.hotel-booking .form-group select:focus {
  outline: none;
}

@media (max-width: 768px) {
  
  
  .hotel-booking .guest-selection {
    grid-template-columns: 1fr;
  }
  
  .hotel-booking .room-option {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
  
  .hotel-booking .form-row {
    grid-template-columns: 1fr;
  }
}

/* Spinner styles */
.booking-loading {
  text-align: center;
  padding: 20px;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .spinner {
  border: 4px solid #f3f3f3;
  border-top: 4px solid var(--bk-btn-accent, #007aff);
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
  margin: 0 auto;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.bs-double-booking-confirm,
.bs-waitlist-confirm {
  display: block;
  clear: both;
  margin: 1rem 0 0.75rem;
  padding: 16px 18px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: var(--radius-md, 8px);
  background: rgba(0, 122, 255, 0.04);
  text-align: center;
}

.bs-waitlist-confirm {
  background: rgba(114, 174, 230, 0.08);
}

.event-booking.event-sidebar-module--narrow .booking-step-content > .bs-double-booking-confirm,
.tour-booking.event-sidebar-module--narrow .booking-step-content > .bs-double-booking-confirm,
.event-booking.event-sidebar-module--narrow .booking-step-content > .bs-waitlist-confirm,
.tour-booking.event-sidebar-module--narrow .booking-step-content > .bs-waitlist-confirm {
  width: 100%;
  max-width: 100%;
  margin-top: 1rem;
  margin-bottom: 0.75rem;
}

.event-booking.event-sidebar-module--narrow.bs-double-booking-active .step-actions.event-sidebar-card__actions:has(.booking-prev-step),
.tour-booking.event-sidebar-module--narrow.bs-double-booking-active .step-actions.event-sidebar-card__actions:has(.booking-prev-step),
.event-booking.bs-double-booking-active .step-actions.event-sidebar-card__actions,
.tour-booking.bs-double-booking-active .step-actions.event-sidebar-card__actions,
.event-booking.bs-double-booking-active .step-actions.event-sidebar-card__actions:has(.booking-prev-step),
.tour-booking.bs-double-booking-active .step-actions.event-sidebar-card__actions:has(.booking-prev-step),
.event-booking.bs-double-booking-active .step-actions,
.tour-booking.bs-double-booking-active .step-actions {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  pointer-events: none !important;
}

.event-booking.event-sidebar-module--narrow.bs-double-booking-active .step-actions.event-sidebar-card__actions:has(.booking-prev-step) :is(.booking-prev-step, .booking-submit, .booking-next-step, .event-sidebar-cta, a.booking-next-step),
.tour-booking.event-sidebar-module--narrow.bs-double-booking-active .step-actions.event-sidebar-card__actions:has(.booking-prev-step) :is(.booking-prev-step, .booking-submit, .booking-next-step, .event-sidebar-cta, a.booking-next-step),
.event-booking.bs-double-booking-active .step-actions.event-sidebar-card__actions :is(.booking-prev-step, .booking-submit, .booking-next-step, .event-sidebar-cta, a.booking-next-step),
.tour-booking.bs-double-booking-active .step-actions.event-sidebar-card__actions :is(.booking-prev-step, .booking-submit, .booking-next-step, .event-sidebar-cta, a.booking-next-step),
.step-actions.bs-double-booking-step-actions-hidden,
.step-actions.bs-double-booking-step-actions-hidden :is(.booking-prev-step, .booking-submit, .booking-next-step, .event-sidebar-cta, a.booking-next-step),
.event-booking.bs-double-booking-active .booking-prev-step[hidden],
.event-booking.bs-double-booking-active .booking-submit[hidden],
.tour-booking.bs-double-booking-active .booking-prev-step[hidden],
.tour-booking.bs-double-booking-active .booking-submit[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.step-actions.bs-double-booking-step-actions-hidden {
  display: none !important;
}

.bs-double-booking-confirm__lead {
  margin: 0 0 8px;
  font-weight: 600;
  line-height: 1.4;
}

.bs-double-booking-confirm__prompt {
  margin: 0 0 16px;
  line-height: 1.45;
}

.bs-double-booking-confirm__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
  width: 100%;
}

.bs-double-booking-confirm__actions :is(.booking-submit, .booking-prev-step) {
  width: 100%;
  max-width: none;
  min-width: 0;
  flex: none;
  margin: 0 !important;
  white-space: normal;
}

.bs-double-booking-confirm__cancel {
  background: transparent;
  color: inherit;
  border: 1px solid rgba(0, 0, 0, 0.12);
}

.event-booking:not(.event-sidebar-module--narrow) .bs-double-booking-confirm,
.tour-booking:not(.event-sidebar-module--narrow) .bs-double-booking-confirm,
.event-booking:not(.event-sidebar-module--narrow) .bs-waitlist-confirm,
.tour-booking:not(.event-sidebar-module--narrow) .bs-waitlist-confirm {
  max-width: 520px;
  margin-left: auto;
  margin-right: auto;
}

.event-booking.event-sidebar-module--narrow .bs-double-booking-confirm__actions :is(.booking-submit, .booking-prev-step),
.tour-booking.event-sidebar-module--narrow .bs-double-booking-confirm__actions :is(.booking-submit, .booking-prev-step) {
  flex: none;
  width: 100%;
  min-width: 0;
  max-width: none;
}

/* Step actions */
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .step-actions {
  text-align: center;
  margin-top: 20px;
}

/* Button styles — primary + secondary (Back) from Settings → Styling */
.booking-next-step,
.booking-submit {
  margin: 10px 5px;
  display: inline-flex;
}

.booking-prev-step,
button.booking-prev-step {
  margin: 10px 5px;
  display: inline-flex;
}

.booking-step-content {
  padding: 15px 0;
  border-top: 1px solid #eee;
}

.event-booking:not(.event-sidebar-module--narrow):not(.event-booking--archive-popup) > .booking-step-content:not([data-step="1"]),
.event-booking:not(.event-sidebar-module--narrow):not(.event-booking--archive-popup) > .booking-step-content[data-step="1"]:has(.event-wizard-step1-tickets--solo),
.tour-booking:not(.event-sidebar-module--narrow) > .booking-step-content:not([data-step="1"]) {
  margin-top: var(--bk-experiences-wizard-step-panel-margin-top, 0);
  padding: var(--bk-experiences-wizard-step-panel-padding-y, 40px) var(--bk-experiences-wizard-step-panel-padding-x, 40px);
  background-color: var(--bk-experiences-wizard-step-panel-bg, var(--bk-theme-panel, transparent));
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, 8px);
  border-style: solid;
  border-left-width: var(--bk-experiences-wizard-step-panel-border-width, 0);
  border-right-width: var(--bk-experiences-wizard-step-panel-border-width, 0);
  border-bottom-width: var(--bk-experiences-wizard-step-panel-border-width, 0);
  border-top-width: var(--bk-experiences-wizard-step-panel-border-top-width, 0);
  border-left-color: var(--bk-experiences-wizard-step-panel-border-color, transparent);
  border-right-color: var(--bk-experiences-wizard-step-panel-border-color, transparent);
  border-bottom-color: var(--bk-experiences-wizard-step-panel-border-color, transparent);
  border-top-color: var(--bk-experiences-wizard-step-panel-border-top-color, transparent);
  box-sizing: border-box;
}

.hotel-booking:not(.event-sidebar-module--narrow) > .booking-step-content {
  margin-top: var(--bk-rooms-wizard-step-panel-margin-top, 0);
  padding: var(--bk-rooms-wizard-step-panel-padding-y, 40px) var(--bk-rooms-wizard-step-panel-padding-x, 40px);
  background-color: var(--bk-rooms-wizard-step-panel-bg, var(--bk-theme-panel, var(--hb-accent-soft, #f0f4fa)));
  border-radius: var(--bk-rooms-wizard-step-panel-border-radius, 8px);
  border-style: solid;
  border-color: var(--bk-rooms-wizard-step-panel-border-color, var(--bk-theme-border, var(--bk-border-color, #d1d5db)));
  border-top-width: var(--bk-rooms-wizard-step-panel-border-width, 0);
  border-right-width: var(--bk-rooms-wizard-step-panel-border-width, 0);
  border-bottom-width: var(--bk-rooms-wizard-step-panel-border-width, 0);
  border-left-width: var(--bk-rooms-wizard-step-panel-border-width, 0);
  box-sizing: border-box;
}

.hotel-booking:not(.event-sidebar-module--narrow) > .booking-step-content + .booking-step-content {
  margin-top: var(--bk-rooms-wizard-step-panel-margin-top, 12px);
}

/* Service wizard: no divider line above step panels */
.service-booking .booking-step-content {
  border-top: none;
  padding-top: 8px;
}

/* Service summary box: service-wizard-summary.css (shared Book popup summary tokens). */

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .ticket-row,
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 12px 0;
  padding: 12px;
  background: var(--bk-theme-panel, #f9f9f9);
  color: var(--bk-body-color, var(--bk-body-color, #1c1917));
  border-radius: 12px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row.extra-row--qty {
  align-items: center;
  gap: 0;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon {
  flex: 0 0 var(--bk-ui-icon-row-box-size);
  width: var(--bk-ui-icon-row-box-size);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--bk-ui-icon-size);
  line-height: 1;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon:not(.extra-row__icon--empty) {
  margin-right: 0.5rem;
}

.hotel-booking .extra-row__icon:not(.extra-row__icon--empty) {
  color: var(--bk-rooms-wizard-extra-icon-color, var(--bk-btn-accent, var(--bk-rooms-wizard-row-text-color, #333333)));
}

.event-booking .extra-row__icon:not(.extra-row__icon--empty),
.tour-booking .extra-row__icon:not(.extra-row__icon--empty),
.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
  color: var(--bk-experiences-wizard-extra-icon-color, var(--bk-btn-accent, var(--bk-experiences-wizard-row-text-color, #333333)));
}

.rental-booking .extra-row__icon:not(.extra-row__icon--empty),
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
  color: var(--bk-rentals-wizard-extra-icon-color, var(--bk-btn-accent, var(--bk-rentals-wizard-row-text-color, #333333)));
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
  color: var(--bk-rooms-wizard-extra-icon-color, var(--bk-btn-accent, var(--bk-rooms-wizard-row-text-color, #333333)));
}

.event-booking .extra-row__icon:not(.extra-row__icon--empty) > i,
.tour-booking .extra-row__icon:not(.extra-row__icon--empty) > i,
.hotel-booking .extra-row__icon:not(.extra-row__icon--empty) > i,
.rental-booking .extra-row__icon:not(.extra-row__icon--empty) > i {
  color: inherit;
}

.service-booking .extra-option__icon,
.service-booking .extra-option__icon i {
  color: var(--bk-service-extra-icon-color, var(--bk-btn-accent, #333333));
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon--empty {
  display: none;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > span {
  display: inline-block;
  line-height: 1;
  font-style: normal;
  font-variant: normal;
  text-transform: none;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .fa-solid,
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .fas {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .fa-regular,
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .far {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400 !important;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .fa-brands,
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .fab {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .dashicons {
  font-family: dashicons !important;
  font-weight: 400 !important;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .bi {
  font-family: bootstrap-icons !important;
  font-weight: 400 !important;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__icon > .ti {
  font-family: tabler-icons !important;
  font-weight: 400 !important;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__main {
  flex: 1 1 auto;
  min-width: 0;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__main label {
  display: block;
  font-size: var(--bk-ui-field-font-size-mobile);
  cursor: pointer;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__qty-wrap {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row__qty-wrap .extra-quantity-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bk-body-color, #666666);
}

/* Hotel checkbox-type extras: hide redundant "Qty" label — checkmark, not a number. */
.hotel-booking .extra-row__qty-wrap:has(.extra-quantity[data-input-type="checkbox"]) .extra-quantity-label {
  display: none;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .ticket-row label,
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .extra-row:not(.extra-row--qty) label {
  flex: 1;
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-body-font-size, 16px);
  color: inherit;
}




/* Phones: the classic step panel keeps 16px side padding (40px ate a quarter of a 400px screen). */
@media (max-width: 520px) {
  :is(.event-booking, .tour-booking):not(.event-sidebar-module--narrow) {
    --bk-experiences-wizard-step-panel-padding-x: 16px;
    --bk-experiences-wizard-step-panel-padding-y: 24px;
  }

  .hotel-booking:not(.event-sidebar-module--narrow) {
    --bk-rooms-wizard-step-panel-padding-x: 16px;
    --bk-rooms-wizard-step-panel-padding-y: 24px;
  }

  .rental-booking:not(.event-sidebar-module--narrow) {
    --bk-rentals-wizard-step-panel-padding-x: 16px;
    --bk-rentals-wizard-step-panel-padding-y: 24px;
  }
}



/* Wide wizard: extras row shell — module row tokens (--bk-wizard-extras-row-*). */
:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) :is(.ticket-row, .extra-row.extra-row--qty, .room-option) {
  box-sizing: border-box;
  margin: 0;
  /* At least a field's height, taller when a long name needs two lines (it was cut off at a fixed height). */
  padding: 0.3rem var(--bk-ui-field-padding-x);
  min-height: var(--bk-ui-field-height);
  height: auto;
  max-height: none;
  align-items: center;
  gap: var(--bk-ui-row-gap);
  background: var(--bk-wizard-extras-row-bg, #ffffff);
  color: var(--bk-wizard-extras-row-text, var(--bk-body-color, #1c1917));
  border: var(--bk-ui-field-border-width) solid var(--bk-wizard-extras-row-border-color, #e0e0e0);
  border-radius: var(--bk-ui-field-radius);
  box-shadow: none;
  overflow: hidden;
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
  flex: 0 0 var(--bk-ui-icon-box-size);
  width: var(--bk-ui-icon-box-size);
  font-size: var(--bk-ui-icon-size);
  margin-right: 0;
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow)
) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow)
) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i {
  color: var(
    --bk-wizard-extras-row-icon-color,
    var(--bk-experiences-wizard-extra-icon-color, var(--bk-btn-accent, var(--bk-experiences-wizard-row-text-color, #333333)))
  );
}

:is(
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
:is(
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i,
:is(
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > span {
  color: var(
    --bk-wizard-extras-row-icon-color,
    var(--bk-btn-accent, var(--bk-wizard-extras-row-text, #333333))
  );
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-description {
  display: none;
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__main :is(label, strong.extra-name) {
  color: inherit;
  /* Up to two lines, then "…" (one line cut "Lunch vid långborden" to "Lunch vid lå…" on phones). */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  margin: 0;
  white-space: normal;
  overflow: hidden;
  line-height: 1.2;
  font-size: 0.875rem;
}

/* Small phones: three lines, so the price at the end of a long name ("Tekniker under hela hyrtiden - 650,00 kr")
   is not the part cut off with "…". */
@media (max-width: 480px) {
  :is(
    .event-booking:not(.event-sidebar-module--narrow),
    .tour-booking:not(.event-sidebar-module--narrow),
    .hotel-booking:not(.event-sidebar-module--narrow),
    .rental-booking.rental-booking--ui-classic
  ) .extra-row.extra-row--qty .extra-row__main :is(label, strong.extra-name) {
    -webkit-line-clamp: 3;
  }
}

/* The name has its own line here, so the dash before the price is not needed. */
.hotel-booking:not(.event-sidebar-module--narrow) .extra-row.extra-row--qty .extra-sep {
  display: none;
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__qty-wrap {
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  min-height: 0;
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-quantity-label {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: nowrap;
  font-size: var(--bk-ui-field-compact-label-font-size);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bk-field-text, var(--bk-wizard-extras-row-text, var(--bk-body-color, #666666)));
  opacity: 1;
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-price {
  color: var(--bk-field-text, var(--bk-wizard-extras-row-text, inherit));
}

:is(
  .event-booking:not(.event-sidebar-module--narrow),
  .tour-booking:not(.event-sidebar-module--narrow),
  .hotel-booking:not(.event-sidebar-module--narrow),
  .rental-booking.rental-booking--ui-classic
) .extra-row.extra-row--qty .extra-row__qty-wrap:has(:is(.extra-quantity[data-input-type="checkbox"], .extra-checkbox, .hotel-extra-check, .tour-extra-check)) .extra-quantity-label {
  display: none;
}

/* Event / Tour wide-step wizards: own row tokens (Settings → Booking wizards → Event / Tour). */
.event-booking:not(.event-sidebar-module--narrow) .ticket-row label,
.tour-booking:not(.event-sidebar-module--narrow) .ticket-row label {
  color: inherit;
}

.hotel-booking:not(.event-sidebar-module--narrow) .room-option .room-info h4,
.hotel-booking:not(.event-sidebar-module--narrow) .room-option .room-info p {
  color: inherit;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field .bs-frontend-select,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field .bs-select-wrap.bs-frontend-select {
  display: block;
  width: 100%;
  max-width: 100%;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row :is(
  .booking-hotel-date-range,
  .bs-hotel-search-bar__dates-btn,
  .guest-field .bs-frontend-select__trigger
) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field select:not(.bs-frontend-select__native) {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  cursor: pointer;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field .bs-frontend-select__trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  overflow: visible;
  text-align: left;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .date-field label,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field label,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .date-field label.bs-rooms-wizard-section-label,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field label.bs-rooms-wizard-section-label {
  font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-rooms-wizard-section-label-color,
    var(--bk-rooms-field-label-color, var(--bk-heading-color, #333333))
  );
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-step-content .booking-step-heading,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-step-content .bs-single__section-title,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-step-content .bs-booking-wizard-section-heading,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-step-content .booking-summary__legend {
  font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-rooms-wizard-section-label-color,
    var(--bs-muted, #57534e)
  );
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .booking-summary__legend,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary :is(
  .summary-item > span:first-child,
  .booking-summary__legend
) {
  font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.35;
  color: var(
    --bk-rooms-wizard-summary-label-color,
    var(--bk-rooms-wizard-section-label-color, var(--bs-muted, #57534e))
  );
  text-align: left;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary :is(
  .summary-item > span:first-child,
  .summary-item__label,
  .summary-extras h4
) {
  font-size: var(--bk-rentals-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.35;
  color: var(
    --bk-rentals-wizard-summary-label-color,
    var(--bk-rentals-wizard-section-label-color, var(--bs-muted, #57534e))
  );
  text-align: left;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item > span:last-child,
.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item__value,
.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary #rental-summary-extras-list,
.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item--period .summary-item__period-line {
  font-size: var(--bk-rentals-wizard-body-font-size, inherit);
  text-align: right;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-step-content .booking-step-heading,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-step-content .bs-booking-wizard-section-heading {
  display: block;
  margin: 0 0 0.65rem;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-rooms,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-extras {
  font-size: var(--bk-rooms-wizard-body-font-size, inherit);
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item > span:last-child {
  text-align: right;
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--bk-rooms-wizard-body-font-size, inherit);
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary :is(
  #summary-rooms-list,
  #summary-extras-list,
  .booking-summary-room-line
) {
  text-align: right;
  font-size: var(--bk-rooms-wizard-body-font-size, inherit);
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item:has(+ .summary-rooms) {
  border-bottom: none;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-rooms {
  margin-top: 0;
  padding-top: 0;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-extras {
  border-top: calc(var(--bk-rooms-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rooms-wizard-summary-border-color, var(--hb-border));
  border-bottom: calc(var(--bk-rooms-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rooms-wizard-summary-border-color, var(--hb-border));
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
  margin-bottom: 0.35rem;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-total {
  font-size: var(--bk-rooms-wizard-total-font-size, 1.2rem);
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description {
  font-size: var(--bk-rooms-wizard-body-font-size, 0.72rem);
}

.hotel-booking:not(.event-sidebar-module--narrow) .extra-row.extra-row--qty .extra-row__main :is(label, strong.extra-name),
.hotel-booking:not(.event-sidebar-module--narrow) .room-option .room-info :is(h4, strong) {
  font-size: var(--bk-rooms-wizard-field-font-size, var(--bk-ui-field-font-size));
}

.hotel-booking:not(.event-sidebar-module--narrow) .room-option .room-info p,
.hotel-booking:not(.event-sidebar-module--narrow) .room-option .room-info span {
  font-size: var(--bk-rooms-wizard-body-font-size, inherit);
}

/* Event / Tour classic wide steps: section labels + combined tickets/extras step layout. */
.event-booking:not(.event-sidebar-module--narrow):not(.event-booking--archive-popup) > .booking-step-content[data-step="1"]:has(.event-wizard-step1-tickets--solo) > .bs-booking-wizard-section-heading.booking-step-heading,
.event-booking:not(.event-sidebar-module--narrow):not(.event-booking--archive-popup) > .booking-step-content[data-step="2"]:has(.event-wizard-step1-tickets--solo) > .bs-booking-wizard-section-heading.booking-step-heading,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .bs-booking-wizard-section-heading:not(.bs-booking-wizard-section-heading--extras),
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .event-booking-step-tickets-extras__tickets-heading,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .bs-booking-wizard-section-heading:not(.bs-booking-wizard-section-heading--extras),
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .tour-booking-step-tickets-extras__tickets-heading,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-extras .booking-step-heading,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-extras .booking-step-heading,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content:has(.event-wizard-summary) .booking-step-heading,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content:has(.event-wizard-summary) .bs-booking-wizard-section-heading,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content:has(.tour-wizard-summary) .booking-step-heading,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content:has(.tour-wizard-summary) .bs-booking-wizard-section-heading {
  display: block;
  margin: 0 0 0.65rem;
  font-size: var(--bk-experiences-wizard-step-heading-font-size, 0.8125rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-experiences-wizard-section-label-color,
    var(--bs-muted, #57534e)
  );
}

.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .bs-booking-wizard-section-heading--extras,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .event-booking-step-tickets-extras__extras-heading,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .bs-booking-wizard-section-heading--extras,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .tour-booking-step-tickets-extras__extras-heading {
  display: block;
  margin: 0 0 0.65rem;
  padding-top: 1.75rem;
  font-size: var(--bk-experiences-wizard-step-heading-font-size, 0.8125rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-experiences-wizard-section-label-color,
    var(--bs-muted, #57534e)
  );
}

.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .event-booking-step-tickets-extras__tickets,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .tour-booking-step-tickets-extras__tickets {
  padding-bottom: 0.75rem;
  box-sizing: border-box;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .booking-step-lead,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .booking-step-lead,
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-tickets-extras .description.booking-step-lead,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-tickets-extras .description.booking-step-lead {
  margin: 0 0 0.85rem;
  font-size: var(--bk-experiences-wizard-body-font-size, 0.875rem);
  line-height: 1.45;
  color: var(--bk-experiences-wizard-lead-color, var(--bk-body-color, #666666));
}

.event-booking.event-booking--ui-classic:not(.event-sidebar-module--narrow) .event-booking-step-tickets-extras__tickets,
.tour-booking.tour-booking--ui-classic:not(.event-sidebar-module--narrow) .tour-booking-step-tickets-extras__tickets {
  max-width: 50%;
  width: 100%;
}

@media (max-width: 520px) {
  .event-booking.event-booking--ui-classic:not(.event-sidebar-module--narrow) .event-booking-step-tickets-extras__tickets,
  .tour-booking.tour-booking--ui-classic:not(.event-sidebar-module--narrow) .tour-booking-step-tickets-extras__tickets {
    max-width: 100%;
  }
}

.event-booking .extra-quantity[data-input-type="checkbox"],
.event-booking .extra-checkbox,
.tour-booking .tour-extra-check,
.tour-booking .extra-quantity[data-input-type="checkbox"],
.rental-booking .extra-checkbox,
.rental-booking .extra-quantity[data-input-type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: var(--bk-ui-check-size);
  height: var(--bk-ui-check-size);
  min-width: var(--bk-ui-check-size);
  max-width: var(--bk-ui-check-size);
  padding: 0;
  margin: 0;
  border: var(--bk-ui-field-border-width) solid var(--bk-field-border-color, var(--bk-field-border-color, #8c8f94));
  border-radius: var(--bk-ui-check-radius, 4px);
  background: #fff;
  display: inline-grid;
  place-content: center;
  cursor: pointer;
  box-sizing: border-box;
  flex: 0 0 auto;
}

.hotel-booking .extra-quantity[data-input-type="checkbox"],
.hotel-booking .hotel-extra-check {
  appearance: none;
  -webkit-appearance: none;
  width: var(--bk-ui-check-size);
  height: var(--bk-ui-check-size);
  min-width: var(--bk-ui-check-size);
  padding: 0;
  margin: 0;
  border: var(--bk-ui-field-border-width) solid var(--bk-field-border-color, var(--bk-field-border-color, #8c8f94));
  border-radius: var(--bk-ui-check-radius, 4px);
  background: #fff;
  display: inline-grid;
  place-content: center;
  cursor: pointer;
  box-sizing: border-box;
}

.event-booking .extra-quantity[data-input-type="checkbox"]::before,
.event-booking .extra-checkbox::before,
.tour-booking .tour-extra-check::before,
.tour-booking .extra-quantity[data-input-type="checkbox"]::before,
.rental-booking .extra-checkbox::before,
.rental-booking .extra-quantity[data-input-type="checkbox"]::before {
  content: "";
  width: var(--bk-ui-check-mark-size);
  height: var(--bk-ui-check-mark-size);
  transform: scale(0);
  transition: transform 120ms ease-in-out;
  clip-path: polygon(14% 44%, 0 60%, 43% 100%, 100% 16%, 84% 2%, 41% 72%);
  background: var(--bk-btn-accent, #007aff);
}

.hotel-booking .extra-quantity[data-input-type="checkbox"]::before,
.hotel-booking .hotel-extra-check::before {
  content: "";
  width: var(--bk-ui-check-mark-size);
  height: var(--bk-ui-check-mark-size);
  transform: scale(0);
  transition: transform 120ms ease-in-out;
  clip-path: polygon(14% 44%, 0 60%, 43% 100%, 100% 16%, 84% 2%, 41% 72%);
  background: var(--bk-btn-accent, #007aff);
}

.event-booking .extra-quantity[data-input-type="checkbox"]:checked::before,
.event-booking .extra-checkbox:checked::before,
.tour-booking .tour-extra-check:checked::before,
.tour-booking .extra-quantity[data-input-type="checkbox"]:checked::before,
.rental-booking .extra-checkbox:checked::before,
.rental-booking .extra-quantity[data-input-type="checkbox"]:checked::before,
.hotel-booking .extra-quantity[data-input-type="checkbox"]:checked::before,
.hotel-booking .hotel-extra-check:checked::before {
  transform: scale(1);
}

.event-booking .extra-quantity[data-input-type="checkbox"]:focus-visible,
.event-booking .extra-checkbox:focus-visible,
.tour-booking .tour-extra-check:focus-visible,
.tour-booking .extra-quantity[data-input-type="checkbox"]:focus-visible,
.rental-booking .extra-checkbox:focus-visible,
.rental-booking .extra-quantity[data-input-type="checkbox"]:focus-visible,
.hotel-booking .extra-quantity[data-input-type="checkbox"]:focus-visible,
.hotel-booking .hotel-extra-check:focus-visible {
  outline: none;
  border-color: var(--bk-field-border-color, var(--bk-field-border-color, #8c8f94));
  box-shadow: none;
}

.service-booking .extra-option input.service-extra-input[data-input-type="number"] {
  position: absolute;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  width: 54px;
  min-width: 54px;
  z-index: 2;
}

.service-booking .extra-option input.service-extra-input[data-input-type="number"] + label {
  /* The input sits bottom:10px with ~38px rendered height (spinner arrows included), i.e. it occupies
     the bottom ~48px of the card — 42px of reserved space here left it overlapping the price by a few
     px. 56px leaves a clean ~8px gap between the price and the input. */
  padding-bottom: 56px;
}

.booking-summary__event-name {
  margin: 0 0 0.75rem;
  font-size: 1.15rem;
  line-height: 1.3;
}

.booking-summary__event-name strong {
  font-weight: 700;
}

.booking-next-step,
.booking-submit {
  margin-top: 20px;
  display: inline-flex;
}

.booking-prev-step,
button.booking-prev-step {
  margin-top: 20px;
  display: inline-flex;
}

.booking-summary p {
  font-size: var(--bk-body-font-size);
  margin: 8px 0;
}

.booking-total {
  font-weight: bold;
  font-size: calc(var(--bk-heading-font-size, 22px) * 0.82);
  margin-top: 10px;
  text-align: right;
}

/* Custom booking fields (Settings → Forms → Booking) before payment step */
.booking-wizard-custom-fields {
  margin-bottom: 1.25rem;
}

/* Extra space when “Additional details” follows the dynamic summary (e.g. event wizard). */
.booking-summary + .booking-wizard-custom-fields {
  margin-top: 2rem;
  padding-top: 0.25rem;
}

.event-booking.event-sidebar-module--narrow .booking-summary + .booking-wizard-custom-fields,
.tour-booking.event-sidebar-module--narrow .booking-summary + .booking-wizard-custom-fields,
.rental-booking.event-sidebar-module--narrow .booking-summary + .booking-wizard-custom-fields,
.event-booking.event-sidebar-module--narrow .booking-summary .booking-wizard-custom-fields,
.tour-booking.event-sidebar-module--narrow .booking-summary .booking-wizard-custom-fields,
.rental-booking.event-sidebar-module--narrow .booking-summary .booking-wizard-custom-fields {
  color: var(
    --bk-compact-sidebar-summary-text-color,
    var(--bk-compact-sidebar-text-color, inherit)
  );
}

/* Tour/event sidebar: custom fields are embedded inside .booking-summary on payment step. */
.booking-summary .booking-wizard-custom-fields {
  margin-top: 1.5rem;
  padding-top: 0.35rem;
}

.booking-summary .summary-extras + .booking-wizard-custom-fields {
  margin-top: 1.75rem;
}

/* Tour sidebar extras step: stack rows with breathing room (archive modal zeros row margin). */
.tour-booking.event-sidebar-module--narrow :is(#tour-booking-extras, .tour-booking-extras-step__inner),
.event-booking.event-sidebar-module--narrow :is(#booking-global-extras, .event-sidebar-extras-step) {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.booking-wizard-custom-fields__title {
  margin-bottom: 0.75rem;
  color: var(
    --bk-heading-color,
    var(--bk-body-color, var(--bs-muted, #57534e))
  );
}

.event-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__title,
.tour-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__title,
.rental-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__title,
.hotel-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__title {
  color: var(
    --bk-compact-sidebar-label-color,
    var(--bk-compact-sidebar-text-color, inherit)
  );
}

.booking-wizard-custom-fields--layout-standard .booking-wizard-custom-fields__grid,
.booking-wizard-custom-fields__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--bk-ui-field-gap);
  row-gap: 0;
  align-items: start;
}

.booking-wizard-custom-fields__row {
  margin-bottom: var(--bk-ui-field-gap);
  min-width: 0;
}

/* A text field, select or textarea fills its row (the row's span sets the width), in every module's details step. */
.booking-wizard-custom-fields__row > .booking-wizard-custom-field-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.booking-wizard-custom-fields__row--logged-in-prefill {
  display: none !important;
}

/* A question hidden by its condition ("Show only when", booking-custom-field-conditions.js sets hidden): module
   rules such as .hotel-booking .form-group { display: flex } must not show it again. */
.booking-wizard-custom-fields__row[hidden] {
  display: none !important;
}

.booking-wizard-custom-fields__row--span-1 { grid-column: span 1; }
.booking-wizard-custom-fields__row--span-2 { grid-column: span 2; }
.booking-wizard-custom-fields__row--span-3 { grid-column: span 3; }
.booking-wizard-custom-fields__row--span-4 { grid-column: span 4; }
.booking-wizard-custom-fields__row--span-5 { grid-column: span 5; }
.booking-wizard-custom-fields__row--span-6 { grid-column: span 6; }
.booking-wizard-custom-fields__row--span-7 { grid-column: span 7; }
.booking-wizard-custom-fields__row--span-8 { grid-column: span 8; }
.booking-wizard-custom-fields__row--span-9 { grid-column: span 9; }
.booking-wizard-custom-fields__row--span-10 { grid-column: span 10; }
.booking-wizard-custom-fields__row--span-11 { grid-column: span 11; }
.booking-wizard-custom-fields__row--span-12 { grid-column: span 12; }

/*
 * A narrow form (phone, compact sidebar, popup): fields set to a part of the width (50 %, 33 % …) take the
 * whole row, or an email field gets about 120 px. The grid is the size container, the rows query it.
 */
.booking-wizard-custom-fields__grid {
  container-type: inline-size;
}

@container (max-width: 420px) {
  .booking-wizard-custom-fields__row[class*="booking-wizard-custom-fields__row--span-"] {
    grid-column: 1 / -1 !important;
  }
}

.booking-wizard-custom-fields__row label:first-of-type {
  background: transparent;
  color: var(--bk-heading-color, var(--bk-body-color, #333333));
}

.event-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__row > label:first-of-type,
.tour-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__row > label:first-of-type,
.rental-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__row > label:first-of-type,
.hotel-booking.event-sidebar-module--narrow .booking-wizard-custom-fields__row > label:first-of-type {
  font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
  color: var(
    --bk-compact-sidebar-label-color,
    var(--bk-compact-sidebar-text-color, inherit)
  );
  background: transparent;
}

.booking-wizard-custom-fields .required,
.bs-rsvp-widget .required {
  color: #d63638;
  font-weight: 700;
}

.booking-wizard-custom-fields .required--text,
.bs-rsvp-widget .required--text {
  color: inherit;
  font-weight: 400;
  font-size: 0.875em;
}

.booking-wizard-custom-fields--required-none .required,
.booking-wizard-custom-fields--required-none .required--text {
  display: none;
}

.booking-wizard-custom-fields .screen-reader-text,
.bs-rsvp-widget .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(1px, 1px, 1px, 1px) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.booking-wizard-custom-fields--labels-off .booking-wizard-custom-fields__row > label:first-of-type:not(.bookklar-cf-options__item) {
  margin-bottom: 0;
}

.booking-wizard-custom-fields--labels-off .booking-wizard-custom-fields__row > label.screen-reader-text + .booking-wizard-custom-field-input,
.booking-wizard-custom-fields--labels-off .booking-wizard-custom-fields__row > label.screen-reader-text + textarea,
.booking-wizard-custom-fields--labels-off .booking-wizard-custom-fields__row > label.screen-reader-text + select {
  margin-top: 0;
}

.booking-wizard-terms {
  width: 100%;
  margin: 0.75rem 0 0;
  text-align: left;
}

.booking-wizard-terms__label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-weight: 400;
  font-size: 0.875rem;
  line-height: 1.45;
  cursor: pointer;
}

.booking-wizard-terms__checkbox {
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.booking-wizard-terms__link {
  text-decoration: underline;
}

.booking-wizard-terms__link:hover,
.booking-wizard-terms__link:focus-visible {
  text-decoration-thickness: 2px;
}

.booking-wizard-terms--invalid .booking-wizard-terms__label {
  color: #b32d2e;
}

.booking-wizard-terms__error {
  display: block;
  margin-top: 0.35rem;
}

/* Red like the fields' own errors (bookklar-form-field__error is only styled inside the field rows). */
.booking-wizard-terms .booking-wizard-terms__error {
  font-size: 0.85em;
  line-height: 1.4;
  color: #8a2424;
}

.booking-wizard-payment-terms {
  width: 100%;
  margin: 0.75rem 0 0;
  text-align: left;
}

.bs-hsr-panel--contact .booking-wizard-payment-terms {
  margin-bottom: 0.25rem;
}

.bs-rsvp-widget .booking-wizard-payment-terms {
  margin-top: 0.75rem;
  margin-bottom: 0;
}

.booking-wizard-pay-on-site-notice {
  margin: 0 0 0.75rem;
  /* Generic notice follows the theme body text. Each surface (Classic full width, Event/Tour, Compact
   * sidebar, search results, Combined checkout, popups) sets its own color; none leaks into another. */
  color: var(--bk-body-color, inherit);
  font-weight: 600;
}

.bs-combined-booking-continue .booking-wizard-pay-on-site-notice,
.bs-combined-order-checkout .booking-wizard-pay-on-site-notice {
  color: var(--bk-pay-on-site-notice-color, var(--bk-body-color, inherit));
}

.booking-summary + .booking-wizard-pay-on-site-notice,
.booking-summary + .booking-wizard-payment-terms,
.booking-summary .booking-wizard-pay-on-site-notice,
.booking-summary .booking-wizard-payment-terms {
  margin-top: 0.85rem;
}

/* Rooms / Rental wizard: pay-on-location notice right-aligned under tax / Total. */
.hotel-booking .booking-summary + .booking-wizard-pay-on-site-notice,
.rental-booking .booking-summary + .booking-wizard-pay-on-site-notice,
.hotel-booking .booking-summary .booking-wizard-pay-on-site-notice,
.rental-booking .booking-summary .booking-wizard-pay-on-site-notice {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0.35rem 0 0;
  padding: 0;
  text-align: right;
  box-sizing: border-box;
  line-height: 1.35;
  border: none;
}

.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary + .booking-wizard-pay-on-site-notice,
.rental-booking:not(.event-sidebar-module--narrow) .booking-summary + .booking-wizard-pay-on-site-notice,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-pay-on-site-notice,
.rental-booking:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-pay-on-site-notice {
  font-size: 0.875rem;
}

/* Classic full width: the notice sits in the step content, not always next to the summary. */
.hotel-booking:not(.event-sidebar-module--narrow) .booking-wizard-pay-on-site-notice {
  color: var(--bk-rooms-wizard-summary-pay-on-site-color, var(--bk-body-color, inherit));
}

.rental-booking:not(.event-sidebar-module--narrow) .booking-wizard-pay-on-site-notice {
  color: var(--bk-rentals-wizard-summary-pay-on-site-color, var(--bk-body-color, inherit));
}

.rental-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.rental-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description,
.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-item--tax-after-total .bs-booking-tax-note {
  color: var(--bk-rentals-wizard-summary-text-color, inherit);
  opacity: 1;
}

.event-booking:not(.event-sidebar-module--narrow) .booking-wizard-pay-on-site-notice,
.tour-booking:not(.event-sidebar-module--narrow) .booking-wizard-pay-on-site-notice {
  color: var(--bk-experiences-wizard-summary-pay-on-site-color, var(--bk-body-color, inherit));
}

.hotel-booking.event-sidebar-module--narrow .booking-summary + .booking-wizard-pay-on-site-notice,
.rental-booking.event-sidebar-module--narrow .booking-summary + .booking-wizard-pay-on-site-notice,
.hotel-booking.event-sidebar-module--narrow .booking-summary .booking-wizard-pay-on-site-notice,
.rental-booking.event-sidebar-module--narrow .booking-summary .booking-wizard-pay-on-site-notice {
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.875rem));
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .event-wizard-payment-total,
.booking-wizard-payment-total {
  margin: 0.75rem 0 0;
}

.bs-rsvp-widget .booking-wizard-terms {
  margin-bottom: 0;
}

.bs-rsvp-widget--labels-off .form-group > label.screen-reader-text + .form-control,
.bs-rsvp-widget.booking-wizard-custom-fields--labels-off .form-group > label.screen-reader-text + .form-control {
  margin-top: 0;
}

.booking-wizard-custom-fields__checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-weight: normal;
}

.booking-wizard-custom-fields__checkbox input[type="checkbox"] {
  margin-top: 0.2rem;
}

.booking-wizard-custom-fields__help {
  margin: 0.35rem 0 0;
  font-size: 0.9em;
  opacity: 0.85;
}

.booking-wizard-custom-fields__row .bookklar-cf-options {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.booking-wizard-custom-fields__row .bookklar-cf-options__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: normal;
  margin: 0;
}

.booking-wizard-custom-fields__row .bookklar-cf-options__item input:not([type="checkbox"], [type="radio"]) {
  margin: 0;
  width: auto;
  max-width: none;
}

.booking-wizard-custom-fields__row--invalid > label:first-of-type {
  color: #8a2424;
}

.booking-wizard-custom-fields__row .bookklar-form-field__input--invalid,
.booking-wizard-custom-fields__row .booking-wizard-custom-field-input.bookklar-form-field__input--invalid {
  border-color: #d63638;
  box-shadow: 0 0 0 1px rgba(214, 54, 56, 0.2);
}

.booking-wizard-custom-fields__row .bookklar-form-field__error {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85em;
  line-height: 1.4;
  color: #8a2424;
}

/* Custom field inputs — width/layout; chrome from frontend-field-chrome.css */
.event-booking.booking-steps-wrapper .booking-wizard-custom-fields__row :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.tour-booking.booking-steps-wrapper .booking-wizard-custom-fields__row :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.hotel-booking.booking-steps-wrapper .booking-wizard-custom-fields__row :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
.bs-booking-login-gate .booking-wizard-custom-fields__row :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  font-family: var(--bk-body-font-family, inherit);
}

/* Event sidebar template: empty main column when there is no calendar */
.event-booking--ui-sidebar .event-sidebar-step1-main-placeholder {
  min-height: 140px;
  border-radius: var(--bk-ui-field-radius);
  background: var(--bk-theme-panel, #f6f7f9);
  border: 1px dashed var(--bs-border, #e2e4e7);
}

/* Compact single-post layout: root is .booking-steps-wrapper.bs-booking-wizard-sidebar (one node). */
.event-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
.tour-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
.hotel-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
.rental-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
.service-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar {
  max-width: 350px;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
  padding: 1.35rem 1.25rem 1.5rem;
  background: var(--bk-compact-sidebar-bg, var(--bk-rooms-panel-bg, var(--bk-theme-panel, #f9f7f2)));
  border: var(--bk-compact-sidebar-border-width, 1px) solid var(--bk-compact-sidebar-border-color, var(--bs-border, #e0ddd4));
  border-radius: var(--bk-compact-sidebar-border-radius, 8px);
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-body-font-size, 16px);
  color: var(--bk-compact-sidebar-text-color, var(--bs-text, var(--bk-body-color, #1a1a1a)));
}

/* Under the content (960 px and narrower) the card takes the whole width (350px left a gap on the right);
   beside the content its 350 px column still holds it. */
@media (max-width: 960px) {
  .event-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
  .tour-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
  .hotel-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
  .rental-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar,
  .service-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar {
    max-width: 100%;
  }
}

.hotel-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar {
  background: var(--bk-compact-sidebar-bg, var(--bk-rooms-panel-bg, var(--bk-theme-panel, #f9f7f2)));
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__kicker,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__kicker,
.hotel-booking.event-sidebar-module--narrow .event-sidebar-card__kicker,
.rental-booking.event-sidebar-module--narrow .event-sidebar-card__kicker {
  margin: 0 0 0.55rem;
  font-family: var(--bk-heading-font-family, inherit);
  font-size: var(--bk-compact-sidebar-step-heading-font-size, var(--bk-compact-sidebar-label-font-size, 0.72rem));
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-muted, #57534e)));
  line-height: 1.3;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__kicker--tickets,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__kicker--tickets {
  margin-top: 1.25rem;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__kicker--price,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__kicker--price {
  margin-bottom: 0.35rem;
}

/* Under the date dropdown the line repeated the chosen option word for word: shown to screen readers only (it
   announces the change). Under the calendar (no dropdown) it stays visible. */
:is(.event-booking, .tour-booking).event-sidebar-module--narrow .event-sidebar-occurrence-select ~ .event-sidebar-departure-live {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-departure-static__line1,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-static__line1,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live__line1,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live__line1,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live__datetime,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live__datetime,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-static__datetime,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-static__datetime {
  color: var(--bk-compact-sidebar-text-color, var(--bs-text, #1a1a1a));
}

.event-booking.event-sidebar-module--narrow .event-sidebar-departure-static__selected-label,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-static__selected-label,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live__lbl,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live__lbl {
  color: var(--bs-accent, #b89968);
  font-weight: 600;
  margin-right: 0.15em;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-departure-static__line1,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-static__line1,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live__line1,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live__line1 {
  margin: 0 0 0.35rem;
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.95rem));
  line-height: 1.45;
  color: var(--bk-compact-sidebar-text-color, var(--bs-text, #1a1a1a));
}

.event-booking.event-sidebar-module--narrow .event-sidebar-departure-static__title,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-static__title,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live__title,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live__title {
  display: block;
  margin-top: 0.2rem;
}

.event-booking--ui-sidebar-calendar.event-sidebar-module--narrow .event-sidebar-cal-selection .event-sidebar-departure-static__title,
.tour-booking--ui-sidebar-calendar.event-sidebar-module--narrow .tour-sidebar-cal-selection .event-sidebar-departure-static__title,
.event-booking--ui-sidebar-calendar.event-sidebar-module--narrow .event-sidebar-cal-selection .event-cal-selected-meta,
.tour-booking--ui-sidebar-calendar.event-sidebar-module--narrow .tour-sidebar-cal-selection .tour-cal-selected-meta {
  margin-top: 0;
  font-family: var(--bk-body-font-family, inherit);
  font-weight: 700;
  color: var(--bk-compact-sidebar-text-color, var(--bs-text, #1a1a1a));
}

.event-booking--ui-sidebar-calendar.event-sidebar-module--narrow .event-sidebar-cal-selection .event-sidebar-departure-static__line1,
.tour-booking--ui-sidebar-calendar.event-sidebar-module--narrow .tour-sidebar-cal-selection .event-sidebar-departure-static__line1,
.event-booking--ui-sidebar-calendar.event-sidebar-module--narrow .event-sidebar-cal-selection .event-sidebar-departure-static__line2,
.tour-booking--ui-sidebar-calendar.event-sidebar-module--narrow .tour-sidebar-cal-selection .event-sidebar-departure-static__line2 {
  font-family: var(--bk-body-font-family, inherit);
}

.event-booking.event-sidebar-module--narrow .event-sidebar-departure-static__line2,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-static__line2,
.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live__line2,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live__line2 {
  margin: 0;
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.95rem));
  line-height: 1.45;
  color: var(--bk-compact-sidebar-text-color, var(--bs-text, #1a1a1a));
}

.event-booking.event-sidebar-module--narrow .event-sidebar-departure-live,
.tour-booking.event-sidebar-module--narrow .event-sidebar-departure-live {
  margin-top: 0.65rem;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-occurrence-select,
.tour-booking.event-sidebar-module--narrow .event-sidebar-occurrence-select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin-bottom: 0.35rem;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-people-select,
.tour-booking.event-sidebar-module--narrow .event-sidebar-people-select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.event-booking.event-sidebar-module--narrow .guest-field > label,
.tour-booking.event-sidebar-module--narrow .guest-field > label,
.rental-booking.event-sidebar-module--narrow .guest-field > label {
  font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
  line-height: 1.35;
}

.rental-booking.event-sidebar-module--narrow .guest-field .bs-select-wrap,
.event-booking.event-sidebar-module--narrow .guest-field .bs-select-wrap,
.tour-booking.event-sidebar-module--narrow .guest-field .bs-select-wrap,
.hotel-booking.event-sidebar-module--narrow .guest-field .bs-select-wrap,
.hotel-booking.event-sidebar-module--narrow .guest-field .bs-frontend-select {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Compact sidebar: guest/room selects — width/layout; chrome from frontend-field-chrome.css */
:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow {
  --bk-compact-sidebar-control-text-color: var(--bk-compact-sidebar-row-text-color, var(--bk-body-color, #1c1917));
  --bk-compact-sidebar-row-height: var(--bk-ui-field-height);
}

.event-booking.event-sidebar-module--narrow .guest-field select,
.event-booking.event-sidebar-module--narrow .event-sidebar-people-select,
.event-booking.event-sidebar-module--narrow .event-sidebar-occurrence-select,
.tour-booking.event-sidebar-module--narrow .guest-field select,
.tour-booking.event-sidebar-module--narrow .event-sidebar-people-select,
.tour-booking.event-sidebar-module--narrow .event-sidebar-occurrence-select,
.hotel-booking.event-sidebar-module--narrow .guest-field select,
.rental-booking.event-sidebar-module--narrow .guest-field select,
.rental-booking.event-sidebar-module--narrow .rental-booking-guests-select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Compact sidebar: same height + readable text on standalone field controls (date, select) */
:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow :is(
  .booking-hotel-date-range,
  .rental-range-input,
  .event-sidebar-occurrence-select,
  .event-sidebar-people-select,
  .guest-field select,
  .rental-booking-guests-select
) {
  box-sizing: border-box;
}

/* Compact sidebar: ticket/extras row shell = at least the date field's height, taller when a long name needs
   several lines (a fixed height cut "Single room supplement (only with an adult ticket)" off at the top and bottom). */
:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow :is(
  .ticket-row,
  .extra-row.extra-row--qty
),
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  min-height: var(--bk-compact-sidebar-row-height);
  height: auto;
  max-height: none;
  padding: 2px 0.5rem 2px 0.35rem;
  margin: 0.35rem 0 0;
  gap: 0.35rem 0.45rem;
  border-radius: var(--bk-ui-field-radius);
  overflow: hidden;
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow :is(
  .ticket-row:first-child,
  .extra-row.extra-row--qty:first-child
) {
  margin-top: 0;
}

/* Qty inputs inside ticket/extras rows — chrome from frontend-field-chrome.css; flex only here. */
:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow :is(
  .ticket-row input[type="number"],
  .ticket-row input.ticket-quantity,
  .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"])
) {
  flex: 0 0 auto;
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow .extra-row.extra-row--qty :is(
  .extra-quantity[data-input-type="checkbox"],
  .extra-checkbox
) {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  min-width: 1.25rem;
  max-width: 1.25rem;
  min-height: 0;
  margin: 0;
  padding: 0;
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  min-height: 0;
  height: auto;
}

.rental-booking.event-sidebar-module--narrow .rental-range-field label {
  font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-muted, #646970)));
}

.rental-booking.event-sidebar-module--narrow .guest-field > label {
  font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
  color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-muted, #646970)));
}

/* Custom select trigger in compact sidebars — chrome and caret in frontend-field-chrome.css */
.event-booking.event-sidebar-module--narrow .bs-frontend-select__trigger,
.tour-booking.event-sidebar-module--narrow .bs-frontend-select__trigger,
.rental-booking.event-sidebar-module--narrow .bs-frontend-select__trigger,
.hotel-booking.event-sidebar-module--narrow .bs-frontend-select__trigger {
  position: relative;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: left;
}/* Compact sidebar: V-chevron carets (native + custom select triggers) */

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow .bs-frontend-select .bs-frontend-select__trigger::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  pointer-events: none;
  opacity: 0.92;
}/* Event/tour-bokning: alla select i wizardn ska ha vit fältbakgrund (tema kan annars göra den genomskinlig) */

.event-booking.event-sidebar-module--narrow .event-sidebar-card__price,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__price {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bk-compact-sidebar-divider-color, var(--bk-compact-sidebar-border-color, var(--bs-border, #e0ddd4)));
}

.event-booking.event-sidebar-module--narrow .event-sidebar-price-amount,
.tour-booking.event-sidebar-module--narrow .event-sidebar-price-amount {
  display: block;
  margin-top: 0.25rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--bs-text, #1a1a1a);
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__footer .step-actions,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__footer .step-actions {
  margin-top: 0;
}

.event-booking.event-sidebar-module--narrow button.event-sidebar-cta,
.tour-booking.event-sidebar-module--narrow button.event-sidebar-cta,
.event-booking.event-sidebar-module--narrow .event-sidebar-cta.booking-next-step,
.tour-booking.event-sidebar-module--narrow .event-sidebar-cta.booking-next-step {
  display: block;
  width: 100%;
  margin: 0;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__actions,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__actions {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: stretch;
  margin-top: 1rem;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__actions {
  padding-top: 1rem;
  border-top: 1px solid var(--bk-compact-sidebar-divider-color, var(--bk-compact-sidebar-border-color, var(--bs-border, #e0ddd4)));
}

.tour-booking.event-sidebar-module--narrow .event-sidebar-card__actions {
  padding-top: 0;
  border-top: none;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__actions .event-sidebar-cta,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__actions .event-sidebar-cta {
  order: 2;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-card__actions .event-sidebar-btn-secondary,
.tour-booking.event-sidebar-module--narrow .event-sidebar-card__actions .event-sidebar-btn-secondary {
  order: 1;
}

/* Back + Next/Complete: equal halves across full module width */
.event-booking.event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(.booking-prev-step),
.tour-booking.event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(.booking-prev-step) {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: stretch;
  gap: 0.5rem;
  width: 100%;
  margin-top: 0.75rem;
}

.event-booking.event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(.booking-prev-step) :is(.booking-prev-step, .booking-next-step, .booking-submit, .event-sidebar-cta, a.booking-next-step),
.tour-booking.event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(.booking-prev-step) :is(.booking-prev-step, .booking-next-step, .booking-submit, .event-sidebar-cta, a.booking-next-step) {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: none;
  margin: 0;
  order: unset;
  display: inline-flex;
  white-space: normal;
}

.event-booking.event-sidebar-module--narrow .event-sidebar-btn-secondary,
.tour-booking.event-sidebar-module--narrow .event-sidebar-btn-secondary {
  display: block;
  width: 100%;
}

.event-booking.event-sidebar-module--narrow .booking-step-content.event-sidebar-card--step .booking-step-lead,
.tour-booking.event-sidebar-module--narrow .booking-step-content.event-sidebar-card--step .booking-step-lead {
  margin-top: 0;
  margin-bottom: 0.85rem;
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, var(--bk-body-font-size, 0.9rem)));
  line-height: 1.45;
  color: var(--bk-compact-sidebar-text-color, var(--bs-text, var(--bk-body-color, inherit)));
}

/* Compact sidebar: tickets + extras blocks share the same row rhythm as summary-item. */
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--tickets,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--tickets,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.15rem;
  margin: 0;
  padding: 0.4rem 0;
  border-top: 1px solid var(
    --bk-compact-sidebar-summary-border-color,
    var(--bk-compact-sidebar-divider-color, var(--bs-border, rgba(0, 0, 0, 0.08)))
  );
  border-bottom: none;
}

.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--tickets > span:first-child,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--tickets > span:first-child,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4 {
  margin: 0;
  padding: 0;
}

.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras :is(
  .description,
  .booking-summary-extras-empty,
  #event-summary-extras-list,
  #tour-summary-extras-list
),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras :is(
  .description,
  .booking-summary-extras-empty,
  #event-summary-extras-list,
  #tour-summary-extras-list
),
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras :is(
  #rental-summary-extras-list
) {
  margin: 0;
  padding: 0;
}

/* Compact sidebar — summary body copy uses body text tokens; labels use kickers below. */
.event-booking.event-sidebar-module--narrow .booking-summary,
.tour-booking.event-sidebar-module--narrow .booking-summary,
.rental-booking.event-sidebar-module--narrow .booking-summary,
.hotel-booking.event-sidebar-module--narrow .booking-summary {
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-body-font-size, inherit);
}

.event-booking.event-sidebar-module--narrow .booking-summary p,
.tour-booking.event-sidebar-module--narrow .booking-summary p,
.rental-booking.event-sidebar-module--narrow .booking-summary p {
  font-family: var(--bk-body-font-family, inherit);
  font-size: 0.875rem;
  line-height: 1.45;
  margin: 0;
  color: inherit;
}

.event-booking.event-sidebar-module--narrow .booking-summary__event-name,
.tour-booking.event-sidebar-module--narrow .booking-summary__event-name {
  margin: 0 0 0.65rem;
  font-family: var(--bk-body-font-family, inherit);
  font-size: 0.875rem;
  line-height: 1.45;
}

.event-booking.event-sidebar-module--narrow .booking-summary__event-name strong,
.tour-booking.event-sidebar-module--narrow .booking-summary__event-name strong {
  font-family: inherit;
  font-weight: 700;
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-item > span:not(:first-child),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item > span:not(:first-child),
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item > span:not(:first-child),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item > span:not(:first-child),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item__label + span,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item__label + span,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item__label + span,
.event-booking.event-sidebar-module--narrow .booking-summary :is(
  .event-summary-tickets-body,
  .tour-summary-tickets-body,
  #event-summary-extras-list,
  #tour-summary-extras-list,
  .booking-summary-extras-empty
),
.tour-booking.event-sidebar-module--narrow .booking-summary :is(
  .event-summary-tickets-body,
  .tour-summary-tickets-body,
  #event-summary-extras-list,
  #tour-summary-extras-list,
  .booking-summary-extras-empty
),
.rental-booking.event-sidebar-module--narrow .booking-summary :is(
  #rental-summary-extras-list,
  .booking-summary-extras-empty
),
.hotel-booking.event-sidebar-module--narrow .booking-summary :is(
  #summary-rooms-list,
  #summary-extras-list
) {
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.875rem));
  line-height: 1.45;
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) .summary-item__label,
.hotel-booking.event-sidebar-module--narrow .booking-summary :is(.booking-summary__legend, .bs-single__section-title) {
  margin: 0 0 0.15rem;
  font-family: var(--bk-heading-font-family, inherit);
  font-size: var(--bk-compact-sidebar-label-font-size, 0.72rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  line-height: 1.3;
  color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, inherit));
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) .summary-item__label {
  margin: 0 0 0.15rem;
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow
  :is(.js-bs-summary-fees-wrap, .summary-fees-wrap, .booking-summary)
  .summary-item.summary-item--fee
  :is(.summary-item__label, .summary-item__value) {
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.875rem));
  font-weight: 400;
  text-transform: none;
  letter-spacing: normal;
  line-height: 1.45;
  color: var(
    --bk-compact-sidebar-summary-text-color,
    var(--bk-compact-sidebar-text-color, inherit)
  );
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking).event-sidebar-module--narrow
  :is(.js-bs-summary-fees-wrap, .summary-fees-wrap, .booking-summary)
  .summary-item.summary-item--fee
  .summary-item__value {
  font-weight: 600;
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras {
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.875rem));
}

.event-booking.event-sidebar-module--narrow .booking-summary .booking-summary-extras-empty,
.tour-booking.event-sidebar-module--narrow .booking-summary .booking-summary-extras-empty {
  margin: 0;
  font-size: var(--bk-compact-sidebar-body-font-size, var(--bk-compact-sidebar-text-font-size, 0.875rem));
  color: inherit;
  opacity: 0.92;
}

.event-booking.event-sidebar-module--narrow .booking-total,
.tour-booking.event-sidebar-module--narrow .booking-total,
.rental-booking.event-sidebar-module--narrow .booking-total,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-total,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-total,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-total {
  font-family: var(--bk-body-font-family, inherit);
  font-size: var(--bk-compact-sidebar-total-font-size, 0.875rem);
  font-weight: 700;
  margin-top: 0;
  padding-top: 0.4rem;
  border-top: 1px solid var(
    --bk-compact-sidebar-summary-border-color,
    var(--bk-compact-sidebar-divider-color, rgba(0, 0, 0, 0.08))
  );
  color: var(
    --bk-compact-sidebar-summary-text-color,
    var(--bk-compact-sidebar-text-color, inherit)
  );
}

.event-booking.event-sidebar-module--narrow .booking-total strong,
.tour-booking.event-sidebar-module--narrow .booking-total strong,
.rental-booking.event-sidebar-module--narrow .booking-total strong,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-total strong,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-total strong,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total strong,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-total strong {
  font-family: inherit;
  color: inherit;
  font-weight: 700;
}

.event-booking.event-sidebar-module--narrow .booking-wizard-pay-on-site-notice,
.tour-booking.event-sidebar-module--narrow .booking-wizard-pay-on-site-notice,
.rental-booking.event-sidebar-module--narrow .booking-wizard-pay-on-site-notice {
  color: var(
    --bk-compact-sidebar-pay-on-site-notice-color,
    var(--bk-compact-sidebar-text-color, inherit)
  );
}

.tour-booking.event-sidebar-module--narrow .tour-booking-step-extras,
.event-booking.event-sidebar-module--narrow .booking-step-content.event-sidebar-card--step.tour-booking-step-extras {
  padding-top: 0.35rem;
}

/* Tour payment step: space above Amount due (below summary / custom fields). */
.tour-booking .tour-wizard-payment-total {
  margin-top: 1.2rem;
}

.event-booking.event-sidebar-module--narrow .screen-reader-text,
.tour-booking.event-sidebar-module--narrow .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Ticket mode: white row + qty, label flush left with room so name/price stay one line */
.event-booking.event-sidebar-module--narrow .ticket-row,
.tour-booking.event-sidebar-module--narrow .ticket-row {
  justify-content: flex-start;
  align-items: center;
  gap: 0.35rem 0.45rem;
  padding: 0 0.5rem 0 0.35rem;
  margin: 0.35rem 0 0;
  background: var(--bk-compact-sidebar-row-bg, #fff);
  box-shadow: none;
  border: 1px solid var(--bk-compact-sidebar-row-border-color, var(--bs-border, #e8e6e1));
  color: var(--bk-compact-sidebar-row-text-color, var(--bk-body-color, #1c1917));
}

.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__tickets-inner .ticket-row:first-child,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__tickets-inner .ticket-row:first-child {
  margin-top: 0;
}

.event-booking.event-sidebar-module--narrow .ticket-row label,
.tour-booking.event-sidebar-module--narrow .ticket-row label {
  flex: 1 1 auto;
  min-width: 0;
  text-align: left;
  padding-right: 0.2rem;
  font-size: var(--bk-compact-sidebar-field-font-size, var(--bk-ui-field-font-size));
  line-height: 1.2;
  color: inherit;
}

.event-booking.event-sidebar-module--narrow .ticket-row input.ticket-quantity,
.tour-booking.event-sidebar-module--narrow .ticket-row input.ticket-quantity,
.event-booking.event-sidebar-module--narrow .ticket-row input[type="number"],
.tour-booking.event-sidebar-module--narrow .ticket-row input[type="number"] {
  margin-left: auto;
}

.event-booking.event-sidebar-module--narrow .ticket-row .ticket-max-hint,
.tour-booking.event-sidebar-module--narrow .ticket-row .ticket-max-hint {
  white-space: nowrap;
}

/* Extras (step 2): same row shell, label and qty field as tickets */
:is(
  .event-booking,
  .tour-booking,
  .hotel-booking,
  .rental-booking
).event-sidebar-module--narrow .extra-row.extra-row--qty,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty {
  justify-content: flex-start;
  align-items: center;
  gap: var(--bk-ui-row-gap);
  /* At least a field's height, taller for a name over two or three lines (it ran out of the row). */
  padding: 0.3rem var(--bk-ui-field-padding-x) 0.3rem 0.35rem;
  margin: 0.35rem 0 0;
  min-height: var(--bk-ui-field-height);
  height: auto;
  max-height: none;
  background: var(--bk-wizard-extras-row-bg, #fff);
  box-shadow: none;
  border: var(--bk-ui-field-border-width) solid var(--bk-wizard-extras-row-border-color, var(--bs-border, #e8e6e1));
  border-radius: var(--bk-ui-field-radius);
  color: var(--bk-wizard-extras-row-text, var(--bk-body-color, #1c1917));
  overflow: hidden;
}

/* Small phones, every wizard layout: "QTY" beside the number field is hidden (screen readers still read it), so a long word such as
   "vandringsstavar" fits beside the field instead of running into it (and "Parking in the garage per night" is not cut to
   "Parking in the garage per…"); a word longer still breaks. */
@media (max-width: 480px) {
  :is(.event-booking, .tour-booking, .hotel-booking, .rental-booking) .extra-row.extra-row--qty .extra-row__qty-wrap .extra-quantity-label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }

  :is(.event-booking, .tour-booking, .hotel-booking, .rental-booking) .extra-row.extra-row--qty .extra-row__main label {
    overflow-wrap: anywhere;
  }
}

.event-booking.event-sidebar-module--narrow .event-sidebar-extras-step .extra-row.extra-row--qty:first-child,
.tour-booking.event-sidebar-module--narrow .event-sidebar-extras-step .extra-row.extra-row--qty:first-child,
.event-booking.event-sidebar-module--narrow #booking-global-extras .extra-row.extra-row--qty:first-child,
.tour-booking.event-sidebar-module--narrow #booking-global-extras .extra-row.extra-row--qty:first-child,
.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty:first-child,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty:first-child {
  margin-top: 0;
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
  flex: 0 0 var(--bk-ui-icon-box-size);
  width: var(--bk-ui-icon-box-size);
  font-size: var(--bk-ui-icon-size);
  margin-right: 0;
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i,
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i {
  color: var(
    --bk-wizard-extras-row-icon-color,
    var(--bk-experiences-wizard-extra-icon-color, var(--bk-btn-accent, var(--bk-experiences-wizard-row-text-color, #333333)))
  );
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty),
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > i,
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > span,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > span,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) > span {
  color: var(
    --bk-wizard-extras-row-icon-color,
    var(--bk-btn-accent, var(--bk-wizard-extras-row-text, #333333))
  );
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main,
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__main {
  flex: 1 1 auto;
  min-width: 0;
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main label,
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main label,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main strong.extra-name,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__main strong.extra-name {
  flex: none;
  display: block;
  font-size: var(--bk-compact-sidebar-field-font-size, var(--bk-ui-field-font-size));
  line-height: 1.2;
  padding-right: 0.2rem;
  margin: 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-description,
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-description,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-description,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-description,
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-description {
  display: none;
}

/* Compact sidebar / classic side panel: visible QTY label + inline qty row. */
:is(
  .event-booking,
  .tour-booking,
  .hotel-booking,
  .rental-booking
).event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__qty-wrap {
  flex: 0 0 auto;
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  margin-left: auto;
  min-height: 0;
  height: auto;
}

:is(
  .event-booking,
  .tour-booking,
  .hotel-booking,
  .rental-booking
).event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity-label,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-quantity-label {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
  white-space: nowrap;
  font-size: var(--bk-ui-field-compact-label-font-size);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bk-wizard-extras-row-text, var(--bk-body-color, #666));
}

:is(
  .event-booking,
  .tour-booking,
  .hotel-booking,
  .rental-booking
).event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap:has(:is(.extra-quantity[data-input-type="checkbox"], .extra-checkbox, .hotel-extra-check, .tour-extra-check)) .extra-quantity-label,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__qty-wrap:has(:is(.extra-quantity[data-input-type="checkbox"], .extra-checkbox)) .extra-quantity-label {
  display: none;
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]),
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]),
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]),
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
  flex: 0 0 auto;
  margin: 0;
}

.hotel-booking.event-sidebar-module--narrow .ticket-row input.ticket-quantity,
.hotel-booking.event-sidebar-module--narrow .ticket-row input[type="number"],
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
  flex: 0 0 auto;
  margin: 0;
}

.event-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"],
.event-booking.event-sidebar-module--narrow .extra-checkbox,
.tour-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"],
.tour-booking.event-sidebar-module--narrow .tour-extra-check,
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"],
.hotel-booking.event-sidebar-module--narrow .hotel-extra-check,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-checkbox,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"],
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-checkbox,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"] {
  border-color: var(--bk-field-border-color, var(--bk-field-border-color, #8c8f94));
}

.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-checkbox,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-checkbox {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  min-width: 1.25rem;
  max-width: 1.25rem;
  margin: 0;
  padding: 0;
}

.event-booking--ui-sidebar:not(.event-sidebar-module--narrow) .event-sidebar-cost-line {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--bs-border, #e2e4e7);
}

/* Event wizard: calendar + ticket sidebar ([book_event] and non-single contexts) */
.event-booking .rental-tour-wizard-step1-layout {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
}

.event-booking .rental-tour-wizard-step1-layout .bs-booking-wizard-step1-main {
  flex: 1 1 100%;
  min-width: 0;
}

.event-booking .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
.event-booking .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-step1-main {
  flex: 1 1 0;
  max-width: calc(100% - 316px);
}

.event-booking .bs-booking-wizard-sidebar {
  display: none;
  flex: 0 0 300px;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 1rem 1.15rem;
  background: var(--bk-theme-panel, #f6f7f9);
  border: 1px solid var(--bk-theme-border, var(--bs-border, #e2e4e7));
  border-radius: 8px;
}

.event-booking .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
.event-booking .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-sidebar {
  display: block;
}

.event-booking .bs-booking-wizard-sidebar__heading {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--bs-muted, #646970);
}

.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__heading,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__heading,
.hotel-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__heading,
.rental-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__heading {
  color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-muted, #646970)));
}

/* Wide-step extras heading: Event/Tour section label (not the Compact sidebar label). */
.event-booking:not(.event-sidebar-module--narrow) .booking-step-content.event-booking-step-extras .booking-step-heading,
.tour-booking:not(.event-sidebar-module--narrow) .booking-step-content.tour-booking-step-extras .booking-step-heading {
  color: var(--bk-experiences-wizard-section-label-color, var(--bs-muted, #646970));
}

.event-booking .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section {
  margin-top: 1.1rem;
  padding-top: 1.1rem;
  border-top: 1px solid var(--bs-border, #e2e4e7);
}

.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.rental-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.hotel-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section {
  border-top-color: var(--bk-compact-sidebar-divider-color, var(--bk-compact-sidebar-border-color, var(--bs-border, #e0ddd4)));
}

.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__section:not(.bs-booking-wizard-sidebar__tickets):not(.bs-booking-wizard-sidebar__guests) + .bs-booking-wizard-sidebar__footer,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__section:not(.bs-booking-wizard-sidebar__tickets):not(.bs-booking-wizard-sidebar__guests) + .bs-booking-wizard-sidebar__footer {
  border-top: none;
  margin-top: 0;
  padding-top: 0;
}

.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__tickets + .bs-booking-wizard-sidebar__footer,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__tickets + .bs-booking-wizard-sidebar__footer,
.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__guests + .bs-booking-wizard-sidebar__footer,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__guests + .bs-booking-wizard-sidebar__footer {
  margin-top: 1.25rem;
}

.event-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__tickets-inner .ticket-row:last-child,
.tour-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__tickets-inner .ticket-row:last-child {
  margin-bottom: 0.35rem;
}

.event-booking .bs-booking-wizard-sidebar .step-actions .booking-next-step {
  width: 100%;
  margin: 0;
  display: block;
}

/* Hide ticket sidebar block until a calendar slot is chosen (JS removes class). */
.bs-wizard-sidebar-tickets--locked {
  display: none !important;
}

@media (max-width: 782px) {
  .event-booking .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
  .event-booking .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-step1-main {
    flex: 1 1 100%;
    max-width: none;
  }

  .event-booking .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
  .event-booking .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-sidebar {
    flex: 1 1 100%;
  }
}

/* Tax disclosure: summary step only — not tickets, extras, or other wizard steps */
.booking-steps-wrapper .bs-booking-tax-note {
  display: none;
  margin: 0.35rem 0 0;
  max-width: 36rem;
  font-size: 0.8125rem;
  line-height: 1.3;
}

.booking-steps-wrapper .booking-summary .bs-booking-tax-note,
.booking-steps-wrapper .summary-item--tax .bs-booking-tax-note {
  display: block;
}

.booking-steps-wrapper .booking-summary__tax-note {
  margin-top: 0.65rem;
}

.booking-steps-wrapper .summary-item--tax {
  display: block;
}

.booking-steps-wrapper .summary-item--tax .bs-booking-tax-note {
  margin-top: 0;
}

/* Tax disclosure below total — no extra divider, smaller note */
.booking-steps-wrapper .summary-item--tax-after-total {
  display: block;
  border-top: none;
  border-bottom: none;
  padding: 0.1rem 0 0;
  margin: 0;
  text-align: right;
}

.booking-steps-wrapper .summary-item--tax-after-total .bs-booking-tax-note,
.booking-steps-wrapper .summary-item--tax-after-total .description {
  margin: 0;
  padding: 0;
  max-width: none;
  width: 100%;
  font-size: 0.72rem;
  line-height: 1.25;
  opacity: 0.92;
  text-align: right;
  box-sizing: border-box;
}

.booking-steps-wrapper .booking-summary .summary-total + .summary-item--tax-after-total,
.booking-steps-wrapper .booking-total + .summary-item--tax-after-total {
  margin-top: 0.1rem;
  padding-top: 0;
}

.event-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total,
.tour-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total,
.hotel-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total,
.rental-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total {
  margin-top: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total {
  text-align: right;
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-total,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-total,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-total {
  text-align: right;
}

/* Compact sidebar: divider above fee rows (after extras / summary body). */
.event-booking.event-sidebar-module--narrow .booking-summary + .js-bs-summary-fees-wrap:not([hidden]),
.tour-booking.event-sidebar-module--narrow .booking-summary + .js-bs-summary-fees-wrap:not([hidden]),
.rental-booking.event-sidebar-module--narrow .booking-summary + .js-bs-summary-fees-wrap:not([hidden]),
.hotel-booking.event-sidebar-module--narrow .booking-summary + .js-bs-summary-fees-wrap:not([hidden]),
.event-booking.event-sidebar-module--narrow .booking-summary .js-bs-summary-fees-wrap:not([hidden]),
.tour-booking.event-sidebar-module--narrow .booking-summary .js-bs-summary-fees-wrap:not([hidden]),
.rental-booking.event-sidebar-module--narrow .booking-summary .js-bs-summary-fees-wrap:not([hidden]),
.hotel-booking.event-sidebar-module--narrow .booking-summary .js-bs-summary-fees-wrap:not([hidden]),
.event-booking.event-sidebar-module--narrow .summary-extras + .js-bs-summary-fees-wrap:not([hidden]),
.tour-booking.event-sidebar-module--narrow .summary-extras + .js-bs-summary-fees-wrap:not([hidden]),
.rental-booking.event-sidebar-module--narrow .summary-extras + .js-bs-summary-fees-wrap:not([hidden]),
.hotel-booking.event-sidebar-module--narrow .summary-extras + .js-bs-summary-fees-wrap:not([hidden]) {
  border-top: 1px solid var(
    --bk-compact-sidebar-summary-border-color,
    var(--bk-compact-sidebar-divider-color, rgba(0, 0, 0, 0.08))
  );
  padding-top: 0.45rem;
  margin-top: 0;
}

.event-booking.event-sidebar-module--narrow .js-bs-summary-fees-wrap .summary-item--fee,
.tour-booking.event-sidebar-module--narrow .js-bs-summary-fees-wrap .summary-item--fee,
.rental-booking.event-sidebar-module--narrow .js-bs-summary-fees-wrap .summary-item--fee,
.hotel-booking.event-sidebar-module--narrow .js-bs-summary-fees-wrap .summary-item--fee,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--fee,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--fee,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--fee,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--fee {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  border-top: none;
  border-bottom: none;
  padding: 0.15rem 0 0.35rem;
}

/* Compact sidebar: divider under Total, then tax note (matches Rooms summary). */
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-total:has(+ .summary-item--tax-after-total.is-tax-visible),
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total:has(+ .summary-item--tax-after-total.is-tax-visible),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-total:has(+ .summary-item--tax-after-total.is-tax-visible),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-total:has(+ .summary-item--tax-after-total.is-tax-visible) {
  padding-bottom: 0.4rem;
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total {
  margin-top: 0;
  padding-top: 0;
}

.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total.is-tax-visible,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total.is-tax-visible,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total.is-tax-visible,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-total + .summary-item--tax-after-total.is-tax-visible {
  padding-top: 0.4rem;
  border-top: 1px solid var(
    --bk-compact-sidebar-summary-border-color,
    var(--bk-compact-sidebar-divider-color, rgba(0, 0, 0, 0.08))
  );
  border-bottom: none;
}

.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax-after-total.is-tax-visible,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax-after-total.is-tax-visible,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax-after-total.is-tax-visible,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax-after-total.is-tax-visible {
  border-bottom: none;
}

.event-booking.event-sidebar-module--narrow .summary-item--tax-after-total .bs-booking-tax-note,
.tour-booking.event-sidebar-module--narrow .summary-item--tax-after-total .bs-booking-tax-note,
.hotel-booking.event-sidebar-module--narrow .summary-item--tax-after-total .bs-booking-tax-note,
.rental-booking.event-sidebar-module--narrow .summary-item--tax-after-total .bs-booking-tax-note,
.event-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total .description,
.tour-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total .description {
  font-size: 0.62rem;
  line-height: 1.2;
  opacity: 0.88;
  margin: 0;
  text-align: right;
}

.event-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total :is(.bs-booking-tax-note, .description),
.hotel-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total :is(.bs-booking-tax-note, .description) {
  color: var(
    --bk-compact-sidebar-summary-text-color,
    var(--bk-compact-sidebar-text-color, var(--bs-text, var(--bk-body-color, #1c1917)))
  );
}

.booking-steps-wrapper .summary-item--tax-after-total.is-tax-visible,
.booking-steps-wrapper .booking-summary .summary-item--tax-after-total.is-tax-visible {
  display: block;
}

.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--tax-after-total .bs-booking-tax-note {
  display: block;
  width: 100%;
  max-width: none;
  font-size: 0.68rem;
  line-height: 1.3;
  opacity: 0.9;
  margin: 0;
  padding: 0;
  text-align: right;
  box-sizing: border-box;
}

.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item--tax,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax,
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--tax {
  border-bottom: none;
  border-top: none;
  padding-bottom: 0;
}

.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax .bs-booking-tax-note,
.tour-booking.event-sidebar-module--narrow .booking-summary .booking-summary__tax-note,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax .bs-booking-tax-note,
.event-booking.event-sidebar-module--narrow .booking-summary .booking-summary__tax-note,
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item--tax .bs-booking-tax-note,
.hotel-booking.event-sidebar-module--narrow .booking-summary .booking-summary__tax-note,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item--tax .bs-booking-tax-note,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .booking-summary__tax-note {
  font-size: 0.72rem;
  line-height: 1.35;
  opacity: 0.92;
}

.event-booking.event-sidebar-module--narrow .booking-total,
.tour-booking.event-sidebar-module--narrow .booking-total,
.hotel-booking.event-sidebar-module--narrow .booking-total,
.rental-booking.event-sidebar-module--narrow .booking-total {
  margin-bottom: 0;
}

.booking-steps-wrapper .booking-step-content > .summary-item--tax-after-total {
  text-align: right;
  margin-top: 0.15rem;
}

.booking-steps-wrapper .bs-combined-booking-continue,
.bs-hotel-search-results .bs-combined-booking-continue,
#bs-hotel-archive-modal .bs-combined-booking-continue {
	margin-top: 1rem;
	padding-top: 0;
	border-top: none;
	color: var(--bk-combined-surrounding-text, var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917)));
}

.bs-combined-booking-continue__lead {
	margin: 0 0 0.65rem;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917));
}

.bs-combined-booking-continue__actions {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 0.5rem;
	align-items: stretch;
	margin-top: 0.35rem;
}

.bs-combined-booking-continue__actions--finish {
	margin-top: 0.85rem;
	padding-top: 0;
	border-top: none;
	justify-content: flex-start;
}

.bs-combined-order-checkout .bs-combined-booking-continue__actions {
	align-items: flex-start;
}

.bs-combined-order-checkout :is(
	button.bs-combined-booking-continue__done,
	button.bs-combined-booking-finish,
	a.bs-combined-booking-continue__cta
) {
	width: auto;
	max-width: 100%;
	align-self: flex-start;
}

.bs-combined-order-checkout .bs-combined-booking-continue__cross-sell a.bs-combined-booking-continue__cta {
	width: auto;
}

.bs-combined-order-checkout .bs-combined-booking-continue__actions--finish {
	margin-top: 0.85rem;
}

.bs-combined-order-checkout .bs-combined-booking-continue__cross-sell {
	margin-top: 1rem;
	padding-top: 1rem;
	/* Same divider color as the line above Total (not the line item text color). */
	border-top: 1px solid var(--bk-rooms-sidebar-summary-border-color, var(--bk-rooms-list-item-border-color, rgba(0, 0, 0, 0.1)));
}

.bs-combined-order-checkout .bs-combined-booking-continue__cross-sell .bs-combined-booking-continue__lead {
	color: var(--bk-combined-checkout-line-color, var(--bk-combined-checkout-text, inherit));
	opacity: 1;
}

a.bs-combined-booking-continue__cta {
	display: inline-flex;
	width: 100%;
	max-width: 100%;
}

button.bs-combined-booking-continue__done,
button.bs-combined-booking-finish {
	display: inline-flex;
	margin: 0;
	width: 100%;
	max-width: 100%;
}

button.bs-combined-booking-continue__done:disabled,
button.bs-combined-booking-finish:disabled {
	opacity: 0.65;
	cursor: not-allowed;
}

.bs-combined-booking-continue__notice {
	margin: 0 0 0.85rem;
	padding: 0.85rem 1rem;
	border-radius: var(--bk-ui-field-radius);
	font-size: 0.95rem;
	line-height: 1.45;
	font-weight: 600;
}

.bs-combined-booking-continue__notice--success {
	background: #ecfdf5;
	color: #065f46;
	border: 1px solid #6ee7b7;
}

.bs-combined-booking-continue__notice--error {
	background: #fef2f2;
	color: #991b1b;
	border: 1px solid #fecaca;
}

.bs-combined-booking-continue__notice--info {
	background: rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.1);
	color: var(--bk-body-color, #1c1917);
	border: 1px solid rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.35);
}

.bs-combined-booking-continue--complete {
	padding-bottom: 0.35rem;
}

.booking-wizard-complete .bs-combined-booking-continue__lead,
.bs-hsr-booking-complete .bs-combined-booking-continue__lead {
	color: var(--bk-combined-surrounding-text, var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917)));
}

.booking-wizard-complete .bs-combined-booking-continue,
.bs-hsr-booking-complete .bs-combined-booking-continue {
	border-top: none;
	color: var(--bk-combined-surrounding-text, var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917)));
	overflow: visible;
	max-width: 100%;
}

/* Booking complete: theme body text in wizards, Rooms/Rentals search detail text in search results.
 * Combined surrounding text applies only to the combined continue block. */
.booking-wizard-complete {
	color: var(--bk-body-color, #1c1917);
}

.bs-hsr-booking-complete {
	color: var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917));
}

.booking-wizard-complete .booking-wizard-complete__message,
.booking-wizard-complete .booking-success,
.bs-hsr-booking-complete__msg {
	/* Room between the message and the summary under it (in every layout; sidebars zero the summary's own
	   margin). */
	margin: 0 0 var(--bk-ui-row-gap, 12px);
	font-weight: 600;
	color: inherit;
}

.bs-combined-booking-continue__cross-sell {
	margin-top: 1rem;
	padding-top: 1rem;
	border-top: 1px solid var(--bk-rooms-sidebar-summary-border-color, var(--bk-rooms-list-item-border-color, rgba(0, 0, 0, 0.08)));
}

/* Two partners ("Continue to rentals", "Continue to tours"): the second lead does not touch the first button. */
.bs-combined-booking-continue__partner + .bs-combined-booking-continue__partner {
	margin-top: var(--bk-ui-row-gap, 12px);
}

.bs-combined-booking-continue__cross-sell .bs-combined-booking-continue__lead {
	color: var(--bk-combined-surrounding-text, var(--bk-combined-checkout-text, var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917))));
	opacity: 1;
}

.bs-combined-order-checkout {
	margin: 1rem 0 0;
	padding: 1rem 1.1rem;
	border: 1px solid var(--bk-rooms-list-item-border-color, rgba(0, 0, 0, 0.08));
	border-radius: var(--bk-ui-field-radius);
	background: var(--bk-combined-checkout-bg, var(--bk-rooms-detail-box-bg, var(--bk-theme-panel, #f0f4fa)));
	color: var(--bk-combined-checkout-text, var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917)));
	overflow: visible;
	max-width: 100%;
	box-sizing: border-box;
}

/* Unpaid trip from before (booking-core.js bookingSystemRenderTripResume): above the booking form or a list. */
.bs-trip-resume {
	margin: 0 0 var(--bk-ui-row-gap, 12px);
	padding: 0.85rem 1rem;
	border: 1px solid var(--bk-rooms-list-item-border-color, rgba(0, 0, 0, 0.08));
	border-radius: var(--bk-ui-field-radius);
	background: var(--bk-combined-checkout-bg, var(--bk-rooms-detail-box-bg, var(--bk-theme-panel, #f0f4fa)));
	color: var(--bk-combined-checkout-text, var(--bk-rooms-detail-box-text-color, var(--bk-body-color, #1c1917)));
	max-width: 100%;
	box-sizing: border-box;
}

.bs-trip-resume__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem 1rem;
}

.bs-trip-resume__lead {
	margin: 0;
	flex: 1 1 16rem;
	font-weight: 600;
}

.bs-trip-resume .bs-trip-resume__cta {
	width: auto;
	flex: 0 0 auto;
}

.bs-trip-resume__checkout .bs-combined-order-checkout {
	margin-top: 0;
}

.hotel-booking.event-sidebar-module--narrow .bs-combined-order-checkout,
.booking-wizard-complete .bs-combined-order-checkout,
.bs-hsr-booking-complete .bs-combined-order-checkout {
	padding: 0.85rem 0.75rem;
}

.bs-combined-order-checkout__title,
.booking-steps-wrapper .bs-combined-order-checkout__title {
	margin: 0 0 0.75rem;
	font-size: 1rem;
	font-weight: 600;
	color: var(--bk-combined-checkout-heading, var(--bk-rooms-detail-heading-color, var(--bk-rooms-list-heading-color, inherit)));
}

.bs-combined-order-checkout__hint {
	margin: 0 0 0.75rem;
	font-size: 0.9rem;
	color: var(--bk-combined-checkout-line-color, var(--bk-combined-checkout-text, inherit));
	opacity: 1;
	font-weight: 600;
}

.bs-combined-order-checkout__lines {
	list-style: none;
	margin: 0 0 0.85rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.bs-combined-order-checkout__line {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"title total"
		"schedule total";
	align-items: start;
	gap: 0.15rem 0.65rem;
	font-size: 0.92rem;
	color: var(--bk-combined-checkout-line-color, var(--bk-combined-checkout-text, inherit));
}

.bs-combined-order-checkout__line-title {
	grid-area: title;
	min-width: 0;
	font-weight: 500;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.bs-combined-order-checkout__line-schedule {
	grid-area: schedule;
	display: block;
	font-size: 0.85rem;
	color: var(--bk-combined-checkout-line-color, var(--bk-combined-checkout-text, inherit));
	opacity: 0.88;
	margin-top: 0;
}

.bs-combined-order-checkout__line-total {
	grid-area: total;
	min-width: 0;
	font-weight: 600;
	white-space: nowrap;
	text-align: right;
	align-self: start;
}

/* Rental extras with a stock (C25): "12 left" under the name. */
.rental-booking .extra-row__left {
	display: block;
	font-size: 0.85em;
	opacity: 0.8;
}

.rental-booking .extra-row.is-sold-out {
	opacity: 0.6;
}

/* Remove (C26): a small × under the line's price. The doubled class beats the theme's and the plugin's button rules
   (border, padding, min-height), which made it a large boxed button. */
.bs-combined-order-checkout__line--removable {
	grid-template-areas:
		"title total"
		"schedule remove";
}

.bs-combined-order-checkout__line-remove.bs-combined-order-checkout__line-remove {
	grid-area: remove;
	justify-self: end;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	min-width: 0;
	height: 24px;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	box-shadow: none;
	font: inherit;
	font-size: 1.25rem;
	line-height: 1;
	color: inherit;
	opacity: 0.7;
	text-decoration: none;
	cursor: pointer;
}

.bs-combined-order-checkout__line-remove.bs-combined-order-checkout__line-remove:hover,
.bs-combined-order-checkout__line-remove.bs-combined-order-checkout__line-remove:focus-visible {
	opacity: 1;
	background: color-mix(in srgb, currentColor 10%, transparent);
}

.bs-combined-order-checkout__line-remove:disabled {
	opacity: 0.6;
	cursor: default;
}

.bs-combined-order-checkout__total {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 0.85rem;
	padding-top: 0.65rem;
	border-top: 1px solid var(--bk-rooms-sidebar-summary-border-color, var(--bk-rooms-list-item-border-color, rgba(0, 0, 0, 0.1)));
	font-size: 1rem;
	font-weight: 700;
	color: inherit;
}

.bs-combined-order-checkout__total strong {
	min-width: 0;
	overflow-wrap: anywhere;
}





.bs-combined-order-checkout__paypal-buttons {
	min-height: 45px;
}

.bs-combined-booking-continue__actions--paypal {
	margin-top: 0.35rem;
}

/* The actions row is a flex row: the PayPal buttons (and its card form) take its full width instead of
   shrinking to PayPal's 200px minimum. */
.bs-combined-booking-continue__actions--paypal > .bs-combined-order-checkout__paypal {
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
}

/* Book now: Stripe / Swish / Klarna blocks (booking-core.js appendCombined*) */
.bs-combined-order-checkout__gateway {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
	margin-top: 0.85rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--bk-rooms-sidebar-summary-border-color, var(--bk-rooms-list-item-border-color, rgba(0, 0, 0, 0.1)));
}

.bs-combined-order-checkout__gateway > button {
	align-self: flex-start;
}

/* .bs-combined-booking-continue__actions aligns the block's items to the start: the Klarna choice
   (Pay now / Pay later), the Klarna widget and the Stripe card field take the full width like in the wizards. */
.bs-combined-order-checkout__gateway > .booking-klarna-categories,
.bs-combined-order-checkout__gateway > .bs-combined-order-checkout__klarna-container,
.bs-combined-order-checkout__gateway > .bs-combined-order-checkout__stripe-element {
	align-self: stretch;
}

.bs-combined-order-checkout__swish-label {
	font-weight: 600;
}

.bs-combined-order-checkout__swish-help,
.bs-combined-order-checkout__gateway-status {
	margin: 0;
	font-size: 0.85em;
	opacity: 0.8;
}

.bs-combined-order-checkout__gateway-status:empty {
	display: none;
}

/* Swish QR flow in the combined checkout: text link and the code (white quiet zone for scanning). */
.bs-combined-order-checkout__gateway > .bs-combined-order-checkout__swish-qr-btn {
	padding: 0;
	border: 0;
	background: none;
	color: var(--bk-btn-accent, currentColor);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.bs-combined-order-checkout__gateway > [hidden] {
	display: none;
}

.bs-combined-order-checkout__swish-qr {
	width: 220px;
	max-width: 100%;
	padding: 6px;
	border-radius: var(--bk-ui-field-radius, 6px);
	background: #fff;
}

.bs-combined-order-checkout__swish-qr svg {
	display: block;
	width: 100%;
	height: auto;
}

/* Rental wizard: start/end date-time (no slot calendar) */
.rental-booking .rental-range-fields {
  margin: 0;
  padding: 0;
  border: 0;
}
.rental-booking .rental-range-fields__grid {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  max-width: 100%;
  padding-bottom: 0.2rem;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields__grid:has(.rental-range-field--dates) {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 0.85rem;
  row-gap: 0.65rem;
  align-items: end;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates) {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.rental-booking .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--people, .rental-range-field--quantity) {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(5rem, 8.5rem);
}

.rental-booking .rental-range-field--dates,
.rental-booking .rental-wizard-dates-group,
.rental-booking .rental-wizard-dates-group .bs-rental-search-bar__group--dates,
.rental-booking .rental-wizard-dates-group .bs-rental-search-bar__dates-btn {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}

.rental-booking.event-sidebar-module--narrow .rental-range-fields__grid:has(.rental-range-field--dates) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  column-gap: 0.5rem;
  row-gap: 0.55rem;
  align-items: end;
  width: 100%;
}

.rental-booking.event-sidebar-module--narrow .rental-range-field--dates {
  grid-column: 1 / -1 !important;
}

/* Classic rentals (rental page, [kezara_book_rental] in a page column, phones): by the width of the fields, not
   the screen. Up to 640 px the dates take their own full row and start / end time (and quantity) share the next;
   up to 440 px two per row. In one row the time fields were narrower than their picker (overlapping each other)
   and on phones the end time ran past the screen edge. */
.rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields {
  container-type: inline-size;
}

@container (max-width: 640px) {
  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields__grid:has(.rental-range-field--dates) {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields:not(.rental-range-fields--start-only) .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--quantity, .rental-range-field--people) {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }

  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-field--dates {
    grid-column: 1 / -1 !important;
  }

  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields__grid > :is(.rental-range-field--time, .rental-range-field--quantity, .rental-range-field--people) {
    width: auto !important;
    max-width: none !important;
  }
}

@container (max-width: 440px) {
  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields__grid:has(.rental-range-field--dates),
  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields:not(.rental-range-fields--start-only) .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--quantity, .rental-range-field--people) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .rental-booking:not(.event-sidebar-module--narrow) .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates) {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
.rental-booking .rental-range-fields--start-only .rental-range-fields__row--end {
  display: none !important;
}
.rental-booking .rental-range-field {
  flex: 1 1 0;
  min-width: 6.75rem;
}
.rental-booking .rental-range-field label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--bs-muted, #646970);
}
.rental-booking .rental-range-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rental-booking .rental-wizard-hours-error {
  margin: 0.5rem 0 0;
  color: #b32d2e;
  font-weight: 600;
  font-size: 0.9rem;
}

/* Rentals classic full-width wizard (Settings → Styling → Rentals → Classic - full width wizard). */
.rental-booking.rental-booking--ui-classic > .booking-step-content {
  margin-top: var(--bk-rentals-wizard-step-panel-margin-top, 0);
  padding: var(--bk-rentals-wizard-step-panel-padding-y, 40px) var(--bk-rentals-wizard-step-panel-padding-x, 40px);
  background-color: var(--bk-rentals-wizard-step-panel-bg, var(--bk-theme-panel, var(--hb-accent-soft, #f0f4fa)));
  border-radius: var(--bk-rentals-wizard-step-panel-border-radius, 8px);
  border-style: solid;
  border-color: var(--bk-rentals-wizard-step-panel-border-color, #eee);
  border-top-width: var(--bk-rentals-wizard-step-panel-border-width, 1px);
  border-right-width: var(--bk-rentals-wizard-step-panel-border-width, 0);
  border-bottom-width: var(--bk-rentals-wizard-step-panel-border-width, 0);
  border-left-width: var(--bk-rentals-wizard-step-panel-border-width, 0);
  box-sizing: border-box;
}

.rental-booking.rental-booking--ui-classic > .booking-step-content + .booking-step-content {
  margin-top: var(--bk-rentals-wizard-step-panel-margin-top, 12px);
}

.rental-booking .flatpickr-calendar {
  z-index: 100050;
}

.rental-booking .flatpickr-calendar.noCalendar {
  z-index: 100051;
}

.rental-booking.rental-booking--ui-classic .rental-range-field label,
.rental-booking.rental-booking--ui-classic .rental-range-field--dates .bs-rental-search-bar__label,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-heading,
.rental-booking.rental-booking--ui-classic .rental-wizard-packages .bs-booking-wizard-sidebar__heading,
.rental-booking.rental-booking--ui-classic .booking-step-content .booking-step-heading,
.rental-booking.rental-booking--ui-classic .booking-step-content .bs-single__section-title,
.rental-booking.rental-booking--ui-classic .booking-step-content .bs-booking-wizard-section-heading,
.rental-booking.rental-booking--ui-classic .booking-step-content .booking-summary__legend {
  font-size: var(--bk-rentals-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-rentals-wizard-section-label-color,
    var(--bs-muted, #646970)
  );
}

.rental-booking.rental-booking--ui-classic .rental-range-input,
.rental-booking.rental-booking--ui-classic .rental-booking-guests-select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.rental-booking.rental-booking--ui-classic .rental-booking-guests-select {
	cursor: pointer;
}

.rental-booking.rental-booking--ui-classic:not(:has(.rental-catalog-step)) .booking-step-content .bs-booking-wizard-section-heading.booking-step-heading {
  display: block;
  margin: 0 0 0.65rem;
  font-size: var(--bk-rentals-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
}

/* Classic rental: full-width step 1 — date, time, people and extras (no side panel). */
.rental-booking.rental-booking--ui-classic .rental-tour-wizard-step1-layout--classic {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 1.25rem;
  margin-bottom: 0;
}
.rental-booking.rental-booking--ui-classic .rental-tour-wizard-step1-layout--classic .bs-booking-wizard-step1-main {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
}
.rental-booking.rental-booking--ui-classic .rental-range-fields__grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 0.85rem;
  row-gap: 0.65rem;
  align-items: end;
  max-width: 100%;
}

.rental-booking.rental-booking--ui-classic .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates) {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.rental-booking.rental-booking--ui-classic .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--people, .rental-range-field--quantity) {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(5rem, 8.5rem);
}

.rental-booking.rental-booking--ui-classic .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--people, .rental-range-field--quantity) {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(5rem, 8.5rem);
}

.rental-booking.rental-booking--ui-classic .rental-range-field--dates {
  grid-column: auto;
  width: 100%;
  min-width: 0;
  max-width: none;
}

.rental-booking.rental-booking--ui-classic .rental-range-field--dates .rental-wizard-dates-group,
.rental-booking.rental-booking--ui-classic .rental-range-field--dates .bs-rental-search-bar__group--dates,
.rental-booking.rental-booking--ui-classic .rental-range-field--dates .bs-rental-search-bar__dates-btn {
  width: 100%;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}

.rental-booking.rental-booking--ui-classic .rental-range-field--dates .bs-rental-search-bar__label {
  display: block;
  margin-bottom: 0.35rem;
}

.rental-booking.rental-booking--ui-classic:has(.rental-catalog-step) .rental-range-field--dates .bs-rental-search-bar__label.bs-rental-catalog-section-label {
  display: block;
  margin-bottom: 0.35rem;
}

.rental-booking.rental-booking--ui-classic .rental-range-fields__grid:has(.rental-range-field--people, .rental-range-field--quantity):not(:has(.rental-range-field--dates)) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(5rem, 8.5rem);
}




.rental-booking.rental-booking--ui-classic :is(.rental-range-field--people, .rental-range-field--quantity) :is(.rental-booking-guests-select, .rental-booking-units-select) {
  width: 100%;
  max-width: 100%;
}

.rental-booking.rental-booking--ui-classic :is(.rental-range-field--people, .rental-range-field--quantity) .bs-frontend-select,
.rental-booking.rental-booking--ui-classic :is(.rental-range-field--people, .rental-range-field--quantity) .bs-select-wrap.bs-frontend-select {
  display: block;
  width: 100%;
  max-width: 100%;
}

.rental-booking.rental-booking--ui-classic :is(.rental-range-field--people, .rental-range-field--quantity) .bs-frontend-select__trigger {
  position: relative;
  display: flex;
  align-items: center;
  overflow: visible;
  text-align: left;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-classic-heading {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--bs-muted, #646970);
}
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-attributes {
  margin-top: 1.25rem;
}
.bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras #booking-extras,
.bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-extras-step #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .rental-wizard-extras-step__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: start;
  width: 100%;
  max-width: 100%;
  flex-direction: unset;
}
.bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras .extra-row.extra-row--qty,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras .extra-row.extra-row--qty,
.bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .extra-row.extra-row--qty,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .extra-row.extra-row--qty {
  width: auto;
  max-width: none;
  min-width: 0;
  box-sizing: border-box;
}
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras .extra-row__main strong.extra-name,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .extra-row__main strong.extra-name {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras .extra-description,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .extra-description {
  display: none;
}
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras .extra-row__qty-wrap,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .extra-row__qty-wrap {
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  min-height: 0;
  flex: 0 0 auto;
  flex-shrink: 0;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras .extra-quantity-label,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .extra-quantity-label {
  margin: 0;
  white-space: nowrap;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-classic-actions {
  margin-top: 1.25rem;
}
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-actions .booking-next-step,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-actions .booking-submit,
.rental-booking.rental-booking--ui-classic .step-actions .booking-next-step,
.rental-booking.rental-booking--ui-classic .step-actions .booking-submit,
.rental-booking.rental-booking--ui-classic .step-actions a.booking-next-step {
  margin: 0;
}

/* Embedded [book_rental] classic wizard: align Back / Next on one row (no .bs-single--rental parent). */
.rental-booking.rental-booking--ui-classic .step-actions,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.rental-booking.rental-booking--ui-classic .step-actions :is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step),
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-actions :is(.booking-next-step, .booking-submit, a.booking-next-step) {
  margin: 0;
}

/* Rooms classic full-width wizard — package cards (shared classic full width styling) */
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) :is(
  .booking-packages-choices--single,
  .booking-room-packages .booking-packages-choices
) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: stretch;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  min-height: 10rem;
  height: 100%;
  box-sizing: border-box;
  padding: 0.85rem 0.85rem 0.75rem;
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, var(--bk-ui-field-radius));
  border: var(--bk-classic-full-width-package-border-width, var(--bk-rooms-package-border-width, var(--bk-rooms-wizard-row-border-width, 1px))) solid var(--bk-classic-full-width-package-border-color, var(--bk-rooms-wizard-row-border-color, rgba(0, 0, 0, 0.1)));
  background: var(--bk-classic-full-width-package-bg, var(--bk-rooms-wizard-row-bg, #fff));
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rooms-wizard-row-text-color, inherit));
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option:has(input[type="radio"]:checked) {
  border-width: var(--bk-classic-full-width-package-selected-border-width, var(--bk-rooms-package-selected-border-width, 2px));
  border-style: solid;
  border-color: var(--bk-classic-full-width-package-selected-border-color, var(--bk-rooms-package-selected-border-color, var(--bk-btn-accent, #007aff)));
  box-shadow: 0 0 0 1px color-mix(
    in srgb,
    var(--bk-classic-full-width-package-selected-border-color, var(--bk-rooms-package-selected-border-color, var(--bk-btn-accent, #007aff))) 18%,
    transparent
  );
  background: var(--bk-classic-full-width-package-selected-bg, var(--bk-rooms-package-selected-bg, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.04)));
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option :is(
  .booking-package-title,
  .booking-package-price,
  .booking-package-meta,
  .booking-package-terms
) {
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rooms-wizard-row-text-color, inherit));
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option .booking-package-title {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option .booking-package-price {
  display: block;
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.35;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option .booking-package-meta {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.78rem;
  line-height: 1.4;
  white-space: pre-wrap;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option:has(input[type="radio"]:checked) :is(
  .booking-package-title,
  .booking-package-price,
  .booking-package-meta,
  .booking-package-terms
) {
  color: var(--bk-classic-full-width-package-selected-text-color, var(--bk-rooms-package-selected-text, inherit));
}

@media (max-width: 720px) {
  .bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) :is(
    .booking-packages-choices--single,
    .booking-room-packages .booking-packages-choices
  ) {
    grid-template-columns: minmax(0, 1fr);
  }

  /* Stacked cards need no shared height. */
  .bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow):not(.hotel-booking--ui-sidebar) .booking-package-option {
    min-height: 0;
  }
}

/* Rental packages step — Settings → Styling → Rentals → Rental package cards */
.rental-booking.rental-booking--ui-classic .rental-package-choices.bs-hsr-package-choices,
.rental-booking.rental-booking--ui-classic #rental-package-choices.rental-package-choices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: stretch;
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .rental-package-option,
  .bs-hsr-package-option.rental-package-option,
  .bs-rsr-package-card
) {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  min-height: 10rem;
  height: 100%;
  box-sizing: border-box;
  padding: 0.85rem 0.85rem 0.75rem;
  border-radius: var(--bk-experiences-wizard-step-panel-border-radius, var(--bk-ui-field-radius));
  border: var(--bk-rentals-package-border-width, var(--bk-rooms-wizard-row-border-width, 1px)) solid var(--bk-classic-full-width-package-border-color, var(--bk-rentals-package-border-color, rgba(0, 0, 0, 0.1)));
  background: var(--bk-classic-full-width-package-bg, var(--bk-rentals-package-bg, #fff));
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rentals-package-text-color, inherit));
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .rental-package-option,
  .bs-rsr-package-card
):has(.rental-package-radio:checked),
.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .rental-package-option,
  .bs-rsr-package-card
):has(.bs-hsr-package-radio:checked),
.rental-booking.rental-booking--ui-classic .rental-package-choices .bs-rsr-package-card:has(.bs-rsr-package-radio:checked) {
  border-width: var(--bk-rentals-package-selected-border-width, 2px);
  border-style: solid;
  border-color: var(--bk-classic-full-width-package-selected-border-color, var(--bk-rentals-package-selected-border-color, var(--bk-btn-accent, #007aff)));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--bk-classic-full-width-package-selected-border-color, var(--bk-rentals-package-selected-border-color, var(--bk-btn-accent, #007aff))) 18%, transparent);
  background: var(--bk-classic-full-width-package-selected-bg, var(--bk-rentals-package-selected-bg, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.04)));
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .rental-package-radio,
  .bs-hsr-package-radio,
  .bs-rsr-package-radio
) {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .bs-hsr-package-option__body,
  .bs-rsr-package-card__inner
) {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0.45rem;
  min-width: 0;
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .bs-rsr-package-card__title,
  .bs-hsr-package-option__title
) {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rentals-package-text-color, var(--bk-body-color, #1c1917)));
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .bs-rsr-package-card__price,
  .bs-hsr-package-option__price
) {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rentals-package-text-color, var(--bk-body-color, #1c1917)));
}

.rental-booking.rental-booking--ui-classic .rental-package-choices .bs-rsr-package-card__period-total {
  display: block;
  margin-top: 0.2rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rentals-package-text-color, var(--bk-body-color, #57534e)));
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .bs-rsr-package-card__inclusions,
  .bs-hsr-package-option__inc
) {
  display: block;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rentals-package-text-color, var(--bk-body-color, #57534e)));
}

.rental-booking.rental-booking--ui-classic .rental-package-choices .bs-rsr-package-card__label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bk-classic-full-width-package-text-color, var(--bk-rentals-package-text-color, var(--bk-body-color, #78716c)));
  margin-bottom: 0.15rem;
}

.rental-booking.rental-booking--ui-classic .rental-package-choices :is(
  .rental-package-option,
  .bs-rsr-package-card
):has(:is(.rental-package-radio, .bs-hsr-package-radio, .bs-rsr-package-radio):checked) :is(
  .bs-rsr-package-card__title,
  .bs-rsr-package-card__price,
  .bs-rsr-package-card__period-total,
  .bs-rsr-package-card__inclusions,
  .bs-rsr-package-card__label,
  .bs-hsr-package-option__title,
  .bs-hsr-package-option__price,
  .bs-hsr-package-option__inc
) {
  color: var(--bk-classic-full-width-package-selected-text-color, var(--bk-rentals-package-selected-text, var(--bk-rentals-package-text, inherit)));
}

/* Rental compact sidebar — package cards (Settings → Compact sidebar → Package cards) */
.rental-booking.event-sidebar-module--narrow .rental-package-choices :is(
  .rental-package-option,
  .bs-hsr-package-option.rental-package-option,
  .bs-rsr-package-card
) {
  font-size: var(--bk-compact-sidebar-field-font-size, var(--bk-ui-field-font-size));
  /* Compact sidebar has no width setting: 1px / 2px (the archive popup sets these vars for its own packages). */
  border: var(--bk-compact-sidebar-package-border-width, 1px) solid var(
    --bk-compact-sidebar-package-border-color,
    var(--bk-rentals-package-border-color, rgba(0, 0, 0, 0.1))
  );
  background: var(--bk-compact-sidebar-package-bg, var(--bk-rentals-package-bg, #fff));
}

.rental-booking.event-sidebar-module--narrow .rental-package-choices :is(
  .rental-package-option,
  .bs-rsr-package-card
):has(.rental-package-radio:checked),
.rental-booking.event-sidebar-module--narrow .rental-package-choices .bs-rsr-package-card:has(.bs-rsr-package-radio:checked) {
  border-width: var(--bk-compact-sidebar-package-selected-border-width, 2px);
  border-color: var(
    --bk-compact-sidebar-package-selected-border-color,
    var(--bk-rentals-package-selected-border-color, var(--bk-btn-accent, #007aff))
  );
  box-shadow: 0 0 0 1px color-mix(in srgb, var(
    --bk-compact-sidebar-package-selected-border-color,
    var(--bk-rentals-package-selected-border-color, var(--bk-btn-accent, #007aff))
  ) 18%, transparent);
  background: var(
    --bk-compact-sidebar-package-selected-bg,
    var(--bk-rentals-package-selected-bg, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.04))
  );
}



.rental-booking.event-sidebar-module--narrow .rental-package-choices .bs-rsr-package-card:has(.rental-package-radio:checked) :is(
  .bs-rsr-package-card__title,
  .bs-rsr-package-card__price,
  .bs-rsr-package-card__period-total,
  .bs-rsr-package-card__inclusions,
  .bs-rsr-package-card__label
),
.rental-booking.event-sidebar-module--narrow .rental-package-choices .bs-rsr-package-card:has(.bs-rsr-package-radio:checked) :is(
  .bs-rsr-package-card__title,
  .bs-rsr-package-card__price,
  .bs-rsr-package-card__period-total,
  .bs-rsr-package-card__inclusions,
  .bs-rsr-package-card__label
) {
  color: var(
    --bk-compact-sidebar-package-selected-text,
    var(--bk-rentals-package-selected-text, var(--bk-compact-sidebar-package-text, var(--bk-rentals-package-text, inherit)))
  );
}

/* Rental classic wizard summary — Settings → Styling → Rentals → Wizard */
.rental-booking.rental-booking--ui-classic .booking-summary.rental-wizard-summary {
  background: var(
    --bk-classic-full-width-summary-bg,
    var(--bk-rentals-wizard-summary-bg, var(--bk-theme-panel, var(--bk-archive-popup-summary-bg, #f8f9fa)))
  );
  border: var(--bk-rentals-wizard-summary-border-width, 1px) solid
    var(
      --bk-classic-full-width-summary-border-color,
      var(--bk-rentals-wizard-summary-border-color, var(--bk-theme-border, #e2e8f0))
    );
  border-radius: var(
    --bk-classic-full-width-summary-border-radius,
    var(--bk-rentals-wizard-summary-border-radius, 8px)
  );
  padding: 1rem 1.1rem;
  color: var(
    --bk-classic-full-width-summary-text-color,
    var(--bk-rentals-wizard-summary-text-color, var(--bk-body-color, #1c1917))
  );
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-item {
  color: inherit;
  border-bottom: calc(var(--bk-rentals-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rentals-wizard-summary-border-color, var(--hb-border));
  padding: 0.4rem 0;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-item:last-of-type {
  border-bottom: none;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-item--package {
  border-bottom: none;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-item--package:not([style*='display: none']) {
  border-top: calc(var(--bk-rentals-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rentals-wizard-summary-border-color, var(--hb-border));
  margin-top: 0.5rem;
  padding-top: 0.5rem;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary:has(.summary-item--package:not([style*='display: none'])) .summary-item:has(#rental-summary-duration) {
  border-bottom: none;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-item--tax {
  border-bottom: none;
  border-top: none;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary :is(
  .summary-item > span:first-child,
  .summary-item__label,
  .summary-extras h4
) {
  font-size: var(--bk-rentals-wizard-label-font-size, 0.6875rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1.35;
  color: var(
    --bk-rentals-wizard-summary-label-color,
    var(--bk-rentals-wizard-section-label-color, var(--bs-muted, #646970))
  );
  text-align: left;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-total {
  border-top: calc(var(--bk-rentals-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rentals-wizard-summary-border-color, var(--hb-border));
  color: inherit;
}

.rental-booking.rental-booking--ui-classic .rental-wizard-summary .summary-total strong {
  color: inherit;
}

@media (max-width: 900px) {
  .rental-booking.rental-booking--ui-classic .rental-package-choices.bs-hsr-package-choices,
  .rental-booking.rental-booking--ui-classic #rental-package-choices.rental-package-choices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .rental-booking.rental-booking--ui-classic .rental-package-choices.bs-hsr-package-choices,
  .rental-booking.rental-booking--ui-classic #rental-package-choices.rental-package-choices {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 782px) {
  .bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras #booking-extras,
.bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-extras-step #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .rental-wizard-extras-step__inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 480px) {
  .bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-classic-extras #booking-extras,
.bs-single--rental .rental-booking.rental-booking--ui-classic .rental-wizard-extras-step #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step #booking-extras,
.rental-booking.rental-booking--ui-classic .rental-wizard-extras-step .rental-wizard-extras-step__inner {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 600px) {
  .rental-booking.rental-booking--ui-classic .rental-range-fields__grid:has(.rental-range-field--dates) {
    grid-template-columns: minmax(0, 1fr);
  }

  .rental-booking.rental-booking--ui-classic .rental-range-fields__grid:has(.rental-range-field--people, .rental-range-field--quantity):not(:has(.rental-range-field--dates)) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .rental-booking.rental-booking--ui-classic :is(.rental-range-field--people, .rental-range-field--quantity) {
    grid-column: 1 / -1;
  }

  .rental-booking.event-sidebar-module--narrow .rental-range-fields__grid:has(.rental-range-field--dates) {
    grid-template-columns: minmax(0, 1fr);
  }
}

.rental-booking .rental-wizard-summary .summary-rental-attributes {
  margin: 0.75rem 0 1rem;
}
.rental-booking .rental-wizard-summary .summary-rental-attributes__row {
  margin: 0.2rem 0;
  font-size: 0.95rem;
  line-height: 1.45;
}

.rental-booking .rental-wizard-summary .summary-item--period {
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.2rem 1rem;
}

.rental-booking .rental-wizard-summary .summary-item--period .summary-item__label {
  flex: 0 0 auto;
}

.rental-booking .rental-wizard-summary .summary-item--period #rental-summary-datetime-start {
  flex: 1 1 auto;
  min-width: 0;
  text-align: right;
  line-height: 1.45;
}

.rental-booking .rental-wizard-summary .summary-item--period .summary-item__period-line--end {
  flex: 0 0 100%;
  text-align: right;
  line-height: 1.45;
}

.rental-booking .rental-wizard-summary .summary-item__period-line[hidden] {
  display: none !important;
}

.rental-booking .rental-wizard-summary .summary-item--package[hidden] {
  display: none !important;
}

.rental-booking .rental-wizard-summary .summary-item--package {
  border-bottom: none;
}

.rental-booking .rental-wizard-summary .summary-item--package:not([style*='display: none']) {
  border-top: 1px solid var(--bs-border, #e8e6e1);
  margin-top: 0.65rem;
  padding-top: 0.65rem;
}

.rental-booking .rental-wizard-summary:has(.summary-item--package:not([style*='display: none'])) .summary-item:has(#rental-summary-duration) {
  border-bottom: none;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras {
  border-top: calc(var(--bk-rentals-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rentals-wizard-summary-border-color, var(--hb-border));
  border-bottom: calc(var(--bk-rentals-wizard-summary-dividers, var(--bk-classic-full-width-summary-dividers, 0)) * 1px) solid
    var(--bk-rentals-wizard-summary-border-color, var(--hb-border));
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  padding-bottom: 0.65rem;
  margin-bottom: 0.35rem;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras h4 {
  text-align: left;
}

.rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary #rental-summary-extras-list {
  text-align: right;
}

/* Rental catalog step: pick an item after dates */
.rental-booking .rental-catalog-step {
  max-width: min(100%, 80rem);
}

/* Catalog wizard step 1 — one label size for all date/time field headings (.bs-rental-catalog-section-label). */
.rental-booking:has(.rental-catalog-step) :is(
  .bs-rental-catalog-section-label,
  .bs-rental-search-bar__label.bs-rental-catalog-section-label,
  .rental-range-field label.bs-rental-catalog-section-label
) {
  font-size: var(--bk-rentals-catalog-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(
    --bk-rentals-catalog-section-heading-color,
    var(--bk-rentals-wizard-section-label-color, var(--bk-rentals-field-label-color, var(--bs-muted, #646970)))
  );
}

.rental-booking .rental-catalog-step__lead,
.rental-booking .description.rental-wizard-packages__hint,
.rental-booking .rental-catalog-row__excerpt,
.rental-booking .rental-catalog-row__price-note {
  font-size: var(--bk-rentals-catalog-body-font-size, 0.875rem);
}

/* No free unit for the chosen period (rental-wizard.js markCatalogAvailability()): shown, not selectable. */
.rental-booking .rental-catalog-card.is-unavailable {
  cursor: not-allowed;
  opacity: 0.55;
}

.rental-booking .rental-catalog-row__unavailable {
  display: block;
  margin-top: 4px;
  font-size: var(--bk-rentals-catalog-body-font-size, 0.875rem);
  font-weight: 600;
  color: var(--bk-rentals-catalog-muted-text-color, var(--bk-theme-muted, inherit));
}

.rental-booking:has(.rental-catalog-step) :is(
  .rental-catalog-step__lead,
  .description.rental-wizard-packages__hint
) {
  color: var(--bk-rentals-catalog-body-text-color, var(--bk-body-color, inherit));
}

.rental-booking .rental-catalog-row__title {
  font-size: var(--bk-rentals-catalog-field-font-size, var(--bk-ui-field-font-size));
}
@media (max-width: 560px) {
  .rental-booking .rental-catalog-row.rental-catalog-card {
    flex-wrap: wrap;
  }
  .rental-booking .rental-catalog-row__media {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
    flex-direction: column;
    align-items: stretch;
  }
  .rental-booking .rental-catalog-row__media .rental-catalog-row__thumb {
    width: 100%;
    max-width: min(100%, 24rem);
    align-self: flex-start;
  }
  .rental-booking .rental-catalog-row__tags {
    max-width: 100%;
  }
  .rental-booking .rental-catalog-row__aside {
    width: 100%;
    text-align: left;
    padding-top: 0.35rem;
  }
}
.rental-booking .rental-catalog-step__lead {
  margin-bottom: 0.35rem;
}
.rental-booking.rental-booking--ui-classic:has(.rental-catalog-step) > .booking-step-content {
  background-color: var(--bk-rentals-catalog-step-panel-bg, var(--bk-rentals-wizard-step-panel-bg, transparent));
  border-color: var(--bk-rentals-catalog-step-panel-border-color, var(--bk-rentals-wizard-step-panel-border-color, #eee));
  border-top-width: var(--bk-rentals-catalog-step-panel-border-width, var(--bk-rentals-wizard-step-panel-border-width, 1px));
  border-right-width: var(--bk-rentals-catalog-step-panel-border-width, var(--bk-rentals-wizard-step-panel-border-width, 1px));
  border-bottom-width: var(--bk-rentals-catalog-step-panel-border-width, var(--bk-rentals-wizard-step-panel-border-width, 1px));
  border-left-width: var(--bk-rentals-catalog-step-panel-border-width, var(--bk-rentals-wizard-step-panel-border-width, 1px));
}

.rental-booking.rental-booking--ui-classic:has(.rental-catalog-step) .booking-summary.rental-wizard-summary {
  background: var(
    --bk-rentals-catalog-summary-bg,
    var(
      --bk-classic-full-width-summary-bg,
      var(--bk-rentals-wizard-summary-bg, var(--bk-theme-panel, var(--bk-archive-popup-summary-bg, #f8f9fa)))
    )
  );
  color: var(
    --bk-classic-full-width-summary-text-color,
    var(--bk-rentals-catalog-body-text-color, var(--bk-rentals-wizard-summary-text-color, var(--bk-body-color, #1c1917)))
  );
}

.rental-booking.rental-booking--ui-classic:has(.rental-catalog-step) .rental-wizard-summary :is(
  .summary-item,
  .summary-total,
  .summary-extras li,
  .bs-booking-tax-note
) {
  color: inherit;
  font-size: var(--bk-rentals-catalog-body-font-size, inherit);
}

.rental-booking.rental-booking--ui-classic:has(.rental-catalog-step) :is(
  .booking-summary + .booking-wizard-pay-on-site-notice,
  .booking-summary .booking-wizard-pay-on-site-notice
) {
  color: var(--bk-rentals-catalog-body-text-color, var(--bk-rentals-wizard-summary-pay-on-site-color, inherit));
  font-size: var(--bk-rentals-catalog-body-font-size, inherit);
}

.rental-booking.rental-booking--ui-classic:has(.rental-catalog-step) :is(
  .rental-catalog-step__heading,
  .booking-step-content .bs-booking-wizard-section-heading.booking-step-heading
) {
  font-size: var(--bk-rentals-catalog-label-font-size, 0.6875rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--bk-rentals-catalog-section-heading-color, var(--bk-heading-color, #333333));
}

.rental-booking .rental-catalog-step__heading {
  margin: 0 0 1rem;
}

.rental-booking .rental-catalog-step__filters-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px 24px;
  margin-bottom: clamp(14px, 2.5vw, 22px);
  padding: clamp(12px, 2vw, 16px) clamp(14px, 2.5vw, 20px);
  background: var(--bk-rentals-catalog-filter-bg, var(--bk-theme-panel, var(--bs-arch-surface, #eef2f8)));
  border-radius: var(--bs-arch-radius-lg, 10px);
  border: 1px solid var(--bk-rentals-catalog-filter-border-color, var(--bs-arch-border, #dcdcde));
  box-shadow: var(--bs-arch-shadow, 0 1px 2px rgba(0, 0, 0, 0.04));
}

.rental-booking .rental-catalog-step__attr-filters {
  margin-bottom: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  flex: 1 1 220px;
  min-width: 0;
}

.rental-booking .rental-catalog-step__catalog-dropdown {
  flex: 1 1 200px;
  min-width: min(100%, 180px);
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.rental-booking .rental-catalog-step__filters-toolbar :is(
  .rental-catalog-step__category-select,
  .rental-catalog-step__catalog-dropdown > .rental-catalog-step__catalog-dropdown-summary
) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
}

.rental-booking .rental-catalog-step__category-select {
  cursor: pointer;
}

.rental-booking .rental-catalog-step__catalog-dropdown-summary {
  cursor: pointer;
  list-style: none;
  user-select: none;
  outline: none;
  box-shadow: none;
}

/* Match category <select> when themes style <summary> differently. */
.rental-booking .rental-catalog-step__filters-toolbar summary.rental-catalog-step__catalog-dropdown-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  min-height: var(--bk-ui-field-height);
  margin: 0;
  padding: var(--bk-ui-field-padding-y) var(--bk-ui-field-padding-right) var(--bk-ui-field-padding-y)
    var(--bk-ui-field-padding-x);
  font-size: var(--bk-rentals-catalog-field-font-size, var(--bk-ui-field-font-size));
  font-weight: 600;
  line-height: var(--bk-ui-field-line-height);
  color: var(--bk-field-text, var(--bk-rentals-catalog-card-text, #1d2327));
  border-radius: var(--bk-ui-field-radius);
  border: var(--bk-ui-field-border-width) solid
    var(--bk-rentals-catalog-filter-control-border-color, var(--bk-field-border-color, var(--bk-border-color, #d1d5db)));
  background: var(--bk-field-bg, var(--bk-rentals-catalog-card-bg, #fff));
  font-family: inherit;
  box-shadow: none;
}

.rental-booking .rental-catalog-step__catalog-dropdown-summary::-webkit-details-marker {
  display: none;
}

.rental-booking .rental-catalog-step__catalog-dropdown-summary::after {
  content: '';
  flex-shrink: 0;
  width: 10px;
  height: 6px;
  border: none;
  background-color: transparent;
  background-image:
    linear-gradient(45deg, transparent 50%, #50575e 50%),
    linear-gradient(135deg, #50575e 50%, transparent 50%);
  background-position: 0 0, 5px 0;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  transition: transform 0.15s ease;
}

.rental-booking .rental-catalog-step__catalog-dropdown[open] .rental-catalog-step__catalog-dropdown-summary::after {
  transform: rotate(180deg);
}

.rental-booking .rental-catalog-step__catalog-dropdown-body {
  margin-top: 10px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-radius: var(--bs-arch-radius-md, 8px);
  border: 1px solid var(--bk-rentals-catalog-card-border-color, var(--bs-arch-border, #dcdcde));
  background: var(--bk-rentals-catalog-card-bg, #fff);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.rental-booking .rental-catalog-step__category-select {
  flex: 1 1 200px;
  min-width: min(100%, 12rem);
  max-width: 100%;
}

.rental-booking .rental-catalog-step__catalog-dropdown-body .rental-catalog-step__price-filter {
  flex: none;
  min-width: 0;
  max-width: none;
}

.rental-booking .rental-catalog-step__price-filter {
  flex: 1 1 260px;
  min-width: min(100%, 240px);
  max-width: 100%;
}

.rental-booking .rental-catalog-step__price-filter-inner {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.rental-booking .rental-catalog-step__price-filter-title {
  font-size: var(--bk-ui-field-label-font-size);
  font-weight: 600;
  color: var(--bk-rentals-catalog-card-text, #1d2327);
}

.rental-booking .rental-catalog-step__price-slider-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.rental-booking .rental-catalog-step__price-slider-label {
  font-size: var(--bk-ui-chip-category-font-size);
  color: var(--bk-rentals-catalog-muted-text, #50575e);
}

.rental-booking .rental-catalog-step__price-slider-row input[type='range'] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rental-booking .rental-catalog-step__price-filter-readout {
  font-size: var(--bk-ui-field-label-font-size);
  font-weight: 500;
  color: var(--bk-rentals-catalog-card-text, #1d2327);
}

.rental-booking .rental-catalog-step__filter-empty {
  margin: 0 0 12px;
  font-size: var(--bk-ui-field-font-size);
  color: var(--bk-rentals-catalog-muted-text, #50575e);
}

.rental-booking .rental-catalog-list {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
  margin-bottom: 1.25rem;
  max-width: 100%;
  /* The cards adapt to the list width (a narrow wizard column), not only to the window. */
  container: bs-rental-catalog / inline-size;
}
.rental-booking .rental-catalog-item {
  display: flex;
  flex-direction: column;
  max-width: 100%;
  border-radius: var(--bk-rentals-catalog-card-border-radius, 12px);
}
/* Selected row: accent ring wraps main row + expanded extras (not only the inner button). */
.rental-booking .rental-catalog-item:has(.rental-catalog-card.is-selected) {
  border: var(--bk-rentals-catalog-selected-border-width, 2px) solid var(--bk-rentals-catalog-selected-border-color, var(--bs-accent, var(--bk-btn-accent, #2271b1)));
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--bk-rentals-catalog-selected-border-color, var(--bs-accent, var(--bk-btn-accent, #2271b1))) 18%, transparent);
  overflow: hidden;
  box-sizing: border-box;
}
.rental-booking .rental-catalog-item:has(.rental-catalog-card.is-selected) .rental-catalog-card {
  border-color: transparent;
  border-radius: 0;
  box-shadow: none;
}
.rental-booking .rental-catalog-item__extras.rental-catalog-extras {
  margin-top: 0;
  padding: 0 1.35rem 1.15rem;
  border: 1px solid var(--bk-rentals-catalog-card-border-color, var(--bs-arch-border, var(--bk-border-color, #d1d5db)));
  border-top: none;
  border-radius: 0 0 12px 12px;
  background: var(--bk-rentals-catalog-card-bg, #fff);
}
.rental-booking .rental-catalog-item:has(.rental-catalog-card.is-selected) .rental-catalog-item__extras.rental-catalog-extras {
  border: none;
  border-radius: 0;
}
.rental-booking .rental-catalog-item__extras .rental-catalog-item__extras-heading {
  margin: 0 0 0.65rem;
  padding-top: 0.85rem;
  font-size: 1rem;
}
.rental-booking .rental-catalog-item:has(.rental-catalog-item__extras:not([hidden])) .rental-catalog-card {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-color: transparent;
}
.rental-booking .rental-catalog-row.rental-catalog-card {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 1.35rem 1.5rem;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 1.25rem 1.35rem;
  text-align: left;
  cursor: pointer;
  border: var(--bk-rentals-catalog-card-border-width, 1px) solid
    var(--bk-rentals-catalog-card-border-color, var(--bs-arch-border, var(--bk-border-color, #d1d5db)));
  border-radius: var(--bk-rentals-catalog-card-border-radius, 12px);
  background: var(--bk-rentals-catalog-card-bg, #fff);
  overflow: hidden;
}
.rental-booking .rental-catalog-row.rental-catalog-card:hover {
  border-color: var(--bk-rentals-catalog-card-border-color, var(--bs-arch-border, var(--bk-border-color, #d1d5db)));
  box-shadow: none;
}

/* Themes (e.g. Hello / block themes) often use button:hover { color: #fff } — wrecks contrast on inner chips */
.rental-booking button.rental-catalog-row.rental-catalog-card,
.rental-booking button.rental-catalog-row.rental-catalog-card:hover,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus-visible {
  color: var(--bk-rentals-catalog-card-text, #1d2327);
  background: var(--bk-rentals-catalog-card-bg, #fff);
  font-family: var(--bk-body-font-family, inherit);
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__title,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__title {
  color: var(--bk-rentals-catalog-card-text, #1d2327) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__highlight-label,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__highlight-label {
  color: var(--bk-rentals-catalog-card-text, #1d2327) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__highlight-desc,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__highlight-desc {
  color: var(--bk-rentals-catalog-muted-text, var(--bs-muted, #646970)) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__highlight-text,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__highlight-text {
  color: inherit !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__excerpt,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__excerpt {
  color: var(--bk-rentals-catalog-muted-text, var(--bs-muted, #50575e)) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__price,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__price {
  color: var(--bk-rentals-catalog-price-color, var(--bs-accent, var(--bk-btn-accent, #2271b1))) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__price-note,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__price-note {
  color: var(--bk-rentals-catalog-muted-text, #50575e) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card .rental-catalog-row__tag,
.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__tag,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__tag {
  background: var(--bk-rentals-catalog-tag-bg, var(--bk-highlight-bg, rgba(0, 0, 0, 0.07))) !important;
  color: var(--bk-rentals-catalog-tag-text, var(--bk-highlight-text, var(--bk-rentals-catalog-muted-text, #50575e))) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card .rental-catalog-row__highlight,
.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__highlight,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__highlight {
  background: var(--bk-rentals-catalog-highlight-bg, var(--bk-highlight-bg, rgba(0, 0, 0, 0.06))) !important;
  color: var(--bk-rentals-catalog-highlight-text, var(--bk-highlight-text, inherit)) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__attr,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__attr {
  background: var(
    --bk-rentals-catalog-attr-bg,
    var(--bk-rentals-catalog-tag-bg, var(--bk-highlight-bg, rgba(0, 0, 0, 0.06)))
  ) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__attr-dim,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__attr-dim {
  color: var(--bk-rentals-catalog-attr-text-color, var(--bk-rentals-catalog-card-text, #1d2327)) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__attr-val,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__attr-val {
  color: var(--bk-rentals-catalog-muted-text, #50575e) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__attr-sep,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__attr-sep {
  color: var(--bk-rentals-catalog-muted-text, #646970) !important;
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__attr-icon:not(.rental-catalog-row__attr-icon--custom),
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__attr-icon:not(.rental-catalog-row__attr-icon--custom) {
  color: var(
    --bk-rentals-catalog-attr-icon-color,
    var(--bk-rentals-catalog-price-color, var(--bs-accent, var(--bk-btn-accent, #2271b1)))
  ) !important;
  opacity: 1 !important;
}

.rental-booking .rental-catalog-row__media {
  flex: 0 0 clamp(9.25rem, 28vw, 12.5rem);
  width: clamp(9.25rem, 28vw, 12.5rem);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
  align-self: flex-start;
}
.rental-booking .rental-catalog-row__media .rental-catalog-row__thumb {
  width: 100%;
}
/* Same frame for every card; image scales to fill (cropped evenly if needed). */
.rental-booking .rental-catalog-row__thumb {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: var(--bk-ui-field-radius);
  overflow: hidden;
  background: var(--bs-muted-bg, #f0f0f1);
  align-self: flex-start;
}
.rental-booking .rental-catalog-row__thumb img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.rental-booking .rental-catalog-row__main {
  flex: 1 1 0;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.62rem;
}
.rental-booking .rental-catalog-row__title {
  font-size: var(--bk-rentals-catalog-field-font-size, clamp(1.05rem, 2.5vw, 1.35rem));
  font-weight: 700;
  line-height: 1.25;
  margin: 0;
}
.rental-booking .rental-catalog-card .rental-catalog-row__title:hover {
  color: inherit;
  text-decoration: none;
}
.rental-booking .rental-catalog-row__highlights {
  list-style: none;
  margin: 0.2rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 0.55rem;
  min-width: 0;
  max-width: 100%;
}
.rental-booking .rental-catalog-row__highlight {
  display: inline-flex;
  align-items: flex-start;
  gap: 0.38rem;
  max-width: 100%;
  min-width: 0;
  transition: none;
}
.rental-booking .rental-catalog-card .rental-catalog-row__highlight:hover {
  background: var(--bk-rentals-catalog-highlight-bg, var(--bk-highlight-bg, rgba(0, 0, 0, 0.04)));
  color: inherit;
  text-decoration: none;
  filter: none;
  transform: none;
  box-shadow: none;
}
/* FA glyphs use ::before; match single-item chip icon so themes don’t zero out icon fonts */
.rental-booking .rental-catalog-row__highlight-icon {
  display: inline-block;
  flex-shrink: 0;
  margin-top: 0.08rem;
  font-size: 1.02rem;
  line-height: 1;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  color: var(
    --bk-rentals-catalog-highlight-icon-color,
    var(--bs-highlight-icon-color, var(--bk-rentals-catalog-price-color, var(--bs-accent, var(--bk-btn-accent, #2271b1))))
  );
}

.rental-booking button.rental-catalog-row.rental-catalog-card:hover .rental-catalog-row__highlight-icon,
.rental-booking button.rental-catalog-row.rental-catalog-card:focus .rental-catalog-row__highlight-icon {
  color: var(
    --bk-rentals-catalog-highlight-icon-color,
    var(--bs-highlight-icon-color, var(--bk-rentals-catalog-price-color, var(--bs-accent, var(--bk-btn-accent, #2271b1))))
  ) !important;
  opacity: 1 !important;
}
.rental-booking .rental-catalog-row__highlight-icon::before {
  line-height: 1;
}
/* Theme buttons often force font-family on children — FA needs its own stack */
.rental-booking .rental-catalog-row__highlight-icon.fa-solid {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}
.rental-booking .rental-catalog-row__highlight-icon.fa-regular {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400 !important;
}
.rental-booking .rental-catalog-row__highlight-icon.fa-brands {
  font-family: "Font Awesome 6 Brands" !important;
  font-weight: 400 !important;
}
.rental-booking .rental-catalog-row__highlight-text {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.rental-booking .rental-catalog-row__highlight-label {
  font-weight: 600;
  color: inherit;
}
.rental-booking .rental-catalog-row__highlight-desc {
  color: var(--bk-rentals-catalog-muted-text, var(--bs-muted, #646970));
  font-size: calc(var(--bk-rentals-catalog-body-font-size, 14px) * 0.92);
}
.rental-booking .rental-catalog-row__tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  justify-content: flex-start;
  max-width: 100%;
}
.rental-booking .rental-catalog-row__tags-item {
  margin: 0;
  padding: 0;
}
.rental-booking .rental-catalog-row__tag {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
}



.rental-booking .rental-catalog-row__attributes {
  list-style: none;
  margin: 0.15rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 0.42rem;
  min-width: 0;
  max-width: 100%;
}

.rental-booking .rental-catalog-row__attr {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  max-width: 100%;
  min-width: 0;
  padding: 0.2rem 0.42rem;
  border-radius: var(--bk-ui-chip-category-radius);
  background: var(
    --bk-rentals-catalog-attr-bg,
    var(--bk-rentals-catalog-tag-bg, var(--bk-highlight-bg, rgba(0, 0, 0, 0.04)))
  );
  font-size: 0.8rem;
  line-height: 1.25;
}

.rental-booking .rental-catalog-card .rental-catalog-row__attr:hover {
  background: var(--bk-rentals-catalog-tag-bg, var(--bk-highlight-bg, rgba(0, 0, 0, 0.04)));
  color: inherit;
  text-decoration: none;
  filter: none;
  transform: none;
  box-shadow: none;
}

.rental-booking .rental-catalog-row__attr-text {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.15rem;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.rental-booking .rental-catalog-row__attr-dim {
  font-weight: 600;
  color: var(--bk-rentals-catalog-attr-text-color, var(--bk-rentals-catalog-card-text, #1d2327));
}

.rental-booking .rental-catalog-row__attr-sep {
  color: var(--bk-rentals-catalog-muted-text, var(--bs-muted, #646970));
  font-weight: 400;
}

.rental-booking .rental-catalog-row__attr-val {
  color: var(--bk-rentals-catalog-muted-text, var(--bs-muted, #50575e));
  font-size: 0.74rem;
}

.rental-booking .rental-catalog-row__attr-icon {
  display: inline-block;
  flex-shrink: 0;
  font-size: 0.95rem;
  line-height: 1;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  color: var(
    --bs-rental-attr-icon-color,
    var(
      --bk-rentals-catalog-attr-icon-color,
      var(--bk-rentals-catalog-price-color, var(--bs-accent, var(--bk-btn-accent, #2271b1)))
    )
  );
}

.rental-booking .rental-catalog-row__attr-icon::before {
  line-height: 1;
}

.rental-booking .rental-catalog-row__attr-icon.fa-solid,
.rental-booking .rental-catalog-row__attr-icon.fas {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
}

.rental-booking .rental-catalog-row__attr-icon.fa-regular {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 400 !important;
}

.rental-booking .rental-catalog-row__attr-icon.fa-brands {
	font-family: "Font Awesome 6 Brands" !important;
	font-weight: 400 !important;
}

.rental-booking .rental-catalog-row__attr-icon.dashicons {
	font-family: dashicons !important;
	font-size: 1rem;
	width: 1.05em;
	height: 1.05em;
	line-height: 1;
}

.rental-booking .rental-catalog-row__attr-icon.bi,
.rental-booking .rental-catalog-row__attr-icon.ti {
	font-size: 0.95rem;
	line-height: 1;
}

.rental-booking .rental-catalog-row__excerpt {
  margin: 0.18rem 0 0;
  /* Styling → Booking wizards → Rentals → catalog body text (14 px). */
  font-size: var(--bk-rentals-catalog-body-font-size, 0.875rem);
  line-height: 1.5;
  color: var(--bk-rentals-catalog-muted-text, var(--bs-muted, #50575e));
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}
.rental-booking .rental-catalog-row__aside {
  flex: 0 0 auto;
  align-self: flex-start;
  /* A long note ("Total for 3 days · Quantity 2") wraps instead of narrowing the description. */
  max-width: 12rem;
  text-align: right;
  padding-top: 0.1rem;
}

.rental-booking .rental-catalog-row__price-note {
  display: block;
  margin-top: 0.32rem;
  font-size: var(--bk-rentals-catalog-body-font-size, 0.875rem);
  font-weight: 500;
  color: var(--bk-rentals-catalog-muted-text, var(--bk-body-color, #666));
  line-height: 1.28;
}

.rental-booking .rental-catalog-row__price {
  display: block;
  font-size: clamp(1.15rem, 2.8vw, 1.32rem);
  font-weight: 700;
  color: var(--bk-rentals-catalog-price-color, var(--bs-accent, var(--bk-btn-accent, #2271b1)));
  white-space: nowrap;
}
/* A narrow list (e.g. beside the booking column): the price goes on its own line under the picture and text, so
   the description keeps the width beside the picture. Phones (very narrow list): picture on top, text and price below. */
@container bs-rental-catalog (max-width: 22rem) {
  .rental-booking .rental-catalog-row.rental-catalog-card {
    flex-wrap: wrap;
    row-gap: 0.85rem;
  }
  .rental-booking .rental-catalog-row__media {
    flex: 0 0 100%;
    width: 100%;
  }
  .rental-booking .rental-catalog-row__main {
    flex-basis: 100%;
  }
  .rental-booking .rental-catalog-row__aside {
    flex: 1 0 100%;
    max-width: none;
    text-align: left;
    padding-top: 0;
  }
}

@container bs-rental-catalog (min-width: 22rem) and (max-width: 40rem) {
  .rental-booking .rental-catalog-row.rental-catalog-card {
    flex-wrap: wrap;
    row-gap: 0.85rem;
  }
  .rental-booking .rental-catalog-row__media {
    flex-basis: clamp(7rem, 32%, 12.5rem);
    width: clamp(7rem, 32%, 12.5rem);
  }
  .rental-booking .rental-catalog-row__aside {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.6rem;
    flex: 1 0 100%;
    max-width: none;
    text-align: left;
    padding-top: 0;
  }
  .rental-booking .rental-catalog-row__price-note {
    margin-top: 0;
  }
  .rental-booking .rental-catalog-row__unavailable {
    flex-basis: 100%;
  }
}

.rental-booking .rental-catalog-item__extras.rental-catalog-extras .booking-extras-inner > .description {
  margin-top: 0;
}
.rental-booking .rental-catalog-step .step-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  margin-top: 0.5rem;
}

/* Coupon field on wizard summary (before total) */
/* In a combined trip the coupon is entered once for the whole order (booking-coupon.js sets the class). */
.bs-trip-coupon-deferred :is(.hotel-booking, .rental-booking, .event-booking, .tour-booking) [data-bs-coupon-ui] {
  display: none;
}
.bs-booking-coupon-ui {
  margin: 0.75rem 0 0.5rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--bs-border, #c3c4c7);
}
.bs-booking-coupon-ui__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
}
.bs-booking-coupon-ui__label {
  font-weight: 600;
  min-width: 7rem;
}
.bs-booking-coupon-ui__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.bs-booking-coupon-ui .bs-booking-coupon-code-input {
  min-width: 10rem;
  max-width: 100%;
}
/* Apply: the secondary button (frontend-buttons.css), as tall as the code field next to it. */
.bs-booking-coupon-ui .bs-booking-coupon-ui__controls {
  align-items: stretch;
}
.bs-booking-coupon-ui .bs-booking-coupon-apply {
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
}
.bs-booking-coupon-message.is-error {
  color: #b32d2e;
}
.bs-booking-coupon-discount-row {
  margin-top: 0.35rem;
  font-weight: 600;
  color: var(--bk-body-color, #1d2327);
}
.bs-booking-coupon-discount-amount {
  margin-left: 0.25rem;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .summary-fees-wrap .summary-item--fee {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.15rem 0 0.35rem;
  border: none;
}
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .summary-fees-wrap .summary-item__label {
  flex: 1 1 auto;
}
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .summary-fees-wrap .summary-item__value {
  flex: 0 0 auto;
  font-weight: 600;
}

/* Fee rows sit directly above summary total — one divider comes from .summary-total / .booking-total. */
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) .summary-fees-wrap + .summary-total,
.summary-fees-wrap + .booking-total {
  margin-top: 0;
}

/* Hotel room wizard — compact sidebar (same DOM/steps as classic; narrow card like tour/event). */
.hotel-booking.event-sidebar-module--narrow .booking-progress {
  display: none;
}
.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="4"] .booking-step-heading {
	margin: 0 0 0.55rem;
	font-family: var(--bk-heading-font-family, inherit);
	font-size: var(--bk-compact-sidebar-step-heading-font-size, var(--bk-compact-sidebar-label-font-size, 0.72rem));
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	line-height: 1.3;
	color: var(
		--bk-compact-sidebar-label-color,
		var(--bk-compact-sidebar-text-color, var(--bs-muted, #57534e))
	);
}

.hotel-booking.event-sidebar-module--narrow .booking-step-content {
  padding-top: 10px;
  padding-bottom: 10px;
}
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-row {
  display: flex !important;
  flex-direction: row;
  flex-wrap: wrap !important;
  align-items: stretch;
  gap: 12px 16px;
  margin-bottom: 16px;
}
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--dates {
  flex: 1 1 100% !important;
  width: 100%;
  min-width: 0;
  max-width: none;
}
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--dates .bs-hotel-wizard-dates-group,
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--dates .bs-hotel-search-bar__group--dates,
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--dates .bs-hotel-search-bar__dates-btn,
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--dates .booking-hotel-date-range {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--guests,
.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-field--rooms {
  flex: 1 1 calc(50% - 8px) !important;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.hotel-booking.event-sidebar-module--narrow .booking-hotel-step1-row .guest-field :is(
  select:not(.bs-frontend-select__native),
  .bs-frontend-select__trigger
) {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.hotel-booking.event-sidebar-module--narrow .flatpickr-calendar {
  margin-left: auto;
  margin-right: auto;
}
.hotel-booking.event-sidebar-module--narrow .step-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0.5rem;
  align-items: stretch;
  margin-top: 0.75rem;
}
.hotel-booking.event-sidebar-module--narrow .step-actions:has(.booking-prev-step) {
  flex-direction: row;
  align-items: center;
  justify-content: center;
}
.hotel-booking.event-sidebar-module--narrow .step-actions:has(.booking-prev-step):not(:has(> .bs-trip-payment-cta)) :is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step) {
  flex: 1 1 calc(50% - 0.25rem);
  min-width: 0;
  max-width: calc(50% - 0.25rem);
  width: calc(50% - 0.25rem);
  margin: 0;
  order: unset;
  display: inline-flex;
}
.hotel-booking.event-sidebar-module--narrow .step-actions .booking-next-step,
.hotel-booking.event-sidebar-module--narrow .step-actions a.booking-next-step {
  display: block;
  width: 100%;
  margin: 0;
}
.hotel-booking.event-sidebar-module--narrow .step-actions .booking-prev-step {
  display: block;
  width: 100%;
  order: unset;
}
.hotel-booking.event-sidebar-module--narrow .step-actions .booking-submit {
  display: block;
  width: 100%;
  margin: 0;
  order: unset;
}
.hotel-booking.event-sidebar-module--narrow .hotel-wizard-payment-total {
  margin-top: 1.2rem;
  color: var(
    --bk-compact-sidebar-summary-text-color,
    var(--bk-rooms-sidebar-summary-text-color, var(--hb-text, var(--bk-body-color, #1c1917)))
  );
}
.hotel-booking.event-sidebar-module--narrow .hotel-wizard-payment-total :is(strong, span) {
  color: inherit;
}
.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="4"] :is(
  .booking-step-lead,
  .hotel-wizard-payment-total
),
.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="5"] :is(
  .booking-step-lead,
  .booking-wizard-custom-fields__title,
  .booking-wizard-custom-fields__row label:first-of-type
) {
  color: var(
    --bk-compact-sidebar-summary-text-color,
    var(--bk-rooms-sidebar-summary-text-color, var(--hb-text, var(--bk-body-color, #1c1917)))
  );
}

.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="4"] .booking-wizard-pay-on-site-notice,
.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="5"] .booking-wizard-pay-on-site-notice {
  color: var(
    --bk-compact-sidebar-pay-on-site-notice-color,
    var(--bk-rooms-sidebar-summary-text-color, var(--hb-text, var(--bk-body-color, #1c1917)))
  );
}
.hotel-booking.event-sidebar-module--narrow .step-actions:has(.booking-prev-step):has(.booking-submit) {
  align-items: stretch;
}
.hotel-booking.event-sidebar-module--narrow .step-actions:has(.booking-prev-step):has(.booking-submit) :is(.booking-prev-step, .booking-submit) {
  align-self: stretch;
  height: auto;
}
.hotel-booking.event-sidebar-module--narrow .room-option {
  flex-direction: column;
  align-items: flex-start;
}
.hotel-booking.event-sidebar-module--narrow .summary-total {
  font-size: 0.875rem;
}

/* Summary card: space below intro lead so the top border isn’t flush/hidden against surrounding beige */
.hotel-booking.event-sidebar-module--narrow .booking-step-content .booking-summary {
  margin-top: 0.65rem;
}

/* Narrow sidebar: extras stacked full width (avoid global hotel 2-col grid on #booking-extras). */
.hotel-booking.event-sidebar-module--narrow #booking-extras {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: stretch;
  width: 100%;
}

.hotel-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  align-items: center;
}

.hotel-booking.event-sidebar-module--narrow #booking-extras .extra-option {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Rental wizard — compact sidebar (single rental page; same card shell as hotel/event). */
.rental-booking.event-sidebar-module--narrow .booking-progress {
  display: none;
}
.rental-booking.event-sidebar-module--narrow .booking-step-content {
  padding-top: 10px;
  padding-bottom: 10px;
}
.rental-booking.event-sidebar-module--narrow .rental-tour-wizard-step1-layout.bs-booking-wizard-step1-layout {
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 1rem;
  margin-bottom: 0;
}
.rental-booking.event-sidebar-module--narrow .rental-tour-wizard-step1-layout .bs-booking-wizard-step1-main {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
}
.rental-booking.event-sidebar-module--narrow .rental-tour-wizard-step1-layout .bs-booking-wizard-sidebar {
  flex: 1 1 auto;
  width: 100%;
  max-width: 100%;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}
.rental-booking.event-sidebar-module--narrow .rental-range-fields__grid:has(.rental-range-field--dates) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 0.5rem;
  row-gap: 0.55rem;
  align-items: end;
  width: 100%;
  overflow: visible;
}

.rental-booking.event-sidebar-module--narrow .rental-range-field--time,
.rental-booking.event-sidebar-module--narrow .rental-range-fields,
.rental-booking.event-sidebar-module--narrow .rental-range-fields__grid,
.rental-booking.event-sidebar-module--narrow .rental-wizard-range-main,
.rental-booking.event-sidebar-module--narrow .booking-step-content[data-step="1"] {
  overflow: visible;
}

.rental-booking.event-sidebar-module--narrow .rental-range-field--dates {
  grid-column: 1 / -1;
}

.rental-booking.event-sidebar-module--narrow .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates) {
  grid-template-columns: minmax(0, 1fr);
}

.rental-booking.event-sidebar-module--narrow .rental-range-field--dates .bs-rental-search-bar__dates-btn,
.rental-booking.event-sidebar-module--narrow .rental-range-field--dates .bs-rental-search-bar__dates-btn-main {
  flex-wrap: nowrap;
}

.rental-booking.event-sidebar-module--narrow .rental-range-field--dates .bs-rental-search-bar__label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(
    --bk-compact-sidebar-label-color,
    var(--bk-compact-sidebar-text-color, var(--bs-muted, #57534e))
  );
}



.rental-booking.event-sidebar-module--narrow .rental-range-fields--start-only .rental-range-field--end-time,
.rental-booking.event-sidebar-module--narrow .rental-range-fields--start-only .rental-range-fields__row--end {
  display: none !important;
}

.rental-booking.event-sidebar-module--narrow .rental-range-field {
  flex: unset;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
.rental-booking.event-sidebar-module--narrow .step-actions {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 0.5rem;
  align-items: stretch;
  margin-top: 0.75rem;
}
.rental-booking.event-sidebar-module--narrow .step-actions:has(.booking-prev-step) {
  flex-direction: row;
  align-items: stretch;
  justify-content: center;
}
.rental-booking.event-sidebar-module--narrow .step-actions:has(.booking-prev-step):not(:has(> .bs-trip-payment-cta)) :is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step) {
  flex: 1 1 calc(50% - 0.25rem);
  min-width: 0;
  max-width: calc(50% - 0.25rem);
  width: calc(50% - 0.25rem);
  margin: 0;
  order: unset;
  display: inline-flex;
}
.rental-booking.event-sidebar-module--narrow .step-actions .booking-next-step,
.rental-booking.event-sidebar-module--narrow .step-actions a.booking-next-step {
  display: block;
  width: 100%;
  margin: 0;
}
.rental-booking.event-sidebar-module--narrow .step-actions .booking-prev-step {
  display: block;
  width: 100%;
  order: unset;
}
.rental-booking.event-sidebar-module--narrow .step-actions .booking-submit {
  display: block;
  width: 100%;
  margin: 0;
}
.rental-booking.event-sidebar-module--narrow .booking-step-content .booking-summary {
  margin-top: 0.65rem;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
}

.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--period {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.15rem;
}
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--period .summary-item__label {
  display: block;
  flex: none;
  margin: 0;
}
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--period :is(
  #rental-summary-datetime-start,
  .summary-item__period-line--end
) {
  flex: none;
  width: 100%;
  min-width: 0;
  text-align: left;
  white-space: normal;
  font-size: 0.875rem;
  line-height: 1.45;
}
.rental-booking.event-sidebar-module--narrow #booking-extras,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) :is(#booking-extras, .booking-extras-inner, .bs-booking-wizard-sidebar__extras-inner) {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  align-items: stretch;
  width: 100%;
}
.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: space-between;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty .extra-row__main,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__main {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.875rem;
  line-height: 1.25;
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty .extra-row__main strong.extra-name,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-row__main strong.extra-name {
  display: block;
  font-weight: 600;
  font-size: inherit;
  line-height: inherit;
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty .extra-description,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-description {
  margin-top: 0.15rem;
  font-size: 0.75rem;
  line-height: 1.3;
  color: var(--bk-body-color, #666);
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty .extra-price,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-price {
  font-weight: 600;
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty .extra-quantity,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-quantity {
  flex: 0 0 auto;
  margin: 0;
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty .extra-checkbox,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-row.extra-row--qty .extra-checkbox {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  min-width: 1.25rem;
  max-width: 1.25rem;
  margin: 0;
  padding: 0;
}

.rental-booking.event-sidebar-module--narrow #booking-extras .extra-option,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .extra-option {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Login required gate (event/tour when guest booking is disabled) */
.bs-booking-login-gate {
  max-width: 350px;
  width: 100%;
  margin: 1rem 0;
  padding: 1.25rem 1.15rem 1.35rem;
  border: 1px solid var(--bs-border, #e0ddd4);
  border-radius: var(--bk-ui-field-radius);
  background: var(--bk-theme-panel, #f9f7f2);
  box-sizing: border-box;
}

.bs-booking-login-gate.event-sidebar-module--narrow.event-sidebar-card {
  max-width: 350px;
  margin: 0;
  padding: 1.35rem 1.15rem 1.5rem;
  background: var(--bk-compact-sidebar-bg, var(--bk-theme-panel, #f9f7f2));
  border: var(--bk-compact-sidebar-border-width, 1px) solid var(--bk-compact-sidebar-border-color, var(--bs-border, #e0ddd4));
  border-radius: var(--bk-compact-sidebar-border-radius, 8px);
}

/* Under the content (960 px and narrower) the whole width, like the booking card it replaces. */
@media (max-width: 960px) {
  .bs-booking-login-gate.event-sidebar-module--narrow.event-sidebar-card {
    max-width: 100%;
  }
}

.bs-booking-login-gate__message {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.45;
  color: var(--bs-text, #1a1a1a);
}

.bs-booking-login-gate__fallback {
  margin: 0;
}

.bs-booking-login-gate__fallback .bs-booking-login-gate__link {
  display: inline-block;
  text-decoration: none;
  text-align: center;
}

.bs-booking-login-gate .bookklar-login-form--booking-wizard {
  max-width: none;
  margin: 0;
  font-size: inherit;
  color: inherit;
}

.bs-booking-login-gate .bookklar-login-form--booking-wizard .bookklar-login-form__form {
  margin: 0;
}

.bs-booking-login-gate .bookklar-login-form--booking-wizard .booking-wizard-custom-fields__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: 1rem;
  row-gap: 0;
  align-items: start;
}

.bs-booking-login-gate .bookklar-login-form--booking-wizard .booking-wizard-custom-fields__row {
  min-width: 0;
}

.bs-booking-login-gate .bookklar-login-form--booking-wizard .booking-wizard-custom-fields__row label:first-of-type {
  color: var(--bs-text, #1a1a1a);
}

.bs-booking-login-gate .bookklar-login-form__field--checkbox.booking-wizard-terms {
  margin-bottom: 0.5rem;
}

.bs-booking-login-gate .bookklar-login-form__field--checkbox .booking-wizard-terms__label {
  font-weight: 400;
  font-size: 0.875rem;
}

.bs-booking-login-gate .bookklar-login-form__actions {
  margin: 0.75rem 0 0;
}

.bs-booking-login-gate .bookklar-login-form__submit.booking-submit {
  display: block;
  width: 100%;
  margin: 0;
}

.bs-booking-login-gate .bookklar-login-form__links {
  margin: 0.85rem 0 0;
  font-size: 0.875rem;
}

.bs-booking-login-gate .bookklar-login-form__links a {
  color: var(--bs-accent, var(--bk-btn-accent, #b89968));
  text-decoration: underline;
}

.bs-booking-login-gate .bookklar-login-form__error {
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  border-radius: var(--bk-ui-field-radius);
  background: #fcf0f1;
  border: 1px solid #d63638;
  color: #8a2424;
  font-size: 0.875rem;
}

/* Rentals catalog wizard (Booking modules → Rentals catalog): the catalog tab owns packages, fields,
 * extras icon and summary here, so re-map the Classic full width tokens onto catalog tokens.
 * Selector beats `.rental-booking.booking-steps-wrapper{…}` (module tokens re-declared on the wrapper). */
.rental-booking.rental-booking--catalog.booking-steps-wrapper {
  --bk-classic-full-width-package-bg: var(--bk-rentals-catalog-package-bg);
  --bk-classic-full-width-package-border-color: var(--bk-rentals-catalog-package-border-color);
  --bk-classic-full-width-package-text-color: var(--bk-rentals-catalog-package-text);
  --bk-classic-full-width-package-selected-bg: var(--bk-rentals-catalog-package-selected-bg);
  --bk-classic-full-width-package-selected-border-color: var(--bk-rentals-catalog-package-selected-border-color);
  --bk-classic-full-width-package-selected-text-color: var(--bk-rentals-catalog-package-selected-text);
  --bk-classic-full-width-package-border-width: var(--bk-rentals-catalog-package-border-width);
  --bk-classic-full-width-package-selected-border-width: var(--bk-rentals-catalog-package-selected-border-width);
  --bk-rentals-package-bg: var(--bk-rentals-catalog-package-bg);
  --bk-rentals-package-border-color: var(--bk-rentals-catalog-package-border-color);
  --bk-rentals-package-text: var(--bk-rentals-catalog-package-text);
  --bk-rentals-package-text-color: var(--bk-rentals-catalog-package-text);
  --bk-rentals-package-selected-bg: var(--bk-rentals-catalog-package-selected-bg);
  --bk-rentals-package-selected-border-color: var(--bk-rentals-catalog-package-selected-border-color);
  --bk-rentals-package-selected-text: var(--bk-rentals-catalog-package-selected-text);
  --bk-rentals-package-border-width: var(--bk-rentals-catalog-package-border-width);
  --bk-rentals-package-selected-border-width: var(--bk-rentals-catalog-package-selected-border-width);
  --bk-rentals-package-read-more-color: var(--bk-rentals-catalog-package-read-more-color);
  --bk-classic-full-width-field-bg: #ffffff;
  --bk-classic-full-width-field-border-color: var(--bk-rentals-catalog-field-border-color);
  --bk-classic-full-width-field-text: var(--bk-rentals-catalog-field-text-color);
  --bk-classic-full-width-extra-icon-color: var(--bk-rentals-catalog-extra-icon-color);
  --bk-rentals-wizard-extra-icon-color: var(--bk-rentals-catalog-extra-icon-color);
  /* Step 1 labels use the catalog section heading (as in the preview), not Classic full width. */
  --bk-rentals-wizard-section-label-color: var(--bk-rentals-catalog-section-heading-color);
  --bk-rentals-wizard-summary-pay-on-site-color: var(--bk-rentals-catalog-body-text-color);
  --bk-classic-full-width-summary-bg: var(--bk-rentals-catalog-summary-bg);
  --bk-rentals-wizard-summary-bg: var(--bk-rentals-catalog-summary-bg);
  --bk-classic-full-width-summary-text-color: var(--bk-rentals-catalog-body-text-color);
  --bk-rentals-wizard-summary-text-color: var(--bk-rentals-catalog-body-text-color);
  --bk-classic-full-width-summary-border-color: var(--bk-rentals-catalog-summary-border-color);
  --bk-rentals-wizard-summary-border-color: var(--bk-rentals-catalog-summary-border-color);
  --bk-classic-full-width-summary-label-color: var(--bk-rentals-catalog-summary-label-color);
  --bk-rentals-wizard-summary-label-color: var(--bk-rentals-catalog-summary-label-color);
  --bk-classic-full-width-summary-border-width: 1px;
  --bk-rentals-wizard-summary-border-width: 1px;
  --bk-classic-full-width-summary-border-radius: 8px;
  --bk-rentals-wizard-summary-border-radius: 8px;
}

/* Compact sidebar (narrow) wizards: shared package rules read the Rooms / Rentals / Classic full width
 * package tokens, so the narrow wizard maps them to the Compact sidebar packages. Classic wizards keep
 * their own tokens; the archive popup re-maps all of them on the same element with higher specificity. */
.hotel-booking.event-sidebar-module--narrow,
.rental-booking.event-sidebar-module--narrow {
  --bk-rooms-package-bg: var(--bk-compact-sidebar-package-bg);
  --bk-rooms-package-text: var(--bk-compact-sidebar-package-text);
  --bk-rooms-package-border-color: var(--bk-compact-sidebar-package-border-color);
  --bk-rooms-package-selected-bg: var(--bk-compact-sidebar-package-selected-bg);
  --bk-rooms-package-selected-text: var(--bk-compact-sidebar-package-selected-text);
  --bk-rooms-package-selected-border-color: var(--bk-compact-sidebar-package-selected-border-color);
  --bk-rentals-package-bg: var(--bk-compact-sidebar-package-bg);
  --bk-rentals-package-text: var(--bk-compact-sidebar-package-text);
  --bk-rentals-package-text-color: var(--bk-compact-sidebar-package-text);
  --bk-rentals-package-border-color: var(--bk-compact-sidebar-package-border-color);
  --bk-rentals-package-selected-bg: var(--bk-compact-sidebar-package-selected-bg);
  --bk-rentals-package-selected-text: var(--bk-compact-sidebar-package-selected-text);
  --bk-rentals-package-selected-border-color: var(--bk-compact-sidebar-package-selected-border-color);
  --bk-classic-full-width-package-selected-bg: var(--bk-compact-sidebar-package-selected-bg);
  --bk-classic-full-width-package-selected-border-color: var(--bk-compact-sidebar-package-selected-border-color);
}

/* Wizard messages (BookingWizardNotice in booking-core.js, instead of the browser's alert box). The colors are
   their own variables so a theme can set them; geometry follows the design standard. */
.bs-wizard-notice {
  --bk-wizard-notice-bg: #fdf2f2;
  --bk-wizard-notice-border: #e8b4b4;
  --bk-wizard-notice-text: #8a1f1f;
  margin: 0 0 var(--bk-ui-row-gap, 12px);
  padding: var(--bk-ui-field-padding-y, 10px) var(--bk-ui-field-padding-x, 14px);
  border: var(--bk-ui-field-border-width, 1px) solid var(--bk-wizard-notice-border);
  border-radius: var(--bk-ui-field-radius, 8px);
  background: var(--bk-wizard-notice-bg);
  color: var(--bk-wizard-notice-text);
  font-size: var(--bk-ui-field-font-size, 14px);
  line-height: 1.45;
}

/* After a booking: the summary again (booking-core.js copies it under the success message) and "Make another
   booking". Layout only; the summary keeps its own look and the button is a secondary button. */
.bs-wizard-complete-summary {
  margin: 0;
}

.bs-wizard-complete-actions {
  margin: var(--bk-ui-row-gap, 12px) 0 0;
  text-align: center;
}


/* Payment method list (booking_system_render_booking_wizard_payment_methods(), booking-core.js): one card per
   way to pay, the radio hidden, the chosen card in the accent color. Also used by the combined trip checkout. */
.booking-payment-methods {
  display: flex;
  flex-direction: column;
  text-align: start;
  gap: 8px;
  margin: 0 0 var(--bk-ui-row-gap, 12px);
  padding: 0;
  border: 0;
  min-width: 0;
  /* About half the row (the method list and Klarna's Pay now / Pay later), never narrower than 18rem, so on
     phones it is the full width; kept at the left of a centred button row. */
  box-sizing: border-box;
  width: 100%;
  max-width: max(50%, 18rem);
  margin-right: auto;
}

@media (max-width: 782px) {
  .booking-payment-methods {
    max-width: 100%;
  }
}

/* Book now: the chosen method's block (Swish number, card form, PayPal buttons) is the full width, so the list is too. */
.booking-payment-methods.bs-combined-order-checkout__methods {
  max-width: 100%;
}

.booking-payment-methods[hidden] {
  display: none;
}

/* Countdown while the place is held for the paying customer (booking-hold-countdown.js): under the payment
   method list or the Book now total; once the time ran out in the error colors with "Hold it again". */
.bs-hold-countdown {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
  margin: 0 0 var(--bk-ui-row-gap, 12px);
  text-align: start;
  font-size: 0.9em;
  color: var(--bk-theme-muted, var(--bk-body-color, #555));
}

:is(.step-actions, .bs-svc-panel-actions) > .bs-hold-countdown {
  flex: 1 0 100%;
  order: -1;
}

.bs-hold-countdown__text {
  margin: 0;
}

.bs-hold-countdown--expired {
  padding: 0.6rem 0.85rem;
  border: 1px solid #fecaca;
  border-radius: var(--bk-ui-field-radius);
  background: #fef2f2;
  color: #991b1b;
}

/* A text link; two classes and the states so theme button rules (border, padding, hover fill) stay out. */
.bs-hold-countdown .bs-hold-countdown__again,
.bs-hold-countdown .bs-hold-countdown__again:is(:hover, :focus, :active) {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: inherit;
  font: inherit;
  font-weight: 600;
  text-decoration: underline;
  cursor: pointer;
}

/* In a step's button row (Back / pay / Book; .bs-svc-panel-actions in the service accordion / popup panels):
   the list takes the whole first line, above the buttons. */
:is(.step-actions, .bs-svc-panel-actions) > .booking-payment-methods {
  flex: 1 0 100%;
  order: -1;
  text-align: start;
}

/* Some modules leave the button row a plain block (hotel classic) or a no-wrap row (sidebars): a row holding
   the list becomes a wrapping flex row, so the list and the chosen panel always sit above Back / Book. */
:is(.step-actions, .bs-svc-panel-actions):has(> .booking-payment-methods) {
  display: flex;
  flex-wrap: wrap !important;
  justify-content: center;
  align-items: center;
}

/* Line break between the list / panel (order -1) and Back / Book: the list is at most half the row wide, so
   without it the buttons would sit next to the list. */
:is(.step-actions, .bs-svc-panel-actions):has(> .booking-payment-methods:not([hidden]))::before {
  content: "";
  flex: 0 0 100%;
  height: 0;
}

/* The chosen method's panel gets its own line under the list, above Back / Book. */
:is(.step-actions, .bs-svc-panel-actions) > :is(
    .booking-klarna-checkout-wrap,
    .booking-swish-checkout-wrap,
    .booking-stripe-checkout-wrap,
    .booking-paypal-checkout-wrap
  ) {
  flex: 1 0 100%;
  order: -1;
  text-align: start;
}

/* PayPal's buttons (and the card form it opens under them) are as wide as the method list above them, not the
   whole row. */
:is(.step-actions, .bs-svc-panel-actions) > .booking-payment-methods:not([hidden]) ~ .booking-paypal-checkout-wrap .booking-paypal-buttons-container {
  max-width: max(50%, 18rem);
}

@media (max-width: 782px) {
  :is(.step-actions, .bs-svc-panel-actions) > .booking-payment-methods:not([hidden]) ~ .booking-paypal-checkout-wrap .booking-paypal-buttons-container {
    max-width: 100%;
  }
}

/* Compact sidebars (not the Book popups, which use the sidebar templates): a tighter frame around the chosen
   method's panel, so the card / Swish / Klarna fields keep most of the width. */
:is(.bs-booking-wizard-sidebar, .bs-single__service-split-booking__aside):not(.bs-archive-book-popup *) :is(
    .booking-klarna-checkout-wrap,
    .booking-swish-checkout-wrap,
    .booking-stripe-checkout-wrap,
    .booking-nexi-checkout-wrap,
    .booking-paypal-checkout-wrap
  ) {
  padding: 12px;
}

/* … and its pay button is as wide as Back under it. */
:is(.bs-booking-wizard-sidebar, .bs-single__service-split-booking__aside):not(.bs-archive-book-popup *) :is(
    .booking-stripe-pay-btn,
    .booking-klarna-pay-btn,
    .booking-nexi-pay-btn,
    .booking-swish-pay-btn,
    .booking-swish-app-btn,
    .booking-swish-qr-btn
  ) {
  align-self: stretch;
  width: 100%;
  justify-content: center;
}

/* Compact sidebars: "Continue to payment" (a line of a Book now trip) is too long for half the row; it and Back
   each take a full line, the button first. */
:is(.bs-booking-wizard-sidebar, .bs-single__service-split-booking__aside):not(.bs-archive-book-popup *) :is(.step-actions, .bs-svc-panel-actions):has(> .bs-trip-payment-cta) > * {
  flex: 1 1 100%;
  margin: 0;
}

:is(.bs-booking-wizard-sidebar, .bs-single__service-split-booking__aside):not(.bs-archive-book-popup *) :is(.step-actions, .bs-svc-panel-actions) > .bs-trip-payment-cta {
  order: -1;
  white-space: normal;
}

/* Each module's section label (Summary, Extras, Tickets …) as two shared variables for the payment step labels. */
.event-booking,
.tour-booking {
  --bk-wizard-section-label-color: var(--bk-experiences-wizard-section-label-color, var(--bs-muted, #57534e));
  --bk-wizard-section-label-font-size: var(--bk-experiences-wizard-step-heading-font-size, 0.8125rem);
}

.hotel-booking {
  --bk-wizard-section-label-color: var(--bk-rooms-wizard-section-label-color, var(--bs-muted, #57534e));
  --bk-wizard-section-label-font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
}

.rental-booking {
  --bk-wizard-section-label-color: var(--bk-rentals-wizard-section-label-color, var(--bs-muted, #646970));
  --bk-wizard-section-label-font-size: var(--bk-rentals-wizard-label-font-size, 0.6875rem);
}

.service-booking {
  --bk-wizard-section-label-color: var(--bk-svc-summary-label, var(--bs-muted, #57534e));
  --bk-wizard-section-label-font-size: var(--bk-svc-wizard-label-font-size, 0.72rem);
}

/* "Payment method" and "Amount due" look like the step's section labels; a divider sits under Amount due. */
.booking-payment-methods .booking-payment-methods__legend,
:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) :is(
    .event-wizard-payment-total,
    .tour-wizard-payment-total,
    .hotel-wizard-payment-total,
    .rental-wizard-payment-total,
    .service-wizard-payment-total
  ) {
  font-family: var(--bk-heading-font-family, inherit);
  font-size: var(--bk-wizard-section-label-font-size, 0.75rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--bk-wizard-section-label-color, var(--bk-theme-muted, inherit));
}

.booking-payment-methods .booking-payment-methods__legend {
  margin: 0 0 6px;
  padding: 0;
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) :is(
    .event-wizard-payment-total,
    .tour-wizard-payment-total,
    .hotel-wizard-payment-total,
    .rental-wizard-payment-total,
    .service-wizard-payment-total
  ) {
  padding-bottom: 0.65rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid var(--bk-theme-border, rgba(0, 0, 0, 0.1));
}

:where(.booking-steps-wrapper, .booking-module, .booking-service-embed, [class^="bs-"], [class*=" bs-"]) :is(
    .event-wizard-payment-total,
    .tour-wizard-payment-total,
    .hotel-wizard-payment-total,
    .rental-wizard-payment-total,
    .service-wizard-payment-total
  ) :is(strong, span) {
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
}

.booking-payment-methods .booking-payment-method {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: var(--bk-ui-field-padding-y, 10px) var(--bk-ui-field-padding-x, 14px);
  border: var(--bk-ui-field-border-width, 1px) solid var(--bk-pay-method-border, var(--bk-theme-border, rgba(0, 0, 0, 0.15)));
  border-radius: var(--bk-ui-field-radius, 8px);
  /* Card look like the package cards (Styling → Booking wizards → Payment methods; empty = theme). */
  background: var(--bk-pay-method-bg, #fff);
  color: var(--bk-pay-method-text, inherit);
  cursor: pointer;
}

.booking-payment-methods .booking-payment-method__input {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  margin: 0;
  pointer-events: none;
}

/* The round marker drawn on the card (the native radio is hidden). */
.booking-payment-methods .booking-payment-method::before {
  content: "";
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  border: 2px solid var(--bk-theme-border, rgba(0, 0, 0, 0.3));
  border-radius: 50%;
  box-sizing: border-box;
}

/* Selected: 2px border like a selected package, drawn with an inset ring so the card does not shift. */
.booking-payment-methods .booking-payment-method.is-selected,
.booking-payment-methods .booking-payment-method:has(.booking-payment-method__input:checked) {
  border-color: var(--bk-pay-method-selected-border, var(--bk-btn-accent, #007aff));
  box-shadow: inset 0 0 0 1px var(--bk-pay-method-selected-border, var(--bk-btn-accent, #007aff));
  background: var(--bk-pay-method-selected-bg, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.12));
}

.booking-payment-methods .booking-payment-method.is-selected::before,
.booking-payment-methods .booking-payment-method:has(.booking-payment-method__input:checked)::before {
  border-color: var(--bk-btn-accent, #007aff);
  background: radial-gradient(circle, var(--bk-btn-accent, #007aff) 0 4px, transparent 5px);
}

.booking-payment-methods .booking-payment-method:has(.booking-payment-method__input:focus-visible) {
  outline: 2px solid rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.35);
  outline-offset: 2px;
}

.booking-payment-methods .booking-payment-method__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.booking-payment-methods .booking-payment-method__label {
  font-weight: 600;
}

.booking-payment-methods .booking-payment-method__desc {
  font-size: 0.9em;
  color: var(--bk-theme-muted, inherit);
}

/* "Payment is collected on location" shows only once Pay on location is the chosen method (owner's decision). */
.booking-payment-methods .booking-payment-method:has(.booking-payment-method__input[value="on_site"]:not(:checked)) .booking-payment-method__desc {
  display: none;
}

/* Combined trip checkout: the blocks of the payment methods not chosen in the list (they are display: flex). */
.bs-combined-booking-continue__actions[hidden] {
  display: none;
}

/* Price per group size (event-tour-group-pricing.js): the price for the people chosen so far, under the group prices. */
.bs-group-price-hint.bs-group-price-live {
  font-weight: 600;
}

/* Booking form fields asked only in other modules / items ("Ask in", booking-wizard-custom-fields.js). */
.booking-wizard-custom-fields__row[data-cf-off="1"] {
  display: none !important;
}

/* Trip checkout coupon (booking-core.js): Apply / Remove as tall as the code field, like the wizard's. */
.bs-booking-coupon-ui__controls:has(.bs-combined-order-coupon-apply, .bs-combined-order-coupon-remove) {
  align-items: stretch;
}
.bs-booking-coupon-ui__controls :is(.bs-combined-order-coupon-apply, .bs-combined-order-coupon-remove, .bs-booking-coupon-remove) {
  min-height: 0;
  padding-top: 0;
  padding-bottom: 0;
}

/* Quantity and people both in the date row (rental with more than one unit and the people field): a column each. */
.rental-booking.rental-booking--ui-classic .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--people):has(.rental-range-field--quantity) {
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(5rem, 8.5rem) minmax(5rem, 8.5rem);
}

.rental-booking.rental-booking--ui-classic .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates):has(.rental-range-field--people):has(.rental-range-field--quantity) {
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(5rem, 8.5rem) minmax(5rem, 8.5rem);
}

/* No upcoming time can be booked (all sold out / cancelled): notice instead of the event / tour wizard. */
.bs-booking-closed {
  max-width: 350px;
  width: 100%;
  margin: 1rem 0;
  padding: 1.25rem 1.15rem 1.35rem;
  border: 1px solid var(--bs-border, #e0ddd4);
  border-radius: var(--bk-ui-field-radius);
  background: var(--bs-surface, #fff);
  box-sizing: border-box;
}

.bs-booking-closed.event-sidebar-module--narrow.event-sidebar-card {
  margin-left: 0;
  margin-right: 0;
}

.bs-booking-closed__title {
  margin: 0 0 0.35rem;
  font-family: var(--bk-heading-font-family, inherit);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--bk-heading-color, var(--bs-text, #1a1a1a));
}

.bs-booking-closed__text {
  margin: 0;
  line-height: 1.45;
  color: var(--bs-text, #1a1a1a);
}

/* Rooms: the guest picker with adults and children is wider than the number select (look: frontend/search/hotel-party.css). */
.hotel-booking:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--guests.bs-hotel-party {
  flex: 1 1 220px;
  max-width: min(100%, 340px);
}

/* Event / tour wizard: the picked time is full and the booking will join the waitlist (event-tour-double-booking.js). */
.bs-waitlist-note {
  margin: 0 0 var(--bk-ui-row-gap, 12px);
  padding: 10px 14px;
  border-left: 3px solid var(--bk-btn-accent, currentColor);
  border-radius: 4px;
  background: var(--bk-theme-accent-soft, transparent);
  color: var(--bk-body-color, inherit);
}

/* "Create an account with this email address" under the details fields (includes/forms/checkout-account.php). */
.bs-checkout-account {
  margin-top: var(--bk-ui-field-gap, 12px);
}

/* The checkbox beside its text, a second line of the text under the first (on phones it ran in under the box). */
.bs-checkout-account .bs-checkout-account__toggle-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-weight: 400;
  cursor: pointer;
}

.bs-checkout-account .bs-checkout-account__toggle-row .bs-checkout-account__toggle {
  flex-shrink: 0;
  margin: 0.2em 0 0;
}

.bs-checkout-account .bs-checkout-account__hint {
  margin: 4px 0 0;
}

.bs-checkout-account .bs-checkout-account__fields {
  margin-top: var(--bk-ui-field-gap, 12px);
}

.bs-checkout-account .bs-checkout-account__fields[hidden] {
  display: none;
}

/* How the account turned out, under the booking's thank-you message (checkout-account.js). */
.bs-checkout-account__done {
  margin: 0 0 var(--bk-ui-row-gap, 12px);
  color: inherit;
}

/* Event / tour summary on phones: the label above its value, the value on the left. Side by side the values were
   right-aligned in a narrow column ("Barn 7–15 år × 1 —" / "90,00 kr", a long event name over four lines). */
@media (max-width: 600px) {
  :is(.event-booking, .tour-booking):not(.event-sidebar-module--narrow) .booking-summary:is(.event-wizard-summary, .tour-wizard-summary) :is(.summary-item, .summary-item.summary-item--tickets, .summary-extras) {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  :is(.event-booking, .tour-booking):not(.event-sidebar-module--narrow) .booking-summary:is(.event-wizard-summary, .tour-wizard-summary) .summary-item > span:not(:first-child),
  :is(.event-booking, .tour-booking):not(.event-sidebar-module--narrow) .booking-summary:is(.event-wizard-summary, .tour-wizard-summary) :is(.event-summary-tickets-body, #event-summary-extras-list, .tour-summary-tickets-body, #tour-summary-extras-list) {
    text-align: left;
  }
}

/* Rooms summary on phones, the same: "Endast logi · Familjesvit … × 1 night = 3 200,00 kr" was right-aligned in a
   narrow column over seven lines.
   .hotel-booking is repeated to win over the room page's own rows (single-booking-items.css, with ids). */
@media (max-width: 600px) {
  .hotel-booking.hotel-booking.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-item, .summary-rooms, .summary-extras) {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  .hotel-booking.hotel-booking.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-item, .summary-rooms, .summary-extras) > :not(:first-child),
  .hotel-booking.hotel-booking.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary :is(#summary-rooms-list, #summary-extras-list, .booking-summary-room-line, .booking-summary-room-line *) {
    text-align: left;
  }
}

/* Rentals summary on phones, the same ("1 × 1 800,00 kr per hour = 1 / 800,00 kr" right-aligned over two lines). */
@media (max-width: 600px) {
  .rental-booking.rental-booking.rental-booking:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-item, .summary-extras) {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  .rental-booking.rental-booking.rental-booking:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-item, .summary-extras) > :not(:first-child),
  .rental-booking.rental-booking.rental-booking:not(.event-sidebar-module--narrow) .booking-summary :is(#rental-summary-extras-list, #rental-summary-extras-list *) {
    text-align: left;
  }
}

/* Services summary on phones, the same (the service name and extras right-aligned over many short lines). */
@media (max-width: 600px) {
  .service-booking.service-booking.service-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
  }

  .service-booking.service-booking.service-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item > :not(:first-child),
  .service-booking.service-booking.service-booking:not(.event-sidebar-module--narrow) .booking-summary :is(#summary-extras-list, #summary-extras-list *) {
    text-align: left;
  }
}

/* Compact sidebar, last step: "Back" as wide as its word, the booking button the rest without breaking its label
   ("Complete / booking" in two lines, cut off on phones). A label too long for the row moves under "Back". */
:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking, .service-booking).event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(> .booking-submit) {
  flex-wrap: wrap;
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking, .service-booking).event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(> .booking-submit) > .booking-prev-step {
  flex: 0 0 auto;
}

:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking, .service-booking).event-sidebar-module--narrow .step-actions.event-sidebar-card__actions:has(> .booking-submit) > .booking-submit {
  flex: 1 1 auto;
  white-space: nowrap;
}
