/**
 * Single booking item templates (hotel, event, tour, service, rental).
 * Scoped under .bs-single to limit clashes with themes.
 */

/* Boxes on single pages (post card, featured image, meta cards) share Styling → Single post → Meta cards → Border radius. */
.bs-single {
	--bs-radius: var(--bk-meta-card-border-radius, 8px);
	--bs-featured-aside-radius: var(--bs-radius);
	--bs-single-media-height: 300px;
	--bs-radius-sm: 8px;
	--bs-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);
	--bs-shadow-soft: 0 2px 12px rgba(15, 23, 42, 0.06);
	--bs-text: var(--bk-body-color, #1c1917);
	--bs-muted: #57534e;
	--bs-border: rgba(28, 25, 23, 0.12);
	--bs-surface: #ffffff;
	--bs-page: #fafaf9;
	color: var(--bs-text);
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-body-font-size, 1rem);
	line-height: 1.6;
}

.bs-single--hotel {
	--bs-accent: #9a7b4f;
	--bs-accent-soft: rgba(154, 123, 79, 0.12);
	--bs-hero-gradient: linear-gradient(180deg, transparent 40%, rgba(28, 25, 23, 0.75) 100%);
	--bs-chip-bg: #f5f0e8;
}

.bs-single--event {
	--bs-accent: #7c3aed;
	--bs-accent-2: #ea580c;
	--bs-accent-soft: rgba(124, 58, 237, 0.1);
	--bs-hero-gradient: linear-gradient(135deg, rgba(124, 58, 237, 0.85) 0%, rgba(234, 88, 12, 0.55) 100%);
	--bs-chip-bg: #f3e8ff;
}

.bs-single--tour {
	--bs-accent: #0d9488;
	--bs-accent-soft: rgba(13, 148, 136, 0.12);
	--bs-hero-gradient: linear-gradient(180deg, transparent 35%, rgba(15, 59, 52, 0.82) 100%);
	--bs-chip-bg: #ccfbf1;
}

.bs-single--service {
	--bs-accent: #3d5a80;
	--bs-accent-soft: rgba(61, 90, 128, 0.1);
	--bs-hero-gradient: linear-gradient(180deg, rgba(15, 23, 42, 0.2) 0%, rgba(15, 23, 42, 0.75) 100%);
	--bs-chip-bg: #e8eef5;
}

.bs-single--rental {
	--bs-accent: #c2410c;
	--bs-accent-soft: rgba(194, 65, 12, 0.1);
	--bs-hero-gradient: linear-gradient(180deg, transparent 40%, rgba(28, 25, 23, 0.78) 100%);
	--bs-chip-bg: #ffedd5;
}

.bs-single.hotel-single-wrapper,
.bs-single.event-single-wrapper,
.bs-single.tour-single-wrapper,
.bs-single.service-single-wrapper,
.bs-single.rental-single-wrapper {
	/* Page wrapper stays transparent; the content card color is applied on .bs-single__inner. */
	background: transparent;
	padding-bottom: 3rem;
}

.bs-single .container,
.bs-single__inner {
	max-width: 1100px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
	padding-top: 1.25rem;
}

.bs-single__article {
	background: var(--bs-surface);
	border-radius: var(--bs-radius);
	box-shadow: var(--bs-shadow-soft);
	overflow: hidden;
	margin-bottom: 2rem;
}

/* Title + featured image (side by side on wide screens) */
.bs-single__intro {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1rem 1.5rem;
	padding: 1.5rem 1.25rem 2rem;
	border-bottom: 1px solid var(--bs-border);
	background: var(--bs-surface);
}

@media (min-width: 768px) {
	.bs-single__intro {
		padding: 2rem 2.5rem 2.5rem;
	}
}

@media (min-width: 640px) {
	.bs-single__intro {
		flex-wrap: wrap;
		align-items: center;
	}

	.bs-single__intro-text {
		flex: 1 1 0;
		min-width: 0;
	}
}

/* Right column: image stacked with amenities + highlights (event / tour / rental) */
.bs-single__intro-media {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	align-self: center;
	min-width: 0;
}

.bs-single__intro-media .bs-single__intro-below-image {
	width: 100%;
	min-width: 0;
	margin-top: 10px;
}

/* No thumbnail: amenities/highlights full width under title */
.bs-single__intro > .bs-single__intro-below-image--full {
	flex: 1 1 100%;
	width: 100%;
	min-width: 0;
	margin-top: 10px;
}

/*
 * Under-image column: drop default section spacing + highlights box padding so chips sit
 * 10px below the image; 10px between stacked sections (event / tour / rental / hotel).
 */
.bs-single__intro-below-image .bs-single__section {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.bs-single__intro-below-image .bs-single__section + .bs-single__section {
	margin-top: 0;
	padding-top: 10px;
	border-top: 1px solid var(--bs-border);
}

.bs-single__intro-below-image .bs-single__section.bs-single__highlights {
	padding: 0;
	box-sizing: border-box;
}

/* Elementor single-item widgets (Kezara Booking Pro): each part is its own widget, spaced by Elementor. */
.bs-single--elementor > .bs-single__section {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.bs-single--elementor > .bs-single__section.bs-single__highlights {
	padding: 0;
}

/* Hotel / event / tour / rental / service between 640 and 960 px: title and image each on a row of their own (their two columns
   start at 961 px). Beside the image the title, categories and tags had a column of about 140 px. */
@media (min-width: 640px) and (max-width: 960px) {
	.bs-single--hotel .bs-single__intro > :is(.bs-single__intro-text, .bs-single__intro-media),
	.bs-single--event .bs-single__intro > :is(.bs-single__intro-text, .bs-single__intro-media),
	.bs-single--tour .bs-single__intro > .bs-single__intro-text,
	.bs-single--rental .bs-single__intro > .bs-single__intro-text,
	.bs-single--service .bs-single__intro > .bs-single__intro-text {
		flex: 1 1 100%;
	}

	/* .bs-single twice: wins over the tour, rental and service 50% column rules. */
	.bs-single.bs-single--tour .bs-single__intro .bs-single__intro-media,
	.bs-single.bs-single--rental .bs-single__intro .bs-single__intro-media,
	.bs-single.bs-single--service .bs-single__intro > .bs-single__featured.bs-single__featured--aside {
		flex: 1 1 100%;
		width: 100%;
		max-width: 100%;
	}
}

/* flex-basis 100% only on small screens; otherwise it overrides the 640px row and drops media below. */
.bs-single__intro-text {
	min-width: 0;
}

@media (max-width: 639px) {
	.bs-single__intro-text {
		flex: 1 1 100%;
	}
}

/* Price card directly under post title (hotel single) */
.bs-single__intro-price {
	margin-top: 0.85rem;
}

.bs-single__meta-card--intro-price {
	display: inline-block;
	min-width: min(100%, 12rem);
	vertical-align: top;
}

.bs-single__intro .bs-single__header-plain,
.bs-single__intro .bs-single__event-top {
	padding: 0;
}

/* Tour: right column (image + chips below) */
.bs-single--tour .bs-single__intro .bs-single__intro-media {
	width: 50%;
	max-width: 50%;
	flex: 0 0 50%;
	margin: 0;
	align-self: center;
}

.bs-single--tour .bs-single__intro .bs-single__intro-media .bs-single__featured.bs-single__featured--aside {
	width: 100%;
	max-width: 100%;
	flex: 0 0 auto;
	margin: 0;
	align-self: stretch;
}

@media (max-width: 639px) {
	.bs-single--tour .bs-single__intro .bs-single__intro-media {
		width: 100%;
		max-width: 100%;
		flex: 1 1 100%;
		margin: 0 auto;
	}
}

@media (min-width: 640px) {
	.bs-single--tour .bs-single__intro .bs-single__intro-media .bs-single__featured.bs-single__featured--aside {
		max-height: none;
		min-height: 140px;
	}
}

/* Rental: same right column as tour */
.bs-single--rental .bs-single__intro .bs-single__intro-media {
	width: 50%;
	max-width: 50%;
	flex: 0 0 50%;
	margin: 0;
	align-self: center;
}

.bs-single--rental .bs-single__intro .bs-single__intro-media .bs-single__featured.bs-single__featured--aside {
	width: 100%;
	max-width: 100%;
	flex: 0 0 auto;
	margin: 0;
	align-self: stretch;
}

@media (max-width: 639px) {
	.bs-single--rental .bs-single__intro .bs-single__intro-media {
		width: 100%;
		max-width: 100%;
		flex: 1 1 100%;
		margin: 0 auto;
	}
}

@media (min-width: 640px) {
	.bs-single--rental .bs-single__intro .bs-single__intro-media .bs-single__featured.bs-single__featured--aside {
		max-height: none;
		min-height: 140px;
	}
}

/* The featured image fills its column on every single type and screen size (height and cover crop below). */
.bs-single__featured.bs-single__featured--aside {
	flex: 0 0 auto;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	align-self: flex-start;
	background: var(--bs-page);
	border-radius: var(--bk-meta-card-border-radius);
	overflow: hidden;
	box-shadow: var(--bs-shadow-soft);
	border: 1px solid var(--bs-border);
	padding: 0;
	display: flex;
	align-items: stretch;
	justify-content: center;
	box-sizing: border-box;
}

@media (min-width: 640px) {
	.bs-single__featured.bs-single__featured--aside {
		margin: 0;
		margin-inline-start: auto;
	}

	/* Service: the image sits in the intro row itself; same right column as tour and rental. */
	.bs-single--service .bs-single__intro > .bs-single__featured.bs-single__featured--aside {
		flex: 0 0 50%;
		width: 50%;
		max-width: 50%;
	}
}

/* Utvald bild: samma höjd och beskärning på alla singeltyper */
.bs-single .bs-single__featured--aside .bs-single__featured-img {
	display: block;
	width: 100%;
	height: var(--bs-single-media-height);
	object-fit: cover;
	object-position: center;
	border-radius: 0;
}

.bs-single__meta-address {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.9em;
	font-weight: 400;
	color: var(--bs-muted);
	white-space: pre-wrap;
}





















.bs-single__title {
	margin: 0;
	font-size: clamp(1.9rem, 4.2vw, 2.55rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: #fff;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.35);
}

.bs-single--service .bs-single__title,
.bs-single--hotel .bs-single__title,
.bs-single--tour .bs-single__title,
.bs-single--rental .bs-single__title {
	color: #fff;
}

.bs-single__header-plain {
	padding: 1.75rem 1.25rem 0;
}

@media (min-width: 768px) {
	.bs-single__header-plain {
		padding: 2rem 2rem 0;
	}
}

.bs-single__header-plain .bs-single__title {
	color: var(--bs-text);
	text-shadow: none;
	font-size: clamp(1.85rem, 4vw, 2.45rem);
}

.bs-single__event-top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1.25rem;
	padding: 1.75rem 1.25rem 0;
}

@media (min-width: 768px) {
	.bs-single__event-top {
		padding: 2rem 2rem 0;
		gap: 2rem;
	}
}

.bs-single__date-badge {
	flex-shrink: 0;
	width: 4.5rem;
	text-align: center;
	border-radius: var(--bs-radius);
	background: var(--bk-single-date-badge-bg, var(--bs-accent));
	color: var(--bk-single-date-badge-text, #fff);
	padding: 0.65rem 0.5rem;
	box-shadow: var(--bs-shadow-soft);
}

.bs-single__date-badge-month {
	display: block;
	font-size: var(--bk-single-date-badge-month-font-size, 0.7rem);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	opacity: 0.95;
}

.bs-single__date-badge-day {
	display: block;
	font-size: var(--bk-single-date-badge-day-font-size, 1.75rem);
	font-weight: 800;
	line-height: 1.1;
}

.bs-single__event-title-wrap {
	flex: 1;
	min-width: 0;
}

/*
 * Phones (the image takes the whole column): the price card leaves the narrow column beside the date badge and
 * sits on a row of its own directly under it. The title column's other items stay beside the badge.
 */
@media (max-width: 639px) {
	.bs-single__event-top:has(> .bs-single__date-badge) {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		column-gap: 1.25rem;
		row-gap: 0;
		align-items: start;
	}

	.bs-single__event-top:has(> .bs-single__date-badge) > .bs-single__date-badge {
		grid-row: 1 / span 2;
	}

	.bs-single__event-top:has(> .bs-single__date-badge) > .bs-single__event-title-wrap {
		display: contents;
	}

	.bs-single__event-top:has(> .bs-single__date-badge) > .bs-single__event-title-wrap > * {
		grid-column: 2;
	}

	.bs-single__event-top:has(> .bs-single__date-badge) > .bs-single__event-title-wrap > .bs-single__intro-price {
		grid-column: 1 / -1;
		grid-row: 4;
	}

	/* Categories and tags on a full-width row under the badge and title too: beside the badge (about 190 px)
	   many terms broke into a ragged column of one or two chips per row. */
	.bs-single__event-top:has(> .bs-single__date-badge) > .bs-single__event-title-wrap > .bs-single__taxonomy-intro {
		grid-column: 1 / -1;
		grid-row: 3;
		margin-top: 0.85rem;
	}

	/* Smaller image so it does not fill the screen. */
	.bs-single {
		--bs-single-media-height: 200px;
	}
}

.bs-single__event-title-wrap .bs-single__title {
	color: var(--bs-text);
	/* The shadow is for a title over the image; here it sits on the panel. */
	text-shadow: none;
	font-size: clamp(1.75rem, 4vw, 2.35rem);
	margin: 0 0 0.35rem;
}



/* Module bookklar_event_category / bookklar_event_tag (etc.) — replaces static “Event” line when terms exist */
/*
 * Categories | tags. Every list draws the line on its left in the gap before it; the intro is moved left by
 * that line and clips it off, so the line only shows between two lists on the same row and disappears when
 * the tags wrap onto a row of their own.
 */
.bs-single__taxonomy-intro {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.5rem;
	margin: 0.2rem 0 0;
	margin-inline-start: calc(-0.5rem - 1px);
	clip-path: inset(-1rem -1rem -1rem 2px); /* 2px: a line on a half pixel is anti-aliased into the next one */
}

.bs-single__taxonomy-intro > .bs-single__taxonomy-list {
	padding-inline-start: 0.5rem;
	border-inline-start: 1px solid var(--bs-border);
}

.bs-single__taxonomy-intro--as-kicker {
	margin-top: 0;
	margin-bottom: 0.5rem;
}

.bs-single__event-title-wrap .bs-single__taxonomy-intro {
	margin-top: 0.15rem;
}

.bs-single__header-plain .bs-single__taxonomy-intro:not(.bs-single__taxonomy-intro--as-kicker) {
	margin-top: 0.35rem;
}

.bs-single__taxonomy-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bs-single__taxonomy-chip {
	display: inline-block;
	text-decoration: none;
	line-height: 1.35;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, filter 0.15s ease, box-shadow 0.15s ease;
}

a.bs-single__taxonomy-chip:hover,
a.bs-single__taxonomy-chip:focus-visible {
	text-decoration: none;
}

a.bs-single__taxonomy-chip--category:hover,
a.bs-single__taxonomy-chip--category:focus-visible {
	filter: brightness(1.07);
	color: #fff;
	box-shadow: 0 2px 6px rgba(28, 25, 23, 0.14);
}

a.bs-single__taxonomy-chip--tag:hover,
a.bs-single__taxonomy-chip--tag:focus-visible {
	border-color: var(--bs-accent);
	border-style: solid;
	color: var(--bs-accent);
	font-style: normal;
	background: var(--bs-surface);
}







.bs-single__body {
	padding: 1.5rem 1.25rem 2rem;
}

@media (min-width: 768px) {
	.bs-single__body {
		padding: 2rem 2.5rem 2.5rem;
	}
}

.bs-single__layout {
	display: grid;
	gap: 1.75rem;
}

@media (min-width: 900px) {
	.bs-single__layout {
		grid-template-columns: 1fr;
	}

	
}

.bs-single__main {
	min-width: 0;
}














.bs-single--event .event-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-frontend-select .bs-frontend-select__trigger::after,
.bs-single--tour .tour-booking.event-sidebar-module--narrow.bs-single__booking-module .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;
}



.bs-single__meta-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 0.75rem;
	margin-bottom: 1.5rem;
}

/*
 * Unified meta row: only active cards; each card is only as wide as its content needs.
 */
.bs-single__meta-grid--unified {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: flex-start;
	gap: 0.75rem;
	margin-bottom: 0;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.bs-single__meta-grid--unified > .bs-single__meta-card {
	flex: 0 1 auto;
	width: auto;
	max-width: 100%;
	min-width: 0;
	min-height: 5.25rem;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

.bs-single__meta-grid--unified > .bs-single__meta-card .bs-single__meta-value {
	flex: 1 1 auto;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.bs-single--rental .bs-single__meta-grid--rental-meta-row.bs-single__meta-grid--unified {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 0;
	justify-content: flex-start;
}

.bs-single--rental .bs-single__meta-grid--rental-meta-row.bs-single__meta-grid--unified > .bs-single__meta-card {
	flex: 0 1 auto;
	width: auto;
	max-width: 100%;
	min-height: 5.25rem;
}

/*
 * Compact sidebar layout: meta + description in left column; booking wizard fixed right.
 */
.bs-single__compact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 350px;
	gap: 0 0.75rem;
	align-items: start;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin-bottom: 0;
}

.bs-single__compact-layout__primary {
	min-width: 0;
}

.bs-single__compact-layout__primary > .bs-single__meta-grid--unified {
	margin-bottom: 0;
}

.bs-single__compact-layout__primary > .bs-single__main {
	margin-top: 0;
}

.bs-single__compact-layout__sidebar {
	width: 350px;
	max-width: 100%;
	min-width: 0;
	align-self: start;
	box-sizing: border-box;
}

.bs-single__compact-layout__sidebar > .bs-single__meta-card--event-booking,
.bs-single__compact-layout__sidebar > .bs-single__meta-card--tour-booking {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 0;
	background: transparent;
	border: none;
	padding: 0;
	box-shadow: none;
	position: relative;
	z-index: 2;
}

/* RSVP (event / tour in RSVP mode) takes the booking's place in the right column and keeps its card look. */
.bs-single__compact-layout__sidebar > .bs-single__meta-card--rsvp {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 0;
	box-sizing: border-box;
}

.bs-single__compact-layout__sidebar .booking-steps-wrapper.event-sidebar-card.bs-booking-wizard-sidebar {
	width: 100%;
}

/* Under the content (960 px and narrower) the booking takes the whole width: at 350 px half the row stood empty. */
@media (max-width: 960px) {
	.bs-single__compact-layout {
		grid-template-columns: 1fr;
		gap: 0.75rem 0;
	}

	.bs-single__compact-layout__sidebar {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
	}
}

.bs-single__meta-grid--people {
	margin-top: 1rem;
	margin-bottom: 0;
}








/* Organizer / speaker cards: same meta-card shell as staff taxonomy list (name + contact lines). */
.bs-single__meta-grid--person-cards {
	margin-top: 1rem;
	margin-bottom: 0;
}

/* Several organizers / speakers in one card (one per role): each person under the other. */
.bs-single__meta-card--person .bs-single__person-entry {
	min-width: 0;
}

.bs-single__meta-card--person .bs-single__person-entry + .bs-single__person-entry {
	margin-top: 0.5rem;
}

.bs-single__meta-card--person .bs-single__person-name {
	margin: 0 0 0.35rem;
	font-family: var(--bk-meta-card-value-font-family, var(--bk-meta-card-font-family, inherit));
	font-size: var(--bk-meta-card-value-font-size, 1em);
	font-weight: 600;
	color: var(--bk-meta-card-text, var(--bs-text));
	line-height: 1.4;
}

.bs-single__meta-card--person .bs-single__person-contact {
	margin: 0.25rem 0 0;
	font-family: var(--bk-meta-card-value-font-family, var(--bk-meta-card-font-family, inherit));
	font-size: max(0.875em, 0.8125rem);
	font-weight: 500;
	line-height: 1.45;
	color: var(--bk-meta-card-text, var(--bs-text));
}

.bs-single__meta-card--person .bs-single__person-contact a {
	color: var(--bk-meta-card-link-color, var(--bk-btn-accent, var(--bs-accent)));
	text-decoration: none;
}

/* Organizer / speaker photo (optional, set on the term): round image beside name + contact. */
.bs-single__person--has-photo {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	min-width: 0;
}

.bs-single__person-photo {
	flex-shrink: 0;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--bk-meta-card-border-color, var(--bs-border, rgba(0, 0, 0, 0.08)));
	background: var(--bk-meta-card-bg, var(--bs-surface, #fff));
}

.bs-single__person-text {
	min-width: 0;
}

.bs-single__person-text .bs-single__person-name {
	overflow-wrap: anywhere;
}

/* Recurring schedules: "Next date: 14 Nov" when the cards show the next date's people. */
.bs-single__person-note {
	display: block;
	margin: -0.1rem 0 0.35rem;
	font-size: 0.8em;
	font-weight: 600;
	color: var(--bk-meta-card-label, var(--bs-muted));
}

.bs-single__person-anchor {
	display: none !important;
}

.bs-single__meta-card--person .bs-single__person-contact a:hover {
	color: var(--bk-meta-card-link-hover-color, var(--bk-btn-accent-hover, var(--bk-btn-accent, var(--bs-accent))));
	text-decoration: underline;
}

/*
 * Event detail cards: CSS Grid auto-fill only fit ~2×16.5rem tracks on typical widths,
 * so a third card (e.g. venue) wrapped. Flex + equal flex-basis keeps every card on one row.
 */
.bs-single--event .bs-single__meta-grid--event-primary:not(.bs-single__meta-grid--unified) {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	gap: 0.75rem;
	align-items: stretch;
	margin-bottom: 1.5rem;
}

.bs-single--event .bs-single__meta-grid--event-primary:not(.bs-single__meta-grid--unified) > .bs-single__meta-card {
	flex: 1 1 0;
	min-width: 0;
	min-height: 5.25rem;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

























.bs-single--event .bs-single__meta-card--event-booking > .booking-steps-wrapper.event-sidebar-card.bs-booking-wizard-sidebar {
	width: 100%;
}

.bs-single--event .bs-single__meta-grid--event-primary .bs-single__meta-value {
	flex: 1 1 auto;
	overflow-wrap: anywhere;
	word-break: break-word;
}

@media (max-width: 639px) {
	.bs-single--event .bs-single__meta-grid--event-primary:not(.bs-single__meta-grid--unified) {
		flex-wrap: wrap;
	}

	.bs-single--event .bs-single__meta-grid--event-primary:not(.bs-single__meta-grid--unified) > .bs-single__meta-card {
		flex: 1 1 calc(50% - 0.375rem);
		min-width: min(100%, 9.75rem);
	}

	

	

	

	

	
}
















.bs-single--tour .bs-single__meta-grid--tour-primary[class*='meta-grid--'][class*='-cols'] > .bs-single__meta-card,
.bs-single--event .bs-single__meta-grid--event-primary[class*='meta-grid--'][class*='-cols'] > .bs-single__meta-card {
	min-width: 0;
	min-height: 5.25rem;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	max-width: none;
	flex: none;
}



































.bs-single--tour .bs-single__meta-card--tour-booking > .booking-steps-wrapper.tour-booking {
	width: 100%;
}

.bs-single--tour .bs-single__main .alignwide,
.bs-single--tour .bs-single__main .alignfull {
	max-width: 100% !important;
	width: auto !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}






/* Explicit artikelklass (tema kan annars rubba layout) */
.bs-single--tour .bs-single--no-person-aside .bs-single__meta-grid--tour-primary,
.bs-single--tour .bs-single--no-person-aside .bs-single__meta-grid--people,
.bs-single--event .bs-single--no-person-aside .bs-single__meta-grid--event-primary {
	margin-bottom: 0.65rem !important;
}

.bs-single--tour .bs-single--no-person-aside .bs-single__main .bs-single__description,
.bs-single--event .bs-single--no-person-aside .bs-single__main .bs-single__description {
	max-width: none !important;
	margin-top: 1.75rem !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	width: 100%;
	box-sizing: border-box;
}

.bs-single--event .bs-single__compact-layout__primary .bs-single__description,
.bs-single--tour .bs-single__compact-layout__primary .bs-single__description {
	max-width: none !important;
	margin-top: 1.75rem !important;
	margin-right: 0 !important;
	width: 100%;
}







/* Price under event title (same shell as tour/hotel intro price). */
.bs-single__event-title-wrap .bs-single__intro-price {
	margin-top: 0.65rem;
}

/*
 * Tour schedule row: same flex model as event — cards share full width of main/primary column up to booking or organizer aside.
 */
.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin-bottom: 1.5rem;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) > .bs-single__meta-card {
	flex: 1 1 0;
	min-width: 0;
	min-height: 5.25rem;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}



.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) > .bs-single__meta-card:only-child {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	max-width: 100%;
}

.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) .bs-single__meta-value {
	flex: 1 1 auto;
	overflow-wrap: anywhere;
	word-break: break-word;
}

@media (max-width: 639px) {
	.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) {
		flex-direction: column;
	}

	.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) > .bs-single__meta-card {
		flex: 1 1 auto;
		width: 100%;
	}

	
}

/* RSVP wizard in meta row (event / tour) */
.bs-single__meta-card--rsvp {
	flex: 1 1 min(18rem, 100%);
	min-width: min(100%, 12rem);
	max-width: 100%;
}

.bs-single--event .bs-single__meta-grid--event-primary > .bs-single__meta-card--rsvp,
.bs-single--tour .bs-single__meta-grid--tour-primary > .bs-single__meta-card--rsvp {
	min-height: 0;
}





.bs-rsvp-widget {
	margin-top: 0.25rem;
	font-size: 0.9375rem;
	line-height: 1.45;
}

.bs-rsvp-widget__step-title {
	font-weight: 600;
	margin: 0 0 0.5rem;
	font-size: 0.9rem;
}

/* Step list (several steps only): room above the step title. */
.bs-rsvp-widget__progress:not([hidden]) {
	margin-bottom: 0.75rem;
}

.bs-rsvp-widget__occ-field {
	margin-bottom: 0;
}

.bs-rsvp-widget__occ-label {
	display: block;
	font-weight: 600;
	margin: 0 0 0.35rem;
	font-size: 0.9rem;
}

.bs-rsvp-widget__occ-select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.bs-rsvp-widget__occ-select:focus {
	outline: 2px solid var(--bs-accent, var(--bk-btn-accent, #2563eb));
	outline-offset: 1px;
}

.bs-rsvp-widget__extras .form-group {
	margin-bottom: 0.5rem;
}

/* RSVP extras: prisrad + synligt antalsfält (meta-kort ligger utanför .tour-booking-form CSS) */
.bs-rsvp-widget__extra-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.5rem 0.75rem;
	align-items: center;
	margin-bottom: 0.65rem;
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--bs-border, rgba(28, 25, 23, 0.12));
}

.bs-rsvp-widget__extra-row:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

.bs-rsvp-widget__extra-row__info {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.bs-rsvp-widget__extra-name {
	font-weight: 600;
	font-size: 0.9rem;
	line-height: 1.35;
}

.bs-rsvp-widget__extra-price {
	font-size: 0.85rem;
	color: var(--bs-muted, #57534e);
}

.bs-rsvp-widget__extra-row__qty {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.2rem;
	flex-shrink: 0;
}

.bs-rsvp-widget__extra-qty-label {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--bs-muted, #57534e);
	margin: 0;
	cursor: pointer;
}

.bs-rsvp-widget__extra-qty-input {
	width: var(--bk-ui-field-compact-width);
	min-width: var(--bk-ui-field-compact-width);
	max-width: var(--bk-ui-field-compact-width);
	box-sizing: border-box;
	text-align: center;
}

.bs-rsvp-widget__extra-qty-input:focus {
	outline: none;
}

.bs-rsvp-widget__step--details .form-control:not([type="checkbox"]) {
	background-color: #fff;
	border: 1px solid var(--bs-border, #d6d3d1);
	border-radius: var(--bs-radius-sm, 6px);
	color: var(--bs-text, #1c1917);
	box-sizing: border-box;
}

.bs-rsvp-widget__nav {
	display: flex;
	flex-wrap: nowrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
	align-items: stretch;
	width: 100%;
}

.bs-rsvp-widget__nav:has(.bs-rsvp-widget__btn--back:not([hidden])) {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bs-rsvp-widget__nav:has(.bs-rsvp-widget__btn--back:not([hidden])) .bs-rsvp-widget__btn,
.bs-rsvp-widget__nav:has(.bs-rsvp-widget__btn--back:not([hidden])) .booking-prev-step,
.bs-rsvp-widget__nav:has(.bs-rsvp-widget__btn--back:not([hidden])) .booking-next-step,
.bs-rsvp-widget__nav:has(.bs-rsvp-widget__btn--back:not([hidden])) .booking-submit {
	width: 100%;
	min-width: 0;
	margin: 0;
}

/* Themes often reset [hidden], and the nav's own display beats it (after sending, the row is hidden): enforce. */
.bs-rsvp-widget__nav[hidden],
.bs-rsvp-widget__nav button[hidden] {
	display: none !important;
}

.bs-rsvp-widget__feedback {
	margin-top: 0.65rem;
	font-weight: 500;
}

.bs-rsvp-widget__deadline--past,
.bs-rsvp-widget__closed {
	color: var(--bs-muted, #666);
}

.bs-rsvp-widget__contact a {
	color: var(--bk-btn-accent, currentColor);
	overflow-wrap: anywhere;
}

/* Rental: avoid a single meta card stretching across the full main column */
.bs-single--rental .bs-single__meta-grid {
	grid-template-columns: repeat(auto-fill, minmax(11rem, min(17rem, 100%)));
	justify-content: start;
}










/* Rental: venue / duration row — legacy half-width (unified uses content-width flex). */
.bs-single--rental .bs-single__meta-grid.bs-single__meta-grid--rental-meta-row:not(.bs-single__meta-grid--unified) {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: stretch;
	margin-bottom: 1.5rem;
	justify-content: flex-start;
}

.bs-single--rental .bs-single__meta-grid.bs-single__meta-grid--rental-meta-row:not(.bs-single__meta-grid--unified) > .bs-single__meta-card {
	min-height: 8.5rem;
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	min-width: 0;
	flex: 0 1 calc(50% - 0.375rem);
	max-width: calc(50% - 0.375rem);
}

.bs-single--rental .bs-single__meta-grid.bs-single__meta-grid--rental-meta-row:not(.bs-single__meta-grid--unified) > .bs-single__meta-card--location {
	min-height: 4.25rem;
}

.bs-single--rental .bs-single__meta-grid--rental-meta-row.bs-single__meta-grid--unified > .bs-single__meta-card--location {
	min-height: 5.25rem;
}

@media (max-width: 639px) {
	.bs-single--rental .bs-single__meta-grid.bs-single__meta-grid--rental-meta-row:not(.bs-single__meta-grid--unified) > .bs-single__meta-card {
		flex: 1 1 100%;
		max-width: 100%;
	}

	.bs-single--rental .bs-single__meta-grid.bs-single__meta-grid--rental-meta-row:not(.bs-single__meta-grid--unified) > .bs-single__meta-card--location {
		min-height: 8.5rem;
	}
}

/* Tour: meeting point half width on legacy flex row (event uses --N-cols grid). */
.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) > .bs-single__meta-card--location {
	flex: 0 1 50%;
	max-width: 50%;
	min-width: 0;
}

@media (max-width: 639px) {
	.bs-single--tour .bs-single__meta-grid--tour-primary:not([class*='-cols']):not(.bs-single__meta-grid--unified) > .bs-single__meta-card--location {
		flex: 1 1 100%;
		max-width: 100%;
	}
}

/* Unified meta in top band: content-width cards, no legacy flex stretch. */
.bs-single--event .bs-single__meta-grid--event-primary.bs-single__meta-grid--unified,
.bs-single--tour .bs-single__meta-grid--tour-primary.bs-single__meta-grid--unified {
	display: flex;
	flex-wrap: wrap;
}

.bs-single--event .bs-single__meta-grid--event-primary.bs-single__meta-grid--unified > .bs-single__meta-card,
.bs-single--tour .bs-single__meta-grid--tour-primary.bs-single__meta-grid--unified > .bs-single__meta-card,
.bs-single__meta-grid--unified > .bs-single__meta-card--rsvp {
	flex: 0 1 auto;
	max-width: 100%;
	width: auto;
	min-width: 0;
}

.bs-single--rental .bs-single__meta-grid.bs-single__meta-grid--rental-meta-row .bs-single__meta-value {
	flex: 1 1 auto;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.bs-single--rental .bs-single__meta-grid > .bs-single__meta-card {
	min-width: 0;
}

.bs-single--rental .bs-single__intro-price .bs-single__meta-card--intro-price {
	display: block;
	max-width: 16.5rem;
	width: 100%;
}


































.bs-single__meta-card {
	background: var(--bk-meta-card-bg, var(--bs-accent-soft));
	border: var(--bk-meta-card-border-width, 1px) solid var(--bk-meta-card-border-color, var(--bs-border));
	border-radius: var(--bk-meta-card-border-radius, var(--bs-radius-sm));
	padding: 0.85rem 1rem;
	font-family: var(--bk-meta-card-value-font-family, var(--bk-meta-card-font-family, inherit));
	font-size: var(--bk-meta-card-value-font-size, var(--bk-meta-card-font-size, 1rem));
}

.bs-single__meta-label {
	display: block;
	font-family: var(--bk-meta-card-label-font-family, var(--bk-meta-card-font-family, inherit));
	font-size: var(--bk-meta-card-label-font-size, 0.7em);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--bk-meta-card-label, var(--bs-muted));
	margin-bottom: 0.25rem;
}

/* Stacked Start / End inside one meta card (tour & event singles) */
.bs-single__meta-card .bs-single__meta-value + .bs-single__meta-label {
	margin-top: 0.65rem;
}

.bs-single__meta-value {
	font-family: var(--bk-meta-card-value-font-family, var(--bk-meta-card-font-family, inherit));
	font-size: var(--bk-meta-card-value-font-size, 1em);
	font-weight: 600;
	color: var(--bk-meta-card-text, var(--bs-text));
	margin: 0;
}

.bs-single__meta-card--intro-price,
.bs-single__meta-card:has(.bs-single__meta-value--price) {
	background: var(--bk-meta-card-price-bg, var(--bk-meta-card-bg, var(--bs-accent-soft)));
	border-color: var(--bk-meta-card-price-border-color, var(--bk-meta-card-border-color, var(--bs-border)));
}

.bs-single__meta-card--intro-price .bs-single__meta-label,
.bs-single__meta-card:has(.bs-single__meta-value--price) .bs-single__meta-label {
	color: var(--bk-meta-card-price-label, var(--bk-meta-card-label, var(--bs-muted)));
}

.bs-single__meta-value--price {
	color: var(--bk-meta-card-price-color, var(--bs-accent));
	font-size: var(--bk-meta-card-price-font-size, 1.15rem);
}

/* "per day" after a rental price: smaller, label color. */
.bs-single__meta-value--price .bs-single__meta-value-unit {
	font-size: 0.8em;
	font-weight: 400;
	color: var(--bk-meta-card-price-label, var(--bk-meta-card-label, var(--bs-muted)));
}

/* Hotel capacity: full-width when inside meta grid only */
.bs-single__main > .bs-single__meta-grid > .bs-single__meta-card--capacity {
	grid-column: 1 / -1;
}

/* Hotel single: capacity and amenities beside each other */
.bs-single--hotel .bs-single__hotel-cap-amenities-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1.5rem 2rem;
	margin-top: 1rem;
	margin-bottom: 1.5rem;
}

.bs-single--hotel .bs-single__hotel-cap-amenities__col {
	flex: 1 1 240px;
	min-width: 0;
}



.bs-single--hotel .bs-single__hotel-cap-amenities__col--capacity .bs-single__meta-card--capacity {
	width: 100%;
	box-sizing: border-box;
}

/* Sidebar booking on single room: left column = capacity + description; right = wizard */
.bs-single--hotel .bs-single__hotel-split-booking {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1.5rem 2rem;
	margin-top: 1rem;
}

.bs-single--hotel .bs-single__hotel-split-booking__primary {
	flex: 1 1 280px;
	min-width: 0;
}

.bs-single--hotel .bs-single__hotel-split-booking__primary .bs-single__description {
	margin-top: 1.75rem;
}

.bs-single--hotel .bs-single__hotel-split-booking__aside {
	flex: 0 1 350px;
	max-width: 100%;
	min-width: 0;
	align-self: stretch;
}

.bs-single--hotel .bs-single__hotel-split-booking__aside .hotel-booking.event-sidebar-module--narrow.event-sidebar-card.booking-steps-wrapper.bs-booking-wizard-sidebar {
	/*
	 * Hotel wizard defaults (.bs-single--hotel .hotel-booking.bs-single__booking-module) use a large
	 * top margin for full-width placement below content; beside capacity we drop that margin only.
	 * Keep full border (including top) so the card frame matches booking-steps.css.
	 */
	margin: 0;
}

.bs-single--hotel .bs-single__hotel-split-booking__primary .bs-single__hotel-cap-amenities-row--split-primary {
	margin-top: 0;
	margin-bottom: 0;
}

/* Booking under the content from 900px down, as the other compact layouts. */
@media (max-width: 900px) {
	.bs-single--hotel .bs-single__hotel-split-booking {
		flex-direction: column;
	}

	.bs-single--hotel .bs-single__hotel-split-booking__aside {
		flex: 1 1 auto;
		width: 100%;
		align-self: stretch;
	}
}

/* Single service page, Compact sidebar: description on the left, the wizard as a narrow card on the right
   (same split as the room page). */
.bs-single--service .bs-single__service-split-booking {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1.5rem 2rem;
	margin-top: 1rem;
}

.bs-single--service .bs-single__service-split-booking__primary {
	flex: 1 1 280px;
	min-width: 0;
}

.bs-single--service .bs-single__service-split-booking__aside {
	flex: 0 1 350px;
	max-width: 100%;
	min-width: 0;
}

.bs-single--service .bs-single__service-split-booking__aside .service-booking.booking-steps-wrapper {
	margin: 0;
}

/* Booking under the content from 900px down, as the other compact layouts. */
@media (max-width: 900px) {
	.bs-single--service .bs-single__service-split-booking {
		flex-direction: column;
	}

	.bs-single--service .bs-single__service-split-booking__aside {
		flex: 1 1 auto;
		width: 100%;
	}
}

/* Room details rows (capacity, check-in & check-out): same label styling as the other rows; the body holds the lines. */
:is(.bs-single__meta-card--capacity, .bs-single__meta-card--checkin) .bs-single__capacity-body {
	margin: 0;
	padding-top: 0.15rem;
	font-family: var(--bk-meta-card-value-font-family, var(--bk-meta-card-font-family, inherit));
	font-size: var(--bk-meta-card-value-font-size, var(--bk-meta-card-font-size, 1rem));
	color: var(--bk-meta-card-text, var(--bs-text));
}

/* One column; two when the row's value is wide, so the capacity row stays low (container: the value). */
:is(.bs-single__meta-card--capacity, .bs-single__meta-card--checkin) .bs-single__capacity-body {
	container-type: inline-size;
}

.bs-single__capacity-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.35rem 1.5rem;
	align-items: start;
}

@container (min-width: 20rem) {
	.bs-single__capacity-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.bs-single__capacity-line {
	margin: 0;
	font-size: inherit;
	font-weight: 500;
	color: inherit;
	line-height: 1.45;
}

.bs-single__capacity-k {
	font-weight: 600;
	margin-right: 0.25rem;
}

.bs-single__capacity-line--solo {
	font-weight: 600;
}



.bs-single__section {
	margin-top: 1.75rem;
	padding-top: 1.75rem;
	border-top: 1px solid var(--bs-border);
}

.bs-single__section:first-of-type {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.bs-single__section-title {
	margin: 0 0 1rem;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--bs-muted);
}

.bs-single__chips {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.6rem;
}

.bs-single__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
}

/* Chip icons: one span with FA/BI/Dashicons classes (same pattern as rental-catalog-row__highlight-icon). */
.bs-single__chip .bs-single__chip-icon {
	display: inline-block;
	flex-shrink: 0;
	width: 1.25em;
	min-width: 1.25em;
	text-align: center;
	line-height: 1;
	font-size: 1em;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
}

.bs-single__chip:not(.bs-single__chip--highlight) .bs-single__chip-icon {
	color: var(--bs-accent);
	opacity: 0.9;
}

.bs-single__chip .bs-single__chip-icon::before {
	display: inline-block;
	line-height: 1;
}

.bs-single__chip .bs-single__chip-icon.fa-solid,
.bs-single__chip .bs-single__chip-icon.fas {
	font-family: "Font Awesome 6 Free" !important;
	font-weight: 900 !important;
}

.bs-single__chip .bs-single__chip-icon.fa-regular,
.bs-single__chip .bs-single__chip-icon.far {
	font-family: "Font Awesome 6 Free" !important;
	font-weight: 400 !important;
}

.bs-single__chip .bs-single__chip-icon.fa-brands,
.bs-single__chip .bs-single__chip-icon.fab {
	font-family: "Font Awesome 6 Brands" !important;
	font-weight: 400 !important;
}

.bs-single__chip .bs-single__chip-icon.dashicons {
	font-family: dashicons !important;
	font-weight: 400 !important;
	width: 1.25em;
	height: 1.25em;
	font-size: 1.25em;
	line-height: 1.25em;
}

.bs-single__chip .bs-single__chip-icon.bi {
	font-family: bootstrap-icons !important;
	font-weight: 400 !important;
}

.bs-single__chip .bs-single__chip-icon.ti {
	font-family: tabler-icons !important;
	font-weight: 400 !important;
}

.bs-single__intro-below-image .bs-single__chip-icon {
	font-style: normal;
	font-variant: normal;
	text-transform: none;
}

/* Highlight / amenity chip chrome: frontend-chips.css */
.bs-single__section.bs-single__amenities .bs-single__chip,
.bs-single__chip.bs-single__chip--highlight {
	align-items: center;
	max-width: 100%;
}

.bs-single__chip.bs-single__chip--highlight .bs-single__chip-icon {
	color: var(--bk-highlight-icon-color, var(--bk-highlight-text, #fff));
	opacity: 0.95;
}

/* Phones: highlights and amenities in two equal columns (a long name wraps in its chip), one column on small
   phones where half the width cannot hold a long word, instead of chips of every width, one or two per row,
   with a ragged right edge. */
@media (max-width: 600px) {
	.bs-single__section.bs-single__amenities .bs-single__chips {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bs-single__section.bs-single__amenities .bs-single__chip {
		width: 100%;
		box-sizing: border-box;
		min-width: 0;
	}
}

@media (max-width: 480px) {
	.bs-single__section.bs-single__amenities .bs-single__chips {
		grid-template-columns: minmax(0, 1fr);
	}
}

.bs-single__section.bs-single__amenities .bs-single__chip:not(.bs-single__chip--highlight) .bs-single__chip-icon,
.bs-single__intro-below-image .bs-single__section.bs-single__amenities .bs-single__chip:not(.bs-single__chip--highlight) .bs-single__chip-icon {
	color: var(--bk-amenity-icon-color, var(--bk-highlight-icon-color, var(--bk-highlight-text, #fff)));
	opacity: 0.95;
}

.bs-single__chip.bs-single__chip--highlight .bs-single__chip-desc {
	color: inherit;
	opacity: 0.85;
}

.bs-single__section.bs-single__highlights {
	padding: 20px;
	box-sizing: border-box;
}

.bs-single__chip-text {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
	text-align: left;
}

.bs-single__chip-label {
	display: block;
	line-height: 1.3;
}

.bs-single__chip-desc {
	display: block;
	font-size: 0.8125rem;
	font-weight: 400;
	line-height: 1.35;
	color: var(--bs-muted);
}




.bs-single__description {
	margin-top: 1.75rem;
}

.bs-single__description {
	font-size: 1.02rem;
	color: var(--bs-text);
}

.bs-single__description > *:first-child {
	margin-top: 0;
}

.bs-single__description > *:last-child {
	margin-bottom: 0;
}

.bs-single__description-divider {
	display: block;
	width: 100%;
	height: 0;
	border: 0;
	border-top: 1px solid var(--bk-meta-card-border-color, var(--bs-border, rgba(0, 0, 0, 0.1)));
	margin: 1.75rem 0 0;
	padding: 0;
}

.bs-single--rental .bs-single__description-divider {
	margin-bottom: 0.5rem;
}

.bs-single__all-day {
	display: inline-block;
	margin-top: 0.5rem;
	background: var(--bs-accent-soft);
	color: var(--bs-accent);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}


.bs-single__booking-title {
	margin: 0 0 1.25rem;
	font-family: var(--bk-heading-font-family, inherit);
	font-size: var(--bk-heading-font-size, inherit);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--bk-heading-color, var(--bs-text));
}

/* Event / tour: "At least 8 participants …" above the booking form (includes/booking/minimum-participants.php). */
.bs-single__min-participants {
	margin: 0 0 1rem;
	font-size: 0.9em;
	line-height: 1.5;
	color: var(--bk-theme-muted, var(--bs-text));
}

/* Event / tour / rental / hotel: heading above full-width wizard */
.bs-single--event .bs-single__body > .bs-single__booking-title,
.bs-single--tour .bs-single__body > .bs-single__booking-title,
.bs-single--rental .bs-single__body > .bs-single__booking-title,
.bs-single--hotel .bs-single__body > .bs-single__booking-title,
.bs-single--service .bs-single__body > .bs-single__booking-title {
	margin-top: 3.75rem;
	margin-bottom: 1.25rem;
}

/* Rental single: compact sidebar booking — content left, wizard right (matches event/tour inline columns). */
.bs-single--rental .bs-single__layout--rental-sidebar-booking {
	width: 100%;
	min-width: 0;
}

.bs-single--rental .bs-single__rental-inline-body-columns {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 350px;
	gap: 0 1rem;
	align-items: start;
}

.bs-single--rental .bs-single__rental-inline-body-columns__primary,
.bs-single--rental .bs-single__rental-inline-body-columns__booking {
	min-width: 0;
}

.bs-single--rental .bs-single__rental-inline-body-columns__booking .rental-booking.bs-single__booking-module.booking-steps-wrapper {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
	overflow: visible;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module,
.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-fields,
.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-field--time {
	overflow: visible;
}

/* Booking under the content from 900px down, as the event / tour compact layout. */
@media (max-width: 900px) {
	.bs-single--rental .bs-single__rental-inline-body-columns {
		grid-template-columns: 1fr;
		gap: 1.5rem 0;
	}
}




.bs-single__back {
	margin-top: 1.5rem;
}
















/* Booking wizard: packages */
.booking-hotel-packages-slot {
	margin-top: 1.25rem;
}

.booking-hotel-packages .booking-packages-heading.bs-single__section-title,
.booking-hotel-packages .bs-single__section-title.booking-packages-heading {
	margin: 0 0 1rem;
}

.booking-packages-choices {
	list-style: none;
	margin: 0;
	padding: 0;
}

.booking-packages-choices > li {
	margin-bottom: 0.65rem;
}

/* A package outside its bookable period for the chosen nights (hotel.js applyPackageValidity()). */
.booking-packages-choices > li[hidden] {
	display: none;
}

/* No package left for the chosen nights: a note across the whole row of cards. */
.booking-packages-choices > li.booking-packages-none {
	grid-column: 1 / -1;
	color: var(--bk-theme-muted, var(--bs-muted, #57534e));
}

/* Package cards: 3 per row (step 1 single room + per-room in catalog) */
.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;
}

.booking-packages-choices--single > li,
.booking-room-packages .booking-packages-choices > li {
	margin-bottom: 0;
}

/* Five or more packages (shared/package-list-compact.js): one row each - name and price on one line, the
   period under them, "What's included" opens the inclusions and terms. The card layouts of the classic,
   sidebar and popup wizards set columns, card height and margins with long selectors; the compact list must
   win in all of them, hence !important on just those properties. */
.booking-packages-choices.bs-pkg-list--compact {
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 0.5rem;
}

.booking-packages-choices.bs-pkg-list--compact .booking-package-option {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap;
	align-items: baseline !important;
	gap: 0.15rem 1rem;
	min-height: 0 !important;
	height: auto !important;
}

.booking-packages-choices.bs-pkg-list--compact .booking-package-title {
	flex: 1 1 12rem;
	min-width: 0;
	margin-bottom: 0 !important;
}

.booking-packages-choices.bs-pkg-list--compact .booking-package-price {
	flex: 0 0 auto;
	margin: 0 0 0 auto !important;
}

.booking-packages-choices.bs-pkg-list--compact :is(.booking-package-meta, .bs-pkg-list__details-btn) {
	flex-basis: 100%;
	text-align: left;
}

.booking-packages-choices.bs-pkg-list--compact > li:not(.is-open) .booking-package-meta:not(.booking-package-period) {
	display: none !important;
}

/* Rental wizard: 3 package cards per row (same as hotel package grid) */
.bs-single--rental .rental-package-choices.bs-hsr-package-choices,
.bs-single--rental #rental-package-choices.rental-package-choices {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	align-items: stretch;
	flex-direction: unset;
}

.bs-single--rental .rental-package-choices .rental-package-option,
.bs-single--rental .rental-package-choices .bs-hsr-package-option.rental-package-option,
.bs-single--rental .rental-package-choices .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-rentals-catalog-card-border-radius, var(--bk-rooms-package-radius));
  border: var(--bk-rentals-package-border-width, 1px) solid var(--bk-rentals-package-border-color, rgba(0, 0, 0, 0.1));
  background: var(--bk-rentals-package-bg, #fff);
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.bs-single--rental .rental-package-choices .rental-package-option:has(.rental-package-radio:checked),
.bs-single--rental .rental-package-choices .rental-package-option:has(.bs-hsr-package-radio:checked),
.bs-single--rental .rental-package-choices .bs-rsr-package-card:has(.bs-rsr-package-radio:checked),
.bs-single--rental .rental-package-choices .bs-rsr-package-card:has(.rental-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)));
}

.bs-single--rental .rental-package-choices .rental-package-radio,
.bs-single--rental .rental-package-choices .bs-hsr-package-radio,
.bs-single--rental .rental-package-choices .bs-rsr-package-radio {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	pointer-events: none;
}

.bs-single--rental .rental-package-choices .bs-hsr-package-option__body,
.bs-single--rental .rental-package-choices .bs-rsr-package-card__inner {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	gap: 0.45rem;
	min-width: 0;
}

.bs-single--rental .rental-package-choices .bs-rsr-package-card__title {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--bk-rentals-package-text, var(--bk-body-color, #1c1917));
}

.bs-single--rental .rental-package-choices .bs-rsr-package-card__price {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--bk-rentals-package-text, var(--bk-body-color, #1c1917));
}

.bs-single--rental .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-rentals-package-text, var(--bk-theme-muted, #57534e));
}

.bs-single--rental .rental-package-choices .bs-rsr-package-card__inclusions {
	display: block;
	font-size: 0.78rem;
	line-height: 1.4;
	color: var(--bk-rentals-package-text, var(--bk-theme-muted, #57534e));
}

.bs-single--rental .rental-package-choices .bs-rsr-package-card__inclusions .bs-rental-package-inclusions-list {
	white-space: normal;
}

.bs-single--rental .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-rentals-package-text, var(--bk-theme-muted, #78716c));
	margin-bottom: 0.15rem;
}

.bs-single--rental .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-rentals-package-selected-text, var(--bk-rentals-package-text, inherit));
}

.bs-rental-package-inclusions-list {
	list-style: none;
	margin: 0.2rem 0 0;
	padding: 0;
}

.bs-rental-package-inclusions-list__item {
	display: flex;
	align-items: flex-start;
	gap: 0.35rem;
	margin: 0.12rem 0;
	line-height: 1.35;
}

.bs-rental-package-inclusions-list__icon {
	flex: 0 0 auto;
	font-weight: 700;
	min-width: 1em;
	text-align: center;
}

.bs-rental-package-inclusions-list__label {
	flex: 1 1 auto;
	min-width: 0;
}

.bs-rental-package-inclusions-list__price {
	flex: 0 0 auto;
	font-weight: 600;
	white-space: nowrap;
}

.bs-rental-package-inclusions-list__item--not_included .bs-rental-package-inclusions-list__label {
	opacity: 0.75;
	text-decoration: line-through;
}

.bs-rental-package-inclusions-list__item--not_included .bs-rental-package-inclusions-list__icon {
	color: #b91c1c;
}

.bs-rental-package-inclusions-list__item--included .bs-rental-package-inclusions-list__icon {
	color: #15803d;
}

@media (max-width: 900px) {
	.bs-single--rental .rental-package-choices.bs-hsr-package-choices,
	.bs-single--rental #rental-package-choices.rental-package-choices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.bs-single--rental .rental-package-choices.bs-hsr-package-choices,
	.bs-single--rental #rental-package-choices.rental-package-choices {
		grid-template-columns: minmax(0, 1fr);
	}
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .rental-package-choices.bs-hsr-package-choices,
.bs-single--rental .rental-booking.event-sidebar-module--narrow #rental-package-choices.rental-package-choices {
	grid-template-columns: minmax(0, 1fr);
}

/* Hotel compact sidebar: one package per row beside the content (about 270 px: two columns squeezed a package's
   name, price and inclusions into 130 px each), like the rental sidebar; two per row when the sidebar takes the
   full width (521–960 px). */
.hotel-booking.event-sidebar-module--narrow .booking-packages-choices--single,
.hotel-booking.event-sidebar-module--narrow .booking-room-packages .booking-packages-choices {
	grid-template-columns: minmax(0, 1fr);
	width: 100%;
}

@media (min-width: 521px) and (max-width: 960px) {
	.hotel-booking.event-sidebar-module--narrow .booking-packages-choices--single,
	.hotel-booking.event-sidebar-module--narrow .booking-room-packages .booking-packages-choices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.hotel-booking.event-sidebar-module--narrow :is(
	.booking-room-packages .booking-packages-label,
	.booking-hotel-packages .booking-packages-heading
) {
	margin: 0 0 0.55rem;
	font-family: var(--bk-heading-font-family, inherit);
	font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
	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-hotel-multi-slots-wrap > .bs-single__section-title {
	margin: 0 0 0.55rem;
	font-family: var(--bk-heading-font-family, inherit);
	font-size: var(--bk-compact-sidebar-label-font-size, 0.8125rem);
	font-weight: 600;
	line-height: 1.35;
	color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-muted, #57534e)));
}

/* Hotel sidebar wizard — match archive book popup UX */
.hotel-booking.event-sidebar-module--narrow .booking-package-option {
	display: grid;
	grid-template-columns: 1.125rem minmax(0, 1fr);
	column-gap: 0.5rem;
	row-gap: 0.2rem;
	align-items: start;
}

.hotel-booking.event-sidebar-module--narrow .booking-package-option input[type="radio"] {
	grid-column: 1;
	grid-row: 1 / 3;
	margin: 0.2rem 0 0;
	align-self: start;
}

.hotel-booking.event-sidebar-module--narrow .booking-package-title {
	grid-column: 2;
	grid-row: 1;
	display: block;
	margin: 0;
	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: 700;
	line-height: 1.35;
}

.hotel-booking.event-sidebar-module--narrow .booking-package-price {
	grid-column: 2;
	grid-row: 2;
	display: block;
	margin: 0;
	font-size: var(--bk-compact-sidebar-field-font-size, var(--bk-ui-field-font-size));
	font-weight: 600;
	line-height: 1.35;
	color: var(
		--bk-compact-sidebar-package-text,
		var(--bk-rooms-package-text, var(--bk-body-color, inherit))
	);
}

.hotel-booking.event-sidebar-module--narrow .booking-package-option {
	background: var(--bk-compact-sidebar-package-bg, var(--bk-rooms-package-bg, #fff));
	border-color: var(
		--bk-compact-sidebar-package-border-color,
		var(--bk-theme-border, var(--bs-border, #ddd))
	);
}

.hotel-booking.event-sidebar-module--narrow .booking-package-option:has(input[type="radio"]:checked) {
	background: var(
		--bk-compact-sidebar-package-selected-bg,
		var(--bk-rooms-package-selected-bg, var(--bk-theme-panel, rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.04)))
	);
	border-color: var(
		--bk-compact-sidebar-package-selected-border-color,
		var(--bk-rooms-package-selected-border-color, rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.5))
	);
}

.hotel-booking.event-sidebar-module--narrow .booking-package-option :is(
	.booking-package-title,
	.booking-package-price,
	.booking-package-meta
) {
	color: var(--bk-compact-sidebar-package-text, var(--bk-rooms-package-text, inherit));
}

.hotel-booking.event-sidebar-module--narrow .booking-package-option:has(input[type="radio"]:checked) :is(
	.booking-package-title,
	.booking-package-price,
	.booking-package-meta
) {
	color: var(
		--bk-compact-sidebar-package-selected-text,
		var(
			--bk-rooms-package-selected-text,
			var(--bk-compact-sidebar-package-text, var(--bk-rooms-package-text, inherit))
		)
	);
}

.hotel-booking.event-sidebar-module--narrow .booking-package-meta {
	grid-column: 2;
	margin-top: 0.25rem;
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-compact-sidebar-field-font-size, var(--bk-ui-field-font-size));
	font-weight: 400;
	line-height: 1.4;
	white-space: pre-wrap;
}

.hotel-booking.event-sidebar-module--narrow #booking-extras {
	gap: 0.35rem;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty {
	margin: 0.35rem 0 0;
	padding: 0 var(--bk-ui-field-padding-x);
	gap: var(--bk-ui-row-gap);
	align-items: center;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-description {
	display: none;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main strong,
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-description {
	color: inherit;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main {
	font-size: 0.875rem;
	line-height: 1.25;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main strong {
	font-weight: 600;
	font-size: inherit;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap {
	flex-direction: row;
	align-items: center;
	gap: 0.35rem;
	min-height: 0;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity-label {
	font-size: 0.65rem;
	margin: 0;
}

/* Checkbox-type extras: quantity input is a checkmark, not a number — the "Qty" label is redundant. */
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap:has(.extra-quantity[data-input-type="checkbox"]) .extra-quantity-label {
	display: none;
}

.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
	margin: 0;
}

/* Rental compact sidebar + classic wide wizard side panel: compact extras row. */
.bs-single--rental .rental-booking.event-sidebar-module--narrow #booking-extras,
.rental-booking.event-sidebar-module--narrow #booking-extras,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) :is(#booking-extras, .booking-extras-inner, .bs-booking-wizard-sidebar__extras-inner),
.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%;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#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;
	align-items: center;
}

.bs-single--rental .rental-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,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#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;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main strong.extra-name,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__main strong.extra-name,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#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;
}

.bs-single--rental .rental-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,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#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 {
	display: none;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-row__qty-wrap,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .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;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity-label,
.rental-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity-label,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .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: normal;
	font-size: 0.65rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.bs-single--rental .rental-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"]),
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .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"]) {
	margin: 0;
}

.bs-single--rental .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-checkbox,
.bs-single--rental .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-checkbox {
	flex: 0 0 auto;
	width: 1.25rem;
	height: 1.25rem;
	min-width: 1.25rem;
	max-width: 1.25rem;
	margin: 0;
	padding: 0;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .bs-booking-wizard-sidebar__extras .bs-booking-wizard-sidebar__heading,
.bs-single--rental .rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .bs-booking-wizard-sidebar__heading,
.rental-booking .bs-booking-wizard-extras--compact:not(#booking-extras) .bs-booking-wizard-sidebar__heading {
	margin-bottom: 0.5rem;
}

.hotel-booking.event-sidebar-module--narrow .booking-step-content {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	border-top: none;
}

.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="3"] {
	padding-top: 0;
}

.hotel-booking.event-sidebar-module--narrow .step-actions {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: stretch;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	margin-top: 0.75rem;
}

.hotel-booking.event-sidebar-module--narrow .step-actions:not(:has(> .bs-trip-payment-cta)) .booking-prev-step,
.hotel-booking.event-sidebar-module--narrow .step-actions:not(:has(> .bs-trip-payment-cta)) .booking-next-step,
.hotel-booking.event-sidebar-module--narrow .step-actions:not(:has(> .bs-trip-payment-cta)) .booking-submit,
.hotel-booking.event-sidebar-module--narrow .step-actions:not(:has(> .bs-trip-payment-cta)) 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 .booking-step-content[data-step="1"] .step-actions {
	justify-content: stretch;
}

.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="1"] .step-actions .booking-next-step,
.hotel-booking.event-sidebar-module--narrow .booking-step-content[data-step="1"] .step-actions a.booking-next-step {
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	display: flex;
}

.hotel-booking.event-sidebar-module--narrow .booking-summary .booking-summary__legend,
.hotel-booking.event-sidebar-module--narrow .booking-summary .bs-single__section-title {
	text-align: left;
}

/* Hotel single — classic full-width wizard: package cards (radio hidden; layout in booking-steps.css) */

/*
 * Hotel single step 2 (extras): layout tweaks on top of booking-steps.css unified extras grid/row shell.
 */
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) #booking-extras .extra-row.extra-row--qty {
	height: auto;
	min-height: 0;
	box-sizing: border-box;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module.event-sidebar-module--narrow #booking-extras .extra-row.extra-row--qty {
	height: auto;
	min-height: 0;
	box-sizing: border-box;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #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;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-row__main strong {
	font-weight: 600;
	font-size: inherit;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-description {
	display: none;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-row__qty-wrap {
	flex: 0 0 auto;
	flex-direction: row;
	align-items: center;
	justify-content: flex-end;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	min-height: 0;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-quantity-label {
	font-size: 0.65rem;
	margin: 0;
}

/* Checkbox-type extras: quantity input is a checkmark, not a number — the "Qty" label is redundant. */
.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-row__qty-wrap:has(.extra-quantity[data-input-type="checkbox"]) .extra-quantity-label {
	display: none;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
	margin: 0;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"],
.hotel-booking.event-sidebar-module--narrow .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"] {
	border-color: var(--bk-field-border-color, var(--bk-field-border-color, #8c8f94));
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: var(--bk-ui-check-size);
	min-width: var(--bk-ui-check-size);
	height: var(--bk-ui-check-size);
	padding: 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;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .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);
}

.bs-single--hotel .hotel-booking.bs-single__booking-module #booking-extras .extra-row.extra-row--qty .extra-quantity[data-input-type="checkbox"]:checked::before {
	transform: scale(1);
}

@media (max-width: 520px) {
	.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) #booking-extras {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 960px) {
	.booking-packages-choices--single,
	.booking-room-packages .booking-packages-choices {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 520px) {
	.booking-packages-choices--single,
	.booking-room-packages .booking-packages-choices {
		grid-template-columns: minmax(0, 1fr);
	}
}

.booking-package-option {
	display: block;
	padding: 0.65rem 0.75rem;
	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-package-border-color, var(--bs-border, #ddd)));
	border-radius: var(--bk-rooms-wizard-row-border-radius, 6px);
	cursor: pointer;
	background: var(--bk-classic-full-width-package-bg, var(--bk-rooms-package-bg, #fff));
	color: var(--bk-classic-full-width-package-text-color, var(--bk-rooms-package-text, inherit));
}

.booking-package-option:has(input[type="radio"]:checked) {
	background: var(--bk-classic-full-width-package-selected-bg, var(--bk-rooms-package-selected-bg, rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.04)));
	border-width: var(--bk-classic-full-width-package-selected-border-width, var(--bk-rooms-package-selected-border-width, 2px));
	border-color: var(--bk-classic-full-width-package-selected-border-color, var(--bk-rooms-package-selected-border-color, rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.5)));
}

.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-package-text, inherit));
}

.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, var(--bk-rooms-package-text, inherit)));
}

.booking-packages-choices--single .booking-package-option,
.booking-room-packages .booking-packages-choices .booking-package-option {
	height: 100%;
	box-sizing: border-box;
}

.booking-package-option:hover {
	border-color: rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.5);
}

.booking-package-title {
	font-weight: 600;
	margin-right: 0.35rem;
}

.booking-package-price {
	font-weight: 700;
	color: var(--bk-rooms-package-text, var(--bk-body-color, inherit));
}

.booking-package-meta {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.88rem;
	color: var(--bs-text-muted, #555);
	white-space: pre-wrap;
}

.booking-room-packages {
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px dashed var(--bs-border, #ddd);
}

.booking-packages-label.bs-single__section-title,
.bs-single__section-title.booking-packages-label {
	margin: 0 0 1rem;
}

/* Hotel single: post title — uppercase, same voice as section labels */
.bs-single--hotel .bs-single__intro .bs-single__title--hotel-display {
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-size: clamp(1.35rem, 3.2vw, 2rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--bs-text);
}

/* Hotel/event: grid fixes 50%+50%+gap wrap; center aligns title with right column (hotel ≈ image mid). From 961 px:
   below that the title column (beside the date badge) got too narrow, so image and chips go under the title. */
@media (min-width: 961px) {
	.bs-single--hotel .bs-single__intro,
	.bs-single--event .bs-single__intro {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: center;
		column-gap: 1.5rem;
		row-gap: 1.25rem;
	}

	.bs-single--hotel .bs-single__intro-text,
	.bs-single--event .bs-single__intro-text {
		flex: unset;
		max-width: none;
		width: auto;
		min-width: 0;
		align-self: center;
	}

	.bs-single--hotel .bs-single__intro .bs-single__intro-media {
		flex: unset;
		width: 100%;
		max-width: none;
		margin: 0;
		align-self: center;
		min-height: 0;
	}

	.bs-single--hotel .bs-single__intro .bs-single__intro-media .bs-single__featured.bs-single__featured--aside {
		flex: unset;
		width: 100%;
		max-width: 100%;
		margin: 0;
		max-height: none;
		min-height: 180px;
		align-self: stretch;
		justify-self: stretch;
	}

	.bs-single--hotel .bs-single__intro > .bs-single__intro-below-image--full,
	.bs-single--event .bs-single__intro > .bs-single__intro-below-image--full {
		grid-column: 1 / -1;
	}

	/* No intro-media (no thumbnail): one column so title + full-width chips don’t leave an empty grid cell. */
	.bs-single--hotel .bs-single__intro:has(> .bs-single__intro-below-image--full):not(:has(> .bs-single__intro-media)),
	.bs-single--event .bs-single__intro:has(> .bs-single__intro-below-image--full):not(:has(> .bs-single__intro-media)) {
		grid-template-columns: minmax(0, 1fr);
	}

	.bs-single--event .bs-single__intro .bs-single__intro-media {
		flex: unset;
		width: 100%;
		max-width: none;
		margin: 0;
		align-self: center;
		min-height: 0;
	}

	.bs-single--event .bs-single__intro .bs-single__intro-media .bs-single__featured.bs-single__featured--aside {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		margin: 0;
		max-height: none;
		min-height: 180px;
		align-self: stretch;
	}
}

@media (max-width: 639px) {
	.bs-single--event .bs-single__intro .bs-single__intro-media,
	.bs-single--hotel .bs-single__intro .bs-single__intro-media {
		width: 100%;
		max-width: 100%;
		flex: 1 1 100%;
		min-height: 0;
	}
}

/* Booking singles (alla modultyper med utvald bild i intro): rund ram, ingen kant */
.bs-single--hotel .bs-single__featured.bs-single__featured--aside,
.bs-single--event .bs-single__featured.bs-single__featured--aside,
.bs-single--tour .bs-single__featured.bs-single__featured--aside,
.bs-single--rental .bs-single__featured.bs-single__featured--aside,
.bs-single--service .bs-single__featured.bs-single__featured--aside {
	border: none;
	padding: 0;
	border-radius: var(--bs-featured-aside-radius);
	overflow: hidden;
	box-shadow: var(--bs-shadow-soft);
}

.bs-single--hotel .bs-single__featured--aside .bs-single__featured-img,
.bs-single--event .bs-single__featured--aside .bs-single__featured-img,
.bs-single--tour .bs-single__featured--aside .bs-single__featured-img,
.bs-single--rental .bs-single__featured--aside .bs-single__featured-img,
.bs-single--service .bs-single__featured--aside .bs-single__featured-img {
	border-radius: 0;
}

/*
 * Hotel / tour / event / rental booking wizard on single: same surface as the rest of the post (--bs-accent per type).
 */
.bs-single--hotel .bs-single__booking-module.booking-steps-wrapper,
.bs-single--hotel .hotel-booking.bs-single__booking-module,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--event .event-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--rental .rental-booking.bs-single__booking-module.booking-steps-wrapper {
	--hb-accent: var(--bs-accent);
	--hb-text: var(--bs-text);
	--hb-muted: var(--bs-muted);
	--hb-border: var(--bs-border);
	--hb-surface: var(--bs-surface);
	--hb-accent-soft: var(--bs-accent-soft);
	max-width: none;
	width: 100%;
	margin: 3.75rem 0 0;
	padding: 2rem 0 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-body-font-size, 1rem);
	line-height: 1.6;
	color: var(--hb-text);
	border-top: 1px solid var(--hb-border);
}

.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--event .event-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--rental .rental-booking.bs-single__booking-module.booking-steps-wrapper {
	margin-top: 0;
}

/*
 * Classic full-width booking after description <hr>: keep one divider only.
 * Must follow the wizard shell block above — that block sets border-top on all singles.
 */
.bs-single--hotel .bs-single__body > .hotel-booking.bs-single__booking-module,
.bs-single--hotel .bs-single__body > .booking-steps-wrapper.hotel-booking,
.bs-single--event .bs-single__body > .event-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--tour .bs-single__body > .tour-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--tour .bs-single__body > .tour-booking-legacy.bs-single__booking-module,
.bs-single--rental .bs-single__body > .rental-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--rental .bs-single__body > .booking-steps-wrapper.rental-booking,
/* One item's wizard placed by a shortcode, block or widget (booking_system_wrap_item_booking_embed()). */
.bs-single--embed > .event-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--embed > .tour-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--embed > .hotel-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--embed > .rental-booking.bs-single__booking-module.booking-steps-wrapper {
	border-top: none;
	padding-top: 0;
}

.bs-single--embed > .hotel-booking.bs-single__booking-module.booking-steps-wrapper {
	margin-top: 0;
}

.bs-single__body > .bs-single__booking-title + :is(
	.hotel-booking.bs-single__booking-module,
	.booking-steps-wrapper.hotel-booking,
	.event-booking.bs-single__booking-module.booking-steps-wrapper,
	.tour-booking.bs-single__booking-module.booking-steps-wrapper,
	.tour-booking-legacy.bs-single__booking-module,
	.rental-booking.bs-single__booking-module.booking-steps-wrapper,
	.booking-steps-wrapper.rental-booking
) {
	margin-top: 0;
}

@media (max-width: 782px) {
	.bs-single--hotel .bs-single__hotel-split-booking__aside > .hotel-booking.bs-single__booking-module {
		border-top: none;
		padding-top: 0;
	}
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) > .booking-step-content {
	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, #eee);
	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;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module > .booking-step-content {
	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;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-range-fields {
	--bk-rental-step1-field-min-height: calc(24px + 1.35 * 16px + var(--bk-rentals-wizard-row-border-width, 1px) * 2);
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-range-field--dates,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-dates-group,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-dates-group .bs-rental-search-bar__group--dates,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-dates-group .bs-rental-search-bar__dates-btn {
	width: 100%;
	max-width: none;
	min-width: 0;
	box-sizing: border-box;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .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%;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates) {
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .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);
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .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);
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .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);
}


.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .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%;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-field--dates {
	grid-column: 1 / -1 !important;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-fields--start-only .rental-range-fields__grid:has(.rental-range-field--dates) {
	grid-template-columns: minmax(0, 1fr);
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-field--dates .bs-rental-search-bar__dates-btn,
.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-field--dates .bs-rental-search-bar__dates-btn-main {
	flex-wrap: nowrap;
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-range-field--dates,
.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-wizard-dates-group,
.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-wizard-dates-group .bs-rental-search-bar__group--dates,
.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .rental-wizard-dates-group .bs-rental-search-bar__dates-btn {
	width: 100%;
	max-width: none;
	min-width: 0;
	box-sizing: border-box;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-row {
	display: flex !important;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px 16px;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--guests,
.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--rooms {
	display: flex;
	flex-direction: column;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .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;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field {
	flex: 1 1 calc(50% - 8px);
	min-width: 0;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--dates {
	flex: 1 1 100% !important;
	width: 100%;
	max-width: none;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--guests,
.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--rooms {
	flex: 1 1 calc(50% - 8px) !important;
	min-width: 0;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--dates .bs-hotel-search-bar__group--dates {
	max-width: none;
	width: 100%;
}

.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .booking-hotel-step1-field--dates .booking-hotel-date-range {
	max-width: none;
	width: 100%;
}


.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-range-input,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-booking-guests-select {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .extra-row.extra-row--qty {
	background: var(--bk-wizard-extras-row-bg, var(--bk-classic-full-width-field-bg, var(--bk-rentals-wizard-row-input-bg, #ffffff)));
	color: var(--bk-field-text, var(--bk-classic-full-width-field-text, var(--bk-wizard-extras-row-text, inherit)));
	border-color: var(--bk-wizard-extras-row-border-color, var(--bk-classic-full-width-field-border-color, var(--bk-field-border-color, #e0e0e0)));
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-booking-guests-select {
	cursor: pointer;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-range-field label,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-classic-heading {
	color: var(--bk-rentals-wizard-section-label-color, var(--hb-muted));
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .extra-row.extra-row--qty {
	margin: 0;
	align-items: center;
	gap: var(--bk-ui-row-gap);
	box-shadow: none;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-classic-extras .extra-description,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-extras-step .extra-description {
	display: none;
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-classic-extras .extra-row__qty-wrap,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-wizard-extras-step .extra-row__qty-wrap {
	flex: 0 0 auto;
	flex-shrink: 0;
	flex-direction: row;
	align-items: center;
	gap: 0.35rem;
	min-height: 0;
}

.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .booking-step-content,
.bs-single--event .event-booking.bs-single__booking-module .booking-step-content,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-step-content {
	border-top: none;
	padding-top: 0.5rem;
}

.bs-single--hotel .bs-single__booking-module.event-sidebar-module--narrow .booking-step-content {
	border-top: none;
	padding-top: 0.5rem;
}

.bs-single--hotel .bs-single__booking-module.event-sidebar-module--narrow .guest-field label,
.bs-single--hotel .bs-single__booking-module.event-sidebar-module--narrow .date-field label,
.bs-single--hotel .bs-single__booking-module .room-quantity label,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .guest-field label,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .date-field label,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .room-quantity label,
.bs-single--event .event-booking.bs-single__booking-module .guest-field label,
.bs-single--event .event-booking.bs-single__booking-module .date-field label,
.bs-single--event .event-booking.bs-single__booking-module .room-quantity label,
.bs-single--rental .rental-booking.bs-single__booking-module .guest-field label,
.bs-single--rental .rental-booking.bs-single__booking-module .date-field label,
.bs-single--rental .rental-booking.bs-single__booking-module .room-quantity label {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--hb-muted);
	margin-bottom: 0.35rem;
}

.bs-single--hotel .bs-single__booking-module .booking-wizard-custom-fields .form-group label,
.bs-single--tour .tour-booking.bs-single__booking-module .booking-wizard-custom-fields .form-group label,
.bs-single--event .event-booking.bs-single__booking-module .booking-wizard-custom-fields .form-group label,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-wizard-custom-fields .form-group label {
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: none;
	letter-spacing: normal;
	color: var(--bk-heading-color, var(--bk-body-color, #333333));
	background: transparent;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__title,
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__row > label:first-of-type {
	color: var(--hb-text, var(--bk-body-color, #1c1917));
	background: transparent;
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__title,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__row > label:first-of-type,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__title,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__row > label:first-of-type {
	color: var(--bk-experiences-wizard-row-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
	background: transparent;
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__title,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .booking-wizard-custom-fields__row > label:first-of-type {
	color: var(--bk-rentals-wizard-row-text-color, var(--bk-body-color, #1c1917));
	background: transparent;
}

/* Field chrome: frontend-field-chrome.css (--bk-field-*). Layout/width below where needed. */

/* Classic hotel wizard section labels — one size for check-in, guests, rooms, rates & packages. */
.bs-single--hotel .hotel-booking.bs-single__booking-module: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(--bs-muted, #57534e)
	);
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row {
	--bk-hotel-step1-field-min-height: calc(24px + 1.35 * 16px + var(--bk-rooms-wizard-row-border-width, 1px) * 2);
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-end;
	gap: 16px 20px;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field {
	flex: 1 1 0;
	min-width: 0;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--dates {
	flex: 2 1 0;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--dates .bs-hotel-search-bar__group--dates {
	flex: 1 1 auto;
	min-width: 0;
	max-width: none;
	width: 100%;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--guests,
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--rooms {
	flex: 0 1 auto;
	max-width: min(100%, 160px);
}

/* Guest picker with adults and children (Booking rules → Children): room for "2 adults, 2 children (4 and 9 years)". */
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--guests.bs-hotel-party {
	flex: 1 1 220px;
	max-width: min(100%, 340px);
}

/* Phones and narrow columns: the dates get their own full row (in one row they were squeezed to a sliver,
   the label broken into four lines), guests and rooms share the next. */
@media (max-width: 782px) {
	.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row {
		flex-wrap: wrap;
	}

	.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--dates {
		flex: 1 1 100%;
	}

	.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--guests,
	.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-field--guests.bs-hotel-party {
		flex: 1 1 0;
		max-width: none;
	}
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field :is(.bs-frontend-select__trigger, .bs-hotel-party__toggle, select:not(.bs-frontend-select__native)) {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field select:not(.bs-frontend-select__native) {
	cursor: pointer;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field .bs-frontend-select,
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field .bs-select-wrap.bs-frontend-select {
	display: block;
	width: 100%;
	max-width: 100%;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .guest-field .bs-frontend-select__trigger {
	position: relative;
	display: flex;
	align-items: center;
	overflow: visible;
	text-align: left;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-multi-slots-wrap .booking-hotel-slot-accommodation.guest-field {
	flex: 0 1 auto;
	max-width: min(100%, 320px);
	width: 100%;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-multi-slots-wrap .booking-hotel-slot-accommodation.guest-field select {
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	cursor: pointer;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-hotel-step1-row .date-field .booking-hotel-date-range {
	box-sizing: border-box;
	width: 100%;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) #booking-extras .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
	flex: 0 0 auto;
	margin: 0;
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .guest-field select,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .room-quantity select,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .guest-field select,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .room-quantity select,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .guest-field select,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .room-quantity select,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-booking-guests-select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .room-option {
	border: var(--bk-rooms-wizard-row-border-width, 1px) solid var(--bk-rooms-wizard-row-border-color, var(--hb-border));
	border-radius: var(--bk-rooms-wizard-row-border-radius, var(--bs-radius-sm));
	background: var(--bk-rooms-wizard-row-bg, var(--hb-surface));
	color: var(--bk-rooms-wizard-row-text-color, inherit);
}

.bs-single--hotel .bs-single__booking-module .room-option,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .room-option,
.bs-single--event .event-booking.bs-single__booking-module .room-option,
.bs-single--rental .rental-booking.bs-single__booking-module .room-option {
	border: 1px solid var(--hb-border);
	border-radius: var(--bs-radius-sm);
	background: var(--hb-surface);
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .room-option .room-info :is(h4, p) {
	color: inherit;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .room-option:hover {
	border-color: var(--bk-rooms-wizard-row-input-border-color, var(--hb-accent));
	box-shadow: 0 0 0 3px rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.1);
}

.bs-single--hotel .bs-single__booking-module .room-option:hover,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .room-option:hover,
.bs-single--event .event-booking.bs-single__booking-module .room-option:hover,
.bs-single--rental .rental-booking.bs-single__booking-module .room-option:hover {
	border-color: var(--hb-accent);
	box-shadow: var(--bs-shadow-soft);
}

.bs-single--hotel .bs-single__booking-module .room-info h4,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .room-info h4,
.bs-single--event .event-booking.bs-single__booking-module .room-info h4,
.bs-single--rental .rental-booking.bs-single__booking-module .room-info h4 {
	font-size: 1rem;
	font-weight: 600;
	color: var(--hb-text);
	margin: 0 0 0.35rem;
}

.bs-single--hotel .bs-single__booking-module .room-info p,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .room-info p,
.bs-single--event .event-booking.bs-single__booking-module .room-info p,
.bs-single--rental .rental-booking.bs-single__booking-module .room-info p {
	color: var(--hb-muted);
	font-size: 0.95rem;
}

.bs-single--hotel .bs-single__booking-module .room-price,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .room-price,
.bs-single--event .event-booking.bs-single__booking-module .room-price,
.bs-single--rental .rental-booking.bs-single__booking-module .room-price {
	color: var(--hb-accent);
	font-weight: 600;
	font-size: 1.05rem;
}

.bs-single--hotel .bs-single__booking-module .extra-option,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .extra-option,
.bs-single--event .event-booking.bs-single__booking-module .extra-option,
.bs-single--rental .rental-booking.bs-single__booking-module .extra-option {
	border: 1px solid var(--hb-border);
	border-radius: var(--bs-radius-sm);
	background: var(--hb-surface);
}

.bs-single--hotel .bs-single__booking-module .extra-name,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .extra-name,
.bs-single--event .event-booking.bs-single__booking-module .extra-name,
.bs-single--rental .rental-booking.bs-single__booking-module .extra-name {
	color: var(--hb-text);
	font-weight: 600;
}

.bs-single--hotel .bs-single__booking-module .extra-description,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .extra-description,
.bs-single--event .event-booking.bs-single__booking-module .extra-description,
.bs-single--rental .rental-booking.bs-single__booking-module .extra-description {
	color: var(--hb-muted);
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .extra-price,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .extra-price {
	color: var(--bk-field-text, var(--bk-classic-full-width-field-text, var(--hb-text, inherit)));
}

.bs-single--hotel .bs-single__booking-module .extra-price,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .extra-price,
.bs-single--event .event-booking.bs-single__booking-module .extra-price,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.rental-booking--ui-classic) .extra-price {
	color: var(--hb-accent);
}

/* Rental/tour extras: same row treatment as event wizard (.extra-row in booking-steps.css). */
.bs-single--hotel .bs-single__booking-module #booking-extras,
.bs-single--rental .rental-booking.bs-single__booking-module #booking-extras,
.bs-single--tour .tour-booking.bs-single__booking-module #tour-booking-extras {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

/*
 * Full width wizards (rooms, event, tour classic): extras in two columns with a row gap, like the rentals
 * classic extras (booking-steps.css), instead of rows across the whole step; one column on small phones.
 */
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) #booking-extras,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar) #tour-booking-extras,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar) .event-booking-extras-step__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	align-items: start;
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) #booking-extras > .extra-row,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar) #tour-booking-extras > .extra-row,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar) .event-booking-extras-step__inner > .extra-row {
	width: auto;
	min-width: 0;
	margin: 0;
	box-sizing: border-box;
}

@media (max-width: 480px) {
	.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) #booking-extras,
	.bs-single--tour .tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar) #tour-booking-extras,
	.bs-single--event .event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar) .event-booking-extras-step__inner {
		grid-template-columns: minmax(0, 1fr);
	}
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .extra-row.extra-row--qty.hotel-booking-extra-row {
	margin: 0;
	padding: 12px;
	align-items: center;
	background: var(--bk-wizard-extras-row-bg, var(--bk-classic-full-width-field-bg, var(--bk-rooms-wizard-row-input-bg, var(--hb-surface))));
	color: var(--bk-field-text, var(--bk-classic-full-width-field-text, var(--bk-wizard-extras-row-text, inherit)));
	border: var(--bk-ui-field-border-width) solid var(--bk-wizard-extras-row-border-color, var(--bk-classic-full-width-field-border-color, var(--bk-rooms-wizard-row-border-color, var(--hb-border))));
	border-radius: var(--bk-ui-field-radius);
}

.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .extra-row.extra-row--qty.hotel-booking-extra-row .extra-price,
.bs-single--hotel .hotel-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .extra-row.extra-row--qty.hotel-booking-extra-row .extra-quantity-label {
	color: var(--bk-field-text, var(--bk-classic-full-width-field-text, inherit));
}

.bs-single--hotel .bs-single__booking-module .extra-row.extra-row--qty.hotel-booking-extra-row {
	margin: 0;
	padding: 12px;
	align-items: center;
	background: var(--hb-surface);
	border: 1px solid var(--hb-border);
	border-radius: var(--bs-radius-sm);
}

.bs-single--rental .rental-booking.bs-single__booking-module .extra-row.event-aligned-extra,
.bs-single--tour .tour-booking.bs-single__booking-module .extra-row.event-aligned-extra {
	margin: 0;
	padding: 12px;
	align-items: center;
	background: var(--bk-theme-panel, var(--bs-accent-soft));
	border: 1px solid var(--bk-theme-border, var(--hb-border));
	border-radius: var(--bs-radius-sm);
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

.bs-single--rental .rental-booking.bs-single__booking-module .event-aligned-extra__label,
.bs-single--tour .tour-booking.bs-single__booking-module .event-aligned-extra__label {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	width: 100%;
	flex-wrap: nowrap;
	cursor: pointer;
	margin: 0;
}

.bs-single--rental .rental-booking.bs-single__booking-module .event-aligned-extra__check,
.bs-single--tour .tour-booking.bs-single__booking-module .event-aligned-extra__check {
	flex: 0 0 auto;
	margin-top: 4px;
}

.bs-single--rental .rental-booking.bs-single__booking-module .event-aligned-extra__body,
.bs-single--tour .tour-booking.bs-single__booking-module .event-aligned-extra__body {
	flex: 1 1 auto;
	min-width: 0;
}

.bs-single--rental .rental-booking.bs-single__booking-module .event-aligned-extra__body .extra-description,
.bs-single--tour .tour-booking.bs-single__booking-module .event-aligned-extra__body .extra-description {
	margin-top: 0.35rem;
}

.bs-single--rental .rental-booking.bs-single__booking-module .event-aligned-extra .extra-price,
.bs-single--tour .tour-booking.bs-single__booking-module .event-aligned-extra .extra-price {
	flex: 0 0 auto;
	align-self: center;
	margin-left: auto;
	white-space: nowrap;
}

/* Classic wizard summary box on single pages (module styling tabs — not archive popups). */
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary {
	background: var(--bk-rooms-wizard-summary-bg, var(--hb-accent-soft));
	border: var(--bk-rooms-wizard-summary-border-width, 1px) solid var(--bk-rooms-wizard-summary-border-color, var(--hb-border));
	border-radius: var(--bk-rooms-wizard-summary-border-radius, var(--bs-radius-sm));
	padding: 1rem 1.1rem;
	color: var(--bk-rooms-wizard-summary-text-color, var(--hb-text));
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary {
	background: var(--bk-experiences-wizard-summary-bg, var(--bk-experiences-wizard-step-panel-bg, var(--bk-theme-panel, var(--hb-accent-soft))));
	border: var(--bk-experiences-wizard-summary-border-width, var(--bk-experiences-wizard-step-panel-border-width, 1px)) solid
		var(--bk-experiences-wizard-summary-border-color, var(--bk-experiences-wizard-step-panel-border-color, var(--hb-border)));
	border-radius: var(--bk-experiences-wizard-summary-border-radius, var(--bk-experiences-wizard-step-panel-border-radius, var(--bs-radius-sm)));
	padding: 1rem 1.1rem;
	color: var(--bk-experiences-wizard-summary-text-color, var(--bk-experiences-wizard-row-text-color, var(--hb-text)));
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary {
	background: var(--bk-rentals-wizard-summary-bg, var(--bk-rentals-wizard-step-panel-bg, var(--hb-accent-soft, #f8f9fa)));
	border: var(--bk-rentals-wizard-summary-border-width, var(--bk-rentals-wizard-step-panel-border-width, 1px)) solid
		var(--bk-rentals-wizard-summary-border-color, var(--bk-rentals-wizard-step-panel-border-color, var(--bk-rentals-wizard-row-border-color, #e2e8f0)));
	border-radius: var(--bk-rentals-wizard-summary-border-radius, var(--bk-rentals-wizard-step-panel-border-radius, var(--bs-radius-sm, 8px)));
	padding: 1rem 1.1rem;
	color: var(--bk-rentals-wizard-summary-text-color, var(--bk-rentals-wizard-row-text-color, var(--bk-body-color, #1c1917)));
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item {
	color: inherit;
	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));
	padding: 0.4rem 0;
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item {
	color: inherit;
	border-bottom: 1px solid var(--bk-experiences-wizard-summary-border-color, var(--bk-experiences-wizard-row-border-color, var(--hb-border)));
	padding: 0.4rem 0;
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .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;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item:last-of-type,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item:last-of-type,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item:last-of-type,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-item:last-of-type {
	border-bottom: none;
}

/* Rental summary: separator before package (classic / popup only) */
.bs-single--rental .rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item--package {
	border-bottom: none;
}

.bs-single--rental .rental-booking:not(.event-sidebar-module--narrow) .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;
}

.bs-single--rental .rental-booking:not(.event-sidebar-module--narrow) .rental-wizard-summary:has(.summary-item--package:not([style*='display: none'])) .summary-item:has(#rental-summary-duration) {
	border-bottom: none;
}

.bs-single--rental .rental-booking .rental-wizard-summary .summary-item--tax {
	border-bottom: none;
	border-top: none;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend {
	margin: 1rem 0 0.5rem;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend:first-child,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend:first-child,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend:first-child,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary__legend:first-child {
	margin-top: 0;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-rooms h4,
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-extras h4 {
	font-size: var(--bk-rooms-wizard-label-font-size, 0.6875rem);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: inherit;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
}

.bs-single--hotel .bs-single__booking-module: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)));
	text-align: left;
}

.bs-single--hotel .bs-single__booking-module: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);
}

.bs-single--hotel .bs-single__booking-module: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);
}


.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary #rental-summary-extras-list {
	text-align: right;
}

.bs-single--rental .rental-booking.bs-single__booking-module: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)));
	text-align: left;
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item > span:last-child,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary #rental-summary-extras-list {
	font-size: var(--bk-rentals-wizard-body-font-size, inherit);
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-rooms h4,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-extras h4,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-rooms h4,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-extras h4 {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: inherit;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(
	.summary-item > span:first-child,
	.summary-extras h4
),
.bs-single--tour .tour-booking.bs-single__booking-module: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: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	line-height: 1.3;
}

/* Tickets and Extras: label on the left, lines on the right; the first line sits on the label row. */
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(.summary-item.summary-item--tickets, .summary-extras),
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(.summary-item.summary-item--tickets, .summary-extras) {
	display: flex;
	flex-direction: row;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(.summary-item--tickets > span:first-child, .summary-extras h4),
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(.summary-item--tickets > span:first-child, .summary-extras h4) {
	flex: 0 0 auto;
	margin: 0;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras h4::after,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-extras h4::after {
	content: ":";
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(#event-summary-tickets-body, #event-summary-extras-list),
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(#tour-summary-tickets-body, #tour-summary-extras-list) {
	flex: 1 1 auto;
	min-width: 0;
	text-align: right;
}

/* Phones: tickets and extras like the other summary rows (booking-steps.css), the label above the list. */
@media (max-width: 600px) {
	.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(.summary-item.summary-item--tickets, .summary-extras),
	.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(.summary-item.summary-item--tickets, .summary-extras) {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.2rem;
	}

	.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary :is(#event-summary-tickets-body, #event-summary-extras-list),
	.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary :is(#tour-summary-tickets-body, #tour-summary-extras-list) {
		text-align: left;
	}
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras :is(
	#event-summary-extras-list,
	#tour-summary-extras-list
) > :first-child,
.bs-single--tour .tour-booking.bs-single__booking-module: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;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary .summary-extras .description,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary .summary-extras .description {
	margin: 0;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.event-wizard-summary #event-summary-extras-list,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary.tour-wizard-summary #tour-summary-extras-list {
	margin: 0;
	padding: 0;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total {
	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));
	color: inherit;
	text-align: right;
	font-size: var(--bk-rooms-wizard-total-font-size, 1.2rem);
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total {
	border-top: 1px solid var(--bk-experiences-wizard-summary-border-color, var(--bk-experiences-wizard-row-border-color, var(--hb-border)));
	padding-top: 0.4rem;
	color: inherit;
	text-align: right;
}

/* The Total line already draws the divider; the row above it drops its own so the line is not doubled. */
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary > :has(+ .summary-total),
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary > :has(+ .summary-total) {
	border-bottom: 0;
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .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;
	text-align: right;
}

/*
 * Rooms / Rentals summary: Selected rooms and Extras are rows like the others (label on the left, the
 * first line on the label row, more lines stacked under it). Every row draws the divider under itself
 * and Total draws none, so the line above Total is never doubled whichever rows (extras, fees, coupon,
 * package) are shown.
 */
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-rooms, .summary-extras),
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras {
	display: flex;
	flex-direction: row;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
	padding: 0.4rem 0;
	border-top: 0;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item:has(+ .summary-rooms),
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-rooms, .summary-extras) {
	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));
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras {
	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));
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-rooms, .summary-extras) > .booking-summary__legend,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras > h4 {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
}

/* The Extras label is an h4: same font as the other summary labels, not the heading font. */
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras > h4 {
	font-family: inherit;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-rooms, .summary-extras) > .booking-summary__legend::after,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-extras > h4::after {
	content: ":";
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(#summary-rooms-list, #summary-extras-list),
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary #rental-summary-extras-list {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	text-align: right;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(#summary-rooms-list, #summary-extras-list) > :first-child,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary #rental-summary-extras-list > :first-child {
	margin-top: 0;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary :is(.summary-fees-wrap:not([hidden]), .bs-booking-coupon-ui) {
	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));
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary :is(.summary-fees-wrap:not([hidden]), .bs-booking-coupon-ui) {
	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));
}

/* Total always has a line above it (also with Row dividers off); the row above drops its own so it is not doubled. */
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-total {
	border-top: 1px solid var(--bk-rooms-wizard-summary-border-color, var(--hb-border));
	padding-top: 0.4rem;
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-total {
	border-top: 1px solid var(--bk-rentals-wizard-summary-border-color, var(--hb-border));
	padding-top: 0.4rem;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary > :has(+ .summary-total),
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary > :has(+ .summary-total) {
	border-bottom: 0;
}

/* The last shown row before Total (all four full-width forms): hidden rows (extras, package, fees, a coupon
   field that is switched off — inline display: none or [hidden]) can sit between it and Total, so
   `+ .summary-total` above misses it and its line doubled the one above Total. */
:is(.bs-single--hotel, .bs-single--rental, .bs-single--tour, .bs-single--event) .bs-single__booking-module:not(.event-sidebar-module--narrow) :is(.booking-summary, .rental-wizard-summary) > :has(~ .summary-total):not(:has(~ :is(.summary-item, .summary-extras, .summary-rooms, .summary-rental-attributes, .summary-fees-wrap, .bs-booking-coupon-ui):not([hidden], [style*="display: none"], [style*="display:none"], .summary-item--tax-after-total))) {
	border-bottom: 0;
}

/*
 * Coupon field between the rows and the total: the row above already draws the divider, and the total its
 * own line, so the box draws neither (booking-steps.css gives it a top line, the rule above a bottom line,
 * and its inner row is a .summary-item with a bottom line — three doubled lines on rooms / rentals full width).
 */
.booking-steps-wrapper:not(.event-sidebar-module--narrow) :is(.booking-summary, .rental-wizard-summary) .bs-booking-coupon-ui,
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .bs-booking-coupon-ui,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .bs-booking-coupon-ui {
	margin-top: 0;
	padding-top: 0.4rem;
	border-top: 0;
}

.booking-steps-wrapper:not(.event-sidebar-module--narrow) :is(.booking-summary, .rental-wizard-summary) .bs-booking-coupon-ui .summary-item,
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .bs-booking-coupon-ui .summary-item,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .bs-booking-coupon-ui .summary-item {
	border-bottom: 0;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .bs-booking-coupon-ui:has(+ .summary-total),
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .bs-booking-coupon-ui:has(+ .summary-total) {
	border-bottom: 0;
}

/* Package: a row like the others instead of a block with its own top line. */
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item--package:not([style*='display: none']) {
	margin-top: 0;
	padding-top: 0.4rem;
	border-top: 0;
	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));
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary:has(.summary-item--package:not([style*='display: none'])) .summary-item:has(#rental-summary-duration) {
	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));
}

/* The end line sits right under the start line (the row gap of the other rows does not apply here). */
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .rental-wizard-summary .summary-item--period {
	row-gap: 0;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total strong,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total strong,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total strong,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .summary-total strong {
	color: inherit;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item.summary-item--tax-after-total {
	border-top: none;
	border-bottom: none;
	padding: 0.1rem 0 0;
	margin: 0.1rem 0 0;
	display: block;
	text-align: right;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total.is-tax-visible,
.hotel-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total.is-tax-visible {
	display: block;
}

.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.bs-single--hotel .bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description,
.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;
	font-size: var(--bk-rooms-wizard-body-font-size, 0.72rem);
	line-height: 1.25;
	opacity: 0.92;
	text-align: right;
	box-sizing: border-box;
	color: var(--bk-rooms-wizard-summary-text-color, var(--hb-text, inherit));
}

.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description,
.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 {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	font-size: 0.72rem;
	line-height: 1.25;
	opacity: 1;
	text-align: right;
	box-sizing: border-box;
	color: var(--bk-rentals-wizard-summary-text-color, var(--bk-rentals-wizard-row-text-color, inherit));
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item.summary-item--tax-after-total,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item.summary-item--tax-after-total,
.event-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item.summary-item--tax-after-total,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item.summary-item--tax-after-total {
	border-top: none;
	border-bottom: none;
	padding: 0.08rem 0 0;
	margin: 0.08rem 0 0;
	display: block;
	text-align: right;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total.is-tax-visible,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total.is-tax-visible,
.event-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total.is-tax-visible,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total.is-tax-visible {
	display: block;
}

.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description,
.event-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.event-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .description,
.tour-booking:not(.event-sidebar-module--narrow) .booking-summary .summary-item--tax-after-total .bs-booking-tax-note,
.tour-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;
	font-size: 0.72rem;
	line-height: 1.25;
	opacity: 0.92;
	text-align: right;
	box-sizing: border-box;
	color: var(--bk-experiences-wizard-row-text-color, var(--hb-text, inherit));
}

.bs-single--hotel .bs-single__booking-module .booking-package-option,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .booking-package-option,
.bs-single--event .event-booking.bs-single__booking-module .booking-package-option,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-package-option {
	border-color: var(--hb-border);
	border-radius: var(--bs-radius-sm);
}

.bs-single--hotel .bs-single__booking-module .booking-package-option:hover,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .booking-package-option:hover,
.bs-single--event .event-booking.bs-single__booking-module .booking-package-option:hover,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-package-option:hover {
	border-color: var(--hb-accent);
}

.bs-single--hotel .bs-single__booking-module .booking-package-price {
	color: var(--bk-rooms-package-text, var(--bk-body-color, inherit));
}

.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .booking-package-price,
.bs-single--event .event-booking.bs-single__booking-module .booking-package-price,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-package-price {
	color: var(--hb-accent);
}

.bs-single--hotel .bs-single__booking-module .booking-package-title,
.bs-single--hotel .bs-single__booking-module .booking-package-price {
	font-size: calc(1em - 2px);
}

.bs-single--hotel .bs-single__booking-module .booking-step-lead,
.bs-single--hotel .bs-single__booking-module .description,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .booking-step-lead,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module,
.bs-single--tour .tour-booking.bs-single__booking-module .description,
.bs-single--event .event-booking.bs-single__booking-module .booking-step-lead,
.bs-single--event .event-booking.bs-single__booking-module .description,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-step-lead,
.bs-single--rental .rental-booking.bs-single__booking-module .description {
	color: var(--hb-muted);
	font-size: 0.95rem;
	margin: 0 0 1rem;
}

.bs-single--hotel .hotel-booking .booking-hotel-multi-slots-wrap .description,
.bs-single--hotel .hotel-booking .booking-hotel-multi-slots-wrap .booking-hotel-slot-row__title,
.bs-single--hotel .hotel-booking .booking-hotel-multi-slots-wrap .booking-hotel-slot-row__title strong {
	color: var(--bk-rooms-wizard-row-text-color, var(--hb-text, var(--bk-body-color, #1c1917)));
}

.bs-single--hotel .bs-single__booking-module:not(.bs-booking-login-gate) .booking-next-step,
.bs-single--hotel .bs-single__booking-module:not(.bs-booking-login-gate) .booking-submit,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module:not(.bs-booking-login-gate) .booking-next-step,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.bs-booking-login-gate):not(.tour-booking--ui-sidebar) .booking-next-step,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module:not(.bs-booking-login-gate) .booking-submit,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.bs-booking-login-gate):not(.tour-booking--ui-sidebar) .booking-submit,
.bs-single--event .event-booking.bs-single__booking-module:not(.bs-booking-login-gate):not(.event-booking--ui-sidebar) .booking-next-step,
.bs-single--event .event-booking.bs-single__booking-module:not(.bs-booking-login-gate):not(.event-booking--ui-sidebar) .booking-submit,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.bs-booking-login-gate) .booking-next-step,
.bs-single--rental .rental-booking.bs-single__booking-module:not(.bs-booking-login-gate) .booking-submit {
	margin: 0.35rem;
}

.bs-single--hotel .bs-single__booking-module .booking-prev-step,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module .booking-prev-step,
.bs-single--tour .tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar) .booking-prev-step,
.bs-single--event .event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar) .booking-prev-step,
.bs-single--rental .rental-booking.bs-single__booking-module .booking-prev-step {
	margin: 0.35rem;
}

/*
 * Hotel sidebar steps 2–3 (extras + summary): side-by-side Back/Next.
 * Overrides .bs-single__booking-module button margins and booking-steps column layout.
 */
.bs-single--hotel
	.hotel-booking.event-sidebar-module--narrow.bs-single__booking-module
	.booking-step-content:is([data-step="3"], [data-step="4"])
	.step-actions:not(:has(> .bs-trip-payment-cta)) {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	width: 100% !important;
	margin-top: 0.75rem !important;
}

.bs-single--hotel
	.hotel-booking.event-sidebar-module--narrow.bs-single__booking-module
	.booking-step-content:is([data-step="3"], [data-step="4"])
	.step-actions: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) !important;
	min-width: 0 !important;
	max-width: calc(50% - 0.25rem) !important;
	width: calc(50% - 0.25rem) !important;
	margin: 0 !important;
	order: unset !important;
	display: inline-flex !important;
}

/*
 * Event / tour classic wizard: center step action buttons (direct-child .step-actions only).
 * Nested .step-actions in step 1 calendar sidebar are styled separately below.
 */
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions,
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions,
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.tour-wizard-step1-actions,
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.event-wizard-step1-actions {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 0.5rem !important;
	width: 100% !important;
	max-width: min(22rem, 100%) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 0.75rem !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	text-align: center !important;
}

/* Lone Next/Submit: centered, capped at half the action row (not full module width) */
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> :only-child),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> :only-child),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.tour-wizard-step1-actions:has(> :only-child),
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.event-wizard-step1-actions:has(> :only-child) {
	grid-template-columns: 1fr !important;
	justify-items: center !important;
}

.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> :only-child)
	:is(.booking-next-step, .booking-submit, a.booking-next-step),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> :only-child)
	:is(.booking-next-step, .booking-submit, a.booking-next-step),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.tour-wizard-step1-actions:has(> :only-child)
	:is(.booking-next-step, .booking-submit, a.booking-next-step),
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.event-wizard-step1-actions:has(> :only-child)
	:is(.booking-next-step, .booking-submit, a.booking-next-step) {
	grid-column: auto;
	width: min(11rem, 100%) !important;
	max-width: 100% !important;
}

.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step) {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	display: inline-flex !important;
}

/*
 * Rooms, rentals and services classic (their pages, [kezara_book_room], [kezara_book_rental]): the same buttons as event / tour classic, Back and
 * Next / Book equally wide side by side in a centred 22rem row (Back was as wide as its word and went above the
 * booking button on phones).
 */
:is(.hotel-booking:not(.hotel-booking--ui-sidebar), .rental-booking.rental-booking--ui-classic, .service-booking.service-booking--single-classic):not(.event-sidebar-module--narrow) .booking-step-content > .step-actions {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 0.5rem !important;
	width: 100% !important;
	max-width: min(22rem, 100%) !important;
	margin-left: auto !important;
	margin-right: auto !important;
	margin-top: 0.75rem !important;
	margin-bottom: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
	text-align: center !important;
}

:is(.hotel-booking:not(.hotel-booking--ui-sidebar), .rental-booking.rental-booking--ui-classic, .service-booking.service-booking--single-classic):not(.event-sidebar-module--narrow) .booking-step-content > .step-actions:has(> :only-child) {
	grid-template-columns: 1fr !important;
	justify-items: center !important;
}

:is(.hotel-booking:not(.hotel-booking--ui-sidebar), .rental-booking.rental-booking--ui-classic, .service-booking.service-booking--single-classic):not(.event-sidebar-module--narrow) .booking-step-content > .step-actions :is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step) {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
	display: inline-flex !important;
	justify-content: center;
}

:is(.hotel-booking:not(.hotel-booking--ui-sidebar), .rental-booking.rental-booking--ui-classic, .service-booking.service-booking--single-classic):not(.event-sidebar-module--narrow) .booking-step-content > .step-actions:has(> :only-child) :is(.booking-next-step, .booking-submit, a.booking-next-step) {
	grid-column: auto;
	width: min(11rem, 100%) !important;
}

:is(.hotel-booking:not(.hotel-booking--ui-sidebar), .rental-booking.rental-booking--ui-classic, .service-booking.service-booking--single-classic):not(.event-sidebar-module--narrow) .booking-step-content > .step-actions:has(> .booking-payment-methods) {
	display: flex !important;
	max-width: none !important;
}

/* Small phones, last step of event / tour / rooms / rentals / services classic: the booking button on top and Back under it, each the
   whole row, like the sidebar booking ("Complete / booking" broke into two lines at half the row). */
@media (max-width: 480px) {
	:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking, .service-booking--single-classic):not(.event-sidebar-module--narrow):not(.event-booking--ui-sidebar):not(.tour-booking--ui-sidebar):not(.hotel-booking--ui-sidebar):not(.rental-booking--ui-sidebar) .booking-step-content > .step-actions:has(> .booking-submit):not(:has(> .booking-payment-methods)) {
		grid-template-columns: minmax(0, 1fr) !important;
		max-width: 100% !important;
	}

	:is(.event-booking, .tour-booking, .hotel-booking, .rental-booking, .service-booking--single-classic):not(.event-sidebar-module--narrow):not(.event-booking--ui-sidebar):not(.tour-booking--ui-sidebar):not(.hotel-booking--ui-sidebar):not(.rental-booking--ui-sidebar) .booking-step-content > .step-actions:has(> .booking-submit) > .booking-submit {
		order: -1;
	}
}

/*
 * Payment step with the payment method list: the row spans the step so the list and the chosen method's
 * panel get their own lines (booking-steps.css); Back / Book keep the width they have in the 22rem grid.
 */
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> .booking-payment-methods),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> .booking-payment-methods) {
	display: flex !important;
	max-width: none !important;
}

/* The line break before Back / Book (booking-steps.css) would add a second 0.5rem row gap. */
.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> .booking-payment-methods:not([hidden]))::before,
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> .booking-payment-methods:not([hidden]))::before {
	margin-top: -0.5rem;
}

.bs-single--event
	.event-booking.bs-single__booking-module:not(.event-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> .booking-payment-methods)
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step),
.bs-single--tour
	.tour-booking.bs-single__booking-module:not(.tour-booking--ui-sidebar)
	.booking-step-content
	> .step-actions:has(> .booking-payment-methods)
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step) {
	width: calc((min(22rem, 100%) - 0.5rem) / 2) !important;
}

/*
 * Event / tour compact sidebar: Back + Next side by side, 50% each (full module width).
 */
.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions,
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	border-top: none !important;
	padding-top: 0 !important;
	box-sizing: border-box !important;
}

.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step),
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step) {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: stretch !important;
	gap: 0.5rem !important;
}

.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step)
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step, .event-sidebar-cta),
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step)
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step, .event-sidebar-cta) {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	max-width: none !important;
	width: auto !important;
	margin: 0 !important;
	order: unset !important;
	display: inline-flex !important;
	white-space: normal !important;
}

/* Last step: "Back" as wide as its word and the booking button the rest on one line ("Complete / booking" broke in
   two, cut off on phones); a label too long for the row moves under "Back". */
.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit),
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit) {
	flex-wrap: wrap !important;
}

.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit)
	> .booking-prev-step,
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit)
	> .booking-prev-step {
	flex: 0 0 auto !important;
}

.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit)
	> .booking-submit,
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit)
	> .booking-submit {
	flex: 1 1 auto !important;
	white-space: nowrap !important;
}

/* Small phones: the booking button on top, "Back" under it, both the full width. */
@media (max-width: 480px) {
	.bs-single--event
		.event-booking--ui-sidebar.bs-single__booking-module
		.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit),
	.bs-single--tour
		.tour-booking--ui-sidebar.bs-single__booking-module
		.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit) {
		flex-direction: column-reverse !important;
		align-items: stretch !important;
	}

	.bs-single--event
		.event-booking--ui-sidebar.bs-single__booking-module
		.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit)
		> :is(.booking-prev-step, .booking-submit),
	.bs-single--tour
		.tour-booking--ui-sidebar.bs-single__booking-module
		.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-submit)
		> :is(.booking-prev-step, .booking-submit) {
		flex: 0 0 auto !important;
		width: 100% !important;
	}
}

/* Services sidebar, the other steps: Back and Next step share the row in two equal halves, like the rentals and
   rooms sidebar (they were as wide as their words, centred). */
.service-booking.event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):not(:has(> .booking-submit)) {
	display: flex !important;
	flex-direction: row !important;
	gap: 0.5rem !important;
	width: 100% !important;
}

.service-booking.event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):not(:has(> .booking-submit)) > :is(.booking-prev-step, .booking-next-step) {
	flex: 1 1 0 !important;
	min-width: 0 !important;
	max-width: none !important;
	width: auto !important;
	margin: 0 !important;
	justify-content: center;
}

/* Rentals, rooms and services sidebar, the same last step (their button row is the step's own, without the event / tour
   sidebar class): "Back" as wide as its word, the booking button on one line; on small phones on top of "Back". */
:is(.rental-booking, .hotel-booking, .service-booking).event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):has(> .booking-submit) {
	flex-wrap: wrap !important;
}

:is(.rental-booking, .hotel-booking, .service-booking).event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):has(> .booking-submit) > .booking-prev-step {
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none !important;
}

:is(.rental-booking, .hotel-booking, .service-booking).event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):has(> .booking-submit) > .booking-submit {
	flex: 1 1 auto !important;
	white-space: nowrap !important;
	width: auto !important;
	max-width: none !important;
}

@media (max-width: 480px) {
	:is(.rental-booking, .hotel-booking, .service-booking).event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):has(> .booking-submit) {
		flex-direction: column-reverse !important;
		align-items: stretch !important;
	}

	:is(.rental-booking, .hotel-booking, .service-booking).event-sidebar-module--narrow .booking-step-content > .step-actions:has(> .booking-prev-step):has(> .booking-submit) > :is(.booking-prev-step, .booking-submit) {
		flex: 0 0 auto !important;
		width: 100% !important;
		max-width: none !important;
	}
}

/*
 * Compact sidebar (event + tour): no rule above step buttons.
 */
.bs-single--event
	.event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module
	.bs-booking-wizard-sidebar__section:not(.bs-booking-wizard-sidebar__tickets):not(.bs-booking-wizard-sidebar__guests)
	+ .bs-booking-wizard-sidebar__footer,
.bs-single--tour
	.tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module
	.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;
}

.bs-single--event
	.event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module
	.bs-booking-wizard-sidebar__tickets
	+ .bs-booking-wizard-sidebar__footer,
.bs-single--tour
	.tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module
	.bs-booking-wizard-sidebar__tickets
	+ .bs-booking-wizard-sidebar__footer,
.bs-single--event
	.event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module
	.bs-booking-wizard-sidebar__guests
	+ .bs-booking-wizard-sidebar__footer,
.bs-single--tour
	.tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module
	.bs-booking-wizard-sidebar__guests
	+ .bs-booking-wizard-sidebar__footer {
	margin-top: 1.25rem;
}

/*
 * Compact sidebar — summary follows sidebar text/dividers (not popup summary box).
 */
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary,
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary,
.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary,
.bs-single--rental .rental-booking.rental-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary,
.event-booking.event-sidebar-module--narrow .booking-summary,
.tour-booking.event-sidebar-module--narrow .booking-summary,
.rental-booking.event-sidebar-module--narrow .booking-summary {
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin-top: 0;
	margin-bottom: 0;
	color: var(
		--bk-compact-sidebar-summary-text-color,
		var(--bk-compact-sidebar-text-color, var(--bs-text, var(--bk-body-color, #1c1917)))
	);
}

.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary :is(
	.summary-item,
	.summary-rooms,
	.summary-extras,
	.summary-total,
	.booking-summary__legend,
	.bs-single__section-title,
	.description,
	.bs-booking-tax-note,
	#summary-rooms-list,
	#summary-extras-list
),
.event-booking.event-sidebar-module--narrow .booking-summary :is(
	.summary-item,
	.summary-extras,
	.summary-total,
	.booking-summary__legend,
	.description,
	.bs-booking-tax-note,
	.summary-rooms h4,
	.summary-extras h4
),
.tour-booking.event-sidebar-module--narrow .booking-summary :is(
	.summary-item,
	.summary-extras,
	.summary-total,
	.booking-summary__legend,
	.description,
	.bs-booking-tax-note,
	.summary-rooms h4,
	.summary-extras h4
),
.rental-booking.event-sidebar-module--narrow .booking-summary :is(
	.summary-item,
	.summary-extras,
	.summary-total,
	.booking-summary__legend,
	.description,
	.bs-booking-tax-note,
	.summary-rooms h4,
	.summary-extras h4
) {
	color: inherit;
}

.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:not(.summary-item--fee),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee),
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) {
	border-bottom: none;
	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)))
	);
	padding: 0.4rem 0;
}

.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary > .summary-item:first-child,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary > .summary-item:first-child,
.event-booking.event-sidebar-module--narrow .booking-summary > .summary-item:first-child,
.tour-booking.event-sidebar-module--narrow .booking-summary > .summary-item:first-child,
.rental-booking.event-sidebar-module--narrow .booking-summary > .summary-item:first-child {
	border-top: none;
}

.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:last-of-type,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:last-of-type,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:last-of-type,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:last-of-type,
.rental-booking.event-sidebar-module--narrow .booking-summary .summary-item:last-of-type {
	border-bottom: none;
}

/* Compact sidebar summary labels — heading font + kicker scale (match EXTRAS h4 / sidebar kickers). */
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.bs-single--rental .rental-booking.rental-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:not(.summary-item--fee) > span:first-child,
.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),
.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,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-rooms h4 {
	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;
	margin: 0 0 0.15rem;
	color: var(--bk-compact-sidebar-label-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
	: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 {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.15rem;
	margin-top: 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;
}

.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4 {
	margin: 0;
	padding: 0;
}

.rental-booking.event-sidebar-module--narrow .booking-summary .summary-extras #rental-summary-extras-list {
	margin: 0;
	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;
	line-height: 1.45;
}

.rental-booking.event-sidebar-module--narrow .booking-summary .summary-total,
.rental-booking.event-sidebar-module--narrow .rental-wizard-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;
}

.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;
}

.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 {
	margin-top: 0;
	padding-top: 0.4rem;
	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;
}

.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;
}

.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;
	margin: 0;
	padding: 0;
	text-align: right;
	box-sizing: border-box;
}

.rental-booking .booking-summary + .booking-wizard-pay-on-site-notice,
.bs-single--rental .rental-booking .booking-summary + .booking-wizard-pay-on-site-notice,
.rental-booking .booking-summary .booking-wizard-pay-on-site-notice,
.bs-single--rental .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;
	font-size: 0.875rem;
	border: none;
}

.event-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--tickets,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item.summary-item--tickets {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.15rem;
}

.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-item.summary-item--tickets > span:first-child,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras h4 {
	margin: 0;
	padding: 0;
}

.bs-single--event .event-booking.event-sidebar-module--narrow .booking-summary .description,
.bs-single--tour .tour-booking.event-sidebar-module--narrow .booking-summary .description,
.event-booking.event-sidebar-module--narrow .booking-summary .description,
.tour-booking.event-sidebar-module--narrow .booking-summary .description,
.event-booking.event-sidebar-module--narrow .booking-summary .summary-extras :is(
	.description,
	.booking-summary-extras-empty,
	#event-summary-extras-list,
	#tour-summary-extras-list
),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-extras :is(
	.description,
	.booking-summary-extras-empty,
	#event-summary-extras-list,
	#tour-summary-extras-list
) {
	margin: 0;
	padding: 0;
}

/* Compact sidebar summary values + lead copy — body text tokens from Settings → Styling. */
.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-step-content .booking-step-lead,
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-step-content .booking-step-lead,
.event-booking.event-sidebar-module--narrow .booking-step-content .booking-step-lead,
.tour-booking.event-sidebar-module--narrow .booking-step-content .booking-step-lead,
.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary,
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary,
.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);
}

.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item > span:not(:first-child),
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item > span:not(:first-child),
.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 :is(
	.booking-summary__event-name,
	.event-summary-tickets-body,
	.tour-summary-tickets-body,
	#event-summary-extras-list,
	#tour-summary-extras-list,
	.booking-summary-extras-empty,
	.booking-total,
	.summary-total
),
.tour-booking.event-sidebar-module--narrow .booking-summary :is(
	.booking-summary__event-name,
	.event-summary-tickets-body,
	.tour-summary-tickets-body,
	#event-summary-extras-list,
	#tour-summary-extras-list,
	.booking-summary-extras-empty,
	.booking-total,
	.summary-total
) {
	font-family: var(--bk-body-font-family, inherit);
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--package:not([style*='display: none']) {
	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)))
	);
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow .rental-wizard-summary:has(.summary-item--package:not([style*='display: none'])) .summary-item:has(#rental-summary-duration) {
	border-bottom: none;
}

.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item:has(+ .summary-extras),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-extras:has(+ .summary-item--package),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-extras:has(+ .bs-booking-coupon-ui),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-extras:has(+ .summary-total) {
	border-bottom: none;
}

/* One divider before total — not row border-bottom plus summary-total border-top. */
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item:has(+ .summary-total),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item:has(+ .summary-item--tax + .summary-total),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item:has(+ .summary-item--package + .summary-item--tax + .summary-total),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--package:has(+ .summary-item--tax + .summary-total),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item:has(+ .bs-booking-coupon-ui),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item:has(+ .summary-item--tax + .bs-booking-coupon-ui),
.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--package:has(+ .summary-item--tax + .bs-booking-coupon-ui) {
	border-bottom: none;
}

.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--tax {
	border-bottom: none;
}

.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .summary-item--tax-after-total .bs-booking-tax-note {
	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;
	opacity: 0.92;
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	text-align: right;
	box-sizing: border-box;
	color: var(
		--bk-compact-sidebar-summary-text-color,
		var(--bk-compact-sidebar-text-color, inherit)
	);
}

/* Tour/event/hotel compact sidebar: one divider before total — not tax row border plus summary-total border-top. */
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-total),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .summary-total),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .bs-booking-coupon-ui),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .booking-wizard-custom-fields),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .bs-booking-coupon-ui),
.tour-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .booking-wizard-custom-fields),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-total),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .summary-total),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .bs-booking-coupon-ui),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .booking-wizard-custom-fields),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .bs-booking-coupon-ui),
.event-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .booking-wizard-custom-fields),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-total),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .summary-total),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .bs-booking-coupon-ui),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .booking-wizard-custom-fields),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .bs-booking-coupon-ui),
.hotel-booking.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .booking-wizard-custom-fields),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-total),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .summary-total),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .bs-booking-coupon-ui),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .summary-item--tax + .booking-wizard-custom-fields),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .bs-booking-coupon-ui),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-item:has(+ .booking-wizard-custom-fields),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:has(+ .summary-total),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:has(+ .summary-item--tax + .summary-total),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:has(+ .summary-item--tax + .bs-booking-coupon-ui),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:has(+ .summary-item--tax + .booking-wizard-custom-fields),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:has(+ .bs-booking-coupon-ui),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item:has(+ .booking-wizard-custom-fields) {
	border-bottom: none;
}

.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,
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item--tax {
	border-bottom: none;
}

.tour-booking.event-sidebar-module--narrow .booking-summary .bs-booking-coupon-ui:has(+ .summary-total),
.event-booking.event-sidebar-module--narrow .booking-summary .bs-booking-coupon-ui:has(+ .summary-total),
.hotel-booking.event-sidebar-module--narrow .booking-summary .bs-booking-coupon-ui:has(+ .summary-total),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .bs-booking-coupon-ui:has(+ .summary-total),
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .bs-booking-coupon-ui:has(+ .summary-total) {
	border-top: none;
	padding-top: 0;
	margin-top: 0.35rem;
}

.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,
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-item--tax .bs-booking-tax-note,
.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .booking-summary__tax-note {
	font-size: 0.72rem;
	line-height: 1.35;
	opacity: 0.92;
}

.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .bs-booking-coupon-ui:has(+ .summary-total) {
	border-top: none;
	padding-top: 0;
	margin-top: 0.35rem;
}

.rental-booking.event-sidebar-module--narrow .rental-wizard-summary .bs-booking-coupon-ui .summary-item {
	border-bottom: none;
}

.bs-single--hotel .hotel-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-summary .summary-total,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-total,
.bs-single--event .event-booking.event-sidebar-module--narrow .booking-total,
.bs-single--tour .tour-booking.event-sidebar-module--narrow .booking-total,
.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 {
	margin-top: 0;
	padding-top: 0.4rem;
	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)))
	);
	color: inherit;
}

.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-rooms h4,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-extras h4,
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-summary .summary-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,
.event-booking.event-sidebar-module--narrow .booking-total,
.event-booking.event-sidebar-module--narrow .booking-total strong,
.tour-booking.event-sidebar-module--narrow .booking-total,
.tour-booking.event-sidebar-module--narrow .booking-total strong,
.rental-booking.event-sidebar-module--narrow .booking-total,
.rental-booking.event-sidebar-module--narrow .booking-total strong {
	color: inherit;
}

.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .hotel-wizard-payment-total {
	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.hotel-booking--ui-sidebar.event-sidebar-module--narrow .hotel-wizard-payment-total :is(strong, span) {
	color: inherit;
}

.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 {
	margin-top: 0;
	padding-top: 0;
	padding-bottom: 0;
}

.event-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total .bs-booking-tax-note,
.tour-booking.event-sidebar-module--narrow .booking-total + .summary-item--tax-after-total .bs-booking-tax-note,
.hotel-booking.event-sidebar-module--narrow .booking-total + .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,
.hotel-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;
	padding: 0;
	text-align: right;
	color: var(
		--bk-compact-sidebar-summary-text-color,
		var(--bk-compact-sidebar-text-color, var(--bs-text, var(--bk-body-color, #1c1917)))
	);
}

.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-wizard-custom-fields__title,
.bs-single--event .event-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-wizard-custom-fields__row > label:first-of-type,
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-wizard-custom-fields__title,
.bs-single--tour .tour-booking--ui-sidebar.event-sidebar-module--narrow.bs-single__booking-module .booking-wizard-custom-fields__row > label:first-of-type {
	color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, inherit));
	background: transparent;
}

.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-step-content[data-step="4"] :is(
	.booking-step-lead,
	.hotel-wizard-payment-total
),
.hotel-booking.hotel-booking--ui-sidebar.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.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-step-content[data-step="4"] .booking-wizard-pay-on-site-notice,
.hotel-booking.hotel-booking--ui-sidebar.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 .booking-summary + .booking-wizard-pay-on-site-notice,
.bs-single--hotel .hotel-booking .booking-summary + .booking-wizard-pay-on-site-notice,
.hotel-booking .booking-summary .booking-wizard-pay-on-site-notice,
.bs-single--hotel .hotel-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;
	font-size: 0.875rem;
	border: none;
}

.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-step-content[data-step="5"] .step-actions:has(.booking-prev-step):has(.booking-submit),
.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .booking-step-content[data-step="4"] .step-actions:has(.booking-prev-step):has(.booking-submit) {
	align-items: stretch !important;
}

.hotel-booking.hotel-booking--ui-sidebar.event-sidebar-module--narrow .step-actions:has(.booking-prev-step):has(.booking-submit) :is(.booking-prev-step, .booking-submit) {
	align-self: stretch;
	height: auto;
}

/*
 * RSVP wizard buttons: use singles accent / Settings → Styling (--bs-accent on .bs-single).
 * Do not use --hb-accent here — that is only defined inside .event-booking / .tour-booking wrappers.
 */
.bs-single--event .bs-rsvp-widget .booking-next-step,
.bs-single--event .bs-rsvp-widget .booking-submit,
.bs-single--tour .bs-rsvp-widget .booking-next-step,
.bs-single--tour .bs-rsvp-widget .booking-submit {
	margin: 0.35rem;
}

.bs-single--hotel .bs-single__booking-module .spinner,
.bs-single--tour .tour-booking-legacy.bs-single__booking-module .spinner,
.bs-single--tour .tour-booking.bs-single__booking-module .spinner,
.bs-single--event .event-booking.bs-single__booking-module .spinner,
.bs-single--rental .rental-booking.bs-single__booking-module .spinner {
	border-color: var(--hb-accent-soft);
	border-top-color: var(--hb-accent);
}

/*
 * Rental / tour wizard step 1: calendar + sidebar (sidebar visible after a slot is chosen).
 */
.bs-single--rental .rental-booking.bs-single__booking-module .rental-tour-wizard-step1-layout,
.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout,
.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 1.25rem 1.5rem;
	margin-bottom: 1.25rem;
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-tour-wizard-step1-layout .bs-booking-wizard-step1-main,
.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout .bs-booking-wizard-step1-main,
.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout .bs-booking-wizard-step1-main {
	flex: 1 1 100%;
	min-width: 0;
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-step1-main,
.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-step1-main {
	flex: 1 1 0;
	max-width: calc(100% - 316px);
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar,
.bs-single--event .event-booking.bs-single__booking-module .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, var(--bs-accent-soft));
	border: 1px solid var(--bk-theme-border, var(--bs-border));
	border-radius: var(--bs-radius-sm);
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-sidebar,
.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-sidebar {
	display: block;
}

/* Rental classic: stack date/time/people/extras in one column (compact sidebar keeps the panel). */
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-tour-wizard-step1-layout,
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection {
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 1.25rem;
}
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main {
	flex: 1 1 auto;
	max-width: 100%;
	width: 100%;
}
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar {
	display: none;
}

/* Event sidebar-only template: root carries .bs-booking-wizard-sidebar — override display:none above */
.bs-single--event .event-booking.bs-single__booking-module.event-sidebar-module--narrow.bs-booking-wizard-sidebar {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.bs-single--event .event-booking.bs-single__booking-module.event-sidebar-module--narrow .guest-field label {
	color: var(--bs-text, var(--hb-text, #1a1a1a));
}

/* Tour sidebar UI: same root-as-wizard-sidebar case as event */
.bs-single--tour .tour-booking.bs-single__booking-module.event-sidebar-module--narrow.bs-booking-wizard-sidebar {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* Rental compact sidebar: wrapper is the narrow card; inner step1 sidebar is not a second boxed column */
.bs-single--rental .rental-booking.bs-single__booking-module.event-sidebar-module--narrow.bs-booking-wizard-sidebar {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.bs-single--rental .rental-booking.bs-single__booking-module.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;
}

.bs-single--rental .rental-booking.bs-single__booking-module.event-sidebar-module--narrow .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main {
	flex: 1 1 auto;
	max-width: 100%;
	width: 100%;
}

.bs-single--rental .rental-booking.bs-single__booking-module.event-sidebar-module--narrow .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar {
	display: block;
	flex: 1 1 auto;
	width: 100%;
	max-width: 100%;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
}

.bs-single--tour .tour-booking.bs-single__booking-module.event-sidebar-module--narrow .guest-field label {
	color: var(--bs-text, var(--hb-text, #1a1a1a));
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar__heading,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar__heading,
.bs-single--event .event-booking.bs-single__booking-module .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);
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module:not(.event-sidebar-module--narrow) .bs-booking-wizard-sidebar__heading {
	font-size: var(--bk-rentals-wizard-label-font-size, 0.6875rem);
	letter-spacing: 0.04em;
	color: var(--bk-rentals-wizard-section-label-color, var(--bs-muted));
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__heading,
.bs-single--tour .tour-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__heading,
.bs-single--event .event-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__heading,
.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__heading {
	color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-muted)));
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.bs-single--event .event-booking.bs-single__booking-module .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);
}

.bs-single--rental .rental-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.bs-single--tour .tour-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.bs-single--event .event-booking.event-sidebar-module--narrow.bs-single__booking-module .bs-booking-wizard-sidebar__section + .bs-booking-wizard-sidebar__section,
.bs-single--hotel .hotel-booking.event-sidebar-module--narrow.bs-single__booking-module .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)));
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar__extras .bs-booking-wizard-sidebar__heading,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar__extras .bs-booking-wizard-sidebar__heading,
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar__extras .bs-booking-wizard-sidebar__heading {
	margin-bottom: 0.5rem;
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar__extras .extra-row.event-aligned-extra,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar__extras .extra-row.event-aligned-extra,
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar__extras .extra-row.event-aligned-extra {
	background: #fff;
	box-shadow: none;
	border: 1px solid var(--bs-border);
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions,
.bs-single--tour .tour-booking.bs-single__booking-module.bs-booking-wizard-sidebar .step-actions,
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions {
	margin-top: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions .booking-next-step,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions .booking-next-step,
.bs-single--tour .tour-booking.bs-single__booking-module.bs-booking-wizard-sidebar .step-actions .booking-next-step,
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions .booking-next-step,
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar .step-actions a.booking-next-step {
	width: 100%;
	margin: 0;
	display: block;
}

/* Service sidebar: a lone Next step fills the card as in the other sidebars (Back + Next keep their own row). */
.bs-single--service .service-booking.bs-single__booking-module.bs-booking-wizard-sidebar .step-actions:not(:has(.booking-prev-step)) {
	flex-direction: column;
	align-items: stretch;
}

.bs-single--service .service-booking.bs-single__booking-module.bs-booking-wizard-sidebar .step-actions:not(:has(.booking-prev-step)) .booking-next-step {
	width: 100%;
	margin: 0;
}

/*
 * Rental compact sidebar — Back + Next side by side, equally wide; Back uses Settings accent border only. The last
 * step (Back + Complete booking) follows the shared sidebar last-step rules (Back as wide as its word).
 */
.bs-single--rental
	.rental-booking.event-sidebar-module--narrow.bs-single__booking-module
	.step-actions:has(.booking-prev-step):not(:has(> .booking-submit)) {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: stretch !important;
	justify-content: center !important;
	gap: 0.5rem !important;
	width: 100% !important;
}

.bs-single--rental
	.rental-booking.event-sidebar-module--narrow.bs-single__booking-module
	.step-actions:has(.booking-prev-step):not(:has(> .bs-trip-payment-cta)):not(:has(> .booking-submit))
	:is(.booking-prev-step, .booking-next-step, .booking-submit, a.booking-next-step) {
	flex: 1 1 calc(50% - 0.25rem) !important;
	min-width: 0 !important;
	max-width: calc(50% - 0.25rem) !important;
	width: calc(50% - 0.25rem) !important;
	margin: 0 !important;
	order: unset !important;
	display: inline-flex !important;
}

/*
 * Compact sidebars (event, tour, rooms, rentals) keep Back / Next on one line; a row holding the payment method
 * list must wrap so the list and the chosen panel sit above the buttons (booking-steps.css).
 */
.bs-single--event
	.event-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-payment-methods),
.bs-single--tour
	.tour-booking--ui-sidebar.bs-single__booking-module
	.step-actions.event-sidebar-card__actions:has(.booking-prev-step):has(> .booking-payment-methods),
.bs-single--hotel
	.hotel-booking.event-sidebar-module--narrow.bs-single__booking-module
	.booking-step-content[data-step]
	.step-actions:has(> .booking-payment-methods),
.bs-single--rental
	.rental-booking.event-sidebar-module--narrow.bs-single__booking-module
	.step-actions:has(.booking-prev-step):has(> .booking-payment-methods) {
	flex-wrap: wrap !important;
}

/* The card is narrower than the list's 18rem minimum half: the list takes the card's width like the buttons. */
.bs-single
	:is(.event-booking--ui-sidebar, .tour-booking--ui-sidebar, .event-sidebar-module--narrow).bs-single__booking-module
	.step-actions
	> .booking-payment-methods {
	max-width: 100%;
}

@media (max-width: 782px) {
	.bs-single--rental .rental-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
	.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
	.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-step1-main,
	.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-step1-main,
	.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-step1-main {
		flex: 1 1 100%;
		max-width: none;
	}

	.bs-single--rental .rental-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
	.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
	.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--has-selection .bs-booking-wizard-sidebar,
	.bs-single--tour .tour-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-sidebar,
	.bs-single--event .event-booking.bs-single__booking-module .rental-tour-wizard-step1-layout--ticket-sidebar .bs-booking-wizard-sidebar {
		flex: 1 1 100%;
	}
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar .rental-booking-selection-status:not(:empty),
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar .event-booking-selection-name:not(:empty) {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--bs-text, #1a1a1a);
}

.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar .event-booking-selection-status:not(:empty) {
	margin-bottom: 0;
	padding: 0;
	background: transparent;
	border: none;
	border-left: none;
	box-shadow: none;
	color: var(--bs-text);
	line-height: 1.5;
}

.bs-single--rental .rental-booking.bs-single__booking-module .bs-booking-wizard-sidebar .rental-booking-selection-status.is-error,
.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-sidebar .tour-booking-selection-status.is-error,
.bs-single--tour .tour-booking.bs-single__booking-module.bs-booking-wizard-sidebar .tour-booking-selection-status.is-error,
.bs-single--event .event-booking.bs-single__booking-module .bs-booking-wizard-sidebar .event-booking-selection-status.is-error {
	padding: 0.65rem 0.75rem;
	background: rgba(220, 38, 38, 0.08);
	border: 1px solid rgba(220, 38, 38, 0.22);
	border-radius: var(--bs-radius-sm);
	color: var(--bs-text);
}






.bs-single--rental .rental-booking.bs-single__booking-module .rental-booking-selection-status {
	margin-top: 0;
	margin-bottom: 0;
	min-height: 0;
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-booking-selection-status:not(:empty) {
	margin-bottom: 1.75rem;
	padding: 1rem 1.15rem 1.05rem;
	background: var(--bs-accent-soft);
	border: 1px solid var(--bs-border);
	border-radius: var(--bs-radius-sm);
	border-left: 4px solid var(--bs-accent);
	color: var(--bs-text);
	line-height: 1.45;
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-booking-selection-status strong {
	color: var(--bs-accent);
	font-weight: 700;
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-booking-selection-status.is-error {
	background: rgba(220, 38, 38, 0.08);
	border-color: rgba(220, 38, 38, 0.22);
	border-left-color: #dc2626;
}

.bs-single--rental .rental-booking.bs-single__booking-module .rental-booking-selection-status.is-error strong {
	color: #b91c1c;
}



























.bs-single--rental .rental-booking.bs-single__booking-module .rental-wizard-guests {
	margin-top: 0;
}

/* Tour wizard step 1: same calendar / selection treatment as rental */
.bs-single--tour .tour-booking.bs-single__booking-module .tour-wizard-slot-hint {
	margin-bottom: 1rem;
	color: var(--bs-muted);
}

.bs-single--tour .tour-booking.bs-single__booking-module .bs-booking-wizard-step1-main .tour-wizard-calendar-wrap,
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-calendar-wrap {
	margin-bottom: 0;
}

/* Tour classic (calendar + wide steps): full-width calendar, selection below — no sidebar. */
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-layout--classic {
	margin-bottom: 1.25rem;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-below-calendar {
	margin-top: 1rem;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-subheading {
	margin: 1rem 0 0.65rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bs-muted);
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets.bs-wizard-sidebar-tickets--locked {
	display: none;
}

/* Tour classic step 1: ticket rows at half module width (same shell as sidebar/archive). */
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets {
	max-width: 50%;
	width: 100%;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets .ticket-row,
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets .tour-ticket-row {
	justify-content: flex-start;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin: 0.45rem 0;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets .ticket-row:first-child,
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets .tour-ticket-row:first-child {
	margin-top: 0;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets .ticket-row label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding-right: 0.2rem;
	font-size: 0.875rem;
	line-height: 1.2;
	text-align: left;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets .ticket-row .ticket-quantity {
	flex: 0 0 auto;
	margin: 0 0 0 auto;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-actions {
	margin-top: 1.25rem;
}

/* Tour classic combined step 2: tickets + extras with section headings. */
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras__tickets {
	max-width: 50%;
	width: 100%;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .bs-booking-wizard-section-heading:not(.bs-booking-wizard-section-heading--extras),
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-booking-step-tickets-extras__tickets-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;
	color: var(
		--bk-experiences-wizard-section-label-color,
		var(--bs-muted, #57534e)
	);
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .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;
	color: var(
		--bk-experiences-wizard-section-label-color,
		var(--bs-muted, #57534e)
	);
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras__tickets {
	padding-bottom: 0.75rem;
	box-sizing: border-box;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .description.booking-step-lead {
	margin: 0 0 0.85rem;
	color: var(--bk-experiences-wizard-lead-color, var(--bk-body-color, #666666));
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-wizard-step1-tickets .ticket-row,
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-wizard-step1-tickets .tour-ticket-row {
	justify-content: flex-start;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin: 0.45rem 0;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-wizard-step1-tickets .ticket-row:first-child,
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-wizard-step1-tickets .tour-ticket-row:first-child {
	margin-top: 0;
}

/* Tour classic step 2: layout on top of booking-steps.css unified extras grid/row shell. */
.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty {
	justify-content: flex-start;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
	flex: 0 0 1.75rem;
	width: 1.75rem;
	font-size: 1rem;
	margin-right: 0;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__main {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.875rem;
	line-height: 1.25;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__main label {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	line-height: 1.25;
	cursor: pointer;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty .extra-description {
	display: none;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__qty-wrap {
	flex: 0 0 auto;
	margin-left: auto;
	min-height: 0;
}

.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
	flex: 0 0 auto;
	margin: 0;
}

.bs-single--tour .tour-booking.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner, .event-sidebar-extras-step) .extra-row.extra-row--qty .extra-row__qty-wrap:has(.extra-quantity[data-input-type="checkbox"]) .extra-quantity-label {
	display: none;
}

/* Up to 782 px the tickets take the whole width, like event classic (half of it cut the names to a few words). The
   "Tickets & extras" step's own selectors are listed too, they are more specific than the plain ones. */
@media (max-width: 782px) {
	.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-wizard-step1-tickets,
	.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras__tickets,
	.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-wizard-step1-tickets,
	.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module .tour-booking-step-tickets-extras .tour-booking-step-tickets-extras__tickets {
		max-width: 100%;
	}
}

@media (max-width: 520px) {
	.bs-single--tour .tour-booking.tour-booking--ui-classic.bs-single__booking-module :is(#tour-booking-extras, .tour-booking-extras-step__inner) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Event classic (calendar + wide steps): same ticket/extras/summary shell as tour classic. */
.bs-single--event .event-booking.bs-single__booking-module .event-wizard-calendar-wrap,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-calendar-wrap {
	margin-bottom: 0;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-layout--classic {
	margin-bottom: 1.25rem;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-below-calendar {
	margin-top: 1rem;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-below-calendar .event-booking-selection-name:not(:empty) {
	margin: 0 0 0.35rem;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--bs-text, #1a1a1a);
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-below-calendar .event-booking-selection-status:not(:empty) {
	margin: 0 0 0.75rem;
	padding: 0;
	background: transparent;
	border: none;
	color: var(--bs-text, #1a1a1a);
	font-size: 0.95rem;
	line-height: 1.5;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-subheading {
	display: none;
	margin: 0 0 0.65rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bs-muted, #57534e);
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-below-calendar:has(.event-wizard-step1-tickets:not(.bs-wizard-sidebar-tickets--locked)) .event-wizard-step1-subheading {
	display: block;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets.bs-wizard-sidebar-tickets--locked {
	display: none;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets--solo {
	max-width: 50%;
	width: 100%;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .event-wizard-step1-tickets,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .event-wizard-step1-tickets--solo,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras__tickets {
	max-width: 50%;
	width: 100%;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .bs-booking-wizard-section-heading:not(.bs-booking-wizard-section-heading--extras),
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .event-booking-step-tickets-extras__tickets-heading {
	display: block;
	margin: 0 0 0.65rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(
		--bk-experiences-wizard-section-label-color,
		var(--bs-muted, #57534e)
	);
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .event-booking-step-tickets-extras__extras-heading {
	display: block;
	margin: 0 0 0.65rem;
	padding-top: 1.75rem;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(
		--bk-experiences-wizard-section-label-color,
		var(--bs-muted, #57534e)
	);
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras__tickets {
	padding-bottom: 0.75rem;
	box-sizing: border-box;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .description.booking-step-lead {
	margin: 0 0 0.85rem;
	color: var(--bk-experiences-wizard-lead-color, var(--bk-body-color, #666666));
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets .ticket-row,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets--solo .ticket-row,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module #booking-global-tickets .ticket-row {
	justify-content: flex-start;
	align-items: center;
	gap: 0.35rem 0.5rem;
	margin: 0.45rem 0;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets .ticket-row:first-child,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets--solo .ticket-row:first-child,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module #booking-global-tickets .ticket-row:first-child {
	margin-top: 0;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets .ticket-row label,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets--solo .ticket-row label,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module #booking-global-tickets .ticket-row label {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	padding-right: 0.2rem;
	font-size: 0.875rem;
	line-height: 1.2;
	text-align: left;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets .ticket-row .ticket-quantity,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets--solo .ticket-row .ticket-quantity,
.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module #booking-global-tickets .ticket-row .ticket-quantity {
	flex: 0 0 auto;
	margin: 0 0 0 auto;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-actions {
	margin-top: 1.25rem;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty {
	justify-content: flex-start;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__icon:not(.extra-row__icon--empty) {
	flex: 0 0 1.75rem;
	width: 1.75rem;
	font-size: 1rem;
	margin-right: 0;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__main {
	flex: 1 1 auto;
	min-width: 0;
	font-size: 0.875rem;
	line-height: 1.25;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__main label {
	display: block;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
	line-height: 1.25;
	cursor: pointer;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty .extra-description {
	display: none;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty .extra-row__qty-wrap {
	flex: 0 0 auto;
	margin-left: auto;
	min-height: 0;
}

.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) .extra-row.extra-row--qty .extra-quantity:not([data-input-type="checkbox"]) {
	flex: 0 0 auto;
	margin: 0;
}

.bs-single--event .event-booking.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner, .event-sidebar-extras-step) .extra-row.extra-row--qty .extra-row__qty-wrap:has(.extra-quantity[data-input-type="checkbox"]) .extra-quantity-label {
	display: none;
}

/* Up to 782 px the tickets take the whole width (half of it left 130 px on phones: the names cut to a word). The
   "Tickets & extras" step's own selectors are listed too, they are more specific than the plain ones. */
@media (max-width: 782px) {
	.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets,
	.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-wizard-step1-tickets--solo,
	.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras__tickets,
	.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .event-wizard-step1-tickets,
	.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module .event-booking-step-tickets-extras .event-wizard-step1-tickets--solo {
		max-width: 100%;
	}
}

@media (max-width: 520px) {

	.bs-single--event .event-booking.event-booking--ui-classic.bs-single__booking-module :is(#booking-global-extras, .event-booking-extras-step__inner) {
		grid-template-columns: minmax(0, 1fr);
	}
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status {
	margin-top: 0;
	margin-bottom: 0;
	min-height: 0;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status:not(:empty) {
	margin-top: 0.65rem;
	margin-bottom: 0;
	padding: 0;
	background: transparent;
	border: none;
	border-left: none;
	border-radius: 0;
	box-shadow: none;
	color: var(--bs-text);
	line-height: 1.45;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status strong {
	color: var(--bs-accent);
	font-weight: 700;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__lbl,
.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__selected-label {
	color: var(--bs-accent);
	font-weight: 600;
	margin-right: 0.15em;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__line1,
.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__line1 {
	margin: 0 0 0.35rem;
	font-size: 0.95rem;
	line-height: 1.45;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__title,
.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__title {
	display: block;
	margin-top: 0.2rem;
	color: var(--bs-text);
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__line2,
.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__line2 {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.45;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__line2 strong,
.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__datetime {
	color: var(--bs-text);
	font-weight: 700;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status.is-error {
	background: rgba(220, 38, 38, 0.08);
	border-color: rgba(220, 38, 38, 0.22);
	border-left-color: #dc2626;
}

.bs-single--tour .tour-booking.bs-single__booking-module .tour-booking-selection-status.is-error strong {
	color: #b91c1c;
}

/* Compact sidebar tour: departure date uses panel text (match event), not body/accent tokens. */
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status:not(:empty),
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status:not(:empty) {
	color: var(--bk-compact-sidebar-text-color, var(--bs-text, #1a1a1a));
}

.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status strong,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status strong,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__title,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-live__title,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__title,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-static__title,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__line2,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-live__line2,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__line2,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-static__line2,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__line2 strong,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-live__line2 strong,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__datetime,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-static__datetime {
	color: var(--bk-compact-sidebar-text-color, var(--bs-text, #1a1a1a));
}

.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-live__lbl,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-live__lbl,
.tour-booking.event-sidebar-module--narrow.bs-single__booking-module .tour-booking-selection-status .event-sidebar-departure-static__selected-label,
.tour-booking.event-sidebar-module--narrow .tour-booking-selection-status .event-sidebar-departure-static__selected-label {
	color: var(--bk-compact-sidebar-label-color, var(--bk-compact-sidebar-text-color, var(--bs-accent, #b89968)));
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .calendar-day.has-schedule:not(.today) {
	background: var(--bs-cal-schedule-bg, var(--bs-cal-item-soft, rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.1)));
}

/* Today: a light cell and the day number in a small "Today color" badge, so it does not look like a chosen date
   (same as the other booking calendars, public-event-calendar.css); its departures look like any other day's. */
.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .calendar-day.today {
	background: linear-gradient(rgba(var(--bs-cal-today-rgb, var(--bk-cal-today-rgb, 0, 122, 255)), 0.06), rgba(var(--bs-cal-today-rgb, var(--bk-cal-today-rgb, 0, 122, 255)), 0.06)), var(--bs-cal-bg, #fff);
	color: inherit;
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .calendar-day.today .calendar-day-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.65rem;
	min-height: 1.65rem;
	padding: 0 0.3rem;
	border-radius: 999px;
	box-sizing: border-box;
	background: var(--bs-cal-today-badge-bg, var(--bk-cal-today-badge-bg, #007aff));
	color: var(--bs-cal-today-badge-text, var(--bk-cal-today-badge-text, #fff)) !important;
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .bs-pec-event-link.bs-pec-event-link--tour {
	background: var(--bs-cal-item-bg, var(--bk-cal-item-bg, #007aff));
	color: var(--bs-cal-item-text, var(--bk-cal-item-text, #fff));
	border: none;
	box-shadow: none;
	transform: none;
	transition: background 0.15s ease, color 0.15s ease, filter 0.15s ease;
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .bs-pec-event-link.bs-pec-event-link--tour:hover {
	opacity: 1;
	transform: none;
	filter: none;
	background: var(--bs-cal-today-bg, var(--bk-cal-today-bg, #1976d2));
	color: var(--bs-cal-date-text, var(--bk-cal-date-text, #fff));
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .bs-pec-event-link.bs-pec-event-link--tour.is-selected-tour-slot {
	background: var(--bs-cal-item-selected);
	color: var(--bs-cal-item-selected-text);
	outline: none;
	border: none;
	box-shadow: none;
	transform: none;
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .bs-pec-event-link.bs-pec-event-link--tour.is-selected-tour-slot:hover {
	opacity: 1;
	filter: brightness(1.08);
	background: var(--bs-cal-item-selected);
	color: var(--bs-cal-item-selected-text);
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .calendar-day.is-selected-day:not(.today) {
	background: var(--bs-cal-item-soft-strong, rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.12));
	box-shadow: none;
}

.tour-booking.booking-steps-wrapper .tour-wizard-calendar-wrap .calendar-day.today.is-selected-day {
	box-shadow: none;
}


.bs-single--tour .tour-booking.bs-single__booking-module:not(.tour-booking--ui-classic) .tour-ticket-row {
	margin-bottom: 1rem;
}

.bs-single--tour .tour-booking.bs-single__booking-module:not(.tour-booking--ui-classic) .tour-ticket-row .ticket-quantity {
	margin-top: 0.35rem;
	max-width: 6rem;
}

/* Tour date grid: align calendar chrome with .bs-single--tour tokens */
.bs-single--tour .tour-booking-legacy :is(.calendar-month-nav--tour, .calendar-grid, .calendar-days, .calendar-header) {
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-body-font-size, inherit);
	color: var(--bk-body-color, inherit);
}






.bs-single--tour .tour-booking-legacy .calendar-day.selected {
	border-color: var(--bs-cal-item-bg, var(--bk-cal-item-bg, #007aff));
	box-shadow: 0 0 0 2px var(--bs-cal-item-bg, var(--bk-cal-item-bg, #007aff));
	background: var(--bs-cal-item-soft, rgba(var(--bk-cal-item-rgb, 0, 122, 255), 0.1));
}



.bs-single--tour .tour-booking-legacy .calendar-day.today {
	border-color: var(--bs-cal-today-bg, var(--bk-cal-today-bg, #007aff));
	box-shadow: 0 0 0 1px var(--bs-cal-today-bg, var(--bk-cal-today-bg, #007aff)) inset;
}

/*
 * Service booking: [book_service] embed (any page) or .bs-single--service single.
 * Same --hb-* mapping and chrome as hotel/tour/rental modules.
 */
.booking-service-embed {
	box-sizing: border-box;
	max-width: 36rem;
	margin-left: auto;
	margin-right: auto;
	padding: 1.25rem 1rem 2rem;
	--bs-radius: 12px;
	--bs-radius-sm: 8px;
	--bs-shadow: 0 4px 24px rgba(15, 23, 42, 0.08);
	--bs-shadow-soft: 0 2px 12px rgba(15, 23, 42, 0.06);
	--bs-text: var(--bk-body-color, #1c1917);
	--bs-muted: var(--bk-svc-progress-text, var(--bk-theme-muted, var(--bk-body-color, #57534e)));
	--bs-border: var(--bk-svc-shell-border, var(--bk-theme-border, rgba(28, 25, 23, 0.12)));
	--bs-surface: var(--bk-svc-shell-bg, #ffffff);
	--bs-page: var(--bk-svc-shell-bg, var(--bk-theme-panel, #fafaf9));
	--bs-accent: var(--bk-btn-accent, #3d5a80);
	--bs-accent-soft: var(--bk-svc-progress-bg, rgba(var(--bk-btn-accent-rgb, 61, 90, 128), 0.12));
	--bs-chip-bg: rgba(var(--bk-btn-accent-rgb, 61, 90, 128), 0.12);
	color: var(--bs-text);
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-body-font-size, 0.9375rem);
	line-height: 1.5;
}

/* Full catalog / accordion embed: modest max width (readable calendar without full-bleed) */
.booking-service-embed--catalog,
.booking-service-embed--accordion {
	max-width: min(56rem, 100%);
	margin-left: auto;
	margin-right: auto;
}

.bs-single .booking-service-embed {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
	padding: 0;
}

/* Service single: centered, narrower than full embed so sidebar layouts don’t feel stretched */



.booking-service-embed .service-booking.bs-single__booking-module.booking-steps-wrapper,
.bs-single--service .service-booking.bs-single__booking-module.booking-steps-wrapper {
	--hb-accent: var(--bs-accent);
	--hb-text: var(--bs-text);
	--hb-muted: var(--bs-muted);
	--hb-border: var(--bs-border);
	--hb-surface: var(--bs-surface);
	--hb-accent-soft: var(--bs-accent-soft);
	max-width: none;
	width: 100%;
	margin: 0;
	padding: calc(0.75rem + 10px) calc(0.85rem + 10px) calc(1rem + 10px);
	background: var(--bk-svc-shell-bg, var(--hb-surface, #ffffff));
	border: 1px solid var(--bk-svc-shell-border, var(--hb-border));
	border-radius: var(--bs-radius-sm);
	box-shadow: var(--bs-shadow-soft);
	font-family: var(--bk-body-font-family, inherit);
	font-size: var(--bk-body-font-size, 1rem);
	line-height: 1.5;
	color: var(--hb-text);
}

/* Small phones: the service booking takes more of the width (its cards were 248 of 390 px): no side padding on
   the embed around it and less inside the wizard. The page's own margin stays. */
@media (max-width: 480px) {
	.booking-service-embed {
		padding-left: 0;
		padding-right: 0;
	}

	.booking-service-embed .service-booking.bs-single__booking-module.booking-steps-wrapper,
	.bs-single--service .service-booking.bs-single__booking-module.booking-steps-wrapper {
		padding-left: 12px;
		padding-right: 12px;
	}
}

.bs-single--service .service-booking.bs-single__booking-module.booking-steps-wrapper {
	margin-top: 0;
	padding-top: calc(0.75rem + 10px);
	border-top: 1px solid var(--hb-border);
}

/* Tighter card shell vs global .booking-steps-wrapper (800px / 20px padding) */
.booking-service-embed .service-booking.booking-steps-wrapper,
.bs-single--service .service-booking.booking-steps-wrapper {
	max-width: 100%;
	margin: 0 auto;
	padding: calc(0.75rem + 10px) calc(0.85rem + 10px) calc(1rem + 10px);
	border-radius: var(--bs-radius-sm);
	box-shadow: var(--bs-shadow-soft);
	background: var(--bk-svc-shell-bg, var(--hb-surface, #ffffff));
	border: 1px solid var(--bk-svc-shell-border, var(--hb-border));
}

.booking-service-embed .service-booking .booking-step-content,
.bs-single--service .service-booking .booking-step-content {
	border-top: none;
	padding-top: 0.5rem;
}

/* Single service page → Classic: like the other modules' classic wizard — no card around it (the shortcode /
   archive keep their card), full width, steps above a panel (rooms: the same panel with its defaults). */
.bs-single--service .bs-single__body > .booking-service-embed {
	max-width: none;
	margin: 0;
}

.bs-single--service .service-booking.service-booking--single-classic.bs-single__booking-module.booking-steps-wrapper {
	max-width: none;
	margin: 0;
	padding: 0;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
}

/* Colors and sizes: Styling → Booking wizards → Full width wizards → Classic full width (shared with Rooms and
   Rentals), mapped onto the service wizard's own variables. Service, choice and time cards = packages; extras and
   staff = fields; section labels, summary and step panel = their Classic full width settings. */
.bs-single--service .service-booking.service-booking--single-classic {
	--bk-svc-option-bg: var(--bk-classic-full-width-package-bg);
	--bk-svc-option-border: var(--bk-classic-full-width-package-border-color);
	--bk-svc-option-text: var(--bk-classic-full-width-package-text-color);
	--bk-svc-option-selected-bg: var(--bk-classic-full-width-package-selected-bg);
	--bk-svc-option-selected-border: var(--bk-classic-full-width-package-selected-border-color);
	--bk-svc-option-selected-text: var(--bk-classic-full-width-package-selected-text-color);
	--bk-svc-slot-bg: var(--bk-classic-full-width-package-bg);
	--bk-svc-slot-text: var(--bk-classic-full-width-package-text-color);
	--bk-svc-slot-selected-bg: var(--bk-classic-full-width-package-selected-bg);
	--bk-svc-slot-selected-border: var(--bk-classic-full-width-package-selected-border-color);
	--bk-svc-slot-selected-text: var(--bk-classic-full-width-package-selected-text-color);
	--bk-svc-cal-day-bg: var(--bk-classic-full-width-field-bg);
	--bk-svc-cal-day-head-text: var(--bk-classic-full-width-section-label-color);
	--bk-svc-field-bg: var(--bk-classic-full-width-field-bg);
	--bk-svc-field-border: var(--bk-classic-full-width-field-border-color);
	--bk-svc-summary-label: var(--bk-classic-full-width-section-label-color);
	--bk-svc-summary-bg: var(--bk-classic-full-width-summary-bg);
	--bk-svc-summary-text: var(--bk-classic-full-width-summary-text-color);
	--bk-popup-summary-border-color: var(--bk-classic-full-width-summary-border-color);
	--bk-popup-summary-divider: var(--bk-classic-full-width-summary-border-color);
	--bk-popup-summary-border-width: var(--bk-classic-full-width-summary-border-width);
	--bk-popup-summary-border-radius: var(--bk-classic-full-width-summary-border-radius);
	--bk-popup-summary-dividers: var(--bk-classic-full-width-summary-dividers);
	--bk-service-extra-icon-color: var(--bk-classic-full-width-extra-icon-color);
	--bk-service-choice-option-icon-color: var(--bk-classic-full-width-extra-icon-color);
	--bk-svc-option-price-text: var(--bk-classic-full-width-package-text-color);
	--bk-svc-option-selected-price-text: var(--bk-classic-full-width-package-selected-text-color);
	--bk-svc-option-price-bg: transparent;
	--bk-svc-extra-price-text: var(--bk-classic-full-width-field-text);
	--bk-svc-extra-selected-price-text: var(--bk-classic-full-width-field-text);
	--bk-svc-shell-border: var(--bk-classic-full-width-field-border-color);
	--bk-svc-wizard-label-font-size: var(--bk-classic-full-width-label-font-size);
	--bk-svc-wizard-body-font-size: var(--bk-classic-full-width-body-font-size);
}

.bs-single--service .service-booking.service-booking--single-classic .extra-option {
	--bk-svc-option-bg: var(--bk-classic-full-width-field-bg);
	--bk-svc-option-border: var(--bk-classic-full-width-field-border-color);
	--bk-svc-option-text: var(--bk-classic-full-width-field-text);
	--bk-svc-option-selected-bg: var(--bk-classic-full-width-field-bg);
	--bk-svc-option-selected-text: var(--bk-classic-full-width-field-text);
}

.bs-single--service .service-booking.service-booking--single-classic .booking-wizard-pay-on-site-notice {
	color: var(--bk-classic-full-width-summary-pay-on-site-color);
}

.bs-single--service .service-booking.service-booking--single-classic > .booking-step-content {
	margin-top: 12px;
	padding: 40px;
	background-color: var(--bk-classic-full-width-step-panel-bg, var(--bk-theme-panel, #f0f4fa));
	border: var(--bk-classic-full-width-step-panel-border-width, 0) solid var(--bk-classic-full-width-step-panel-border-color, transparent);
	border-radius: var(--bk-classic-full-width-step-panel-border-radius, 8px);
	box-sizing: border-box;
}

@media (max-width: 782px) {
	.bs-single--service .service-booking.service-booking--single-classic > .booking-step-content {
		padding: 20px 16px;
	}
}

.booking-service-embed .service-booking .booking-step-content h3,
.bs-single--service .service-booking .booking-step-content h3 {
	color: var(--bk-heading-color, var(--hb-text));
	font-family: var(--bk-heading-font-family, inherit);
	font-size: var(--bk-heading-font-size, 1rem);
	font-weight: 700;
	margin: 0 0 0.5rem;
}

/* Field labels; "Choose day and time" looks the same as "Staff" above it. */
.booking-service-embed .service-booking .form-group label,
.booking-service-embed .service-booking .details-form label,
.bs-single--service .service-booking .form-group label,
.bs-single--service .service-booking .details-form label,
.booking-service-embed .service-booking .service-time-slots-label,
.bs-single--service .service-booking .service-time-slots-label {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--hb-muted);
	margin-bottom: 0.35rem;
	display: block;
}

/* Text fields only: a radio or checkbox (booking form questions, .bookklar-cf-options) at 100 % became a wide oval. */
.booking-service-embed .service-booking .form-group input:not([type="radio"]):not([type="checkbox"]),
.booking-service-embed .service-booking .form-group textarea,
.booking-service-embed .service-booking .form-group select:not(.bs-frontend-select__native),
.bs-single--service .service-booking .form-group input:not([type="radio"]):not([type="checkbox"]),
.bs-single--service .service-booking .form-group textarea,
.bs-single--service .service-booking .form-group select:not(.bs-frontend-select__native) {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.booking-service-embed .service-booking .form-group input:focus,
.booking-service-embed .service-booking .form-group textarea:focus,
.booking-service-embed .service-booking .form-group select:not(.bs-frontend-select__native):focus,
.bs-single--service .service-booking .form-group input:focus,
.bs-single--service .service-booking .form-group textarea:focus,
.bs-single--service .service-booking .form-group select:not(.bs-frontend-select__native):focus {
	outline: none;
}

.booking-service-embed .service-booking .service-booking-no-extras,
.bs-single--service .service-booking .service-booking-no-extras {
	margin: 0;
	font-size: 0.85rem;
	color: var(--hb-muted);
}

/* Card chrome lives on .extra-option label (booking-steps.css); avoid double box on wrapper */
.booking-service-embed .service-booking .extra-option,
.bs-single--service .service-booking .extra-option {
	border: none;
	border-radius: 0;
	background: transparent;
	padding: 0;
	margin: 0;
}

.booking-service-embed .service-booking .extra-name,
.bs-single--service .service-booking .extra-name {
	color: var(--bk-svc-option-text, var(--hb-text));
	font-weight: 600;
	display: block;
	font-size: var(--bk-svc-wizard-field-font-size, inherit);
}

.booking-service-embed .service-booking .extra-description,
.bs-single--service .service-booking .extra-description {
	color: var(--hb-muted);
	font-size: var(--bk-svc-wizard-body-font-size, 0.8rem);
}

.booking-service-embed .service-booking .extra-price,
.bs-single--service .service-booking .extra-price {
	color: var(--bk-svc-extra-price-text, var(--bk-svc-option-price-text, var(--hb-accent)));
	font-weight: 600;
}

.booking-service-embed .service-booking .extra-option.is-selected label .extra-price,
.booking-service-embed .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-price,
.bs-single--service .service-booking .extra-option.is-selected label .extra-price,
.bs-single--service .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(--hb-accent)));
}

/* Service summary: service-wizard-summary.css (Book popup summary tokens). */

.booking-service-embed .service-booking .booking-next-step,
.booking-service-embed .service-booking a.booking-next-step,
.booking-service-embed .service-booking .booking-submit,
.bs-single--service .service-booking .booking-next-step,
.bs-single--service .service-booking a.booking-next-step,
.bs-single--service .service-booking .booking-submit {
	margin: 0.25rem 0.35rem 0.25rem 0;
	display: inline-flex;
}

.booking-service-embed .service-booking .booking-prev-step,
.booking-service-embed .service-booking .step-actions button.booking-prev-step,
.bs-single--service .service-booking .booking-prev-step,
.bs-single--service .service-booking .step-actions button.booking-prev-step {
	margin: 0.25rem 0.35rem 0.25rem 0;
	display: inline-flex;
}

.booking-service-embed .service-booking .booking-prev-step:hover,
.booking-service-embed .service-booking .booking-prev-step:focus-visible,
.booking-service-embed .service-booking .step-actions button.booking-prev-step:hover,
.booking-service-embed .service-booking .step-actions button.booking-prev-step:focus-visible,
.bs-single--service .service-booking .booking-prev-step:hover,
.bs-single--service .service-booking .booking-prev-step:focus-visible,
.bs-single--service .service-booking .step-actions button.booking-prev-step:hover,
.bs-single--service .service-booking .step-actions button.booking-prev-step:focus-visible {
	opacity: 1;
}

.booking-service-embed .service-booking .booking-next-step:hover,
.booking-service-embed .service-booking a.booking-next-step:hover,
.booking-service-embed .service-booking .booking-submit:hover,
.bs-single--service .service-booking .booking-next-step:hover,
.bs-single--service .service-booking a.booking-next-step:hover,
.bs-single--service .service-booking .booking-submit:hover {
	opacity: 1;
}

.booking-service-embed .service-booking .step-actions,
.bs-single--service .service-booking .step-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	/* Centered like the event / tour / rooms / rentals button rows. */
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1rem;
}

.booking-service-embed .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),
.bs-single--service .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) {
	color: var(--bk-svc-summary-label, var(--hb-muted));
	font-weight: 700;
	text-align: left;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 0.75rem;
	font-size: var(--bk-svc-wizard-label-font-size, 0.72rem);
}

.booking-service-embed .service-booking .service-selection,
.booking-service-embed .service-booking .extras-selection,
.bs-single--service .service-booking .service-selection,
.bs-single--service .service-booking .extras-selection {
	margin-bottom: 1rem;
}

.booking-service-embed .service-booking .service-options,
.bs-single--service .service-booking .service-options {
	grid-template-columns: repeat(auto-fill, minmax(max(11rem, calc((100% - 3rem) / 4)), 1fr)); /* at most four, fewer when narrow (booking-steps.css) */
	gap: 1rem;
	margin-bottom: 1.25rem;
}

@media (max-width: 768px) {
	.booking-service-embed .service-booking .service-options,
	.bs-single--service .service-booking .service-options {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.625rem;
	}
}

@media (max-width: 480px) {
	.booking-service-embed .service-booking .service-options,
	.bs-single--service .service-booking .service-options {
		grid-template-columns: 1fr;
	}
}

.booking-service-embed .service-booking .service-option label,
.bs-single--service .service-booking .service-option label {
	border-width: 1px;
	border-color: var(--bk-svc-option-border, var(--hb-border));
	border-radius: var(--bs-radius-sm);
	background: var(--bk-svc-option-bg, var(--hb-surface));
	color: var(--bk-svc-option-text, var(--hb-text));
	/* Was min-height:0 + 0.55rem/0.45rem padding, which with a bumped-up 1rem .service-label (below)
	   still left the card only ~57px tall — noticeably squatter than the other choice cards in the wizard
	   (service-choice-option/extra-option are ~90-120px). 5rem gives it comparable presence without approaching the
	   much taller, image-carrying variant these labels also support (min-height:200px in booking-steps.css,
	   used outside this embed context). */
	min-height: 7.5rem;
	padding: 0.85rem 0.6rem;
	justify-content: center;
	gap: 0.35rem;
	transform: none;
	box-shadow: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.booking-service-embed .service-booking .service-option label:hover,
.bs-single--service .service-booking .service-option label:hover {
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	box-shadow: var(--bs-shadow-soft);
	transform: none;
}

.booking-service-embed .service-booking .service-option input[type="radio"]:checked + label,
.bs-single--service .service-booking .service-option input[type="radio"]:checked + label {
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	background: var(--bk-svc-option-selected-bg, var(--hb-surface));
	color: var(--bk-svc-option-selected-text, var(--bk-svc-option-text, var(--hb-text)));
	box-shadow: 0 0 0 1px var(--bk-svc-option-selected-border, var(--hb-accent));
	transform: none;
}

.booking-service-embed .service-booking .service-option input[type="radio"]:checked + label .service-label,
.booking-service-embed .service-booking .service-option input[type="radio"]:checked + label .service-description,
.bs-single--service .service-booking .service-option input[type="radio"]:checked + label .service-label,
.bs-single--service .service-booking .service-option input[type="radio"]:checked + label .service-description {
	color: inherit;
}

.booking-service-embed .service-booking .service-option input[type="radio"]:checked + label .service-price,
.bs-single--service .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(--hb-accent)));
	background: var(--bk-svc-option-price-bg, rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.1));
}

.booking-service-embed .service-booking .service-label,
.bs-single--service .service-booking .service-label {
	font-size: var(--bk-svc-wizard-field-font-size, var(--bk-ui-field-font-size));
	margin-bottom: 0.25rem;
	color: var(--bk-svc-option-text, var(--hb-text));
}

.booking-service-embed .service-booking .service-option img,
.bs-single--service .service-booking .service-option img {
	width: 2.75rem;
	height: 2.75rem;
	margin-bottom: 0.35rem;
	border-width: 2px;
}

.booking-service-embed .service-booking .service-description,
.bs-single--service .service-booking .service-description {
	font-size: var(--bk-svc-wizard-body-font-size, 0.72rem);
	line-height: 1.35;
	margin-bottom: 0.35rem;
}

.booking-service-embed .service-booking .service-price,
.bs-single--service .service-booking .service-price {
	font-size: var(--bk-svc-wizard-field-font-size, 0.85rem);
	padding: 0.2rem 0.45rem;
	border-radius: var(--bs-radius-sm);
	color: var(--bk-svc-option-price-text, var(--hb-accent));
	background: var(--bk-svc-option-price-bg, rgba(var(--bk-btn-accent-rgb, 33, 150, 243), 0.1));
}

/*.booking-service-embed .service-booking .service-choices-form,
.booking-service-embed .service-booking .service-choice-selection,
.bs-single--service .service-booking .service-choices-form,
.bs-single--service .service-booking .service-choice-selection {
	margin-bottom: 0.85rem;
}*/

.booking-service-embed .service-booking .service-choice-options,
.bs-single--service .service-booking .service-choice-options {
	grid-template-columns: repeat(4, 1fr);
	gap: 1rem;
	margin-bottom: 1.25rem;
}

@media (max-width: 768px) {
	.booking-service-embed .service-booking .service-choice-options,
	.bs-single--service .service-booking .service-choice-options {
		grid-template-columns: repeat(2, 1fr);
		gap: 0.625rem;
	}
}

@media (max-width: 480px) {
	.booking-service-embed .service-booking .service-choice-options,
	.bs-single--service .service-booking .service-choice-options {
		grid-template-columns: 1fr;
	}
}

.booking-service-embed .service-booking .service-choice-option label,
.booking-service-embed .service-booking .extra-option label,
.bs-single--service .service-booking .service-choice-option label,
.bs-single--service .service-booking .extra-option label {
	border-width: 1px;
	border-color: var(--bk-svc-option-border, var(--hb-border));
	border-radius: var(--bs-radius-sm);
	background: var(--bk-svc-option-bg, var(--hb-surface));
	color: var(--bk-svc-option-text, var(--hb-text));
	align-items: center;
	justify-content: center;
	gap: 6px;
	text-align: center;
	min-height: 120px;
	height: 100%;
	padding: 16px 12px;
	transform: none;
	box-shadow: none;
}

.booking-service-embed .service-booking .service-choice-option label:hover,
.booking-service-embed .service-booking .extra-option label:hover,
.bs-single--service .service-booking .service-choice-option label:hover,
.bs-single--service .service-booking .extra-option label:hover {
	transform: none;
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	background: var(--bk-svc-option-bg, var(--hb-surface));
	box-shadow: none;
}

.booking-service-embed .service-booking .service-choice-option input[type="radio"]:checked + label,
.bs-single--service .service-booking .service-choice-option input[type="radio"]:checked + label {
	transform: none;
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	background: var(--bk-svc-option-selected-bg, var(--hb-surface));
	color: var(--bk-svc-option-selected-text, var(--bk-svc-option-text, var(--hb-text)));
	box-shadow: 0 0 0 1px var(--bk-svc-option-selected-border, var(--hb-accent));
}

.booking-service-embed .service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-option__icon,
.booking-service-embed .service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-option__icon i,
.bs-single--service .service-booking .service-choice-option input[type="radio"]:checked + label .service-choice-option__icon,
.bs-single--service .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;
}

.booking-service-embed .service-booking .service-choice-option img,
.bs-single--service .service-booking .service-choice-option img {
	width: 2.25rem;
	height: 2.25rem;
	margin-bottom: 0.25rem;
}

.booking-service-embed .service-booking .service-choice-option__icon,
.bs-single--service .service-booking .service-choice-option__icon {
	font-size: 1.35rem;
	line-height: 1;
	margin-bottom: 0.35rem;
	color: var(--bk-service-choice-option-icon-color, var(--bk-service-extra-icon-color, var(--bk-btn-accent, #333333)));
}

.booking-service-embed .service-booking .service-choice-option__icon i,
.bs-single--service .service-booking .service-choice-option__icon i {
	display: block;
	color: inherit;
}

.booking-service-embed .service-booking .extra-option__icon,
.bs-single--service .service-booking .extra-option__icon {
	font-size: 1.35rem;
	line-height: 1;
	margin-bottom: 0.35rem;
	color: var(--bk-service-extra-icon-color, var(--bk-btn-accent, #333333));
}

.booking-service-embed .service-booking .extra-option__icon i,
.bs-single--service .service-booking .extra-option__icon i {
	display: block;
	color: inherit;
}

.booking-service-embed .service-booking .extra-name,
.bs-single--service .service-booking .extra-name {
	color: var(--bk-svc-option-text, var(--hb-text));
}

.booking-service-embed .service-booking .extra-option.is-selected label,
.booking-service-embed .service-booking .extra-option input[type="checkbox"]:focus-visible + label,
.bs-single--service .service-booking .extra-option.is-selected label,
.bs-single--service .service-booking .extra-option input[type="checkbox"]:focus-visible + label {
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	background: var(--bk-svc-option-selected-bg, var(--hb-surface));
	color: var(--bk-svc-option-selected-text, var(--bk-svc-option-text, var(--hb-text)));
	box-shadow: 0 0 0 1px var(--bk-svc-option-selected-border, var(--hb-accent));
}

.booking-service-embed .service-booking .extra-option.is-selected label .extra-name,
.booking-service-embed .service-booking .extra-option.is-selected label .extra-description,
.booking-service-embed .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-name,
.booking-service-embed .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-description,
.bs-single--service .service-booking .extra-option.is-selected label .extra-name,
.bs-single--service .service-booking .extra-option.is-selected label .extra-description,
.bs-single--service .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-name,
.bs-single--service .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-description {
	color: inherit;
}

.booking-service-embed .service-booking .extra-option.is-selected label .extra-option__icon,
.booking-service-embed .service-booking .extra-option.is-selected label .extra-option__icon i,
.booking-service-embed .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-option__icon,
.booking-service-embed .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-option__icon i,
.bs-single--service .service-booking .extra-option.is-selected label .extra-option__icon,
.bs-single--service .service-booking .extra-option.is-selected label .extra-option__icon i,
.bs-single--service .service-booking .extra-option input[type="checkbox"]:focus-visible + label .extra-option__icon,
.bs-single--service .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;
}

.booking-service-embed .service-booking .service-choice-label,
.bs-single--service .service-booking .service-choice-label {
	font-size: var(--bk-svc-wizard-field-font-size, var(--bk-ui-field-font-size));
	font-weight: 600;
	display: block;
	color: var(--bk-svc-option-text, var(--hb-text));
}

.booking-service-embed .service-booking .service-choice-description,
.bs-single--service .service-booking .service-choice-description {
	font-size: var(--bk-svc-wizard-body-font-size, 0.9rem);
}

.booking-service-embed .service-booking .details-form,
.bs-single--service .service-booking .details-form {
	gap: 0.65rem;
	margin-bottom: 0.75rem;
}

.booking-service-embed .service-booking .form-row,
.bs-single--service .service-booking .form-row {
	gap: 0.65rem;
	margin-bottom: 0.5rem;
}


.booking-service-embed .service-booking .service-week-range-label,
.bs-single--service .service-booking .service-week-range-label {
	font-size: 0.88rem;
	color: var(--hb-text);
}

.booking-service-embed .service-booking .service-week-day,
.bs-single--service .service-booking .service-week-day {
	background: var(--bk-svc-cal-day-bg, var(--hb-surface));
	border-color: var(--bk-svc-shell-border, var(--hb-border));
	min-height: 6.25rem;
}

/* Without this, the plain .service-week-day--target rule (booking-steps.css) loses its border-color to the
   more specific override just above — same trap as elsewhere in this file (see service-choice-option/extra-option
   notes below): any property this file re-declares for a base class wins over booking-steps.css regardless
   of what other classes are also present on the element. */
.booking-service-embed .service-booking .service-week-day--target,
.bs-single--service .service-booking .service-week-day--target {
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	box-shadow: 0 0 0 2px var(--hb-accent-soft, rgba(var(--bk-btn-accent-rgb, 0, 122, 255), 0.25));
}

.booking-service-embed .service-booking .service-week-day__head,
.bs-single--service .service-booking .service-week-day__head {
	color: var(--bk-svc-cal-day-head-text, var(--hb-muted));
}

.booking-service-embed .service-booking .service-week-slot-btn,
.bs-single--service .service-booking .service-week-slot-btn {
	border-color: var(--bk-svc-option-border, var(--hb-border));
	background: var(--bk-svc-slot-bg, var(--hb-surface));
	font-size: min(var(--bk-svc-wizard-body-font-size, 0.8125rem), 0.8125rem);
	line-height: 1.2;
	white-space: normal; /* Wraps after the dash on narrow days instead of cutting the end time. */
	color: var(--bk-svc-slot-text, var(--bk-body-color, var(--hb-text, var(--bk-heading-color, #1c1917))));
}

.booking-service-embed .service-booking .service-week-slot-btn:hover,
.bs-single--service .service-booking .service-week-slot-btn:hover {
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	background: var(--bk-svc-option-selected-bg, var(--bk-theme-panel, var(--hb-accent-soft)));
	color: var(--bk-svc-slot-text, var(--bk-body-color, var(--hb-text, var(--bk-heading-color, #1c1917))));
}

.booking-service-embed .service-booking .service-week-slot-btn.is-selected,
.bs-single--service .service-booking .service-week-slot-btn.is-selected,
.booking-service-embed .service-booking .service-time-slot-btn.is-selected,
.bs-single--service .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(--hb-accent)));
	background: var(--bk-svc-slot-selected-bg, var(--bk-svc-option-selected-bg, var(--hb-accent-soft)));
	color: var(--bk-svc-slot-selected-text, var(--bk-svc-slot-text, var(--bk-body-color, var(--hb-text, var(--bk-heading-color, #1c1917))))) !important;
	box-shadow: none;
}

.booking-service-embed .service-booking .service-time-slot-btn,
.bs-single--service .service-booking .service-time-slot-btn {
	border-color: var(--bk-svc-option-border, var(--hb-border));
	background: var(--bk-svc-slot-bg, var(--hb-surface));
	font-size: var(--bk-svc-wizard-body-font-size, 0.85rem);
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	color: var(--bk-svc-slot-text, var(--hb-text));
}

.booking-service-embed .service-booking .service-time-slot-btn:hover,
.bs-single--service .service-booking .service-time-slot-btn:hover {
	border-color: var(--bk-svc-option-selected-border, var(--hb-accent));
	background: var(--bk-svc-option-selected-bg, var(--bk-theme-panel, var(--hb-accent-soft)));
	color: var(--bk-svc-slot-text, var(--hb-text));
}


.booking-service-embed .service-booking .service-slots-empty,
.bs-single--service .service-booking .service-slots-empty {
	border-color: var(--hb-border);
	background: var(--hb-surface);
	border-radius: var(--bs-radius-sm);
	color: var(--hb-muted);
	padding: 1.1rem 1rem;
}

.booking-service-embed .service-booking .service-week-goto-next-available,
.bs-single--service .service-booking .service-week-goto-next-available {
	border-radius: var(--bs-radius-sm);
	font-size: 0.8rem;
	padding: 0.5rem 1rem;
}

.booking-service-embed .service-booking .spinner,
.bs-single--service .service-booking .spinner {
	border-color: rgba(255, 255, 255, 0.35);
	border-top-color: #fff;
}






















.bs-single__rsvp-badge {
	display: inline-block;
	margin-left: 0.5rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	background: rgba(0, 0, 0, 0.08);
}





/* Rental attributes (single template): booking-steps.css may not load on singular rental_item. */
/* The "Attributes" heading is a section title like "Highlights" above it (h2.bs-single__section-title, same
   Styling); the chips use the design standard's highlight chip size, padding, radius and weight (as large as the
   highlights beside them) and the light colors of
   Styling → Rentals → attribute chips (they were 12 px, grey on near-white, fixed colors). */
.bs-single__rental-attributes {
	margin-top: 1rem;
}

.bs-single__intro-below-image .bs-single__rental-attributes {
	margin-top: 0;
	padding-top: 16px;
}

.bs-single--rental .rental-catalog-row__attributes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 0.6rem;
	min-width: 0;
	max-width: 100%;
}

.bs-single--rental .rental-catalog-row__attr {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	max-width: 100%;
	min-width: 0;
	padding: var(--bk-ui-chip-highlight-padding-y) var(--bk-ui-chip-highlight-padding-x);
	border-radius: var(--bk-ui-chip-highlight-radius);
	background: var(--bk-rentals-catalog-attr-bg, rgba(0, 0, 0, 0.04));
	color: var(--bk-rentals-catalog-attr-text-color, var(--bs-text, #1d2327));
	font-size: var(--bk-ui-chip-highlight-font-size);
	font-weight: var(--bk-ui-chip-highlight-font-weight);
	line-height: 1.3;
}

.bs-single--rental .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;
}

.bs-single--rental .rental-catalog-row__attr-dim {
	font-weight: 600;
	color: inherit;
}

.bs-single--rental .rental-catalog-row__attr-sep {
	color: var(--bs-muted, #646970);
	font-weight: 400;
}

.bs-single--rental .rental-catalog-row__attr-val {
	color: var(--bs-muted, #50575e);
	font-size: inherit;
}

.bs-single--rental .rental-catalog-row__attr-icon {
	display: inline-block;
	flex-shrink: 0;
	font-size: 1.1em;
	line-height: 1;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	color: var(--bk-rentals-catalog-attr-icon-color, var(--bs-accent, #2271b1));
}

.bs-single--rental .rental-catalog-row__attr-icon::before {
	line-height: 1;
}

.bs-single--rental .rental-catalog-row__attr-icon.fa-solid,
.bs-single--rental .rental-catalog-row__attr-icon.fas {
	font-family: "Font Awesome 6 Free" !important;
	font-weight: 900 !important;
}

.bs-single--rental .rental-catalog-row__attr-icon.fa-regular {
	font-family: "Font Awesome 6 Free" !important;
	font-weight: 400 !important;
}

.bs-single--rental .rental-catalog-row__attr-icon.fa-brands {
	font-family: "Font Awesome 6 Brands" !important;
	font-weight: 400 !important;
}

.bs-single--rental .rental-catalog-row__attr-icon.dashicons {
	font-family: dashicons !important;
	font-size: 1.05rem;
	width: 1.1em;
	height: 1.1em;
	line-height: 1;
}

.bs-single--rental .rental-catalog-row__attr-icon.bi,
.bs-single--rental .rental-catalog-row__attr-icon.ti {
	font-size: 1rem;
	line-height: 1;
}

/* Location map (OpenStreetMap or Google Maps): after the booking form, or last in the content column beside it. */
/* Beats .bs-single__section:first-of-type (the map is often the only section where it sits). */
.bs-single .bs-single__section.bs-single__section--location-map {
	margin-top: 3rem;
}

.bs-single__section--location-map .bs-single__location-map-title {
	margin-top: 0;
}

.bs-single__location-map-canvas {
	width: 100%;
	min-height: 280px;
	height: 300px;
	border-radius: var(--bs-meta-card-border-radius, 8px);
	border: 1px solid var(--bs-meta-card-border-color, #d1d5db);
	background: #f3f4f6;
	overflow: hidden;
}

/* "Get directions" under the map, "Show on map" in the location box (location-maps-functions.php). */
.bs-single__location-map-links {
	margin: 0.65rem 0 0;
	font-size: 0.95rem;
	line-height: 1.5;
}

:is(.bs-single__location-map-links a, .bs-single__location-map-link) {
	color: var(--bk-btn-accent, var(--bs-accent, inherit));
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.bs-single__location-map-link {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.9em;
}

/*
 * Details panel (event, tour, rental, room singles): the date & time, place, capacity, organizer and speaker cards become rows of
 * one panel — icon + label on the left, value on the right — so any number of them looks tidy instead of wrapping
 * into a second row of cards. Colors, border and fonts come from Styling → Single post → Meta cards.
 */
:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid.bs-single__meta-grid--unified.bs-single__meta-grid--details {
	display: grid;
	--bs-meta-details-icon-size: 1rem;
	/* Rows share the label column (subgrid): as wide as the longest label. */
	grid-template-columns: max-content minmax(0, 1fr);
	container-type: inline-size;
	column-gap: 1.25rem;
	gap: 0 1.25rem;
	width: 100%;
	padding: 0.15rem 1.1rem;
	background: var(--bk-meta-card-bg, var(--bs-accent-soft));
	border: var(--bk-meta-card-border-width, 1px) solid var(--bk-meta-card-border-color, var(--bs-border));
	border-radius: var(--bk-meta-card-border-radius, var(--bs-radius-sm));
	box-sizing: border-box;
}

:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid.bs-single__meta-grid--unified.bs-single__meta-grid--details > .bs-single__meta-card {
	display: grid;
	grid-column: 1 / -1;
	grid-template-columns: subgrid;
	row-gap: 0.4rem;
	align-items: baseline;
	flex: none;
	width: 100%;
	max-width: none;
	min-height: 0;
	margin: 0;
	padding: 0.85rem 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid.bs-single__meta-grid--unified.bs-single__meta-grid--details > .bs-single__meta-card ~ .bs-single__meta-card {
	border-top: 1px solid var(--bk-meta-card-border-color, var(--bs-border));
}

:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid--details > .bs-single__meta-card > .bs-single__meta-label {
	grid-column: 1;
	position: relative;
	display: block;
	padding-left: calc(var(--bs-meta-details-icon-size) + 0.55rem);
	white-space: nowrap;
	margin: 0;
}

:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid--details > .bs-single__meta-card > :not(.bs-single__meta-label) {
	grid-column: 2;
	min-width: 0;
	margin: 0;
}

/* Icon before each row's label (Start / End in one row: the End label keeps the space, without an icon). */
.bs-single__meta-grid--details > .bs-single__meta-card > .bs-single__meta-label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: var(--bs-meta-details-icon-size);
	height: var(--bs-meta-details-icon-size);
	background-color: var(--bk-btn-accent, var(--bs-accent));
	-webkit-mask: var(--bs-meta-details-icon) center / contain no-repeat;
	mask: var(--bs-meta-details-icon) center / contain no-repeat;
}

.bs-single__meta-grid--details > .bs-single__meta-card > .bs-single__meta-label ~ .bs-single__meta-label::before {
	visibility: hidden;
}

.bs-single__meta-grid--details > .bs-single__meta-card {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 8v.01M12 11v5'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > :is(.bs-single__meta-card--event-time-range, .bs-single__meta-card--tour-time-range) {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--location {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--capacity {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0M16 4.5a3.5 3.5 0 0 1 0 7M18 14.5a5 5 0 0 1 3.5 5.5'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--checkin {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4M10 17l5-5-5-5M15 12H3'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--duration {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--price {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8z'/%3E%3Ccircle cx='7.5' cy='7.5' r='1.5'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--tour-meeting-point {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 22V4M5 4h12l-2.5 4L17 12H5'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--person[data-bs-person-role="organizer"] {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='7' width='18' height='13' rx='2'/%3E%3Cpath d='M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18'/%3E%3C/svg%3E");
}

.bs-single__meta-grid--details > .bs-single__meta-card--person[data-bs-person-role="speaker"] {
	--bs-meta-details-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='2' width='6' height='12' rx='3'/%3E%3Cpath d='M5 11a7 7 0 0 0 14 0M12 18v4M8 22h8'/%3E%3C/svg%3E");
}

/* A narrow panel (phones, the rental column beside the booking on tablets): label above its value. */
@container (max-width: 26rem) {
	:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid.bs-single__meta-grid--unified.bs-single__meta-grid--details > .bs-single__meta-card {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 0.25rem;
	}

	:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid--details > .bs-single__meta-card > .bs-single__meta-label {
		white-space: normal;
	}

	:is(.bs-single--event, .bs-single--tour, .bs-single--rental, .bs-single--service, .bs-single--hotel) .bs-single__meta-grid--details > .bs-single__meta-card > :not(.bs-single__meta-label) {
		grid-column: 1;
		padding-left: calc(var(--bs-meta-details-icon-size) + 0.55rem);
	}
}

/* Quantity and people both in the date row (rental with more than one unit and the people field): a column each. */
.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .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);
}

.bs-single--rental .rental-booking.rental-booking--ui-classic.bs-single__booking-module .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);
}
