/**
 * SalonBook — Frontend Booking Design System v2
 * Complete rewrite. Clean, minimal, no legacy styles.
 *
 * All visual properties are CSS custom properties.
 * Override per-instance via Elementor widget controls
 * or a custom CSS block on the page.
 */

/* =============================================================
   1. DESIGN TOKENS
   ============================================================= */
.sb-elementor-booking,
.sb-booking-shell,
.sb-booking-flow,
.sb-booking,
.sb-booking-standalone {

	/* ── Choice cards (services, locations, categories, staff, extras) ── */
	--sb-card-bg:                  #ffffff;
	--sb-card-bg-hover:            #f5f5f5;
	--sb-card-bg-selected:         #eeeeee;
	--sb-card-border-color:        #1a1a1a;
	--sb-card-border-color-hover:  #1a1a1a;
	--sb-card-border-color-selected: #1a1a1a;
	--sb-card-border-width:        1px;
	--sb-card-radius:              10px;

	/* ── Time slot pills ── */
	--sb-slot-bg:               #ffffff;
	--sb-slot-bg-hover:         #f5f5f5;
	--sb-slot-bg-selected:      #eeeeee;
	--sb-slot-border:           #1a1a1a;
	--sb-slot-border-hover:     #1a1a1a;
	--sb-slot-border-selected:  #1a1a1a;
	--sb-slot-radius:           999px;

	/* ── Navigation buttons (back / next / confirm / submit) ── */
	--sb-btn-primary-bg:        #1a1a1a;
	--sb-btn-primary-color:     #ffffff;
	--sb-btn-primary-border:    #1a1a1a;
	--sb-btn-primary-bg-hover:  #333333;
	--sb-btn-secondary-bg:      transparent;
	--sb-btn-secondary-color:   #1a1a1a;
	--sb-btn-secondary-border:  #d0d0d0;
	--sb-btn-radius:            6px;

	/* ── Typography ── */
	--sb-font-family:   inherit;
	--sb-font-heading:  inherit; /* card title, section heading, price */
	--sb-font-body:     inherit; /* card description, duration, lead */
	--sb-font-slot:     inherit; /* time inside slot pill */
	--sb-heading-font-size: clamp(1.1rem, 2.2vw, 1.35rem);
	--sb-lead-font-size: 0.875rem;
	--sb-card-title-font-size: 0.95rem;
	--sb-card-description-font-size: 0.82rem;
	--sb-card-price-font-size: 0.92rem;
	--sb-card-icon-color: #1a1a1a;
	--sb-card-icon-size: 22px;
	--sb-category-heading-font-size: 0.7rem;
	--sb-summary-bg: #f7f7f7;
	--sb-summary-border-color: var(--sb-card-border-color);
	--sb-summary-border-width: var(--sb-card-border-width);
	--sb-summary-radius: var(--sb-card-radius);
	--sb-summary-label-font-size: 0.65rem;
	--sb-summary-value-font-size: 0.88rem;

	/* ── Calendar ── */
	--sb-cal-bg:                   #ffffff;
	--sb-cal-border:               #e5e5e5;
	--sb-cal-radius:               10px;
	--sb-cal-day-available-bg:     #f0f0f0;
	--sb-cal-day-available-color:  #1a1a1a;
	--sb-cal-day-hover-bg:         #e2e2e2;
	--sb-cal-day-selected-bg:      #1a1a1a;
	--sb-cal-day-selected-color:   #ffffff;
	--sb-cal-today-dot:            #1a1a1a;

	/* ── System colors ── */
	--sb-color-surface:       #ffffff;
	--sb-color-line:          #e5e5e5;
	--sb-color-text:          #1a1a1a;
	--sb-color-muted:         #737373;
	--sb-color-danger:        #c0392b;
	--sb-color-danger-soft:   #fef2f2;

	/* ── Layout ── */
	--sb-max-width:              720px;
	--sb-panel-padding:          1.5rem;
	--sb-space:                  1rem;
	--sb-space-compact:          calc(var(--sb-space) * 0.5);
	--sb-space-tight:            calc(var(--sb-space) * 0.25);
	--sb-section-gap: var(--sb-space);
	--sb-item-gap: var(--sb-space);
	--sb-panel-radius:           12px;
	--sb-panel-border-width:     1px;
	--sb-panel-border-color:     #e5e5e5;
	--sb-choice-columns:         1;
	--sb-card-padding:           0.9rem 1rem;
	--sb-premium-card-padding:   1.15rem;
	--sb-primary-button-bg:      var(--sb-btn-primary-bg);
	--sb-primary-button-bg-hover: var(--sb-btn-primary-bg-hover);
	--sb-primary-button-color:   var(--sb-btn-primary-color);
	--sb-primary-button-color-hover: var(--sb-btn-primary-color);
	--sb-primary-button-padding: 0.75rem 1.25rem;
	--sb-primary-button-radius:  var(--sb-btn-radius);
	--sb-premium-carousel-card-min-width: 260px;

	/* ── Animation ── */
	--sb-duration: 140ms;
	--sb-ease:     ease;
}


/* =============================================================
   2. BOX-SIZING RESET (scoped)
   ============================================================= */
.sb-booking-flow,
.sb-booking-flow *,
.sb-booking-flow *::before,
.sb-booking-flow *::after {
	box-sizing: border-box;
	min-width: 0; /* prevent overflow in flex/grid children */
}

.sb-booking-flow form {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	height: auto;
	min-height: 0;
	margin: 0;
	justify-content: flex-start;
	align-content: normal;
}

.sb-booking-flow__announcement {
	width: 100%;
	margin: 0 0 var(--sb-section-gap);
	padding: 0.85rem 1rem;
	border: 1px solid color-mix(in srgb, var(--sb-btn-primary-bg) 24%, var(--sb-color-line));
	border-radius: min(var(--sb-panel-radius), 12px);
	background: color-mix(in srgb, var(--sb-btn-primary-bg) 8%, var(--sb-color-surface));
	color: var(--sb-color-text);
	font-family: var(--sb-font-body);
	font-size: 0.94rem;
	line-height: 1.45;
	overflow-wrap: anywhere;
}


/* =============================================================
   3. THEME ISOLATION RESET
   Clears only typography/decoration artifacts from WP themes.
   Visual properties (background, border, padding, color) are NOT
   reset here — they are set by component rules below, which use
   the .sb-booking-flow prefix for specificity 0,2,0, beating
   typical theme selectors like .site-content button (0,1,1).
   ============================================================= */
.sb-booking-flow button,
.sb-booking-flow input,
.sb-booking-flow textarea,
.sb-booking-flow select,
.sb-booking-flow label {
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	font-family: inherit;
	font-size: inherit;
	font-style: normal;
	font-weight: inherit;
	letter-spacing: normal;
	line-height: inherit;
	margin: 0;
	text-decoration: none;
	text-shadow: none;
	text-transform: none;
	vertical-align: baseline;
}

.sb-booking-flow input,
.sb-booking-flow textarea,
.sb-booking-flow select {
	cursor: text;
}


/* =============================================================
   4. ROOT WRAPPER
   ============================================================= */
.sb-booking-flow {
	width: 100%;
	max-width: var(--sb-max-width);
	margin-inline: auto;
	font-family: var(--sb-font-family);
	color: var(--sb-color-text);
	background: transparent;
}


/* =============================================================
   4. PANEL — one per booking step
   ============================================================= */
.sb-booking-flow__panel {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	padding: var(--sb-panel-padding);
	background:
		linear-gradient(
			var(--sb-booking-form-gradient-angle, 180deg),
			var(--sb-booking-form-gradient-from, var(--sb-booking-form-bg, var(--sb-color-surface))) 0%,
			var(--sb-booking-form-gradient-to, var(--sb-booking-form-bg, var(--sb-color-surface))) 100%
		);
	border: var(--sb-panel-border-width) solid var(--sb-panel-border-color);
	border-radius: var(--sb-panel-radius);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 16px) rgba(15, 23, 42, 0.06);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 16px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	overflow: hidden; /* no content leaks outside */
}


/* =============================================================
   5. SECTION HEADING
   ============================================================= */
.sb-booking-flow__section-head,
.sb-booking-flow__section-intro,
.sb-booking-flow__summary-card {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	margin: 0;
}

.sb-booking-flow__panel h3 {
	margin: 0;
	font-family: var(--sb-font-heading);
	font-size: var(--sb-heading-font-size);
	font-weight: 700;
	line-height: 1.25;
	color: var(--sb-color-text);
	overflow-wrap: break-word;
}

.sb-booking-flow__panel h4 {
	margin: 0;
	font-family: var(--sb-font-heading);
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--sb-color-text);
}

.sb-booking-flow__lead,
.sb-booking-flow__section-intro > p,
.sb-booking-flow__success-intro,
.sb-booking-flow__hint {
	margin: 0;
	font-family: var(--sb-font-body);
	font-size: var(--sb-lead-font-size);
	line-height: 1.6;
	color: var(--sb-color-muted);
	overflow-wrap: break-word;
}


/* =============================================================
   6. SUMMARY BAR — chips showing current selection
   ============================================================= */
.sb-booking-flow__summary-bar {
	display: flex;
	flex-wrap: nowrap;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	scroll-snap-type: x proximity;
	gap: var(--sb-item-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	cursor: grab;
	user-select: none;
}

.sb-booking-flow__summary-bar.is-dragging {
	cursor: grabbing;
	scroll-snap-type: none;
}

.sb-booking-flow__summary-bar::-webkit-scrollbar {
	display: none;
}

.sb-booking-flow__summary-chip {
	display: flex;
	flex-direction: column;
	flex: 0 0 auto;
	gap: var(--sb-space-tight);
	padding: 0.6rem 0.85rem;
	background: var(--sb-summary-bg);
	border: var(--sb-summary-border-width, 1px) solid var(--sb-summary-border-color);
	border-radius: var(--sb-summary-radius);
	scroll-snap-align: start;
}

.sb-booking-flow__summary-chip dt {
	margin: 0;
	font-size: var(--sb-summary-label-font-size);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--sb-color-muted);
	white-space: nowrap;
}

.sb-booking-flow__summary-chip dd {
	margin: 0;
	font-family: var(--sb-font-heading);
	font-size: var(--sb-summary-value-font-size);
	font-weight: 600;
	line-height: 1.3;
	color: var(--sb-color-text);
	overflow-wrap: break-word;
	word-break: break-word;
}


/* =============================================================
   8. CHOICE CARDS — services, locations, categories, packages
   Full-width, single column by default.
   Elementor "Grid columns" control overrides grid-template-columns.
   ============================================================= */
.sb-booking-flow__choices {
	display: grid;
	grid-template-columns: repeat(var(--sb-choice-columns), minmax(0, 1fr));
	gap: var(--sb-item-gap);
}

/* Elementor layout prefix class — list = force 1 column */
.sb-widget-cards-list .sb-booking-flow__choices {
	--sb-choice-columns: 1;
}

/* Base card — button OR label, both look identical
   Prefixed .sb-booking-flow for specificity 0,2,0 — beats theme button rules */
.sb-booking-flow .sb-booking-flow__card {
	appearance: none;
	-webkit-appearance: none;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--sb-item-gap);
	width: 100%;
	padding: var(--sb-card-padding, 0.9rem 1rem);
	margin: 0;
	font: inherit;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	background:
		linear-gradient(
			var(--sb-premium-card-gradient-angle, 180deg),
			var(--sb-premium-card-gradient-from, var(--sb-card-bg)) 0%,
			var(--sb-premium-card-gradient-to, var(--sb-card-bg)) 100%
		);
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	color: var(--sb-color-text);
	transition:
		box-shadow var(--sb-duration) var(--sb-ease),
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow .sb-booking-flow__card:hover,
.sb-booking-flow .sb-booking-flow__card:focus-visible {
	background: var(--sb-card-bg-hover);
	border-color: var(--sb-card-border-color-hover);
	border-radius: var(--sb-card-radius);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) rgba(15, 23, 42, 0.1);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	outline: 2px solid var(--sb-booking-accent, var(--sb-card-border-color-selected));
	outline-offset: 2px;
}

.sb-booking-flow .sb-booking-flow__card:active {
	background: var(--sb-card-bg-selected) !important;
	border-color: var(--sb-card-border-color-selected) !important;
	border-radius: var(--sb-card-radius) !important;
	color: var(--sb-color-text) !important;
}

/* Selected — label cards with checked radio */
.sb-booking-flow .sb-booking-flow__card:has(input[type="radio"]:checked) {
	background: var(--sb-card-bg-selected);
	border-color: var(--sb-card-border-color-selected);
}

.sb-booking-flow .sb-booking-flow__payment-form {
	display: flex;
	flex-direction: column;
	height: auto;
	min-height: 0;
	justify-content: flex-start;
	align-content: normal;
	gap: var(--sb-section-gap);
}

.sb-booking-flow .sb-booking-flow__fulfillment-form {
	display: flex;
	flex-direction: column;
	height: auto;
	min-height: 0;
	justify-content: flex-start;
	align-content: normal;
	gap: var(--sb-section-gap);
}

.sb-booking-flow .sb-booking-flow__payment-methods {
	display: grid;
	grid-template-columns: 1fr;
	height: auto;
	min-height: 0;
	align-content: start;
	gap: var(--sb-item-gap);
}

.sb-booking-flow .sb-booking-flow__payment-methods > .sb-booking-flow__payment-choice {
	margin-bottom: 0;
}

/* Left column: title + optional description */
.sb-booking-flow__card-info {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-tight);
	flex: 1 1 0;
	min-width: 0; /* allow wrapping */
}

.sb-booking-flow__card-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 calc(var(--sb-premium-icon-size, var(--sb-card-icon-size)) + (var(--sb-premium-icon-padding, 0px) * 2));
	width: calc(var(--sb-premium-icon-size, var(--sb-card-icon-size)) + (var(--sb-premium-icon-padding, 0px) * 2));
	height: calc(var(--sb-premium-icon-size, var(--sb-card-icon-size)) + (var(--sb-premium-icon-padding, 0px) * 2));
	padding: var(--sb-premium-icon-padding, 0px);
	align-self: center;
	margin-right: 4px;
	border: 1px solid var(--sb-premium-icon-border, transparent);
	border-radius: var(--sb-premium-icon-radius, var(--sb-card-radius));
	background: var(--sb-premium-icon-bg, transparent);
	color: var(--sb-premium-icon-color, var(--sb-card-icon-color));
	line-height: 0;
	box-sizing: border-box;
}

.sb-booking-flow__card-icon svg {
	display: block;
	width: var(--sb-premium-icon-size, var(--sb-card-icon-size));
	height: var(--sb-premium-icon-size, var(--sb-card-icon-size));
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.sb-booking-flow .sb-booking-flow__card-info strong,
.sb-booking-flow .sb-booking-flow__card > strong {
	display: block;
	font-family: var(--sb-font-heading);
	font-size: var(--sb-card-title-font-size);
	font-weight: 700;
	line-height: 1.35;
	color: var(--sb-color-text);
	overflow-wrap: break-word;
	word-break: break-word;
}

.sb-booking-flow .sb-booking-flow__card-info > span,
.sb-booking-flow .sb-booking-flow__card > span:not(.sb-booking-flow__card-price):not(.sb-booking-flow__card-icon) {
	font-family: var(--sb-font-body);
	font-size: var(--sb-card-description-font-size);
	line-height: 1.45;
	color: var(--sb-color-muted);
	overflow-wrap: break-word;
	word-break: break-word;
}

/* Right column: price — never wraps, never overlaps text */
.sb-booking-flow .sb-booking-flow__card-info > .sb-booking-flow__card-duration {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	margin-top: 0.1rem;
	font-size: 0.76rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--sb-color-text);
	white-space: nowrap;
}

.sb-booking-flow .sb-booking-flow__card-price {
	flex-shrink: 0;
	align-self: flex-start;
	font-family: var(--sb-font-heading);
	font-size: var(--sb-card-price-font-size);
	font-weight: 700;
	line-height: 1.35;
	color: var(--sb-color-text);
	white-space: nowrap;
}

.sb-booking-flow.sb-design-classic .sb-booking-flow__card {
	align-items: stretch;
}

.sb-booking-flow.sb-design-classic .sb-booking-flow__card-info {
	justify-content: center;
}

.sb-booking-flow.sb-design-classic .sb-booking-flow__card > strong,
.sb-booking-flow.sb-design-classic .sb-booking-flow__card > span:not(.sb-booking-flow__card-price):not(.sb-booking-flow__card-icon) {
	align-self: center;
}

.sb-booking-flow.sb-design-classic .sb-booking-flow__card-price,
.sb-booking-flow.sb-design-classic .sb-booking-flow__card-side-meta {
	align-self: center;
}

/* ── Card layout variants (Elementor prefix_class: sb-card-layout-) ─── */

/* Vertical – stacked, left aligned */
.sb-card-layout-vertical .sb-booking-flow__card {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.3rem;
}

.sb-card-layout-vertical .sb-booking-flow__card-price {
	align-self: flex-start;
}

/* Vertical – stacked, centered */
.sb-card-layout-vertical-center .sb-booking-flow__card {
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 0.3rem;
}

.sb-card-layout-vertical-center .sb-booking-flow__card-info {
	align-items: center;
}

.sb-card-layout-vertical-center .sb-booking-flow__card-price {
	align-self: center;
}

/* Staff cards use radio — hide it visually, label acts as button */
.sb-booking-flow__card--staff {
	align-items: center;
}

/* Hide radio/checkbox inside all choice cards — selection shown via :has(:checked) background */
.sb-booking-flow .sb-booking-flow__card input[type="radio"],
.sb-booking-flow .sb-booking-flow__card input[type="checkbox"],
.sb-booking-flow__card--staff input[type="radio"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	border: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

/* Invisible price placeholder for staff cards (keeps layout consistent) */
.sb-booking-flow__card-price--placeholder {
	visibility: hidden;
	pointer-events: none;
	width: 0;
	overflow: hidden;
}


/* =============================================================
   9. CATEGORY DIVIDERS & ACCORDION
   ============================================================= */
.sb-booking-flow__cat-group {
	display: flex;
	flex-direction: column;
	gap: var(--sb-item-gap);
}

.sb-booking-flow__cat-group + .sb-booking-flow__cat-group {
	margin-top: var(--sb-section-gap);
}

.sb-booking-flow__cat-group--packages {
	margin-top: var(--sb-section-gap);
}

/* Category heading — subtle uppercase divider, not a colored banner */
.sb-booking-flow__cat-heading {
	display: flex;
	align-items: center;
	gap: var(--sb-item-gap);
	font-family: var(--sb-font-body);
	font-size: var(--sb-category-heading-font-size);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--sb-color-muted);
	white-space: nowrap;
}

.sb-booking-flow__cat-heading::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--sb-color-line);
}

/* Accordion toggle — same visual as a card */
.sb-booking-flow .sb-booking-flow__cat-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sb-item-gap);
	width: 100%;
	padding: 0.85rem 1rem;
	margin: 0;
	background: var(--sb-card-bg);
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	font: inherit;
	font-family: var(--sb-font-heading);
	font-size: var(--sb-card-title-font-size);
	font-weight: 700;
	color: var(--sb-color-text);
	text-align: left;
	cursor: pointer;
	transition: background var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow .sb-booking-flow__cat-toggle:hover {
	background: var(--sb-card-bg-hover);
	border-radius: var(--sb-card-radius);
}

.sb-booking-flow__cat-arrow {
	font-size: 0.65rem;
	color: var(--sb-color-muted);
	flex-shrink: 0;
	transition: transform var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__cat-group--accordion.is-open .sb-booking-flow__cat-arrow {
	transform: rotate(180deg);
}

/* Accordion body */
.sb-booking-flow__cat-body {
	display: none;
	grid-template-columns: 1fr;
	gap: var(--sb-item-gap);
}

.sb-booking-flow__cat-group--accordion.is-open .sb-booking-flow__cat-body {
	display: grid;
}


/* =============================================================
   10. EXTRAS (add-ons / products)
   Same visual language as choice cards but with checkbox
   ============================================================= */
.sb-booking-flow__extras {
	display: flex;
	flex-direction: column;
	gap: var(--sb-item-gap);
}

.sb-booking-flow .sb-booking-flow__extra {
	appearance: none;
	-webkit-appearance: none;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--sb-item-gap);
	width: 100%;
	padding: 0.9rem 1rem;
	margin: 0;
	background:
		linear-gradient(
			var(--sb-premium-card-gradient-angle, 180deg),
			var(--sb-premium-card-gradient-from, var(--sb-card-bg)) 0%,
			var(--sb-premium-card-gradient-to, var(--sb-card-bg)) 100%
		);
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	font: inherit;
	text-align: left;
	cursor: pointer;
	transition:
		box-shadow var(--sb-duration) var(--sb-ease),
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow .sb-booking-flow__extra:hover,
.sb-booking-flow .sb-booking-flow__extra:focus-within {
	background: var(--sb-card-bg-hover);
	border-color: var(--sb-card-border-color-hover);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) rgba(15, 23, 42, 0.1);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
}

.sb-booking-flow .sb-booking-flow__extra:has(input[type="checkbox"]:checked) {
	background: var(--sb-card-bg-selected);
	border-color: var(--sb-card-border-color-selected);
}

/* Custom checkbox indicator — visible, left-aligned */
.sb-booking-flow__request-preferences {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
}

.sb-booking-flow__request-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--sb-item-gap);
}

.sb-booking-flow__request-day {
	display: flex;
	flex-direction: column;
	gap: var(--sb-item-gap);
	min-width: 0;
	margin: 0;
	padding: 0.9rem 1rem;
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	background: var(--sb-card-bg);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 10%), transparent);
}

.sb-booking-flow__request-day-title {
	font-family: var(--sb-font-heading);
	font-size: var(--sb-card-title-font-size);
	font-weight: 700;
	line-height: 1.25;
	color: var(--sb-color-text);
}

.sb-booking-flow__request-period {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sb-space-compact);
	min-height: 42px;
	margin: 0;
	padding: 0.5rem 0.7rem;
	border: 1px solid var(--sb-card-border-color);
	border-radius: 999px;
	background: var(--sb-color-surface);
	cursor: pointer;
	transition:
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease),
		box-shadow var(--sb-duration) var(--sb-ease),
		transform var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__request-period input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	cursor: pointer;
	opacity: 0;
}

.sb-booking-flow__request-period:has(input[type="checkbox"]:checked) {
	border-color: var(--sb-card-border-color-selected);
	background: var(--sb-card-bg-selected);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--sb-card-border-color-selected) 18%, transparent);
}

.sb-booking-flow__request-period:focus-within {
	border-color: var(--sb-card-border-color-selected);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--sb-card-border-color-selected) 22%, transparent);
	outline: none;
}

.sb-booking-flow__request-period::after {
	content: "";
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	border: 1px solid var(--sb-card-border-color);
	border-radius: 999px;
	background: var(--sb-card-bg);
	background-repeat: no-repeat;
	background-position: center;
	background-size: 10px 8px;
	transition:
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__request-period:has(input[type="checkbox"]:checked)::after {
	border-color: var(--sb-card-border-color-selected);
	background-color: var(--sb-card-border-color-selected);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3 4 7-8' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.sb-booking-flow__request-period span {
	display: flex;
	flex-direction: column;
	gap: 0.1rem;
	min-width: 0;
	pointer-events: none;
}

.sb-booking-flow__request-period strong {
	font-size: var(--sb-card-title-font-size);
	line-height: 1.3;
	color: var(--sb-color-text);
}

.sb-booking-flow__request-period small {
	font-size: var(--sb-card-description-font-size);
	line-height: 1.35;
	color: var(--sb-color-muted);
}

@media (max-width: 640px) {
	.sb-booking-flow__request-grid {
		grid-template-columns: 1fr;
	}
}

.sb-booking-flow__extra input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	position: static;
	flex-shrink: 0;
	align-self: center;
	order: -1;
	width: 18px;
	height: 18px;
	min-width: 18px;
	margin: 0;
	border: 2px solid var(--sb-card-border-color);
	border-radius: 4px;
	background: var(--sb-color-surface);
	cursor: pointer;
	overflow: visible;
	clip: auto;
	transition:
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__extra:has(input[type="checkbox"]:checked) input[type="checkbox"] {
	border-color: var(--sb-card-border-color-selected);
	background: var(--sb-card-border-color-selected);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3 4 7-8' stroke='%23fff' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 10px 8px;
}

.sb-booking-flow__extra-info {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-tight);
	flex: 1 1 0;
	min-width: 0;
}

.sb-booking-flow__extra-info strong {
	font-family: var(--sb-font-heading);
	font-size: var(--sb-card-title-font-size);
	font-weight: 700;
	line-height: 1.35;
	color: var(--sb-color-text);
	overflow-wrap: break-word;
	word-break: break-word;
}

.sb-booking-flow__extra-info > span {
	font-family: var(--sb-font-body);
	font-size: var(--sb-card-description-font-size);
	line-height: 1.45;
	color: var(--sb-color-muted);
}

.sb-booking-flow__extra-price {
	flex-shrink: 0;
	align-self: flex-start;
	font-family: var(--sb-font-heading);
	font-size: var(--sb-card-price-font-size);
	font-weight: 700;
	color: var(--sb-color-text);
	white-space: nowrap;
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__extra {
	position: relative;
	background:
		linear-gradient(
			180deg,
			var(--sb-premium-card-gradient-from, var(--sb-premium-card-bg, var(--sb-card-bg))) 0%,
			var(--sb-premium-card-gradient-to, var(--sb-premium-card-bg, var(--sb-card-bg))) 100%
		);
	border: var(--sb-premium-card-border-width, var(--sb-card-border-width)) solid var(--sb-premium-card-border, var(--sb-card-border-color));
	border-radius: var(--sb-premium-card-radius, var(--sb-card-radius));
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	color: var(--sb-premium-card-text, var(--sb-color-text));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__extra:hover,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__extra:focus-within {
	background: var(--sb-card-bg-hover);
	border-color: var(--sb-booking-accent, var(--sb-premium-card-border, var(--sb-card-border-color)));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__extra:has(input[type="checkbox"]:checked) {
	background: var(--sb-card-bg-selected);
	border-color: var(--sb-booking-accent, var(--sb-premium-card-border, var(--sb-card-border-color)));
}


/* =============================================================
   11. SCHEDULE LAYOUT — calendar + slots
   Desktop: side by side | Mobile (≤640px): stacked
   ============================================================= */
.sb-booking-flow__schedule {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sb-section-gap);
	align-items: start;
	width: 100%;
}

.sb-booking-flow__slot-confirm {
	grid-column: 1 / -1;
}

.sb-booking-flow__calendar-pane,
.sb-booking-flow__slots-pane {
	width: 100%;
	min-width: 0;
}


/* =============================================================
   12. CALENDAR
   ============================================================= */
.sb-booking-flow__cal-month {
	width: 100%;
	background: var(--sb-cal-bg);
	border: 1px solid var(--sb-cal-border);
	border-radius: var(--sb-cal-radius);
	overflow: hidden;
}

/* Nav row: ‹  April 2025  › — centered within calendar */
.sb-booking-flow__cal-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.25rem;
	padding: 0.75rem 0.65rem;
	border-bottom: 1px solid var(--sb-cal-border);
	width: 100%;
	overflow: hidden;
}

/* Arrows — no background, no border, just icon */
.sb-booking-flow .sb-booking-flow__cal-prev,
.sb-booking-flow .sb-booking-flow__cal-next {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 2rem;
	height: 2rem;
	padding: 0;
	margin: 0;
	background: none;
	border: none;
	box-shadow: none;
	font: inherit;
	font-size: 1.15rem;
	line-height: 1;
	color: var(--sb-color-text);
	cursor: pointer;
}

.sb-booking-flow .sb-booking-flow__cal-prev:hover,
.sb-booking-flow .sb-booking-flow__cal-next:hover,
.sb-booking-flow .sb-booking-flow__cal-prev:focus-visible,
.sb-booking-flow .sb-booking-flow__cal-next:focus-visible {
	background: none;
	background-color: transparent;
	border: none;
	box-shadow: none;
	color: var(--sb-color-text);
}

.sb-booking-flow .sb-booking-flow__cal-prev:focus-visible,
.sb-booking-flow .sb-booking-flow__cal-next:focus-visible {
	outline: 2px solid var(--sb-booking-accent, var(--sb-color-text));
	outline-offset: 2px;
}

/* Month title — natural width, no stretch */
.sb-booking-flow__cal-title {
	flex: 0 1 auto;
	text-align: center;
	font-family: var(--sb-font-heading);
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--sb-color-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding: 0 0.5rem;
}

/* 7-column grid */
.sb-booking-flow__cal-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	padding: 0.7rem 0.65rem 0.8rem;
}

/* Day of week headers */
.sb-booking-flow__cal-dow {
	text-align: center;
	font-size: 0.63rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--sb-color-muted);
	padding: 0.2rem 0;
}

/* Day cells */
.sb-booking-flow__cal-cell {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1;
	border-radius: 6px;
	font-size: 0.8rem;
	font-weight: 400;
	color: var(--sb-color-muted);
	cursor: default;
	user-select: none;
}

.sb-booking-flow__cal-cell--empty {
	visibility: hidden;
}

/* Available days */
.sb-booking-flow__cal-cell.has-slots {
	background: var(--sb-cal-day-available-bg);
	color: var(--sb-cal-day-available-color);
	font-weight: 600;
	cursor: pointer;
}

.sb-booking-flow__cal-cell.has-slots:hover,
.sb-booking-flow__cal-cell.has-slots:focus-visible {
	background: var(--sb-cal-day-hover-bg);
	outline: none;
}

/* Selected day */
.sb-booking-flow__cal-cell.is-selected {
	background: var(--sb-cal-day-selected-bg);
	color: var(--sb-cal-day-selected-color);
	font-weight: 700;
}

/* Today indicator: small dot below the number */
.sb-booking-flow__cal-cell.is-today::after {
	content: "";
	position: absolute;
	bottom: 3px;
	left: 50%;
	transform: translateX(-50%);
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--sb-cal-today-dot);
	opacity: 0.45;
}

.sb-booking-flow__cal-cell.is-today.is-selected::after {
	background: var(--sb-cal-day-selected-color);
	opacity: 0.6;
}


/* =============================================================
   13. TIME SLOTS — pills
   ============================================================= */
.sb-booking-flow__slots-pane {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--sb-cal-border);
	border-radius: var(--sb-cal-radius);
	overflow: hidden;
	background: var(--sb-cal-bg);
}

.sb-booking-flow__slots-head {
	padding: 0.8rem 1rem;
	border-bottom: 1px solid var(--sb-cal-border);
}

.sb-booking-flow__slots-head h4 {
	margin: 0 0 0.2rem;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--sb-color-text);
}

.sb-booking-flow__slots-head p {
	margin: 0;
	font-size: 0.78rem;
	line-height: 1.5;
	color: var(--sb-color-muted);
}

.sb-booking-flow__slots {
	padding: 0.85rem;
	display: flex;
	flex-direction: column;
	gap: var(--sb-item-gap);
	overflow-x: hidden;
	border-bottom: 1px solid var(--sb-cal-border);
}

.sb-booking-flow__slots-for {
	display: flex;
	flex-direction: column;
	gap: var(--sb-item-gap);
	width: 100%;
}

.sb-booking-flow__slots-for[hidden] {
	display: none !important;
}

.sb-booking-flow__slot-group {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-compact);
}

.sb-booking-flow__slot-group-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--sb-space-compact);
}

.sb-booking-flow__slot-group-head h5 {
	margin: 0;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--sb-color-muted);
}

.sb-booking-flow__slot-group-head p {
	margin: 0;
	font-size: 0.68rem;
	line-height: 1.45;
	color: var(--sb-color-muted);
}

.sb-booking-flow__slot-group-items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
	gap: var(--sb-item-gap);
	width: 100%;
}

.sb-booking-flow__slot-group--request .sb-booking-flow__slot-group-head h5,
.sb-booking-flow__slot-group--request .sb-booking-flow__slot-group-head p {
	opacity: 0.88;
}

/* Pill button */
.sb-booking-flow .sb-booking-flow__slot {
	appearance: none;
	-webkit-appearance: none;
	display: flex;
	align-items: center;
	flex-direction: column;
	justify-content: center;
	width: 100%;
	padding: 0.55rem 0.5rem;
	margin: 0;
	background: var(--sb-slot-bg);
	border: var(--sb-card-border-width) solid var(--sb-slot-border);
	border-radius: var(--sb-slot-radius);
	font: inherit;
	font-family: var(--sb-font-slot);
	text-align: center;
	cursor: pointer;
	transition:
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow .sb-booking-flow__slot:hover,
.sb-booking-flow .sb-booking-flow__slot:focus-visible {
	background: var(--sb-slot-bg-hover);
	border-color: var(--sb-slot-border-hover);
	border-radius: var(--sb-slot-radius);
}

.sb-booking-flow .sb-booking-flow__slot:focus-visible {
	outline: 2px solid var(--sb-booking-accent, var(--sb-slot-border-selected));
	outline-offset: 2px;
}

.sb-booking-flow .sb-booking-flow__slot.is-selected {
	background: var(--sb-slot-bg-selected);
	border-color: var(--sb-slot-border-selected);
}

.sb-booking-flow .sb-booking-flow__slot.is-recommended {
	border-color: var(--sb-booking-accent, var(--sb-slot-border-selected));
}

.sb-booking-flow .sb-booking-flow__slot.is-request-only {
	border-style: dashed;
}

.sb-booking-flow__slot-time {
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1;
	color: var(--sb-color-text);
	white-space: nowrap;
}

.sb-booking-flow__slot-badge {
	margin-top: 0.22rem;
	font-size: 0.58rem;
	font-weight: 600;
	line-height: 1.2;
	color: var(--sb-color-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Empty state */
.sb-booking-flow__empty {
	padding: 1.25rem 1rem;
	text-align: center;
	font-size: 0.85rem;
	line-height: 1.55;
	color: var(--sb-color-muted);
}


/* =============================================================
   14. CONTACT FORM FIELDS
   ============================================================= */
.sb-booking-flow__fields {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sb-item-gap);
}

.sb-booking-flow__field {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-compact);
	min-width: 0;
}

.sb-booking-flow__field--full {
	grid-column: 1 / -1;
}

.sb-booking-flow__field span {
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--sb-color-text);
}

.sb-booking-flow__field input,
.sb-booking-flow__field select,
.sb-booking-flow__field textarea {
	width: 100%;
	padding: 0.72rem 0.9rem;
	background: var(--sb-card-bg);
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	font: inherit;
	font-size: 0.92rem;
	line-height: 1.45;
	color: var(--sb-color-text);
	appearance: none;
	-webkit-appearance: none;
	transition: border-color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__field input::placeholder,
.sb-booking-flow__field textarea::placeholder {
	color: var(--sb-color-muted);
}

.sb-booking-flow__field input:focus,
.sb-booking-flow__field select:focus,
.sb-booking-flow__field textarea:focus {
	border-color: var(--sb-booking-accent, var(--sb-card-border-color-selected));
	outline: none;
}

.sb-booking-flow__field textarea {
	min-height: 5.5rem;
	resize: vertical;
}


/* =============================================================
   15. DISCOUNT / VOUCHER SECTION (collapsible)
   ============================================================= */
.sb-booking-flow__discount-section {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	padding-top: var(--sb-section-gap);
	border-top: 1px solid var(--sb-color-line);
}

.sb-booking-flow .sb-booking-flow__discount-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0;
	margin: 0;
	background: none !important;
	border: none !important;
	font: inherit;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--sb-color-muted);
	cursor: pointer;
	text-align: left;
	transition: color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow .sb-booking-flow__discount-toggle:hover,
.sb-booking-flow .sb-booking-flow__discount-toggle:active,
.sb-booking-flow .sb-booking-flow__discount-toggle:focus-visible {
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: var(--sb-color-muted) !important;
	outline: 2px solid var(--sb-booking-accent, var(--sb-color-text)) !important;
	outline-offset: 2px;
}

.sb-booking-flow__discount-toggle-arrow {
	font-size: 0.6rem;
	transition: transform var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__discount-body {
	display: none;
	grid-template-columns: 1fr 1fr;
	gap: var(--sb-item-gap);
}

.sb-booking-flow__discount-body.is-open {
	display: grid;
}

.sb-booking-flow__field--with-btn {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-compact);
}

.sb-booking-flow__input-group {
	display: flex;
	gap: var(--sb-space-compact);
}

.sb-booking-flow__input-group input {
	flex: 1;
}

.sb-booking-flow__verify-btn {
	align-self: flex-start;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	font-size: 0.78rem;
	font-weight: 600;
	cursor: pointer;
	color: var(--sb-color-muted);
	text-decoration: underline;
	text-underline-offset: 0.16em;
	transition: color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__verify-btn:hover {
	background: transparent;
	color: var(--sb-color-text);
}

.sb-booking-flow__verify-msg {
	font-size: 0.78rem;
	line-height: 1.4;
	min-height: 1.2em;
}

.sb-booking-flow__verify-msg--success {
	color: var(--sb-booking-accent, var(--sb-color-text));
}

.sb-booking-flow__verify-msg--error {
	color: var(--sb-color-danger);
}


.sb-booking-flow__payment-choice {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	margin: 0;
	padding: 0;
	border: 0;
}

.sb-booking-flow__choice-group {
	display: flex;
	gap: var(--sb-item-gap);
	margin: 0;
}

.sb-booking-flow__choice-group label {
	display: flex;
	align-items: center;
	gap: var(--sb-space-compact);
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
}

.sb-booking-flow__choice-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sb-item-gap);
	margin: 0;
}

.sb-booking-flow__choice-card {
	position: relative;
	display: flex;
	align-items: center;
	padding: 1rem 1.25rem;
	background:
		linear-gradient(
			var(--sb-premium-card-gradient-angle, 180deg),
			var(--sb-premium-card-gradient-from, var(--sb-card-bg)) 0%,
			var(--sb-premium-card-gradient-to, var(--sb-card-bg)) 100%
		);
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	cursor: pointer;
	transition:
		background var(--sb-duration) var(--sb-ease),
		border-color var(--sb-duration) var(--sb-ease),
		box-shadow var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow__choice-card:hover {
	background: var(--sb-card-bg-hover);
	border-color: var(--sb-card-border-color-hover);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) rgba(15, 23, 42, 0.1);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
}

.sb-booking-flow__choice-card input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.sb-booking-flow__choice-card-info {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-tight);
}

.sb-booking-flow__choice-card-info strong {
	display: block;
	font-size: var(--sb-card-title-font-size);
	font-weight: 700;
	color: var(--sb-color-text);
}

.sb-booking-flow__choice-card-info span {
	font-size: var(--sb-card-description-font-size);
	color: var(--sb-color-muted);
}

.sb-booking-flow__choice-card:has(input:checked) {
	background: var(--sb-card-bg-selected);
	border-color: var(--sb-card-border-color-selected);
}

.sb-booking-flow__choice-card:has(input:checked) .sb-booking-flow__choice-card-info strong {
	color: var(--sb-color-text);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__choice-card {
	background:
		linear-gradient(
			var(--sb-premium-card-gradient-angle, 180deg),
			var(--sb-premium-card-gradient-from, var(--sb-premium-card-bg, var(--sb-card-bg))) 0%,
			var(--sb-premium-card-gradient-to, var(--sb-premium-card-bg, var(--sb-card-bg))) 100%
		);
	border: var(--sb-premium-card-border-width, var(--sb-card-border-width)) solid var(--sb-premium-card-border, var(--sb-card-border-color));
	border-radius: var(--sb-premium-card-radius, var(--sb-card-radius));
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__choice-card:hover,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__choice-card:focus-within {
	background: var(--sb-card-bg-hover);
	border-color: var(--sb-card-border-color-hover);
	box-shadow:
		0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) rgba(15, 23, 42, 0.1);
	box-shadow:
		0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__choice-card:has(input:checked) {
	background: var(--sb-card-bg-selected);
	border-color: var(--sb-card-border-color-selected);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
}

/* =============================================================
   16. BOOKING SUMMARY — confirmation step detail list
   ============================================================= */
.sb-booking-flow__summary,
.sb-booking-flow__success-summary {
	display: flex;
	flex-direction: column;
	margin: 0;
	border: var(--sb-summary-border-width, 1px) solid var(--sb-summary-border-color);
	border-radius: var(--sb-summary-radius);
	overflow: hidden;
	background: var(--sb-summary-bg);
}

.sb-booking-flow__summary-row,
.sb-booking-flow__success-row {
	display: grid;
	grid-template-columns: 10rem 1fr;
	gap: var(--sb-item-gap);
	padding: 0.8rem 1rem;
	border-top: 1px solid var(--sb-summary-border-color);
	align-items: baseline;
}

.sb-booking-flow__summary-row:first-child,
.sb-booking-flow__success-row:first-child {
	border-top: none;
}

.sb-booking-flow__success-row--total {
	background: var(--sb-summary-bg);
}

.sb-booking-flow__summary-row dt,
.sb-booking-flow__success-row dt {
	margin: 0;
	font-size: var(--sb-summary-label-font-size);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--sb-color-muted);
}

.sb-booking-flow__summary-row dd,
.sb-booking-flow__success-row dd {
	margin: 0;
	font-size: var(--sb-summary-value-font-size);
	font-weight: 600;
	line-height: 1.45;
	color: var(--sb-color-text);
	overflow-wrap: break-word;
	word-break: break-word;
}

.sb-booking-flow__bank-transfer h4 {
	font-size: var(--sb-heading-font-size);
}

.sb-booking-flow__contact-form,
.sb-booking-flow__bank-transfer,
.sb-booking-flow__bank-qr {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	height: auto;
	min-height: 0;
	margin: 0;
	justify-content: flex-start;
}

.sb-booking-flow__form-section-title,
.sb-booking-flow__bank-qr-label {
	margin: 0;
}

.sb-booking-flow__bank-qr {
	align-items: flex-start;
}

.sb-booking-flow__bank-transfer > p {
	margin: 0;
	font-family: var(--sb-font-body);
	font-size: var(--sb-lead-font-size);
	line-height: 1.6;
	color: var(--sb-color-muted);
}

.sb-booking-flow__required-consents {
	display: grid;
	gap: var(--sb-item-gap);
	margin: 0;
	color: var(--sb-color-muted);
	font-size: var(--sb-lead-font-size);
	line-height: 1.45;
}

.sb-booking-flow__required-consent {
	display: flex;
	align-items: flex-start;
	gap: var(--sb-space-compact);
	margin: 0;
}

.sb-booking-flow__required-consent input[type="checkbox"] {
	-webkit-appearance: checkbox;
	appearance: checkbox;
	flex: 0 0 auto;
	margin-top: 0.2rem;
}

.sb-booking-flow__required-consent-text a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.16em;
}


/* =============================================================
   17. NAVIGATION BUTTONS — back / continue / confirm / submit
   ============================================================= */
.sb-booking-flow__step-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: var(--sb-item-gap);
	padding-top: 0;
}

.sb-booking-flow__step-actions--back-only {
	justify-content: flex-start;
}

/* Nav buttons — inherits theme button styles intentionally.
   Only structural overrides here so layout stays consistent. */
.sb-booking-flow__submit,
.sb-booking-flow__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
}

.sb-booking-flow__submit:disabled {
	opacity: 0.38;
	cursor: not-allowed;
}

.sb-booking-flow--buttons-custom .sb-booking-flow__submit,
.sb-booking-flow--buttons-custom .sb-booking-flow__slot-confirm-btn {
	background: var(--sb-primary-button-bg, var(--sb-btn-primary-bg));
	border: 1px solid var(--sb-btn-primary-border);
	border-radius: var(--sb-primary-button-radius, var(--sb-btn-radius));
	color: var(--sb-primary-button-color, var(--sb-btn-primary-color));
	padding: var(--sb-primary-button-padding, 0.75rem 1.25rem);
	line-height: 1.2;
	transition: background var(--sb-duration) var(--sb-ease), border-color var(--sb-duration) var(--sb-ease), color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow--buttons-custom .sb-booking-flow__submit:hover,
.sb-booking-flow--buttons-custom .sb-booking-flow__slot-confirm-btn:hover {
	background: var(--sb-primary-button-bg-hover, var(--sb-btn-primary-bg-hover));
	color: var(--sb-primary-button-color-hover, var(--sb-primary-button-color, var(--sb-btn-primary-color)));
}

.sb-booking-flow--buttons-custom .sb-booking-flow__back {
	background: var(--sb-btn-secondary-bg);
	border: 1px solid var(--sb-btn-secondary-border);
	border-radius: var(--sb-btn-radius);
	color: var(--sb-btn-secondary-color);
	padding: 0.75rem 1.25rem;
	line-height: 1.2;
	transition: background var(--sb-duration) var(--sb-ease), border-color var(--sb-duration) var(--sb-ease), color var(--sb-duration) var(--sb-ease);
}

.sb-booking-flow--buttons-custom .sb-booking-flow__back:hover {
	background: var(--sb-btn-secondary-bg-hover);
}

/* Staff fallback submit — visible only without JS */
.js .sb-booking-flow__submit--location-fallback,
.js .sb-booking-flow__submit--staff-fallback {
	display: none;
}

.sb-booking-flow__submit--staff-fallback {
	margin-top: var(--sb-section-gap);
}

.sb-booking-flow__honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.sb-booking-flow__code-input {
	text-transform: uppercase;
}


/* =============================================================
   18. NOTICES
   ============================================================= */
.sb-booking-flow__notice {
	padding: 0.85rem 1rem;
	border-radius: var(--sb-card-radius);
	font-size: 0.88rem;
	line-height: 1.55;
}

.sb-booking-flow__notice--error {
	background: var(--sb-color-danger-soft);
	border: 1px solid var(--sb-color-danger);
	color: var(--sb-color-danger);
}


/* =============================================================
   19. SUCCESS SCREEN
   ============================================================= */
.sb-booking-flow__panel--success {
	background: var(--sb-color-surface);
}

.sb-booking-flow__success-badge {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	padding: 0.3rem 0.7rem;
	background: var(--sb-card-bg-hover);
	border-radius: 999px;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	color: var(--sb-color-text);
}


/* =============================================================
   20. LOADING STATE
   ============================================================= */
.sb-booking-flow__panel--loading {
	opacity: 0.55;
	pointer-events: none;
}


/* =============================================================
   21. RESPONSIVE
   ============================================================= */

/* Tablet: stack calendar and slots */
@media (max-width: 640px) {
	.sb-booking-flow__schedule {
		grid-template-columns: 1fr;
	}

	.sb-booking-flow__calendar-pane {
		max-width: 100%;
	}

	.sb-booking-flow__slots-for {
		grid-template-columns: repeat(auto-fill, minmax(66px, 1fr));
	}

	/* Summary rows: label above value */
	.sb-booking-flow__summary-row,
	.sb-booking-flow__success-row {
		grid-template-columns: 1fr;
		gap: var(--sb-space-tight);
	}

	.sb-booking-flow__choice-grid {
		grid-template-columns: 1fr;
	}

	/* Action buttons: stack vertically, full width */
	.sb-booking-flow__step-actions {
		flex-direction: column-reverse;
		align-items: stretch;
	}

	.sb-booking-flow__submit,
	.sb-booking-flow__back,
	.sb-booking-flow__slot-confirm-btn {
		width: 100%;
	}

}

/* Mobile: tighten spacing and go single column */
@media (max-width: 480px) {
	.sb-booking-flow__panel {
		padding: 1rem;
		gap: var(--sb-section-gap);
	}

	.sb-booking-flow .sb-booking-flow__card {
		min-height: 0;
		align-items: center;
		gap: var(--sb-item-gap);
		padding: var(--sb-card-padding, 0.72rem 0.85rem);
	}

	.sb-booking-flow__card-icon {
		flex-basis: calc(min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px) + (min(var(--sb-premium-icon-padding, 0px), 8px) * 2));
		width: calc(min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px) + (min(var(--sb-premium-icon-padding, 0px), 8px) * 2));
		height: calc(min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px) + (min(var(--sb-premium-icon-padding, 0px), 8px) * 2));
		padding: min(var(--sb-premium-icon-padding, 0px), 8px);
	}

	.sb-booking-flow__card-icon svg {
		width: min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px);
		height: min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px);
	}

	.sb-booking-flow__fields,
	.sb-booking-flow__discount-body {
		grid-template-columns: 1fr;
	}

	.sb-booking-flow__choices:not(.sb-booking-flow__choices--category-carousel) {
		display: grid !important;
		grid-template-columns: repeat(var(--sb-choice-columns), minmax(0, 1fr));
		align-items: stretch;
		align-content: start;
		gap: var(--sb-item-gap) !important;
		row-gap: var(--sb-item-gap) !important;
		grid-auto-rows: auto;
		height: auto !important;
		min-height: 0 !important;
	}

	.sb-booking-flow__payment-methods,
	.sb-booking-flow__extras {
		display: grid !important;
		grid-template-columns: 1fr;
		align-items: stretch;
		align-content: start;
		gap: var(--sb-item-gap) !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.sb-booking-flow:not(.sb-design-premium-carousel) .sb-booking-flow__choices--category-carousel {
		display: flex !important;
		flex-direction: column !important;
		gap: var(--sb-item-gap) !important;
		row-gap: var(--sb-item-gap) !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.sb-booking-flow:not(.sb-design-premium-carousel) .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card {
		width: 100%;
		margin: 0 !important;
		min-height: 0 !important;
	}

	.sb-booking-flow .sb-booking-flow__choices:not(.sb-booking-flow__choices--category-carousel) > .sb-booking-flow__card,
	.sb-booking-flow .sb-booking-flow__payment-methods > .sb-booking-flow__card,
	.sb-booking-flow .sb-booking-flow__extras > .sb-booking-flow__extra {
		align-self: stretch;
		flex: 0 0 auto !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
	}

	.sb-booking-flow__cat-group {
		gap: var(--sb-item-gap) !important;
		margin-top: 0 !important;
	}

	.sb-booking-flow__cat-group + .sb-booking-flow__cat-group,
	.sb-booking-flow__cat-group--packages {
		margin-top: var(--sb-section-gap) !important;
	}

	.sb-booking-flow__cat-heading {
		margin: 0 !important;
	}

	.sb-booking-flow__cat-group--accordion.is-open .sb-booking-flow__cat-body {
		display: flex !important;
		flex-direction: column !important;
		gap: var(--sb-item-gap) !important;
		height: auto !important;
		min-height: 0 !important;
	}

	.sb-booking-flow__cal-grid {
		gap: 1px;
		padding: 0.6rem;
	}
}

/* Tiny screens */
@media (max-width: 360px) {
	.sb-booking-flow__panel {
		padding: 0.85rem;
	}

	.sb-booking-flow__slots-for {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ── Waiting List inline section ─────────────────────────────────────── */
.sb-wl-section {
	padding: 0.85rem;
	overflow-x: hidden;

}
.sb-wl-no-slots-lead {
	font-size: 0.875rem;
	color: var(--sb-color-muted);
	margin: 0 0 0.5rem;
}
/* WL pill: muted/outlined variant of existing slot pill */
.sb-wl-pill,
.sb-wl-earlier-pill {
	opacity: .7;
	font-style: italic;
}
.sb-wl-pill:hover,
.sb-wl-earlier-pill:hover {
	opacity: 1;
}


/* =============================================================
   22. PREMIUM DESIGN VARIANTS
   Optional skin layer. Classic stays on the base rules above.
   ============================================================= */
.sb-booking-flow[class*="sb-design-premium-"] {
	color: var(--sb-booking-text, var(--sb-color-text));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__panel h3,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__panel h4,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__summary-row dd,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__success-row dd {
	color: var(--sb-booking-heading, var(--sb-color-text));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__lead,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__summary-row dt,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__success-row dt,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__bank-transfer > p {
	color: var(--sb-booking-muted, var(--sb-color-muted));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 108px;
	padding: var(--sb-premium-card-padding, 1.15rem);
	border: var(--sb-premium-card-border-width, 1px) solid var(--sb-premium-card-border, var(--sb-card-border-color));
	border-radius: var(--sb-premium-card-radius, var(--sb-card-radius));
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) rgba(15, 23, 42, 0.08);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) var(--sb-premium-card-shadow-blur, 30px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
	color: var(--sb-premium-card-text, var(--sb-color-text));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card:hover,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card:focus-visible {
	background: var(--sb-card-bg-hover);
	border-color: var(--sb-card-border-color-hover);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) rgba(15, 23, 42, 0.1);
	box-shadow: 0 var(--sb-premium-card-shadow-y, 12px) calc(var(--sb-premium-card-shadow-blur, 30px) + 8px) color-mix(in srgb, var(--sb-premium-card-shadow-color, #1f2937) var(--sb-premium-card-shadow-opacity, 12%), transparent);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card:active,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card:has(input[type="radio"]:checked) {
	background: var(--sb-card-bg-selected);
	border-color: var(--sb-card-border-color-selected);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card > * {
	position: relative;
	z-index: 2;
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-icon {
	flex: 0 0 calc(var(--sb-premium-icon-size, 22px) + (var(--sb-premium-icon-padding, 12px) * 2));
	width: calc(var(--sb-premium-icon-size, 22px) + (var(--sb-premium-icon-padding, 12px) * 2));
	height: calc(var(--sb-premium-icon-size, 22px) + (var(--sb-premium-icon-padding, 12px) * 2));
	padding: var(--sb-premium-icon-padding, 12px);
	box-sizing: border-box;
	margin-right: 0;
	border: 1px solid var(--sb-premium-icon-border, transparent);
	border-radius: var(--sb-premium-icon-radius, 16px);
	background: var(--sb-premium-icon-bg, transparent);
	color: var(--sb-premium-icon-color, var(--sb-card-icon-color));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-icon svg {
	width: var(--sb-premium-icon-size, 22px);
	height: var(--sb-premium-icon-size, 22px);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-info strong,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card > strong,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-price,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-info > .sb-booking-flow__card-duration {
	color: var(--sb-premium-card-text, var(--sb-color-text));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-info > span,
.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card > span:not(.sb-booking-flow__card-price):not(.sb-booking-flow__card-icon):not(.sb-booking-flow__card-arrow) {
	color: var(--sb-premium-card-muted, var(--sb-color-muted));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-media {
	position: absolute;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	min-width: 0;
	pointer-events: none;
	opacity: var(--sb-premium-image-opacity, 0.95);
	border-radius: var(--sb-premium-image-radius, 22px) 0 0 var(--sb-premium-image-radius, 22px);
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-media img {
	position: absolute;
	left: var(--sb-premium-image-left, auto);
	right: var(--sb-premium-image-right, 0);
	top: var(--sb-premium-image-top, 50%);
	bottom: var(--sb-premium-image-bottom, auto);
	display: block;
	width: var(--sb-premium-image-width, auto);
	height: var(--sb-premium-image-height, 100%);
	max-width: none;
	object-fit: var(--sb-premium-image-fit, contain);
	transform: var(--sb-premium-image-transform, translateY(-50%));
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-media img {
	left: 0;
	right: 0;
	top: 0;
	bottom: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: none;
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35rem;
	height: 2.35rem;
	border: 1px solid var(--sb-premium-arrow-border, transparent);
	border-radius: 999px;
	background: var(--sb-premium-arrow-bg, transparent);
	color: var(--sb-premium-arrow-color, var(--sb-booking-accent, var(--sb-color-text)));
}

.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-arrow span {
	font-size: 1rem;
	line-height: 1;
}

.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__submit,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__back,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__slot-confirm-btn {
	border-radius: var(--sb-primary-button-radius, var(--sb-premium-button-radius, var(--sb-btn-radius)));
}

.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__submit,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__slot-confirm-btn {
	background: var(--sb-primary-button-bg, var(--sb-premium-button-bg, var(--sb-btn-primary-bg)));
	border: 1px solid var(--sb-premium-button-border, var(--sb-btn-primary-border));
	color: var(--sb-primary-button-color, var(--sb-premium-button-text, var(--sb-btn-primary-color)));
	padding: var(--sb-primary-button-padding, 0.8rem 1.3rem);
}

.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__submit:hover,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__submit:focus-visible,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__slot-confirm-btn:hover,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__slot-confirm-btn:focus-visible {
	background: var(--sb-primary-button-bg-hover, var(--sb-btn-primary-bg-hover));
	border-color: var(--sb-premium-button-border, var(--sb-btn-primary-border));
	color: var(--sb-primary-button-color-hover, var(--sb-primary-button-color, var(--sb-premium-button-text, var(--sb-btn-primary-color))));
}

.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__back {
	border: 1px solid var(--sb-btn-secondary-border);
	background: var(--sb-btn-secondary-bg);
	color: var(--sb-btn-secondary-color);
	padding: 0.8rem 1.3rem;
}

.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__back:hover,
.sb-booking-flow:where([class*="sb-design-premium-"]) .sb-booking-flow__back:focus-visible {
	background: var(--sb-btn-secondary-bg-hover);
	color: var(--sb-btn-secondary-color);
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__choices {
	gap: var(--sb-item-gap);
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) {
	display: flex;
	align-items: stretch;
	gap: var(--sb-item-gap);
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card .sb-booking-flow__card-media img,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-media img {
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent var(--sb-premium-image-fade-start, 14%), #000 calc(var(--sb-premium-image-fade-start, 14%) + var(--sb-premium-image-fade-strength, 56%)), #000 100%);
	mask-image: linear-gradient(90deg, transparent 0%, transparent var(--sb-premium-image-fade-start, 14%), #000 calc(var(--sb-premium-image-fade-start, 14%) + var(--sb-premium-image-fade-strength, 56%)), #000 100%);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info {
	min-width: 0;
	flex: 1 1 auto;
	max-width: 100%;
	padding-right: 0;
	justify-content: center;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-info strong,
.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-info > span,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info strong,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info > span {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-side-meta,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-side-meta {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	align-self: center;
	flex: 0 0 auto;
	margin-left: auto;
	gap: 0;
	max-width: max-content;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-side-meta .sb-booking-flow__card-price,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-side-meta .sb-booking-flow__card-price {
	position: static;
	display: block;
	align-self: center;
	max-width: 100%;
	text-align: right;
	white-space: nowrap;
	line-height: 1;
}

.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-price-center .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-price-arrow-pill .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-price-center .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-price-arrow-pill .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info {
	align-self: stretch;
}

.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-price-center .sb-booking-flow__card-side-meta,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-price-center .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-side-meta {
	min-width: 4.5rem;
}

.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-price-arrow-pill .sb-booking-flow__card-side-meta.sb-booking-flow__card-side-meta--has-price,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-price-arrow-pill .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-side-meta.sb-booking-flow__card-side-meta--has-price {
	min-width: fit-content;
	padding: 0.18rem 0.28rem 0.18rem 1rem;
	border: 1px solid var(--sb-premium-arrow-border, transparent);
	border-radius: 999px;
	background: var(--sb-premium-arrow-bg, transparent);
}

.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-price-arrow-pill .sb-booking-flow__card-side-meta.sb-booking-flow__card-side-meta--has-price .sb-booking-flow__card-arrow,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-price-arrow-pill .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-side-meta.sb-booking-flow__card-side-meta--has-price .sb-booking-flow__card-arrow {
	width: 1.75rem;
	height: 1.75rem;
	border: 0;
	background: transparent;
}

.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-price-below-description .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-wide.sb-booking-flow--card-meta-arrow-center .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-price-below-description .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info,
.sb-booking-flow.sb-design-premium-carousel.sb-booking-flow--card-meta-arrow-center .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info {
	align-self: center;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-meta-line,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-meta-line {
	display: inline-flex;
	flex-wrap: nowrap;
	align-items: baseline;
	white-space: nowrap;
	margin-top: 0.1rem;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-meta-line .sb-booking-flow__card-price,
.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-meta-line .sb-booking-flow__card-duration,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-meta-line .sb-booking-flow__card-price,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-meta-line .sb-booking-flow__card-duration {
	position: static;
	max-width: none;
	text-align: left;
}

.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-meta-line .sb-booking-flow__card-duration,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-meta-line .sb-booking-flow__card-duration,
.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-meta-separator,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-meta-separator {
	color: var(--sb-premium-card-muted, var(--sb-color-muted));
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel {
	display: flex;
	gap: var(--sb-premium-carousel-gap, var(--sb-item-gap));
	overflow-x: auto;
	overflow-y: visible;
	padding: 0.2rem 0 0.5rem;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel::-webkit-scrollbar {
	display: none;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category {
	flex: 0 0 var(--sb-premium-carousel-card-min-width);
	width: var(--sb-premium-carousel-card-min-width);
	min-height: var(--sb-premium-carousel-card-min-width);
	padding: 0;
	scroll-snap-align: start;
	align-items: stretch;
	flex-direction: column;
	justify-content: flex-start;
	gap: 0;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-media {
	position: relative;
	inset: auto;
	width: 100%;
	min-width: 100%;
	height: 140px;
	border-radius: inherit inherit 0 0;
	opacity: 1;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 0%, transparent 58%, var(--sb-card-bg) 100%);
	pointer-events: none;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-icon {
	display: none;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-media img {
	opacity: 1;
	-webkit-mask-image: none;
	mask-image: none;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-info {
	position: relative;
	z-index: 2;
	margin: 0;
	padding: 1rem 1rem 1.05rem;
	background: var(--sb-card-bg);
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-info > span,
.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-price {
	display: none;
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-info strong {
	font-size: clamp(1rem, 1.8vw, 1.15rem);
}

.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card--premium-carousel-category .sb-booking-flow__card-side-meta {
	position: absolute;
	top: 1rem;
	right: 1rem;
	transform: none;
}

@media (max-width: 480px) {
	.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card,
	.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) {
		min-height: 108px;
		align-items: stretch;
		gap: var(--sb-item-gap);
		padding: var(--sb-premium-card-padding, 1.15rem);
	}

	.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__choices:not(.sb-booking-flow__choices--category-carousel) > .sb-booking-flow__card,
	.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__choices:not(.sb-booking-flow__choices--category-carousel) > .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) {
		min-height: 108px;
	}

	.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__choices--category-carousel > .sb-booking-flow__card {
		min-height: 108px;
	}

	.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-media,
	.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-media {
		inset: 0;
		width: 100%;
		min-width: 0;
		height: 100%;
		border-radius: var(--sb-premium-image-radius, 22px) 0 0 var(--sb-premium-image-radius, 22px);
	}

	.sb-booking-flow.sb-design-premium-wide .sb-booking-flow__card-info,
	.sb-booking-flow.sb-design-premium-carousel .sb-booking-flow__card:not(.sb-booking-flow__card--premium-carousel-category) .sb-booking-flow__card-info {
		padding-right: 0;
	}

	.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card {
		height: auto !important;
		align-self: start;
	}

	.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-icon {
		flex: 0 0 calc(min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px) + (min(var(--sb-premium-icon-padding, 0px), 8px) * 2));
		width: calc(min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px) + (min(var(--sb-premium-icon-padding, 0px), 8px) * 2));
		height: calc(min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px) + (min(var(--sb-premium-icon-padding, 0px), 8px) * 2));
		padding: min(var(--sb-premium-icon-padding, 0px), 8px);
	}

	.sb-booking-flow[class*="sb-design-premium-"] .sb-booking-flow__card-icon svg {
		width: min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px);
		height: min(var(--sb-premium-icon-size, var(--sb-card-icon-size)), 32px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.sb-booking-flow *,
	.sb-booking-standalone * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

/* =============================================================
   23. STANDALONE CUSTOMER PAGES
   Booking self-service, waiting-list offers and voucher/pass checks.
   ============================================================= */
body.sb-booking-standalone {
	margin: 0;
	padding: var(--sb-section-gap);
	background: var(--sb-booking-form-bg, var(--sb-color-surface));
	color: var(--sb-color-text);
	font-family: var(--sb-font-family);
}

.sb-booking-standalone,
.sb-booking-standalone *,
.sb-booking-standalone *::before,
.sb-booking-standalone *::after {
	box-sizing: border-box;
}

.sb-booking-standalone .sb-booking-shell {
	width: 100%;
	max-width: var(--sb-max-width);
	margin-inline: auto;
}

.sb-booking,
.sb-booking-standalone__page {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	width: 100%;
	max-width: var(--sb-max-width);
	margin: 0 auto;
	padding: var(--sb-panel-padding);
	background: var(--sb-booking-form-bg, var(--sb-color-surface));
	border: var(--sb-panel-border-width) solid var(--sb-panel-border-color);
	border-radius: var(--sb-panel-radius);
}

.sb-booking__heading,
.sb-booking-standalone__title {
	margin: 0;
	color: var(--sb-color-text);
	font-family: var(--sb-font-heading);
	font-size: var(--sb-heading-font-size);
	line-height: 1.25;
}

.sb-booking__summary,
.sb-booking-standalone__surface,
.sb-booking-standalone__detail {
	margin: 0;
	padding: var(--sb-section-gap);
	background: var(--sb-summary-bg);
	border: var(--sb-summary-border-width) solid var(--sb-summary-border-color);
	border-radius: var(--sb-summary-radius);
}

.sb-booking__summary-row {
	display: grid;
	grid-template-columns: minmax(7rem, 0.45fr) 1fr;
	gap: var(--sb-item-gap);
	padding: var(--sb-space-compact) 0;
	border-top: 1px solid var(--sb-summary-border-color);
}

.sb-booking__summary-row:first-child {
	padding-top: 0;
	border-top: 0;
}

.sb-booking__summary-row:last-child {
	padding-bottom: 0;
}

.sb-booking__form,
.sb-booking-standalone__form,
.sb-booking-standalone__panel {
	display: flex;
	flex-direction: column;
	gap: var(--sb-section-gap);
	margin: 0;
}

.sb-booking__field {
	display: flex;
	flex-direction: column;
	gap: var(--sb-space-compact);
}

.sb-booking__label,
.sb-booking-standalone__label,
.sb-booking-standalone__detail dt {
	color: var(--sb-color-muted);
	font-size: var(--sb-summary-label-font-size);
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.sb-booking__field input,
.sb-booking-standalone__input {
	width: 100%;
	padding: 0.75rem;
	color: var(--sb-color-text);
	background: var(--sb-card-bg);
	border: var(--sb-card-border-width) solid var(--sb-card-border-color);
	border-radius: var(--sb-card-radius);
	font: inherit;
}

.sb-booking__slot-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(7rem, 1fr));
	gap: var(--sb-item-gap);
}

.sb-booking__slot {
	display: flex;
	align-items: center;
	gap: var(--sb-space-compact);
	padding: 0.7rem;
	background: var(--sb-slot-bg);
	border: var(--sb-card-border-width) solid var(--sb-slot-border);
	border-radius: var(--sb-slot-radius);
	cursor: pointer;
}

.sb-booking__button,
.sb-booking-standalone__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	padding: 0.75rem 1.25rem;
	color: var(--sb-btn-primary-color);
	background: var(--sb-btn-primary-bg);
	border: 1px solid var(--sb-btn-primary-border);
	border-radius: var(--sb-btn-radius);
	font: inherit;
	text-decoration: none;
	cursor: pointer;
}

.sb-booking__button--secondary,
.sb-booking-standalone__button--secondary {
	color: var(--sb-btn-secondary-color);
	background: var(--sb-btn-secondary-bg);
	border-color: var(--sb-btn-secondary-border);
}

.sb-booking__button--danger {
	background: var(--sb-color-danger);
	border-color: var(--sb-color-danger);
}

.sb-booking__button:focus-visible,
.sb-booking-standalone__button:focus-visible,
.sb-booking__field input:focus-visible,
.sb-booking-standalone__input:focus-visible {
	outline: 2px solid var(--sb-booking-accent, var(--sb-color-text));
	outline-offset: 2px;
}

.sb-booking__notice,
.sb-booking-standalone__message {
	margin: 0;
	padding: 0.85rem 1rem;
	border-radius: var(--sb-card-radius);
	background: var(--sb-summary-bg);
	color: var(--sb-color-text);
}

.sb-booking__notice--error,
.sb-booking-standalone__message--error {
	background: var(--sb-color-danger-soft);
	color: var(--sb-color-danger);
}

.sb-booking-standalone__message--success {
	color: var(--sb-booking-accent, var(--sb-color-text));
}

.sb-booking-standalone__lead,
.sb-booking-standalone__note,
.sb-booking-standalone__subtitle {
	margin: 0;
	color: var(--sb-color-muted);
	font-size: var(--sb-lead-font-size);
	line-height: 1.6;
}

.sb-booking-standalone__slot,
.sb-booking-standalone__code {
	color: var(--sb-color-text);
	font-family: var(--sb-font-heading);
	font-weight: 700;
}

.sb-booking-standalone__code {
	display: inline-block;
	padding: var(--sb-space-compact) var(--sb-section-gap);
	background: var(--sb-summary-bg);
	border-radius: var(--sb-summary-radius);
	letter-spacing: 0.12em;
}

.sb-booking-standalone__logo {
	display: block;
	max-width: 100%;
	max-height: 60px;
	margin: 0 auto;
	object-fit: contain;
}

.sb-booking-standalone__icon {
	color: var(--sb-booking-accent, var(--sb-color-text));
	font-size: 2rem;
}

.sb-booking-standalone__page--verification {
	align-items: center;
	max-width: min(var(--sb-max-width), 30rem);
	text-align: center;
}

.sb-booking-standalone__detail {
	width: 100%;
	text-align: left;
}

.sb-booking-standalone__detail dt {
	margin-top: var(--sb-space-compact);
}

.sb-booking-standalone__detail dt:first-child {
	margin-top: 0;
}

.sb-booking-standalone__detail dd {
	margin: var(--sb-space-tight) 0 0;
	color: var(--sb-color-text);
	font-size: var(--sb-summary-value-font-size);
	font-weight: 600;
}

.sb-booking-standalone__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sb-item-gap);
}

.sb-booking-standalone__actions--stacked {
	flex-direction: column;
}

.sb-booking-standalone__badge {
	display: inline-flex;
	padding: var(--sb-space-tight) var(--sb-space-compact);
	border-radius: 999px;
	font-size: var(--sb-lead-font-size);
	font-weight: 600;
}

.sb-booking-standalone__badge--active {
	background: color-mix(in srgb, var(--sb-booking-accent, #2f7d32) 16%, var(--sb-color-surface));
	color: var(--sb-booking-accent, #2f7d32);
}

.sb-booking-standalone__badge--used,
.sb-booking-standalone__badge--pending {
	background: var(--sb-summary-bg);
	color: var(--sb-color-muted);
}

.sb-booking-standalone__badge--invalid {
	background: var(--sb-color-danger-soft);
	color: var(--sb-color-danger);
}

@media (max-width: 480px) {
	body.sb-booking-standalone {
		padding: var(--sb-space-compact);
	}

	.sb-booking,
	.sb-booking-standalone__page {
		padding: var(--sb-section-gap);
	}

	.sb-booking__summary-row {
		grid-template-columns: 1fr;
		gap: var(--sb-space-tight);
	}

	.sb-booking__button,
	.sb-booking-standalone__button {
		width: 100%;
	}
}
