/*==========================================================================
  LUXELINE CHBS EXPERIENCE — SHARED FOUNDATION — CODE VERSION 3.0.0
  Scope: dedicated /booking/ page, booking form ID 10007 only.
  Homepage widget and Airport Transfers companion logic remain untouched.
==========================================================================*/

.lux-chbs-booking-experience {
	--lux-chbs-bg: #181416;
	--lux-chbs-bg-deep: #121013;
	--lux-chbs-bg-soft: #231b1f;
	--lux-chbs-plum: #6b2944;
	--lux-chbs-plum-light: #a1435a;
	--lux-chbs-plum-dark: #3b222d;
	--lux-chbs-champagne: #e1c582;
	--lux-chbs-ivory: #fbf8f3;
	--lux-chbs-ivory-deep: #f5efe7;
	--lux-chbs-line: #ded2c5;
	--lux-chbs-ink: #241f21;
	--lux-chbs-copy: #d9d1d2;
	--lux-chbs-muted: #756d6e;
	--lux-chbs-danger: #a72d48;
	--lux-chbs-page-width: 1760px;
	--lux-chbs-page-gutter: clamp(24px, 2.5vw, 48px);
	--lux-chbs-header-space: 148px;
	--lux-chbs-radius: 18px;
	--lux-chbs-field-radius: 12px;
	--lux-chbs-serif: var(
		--e-global-typography-primary-font-family,
		"Cormorant Garamond"
	), "Playfair Display", Georgia, serif;
	--lux-chbs-sans: var(
		--e-global-typography-text-font-family,
		"Manrope"
	), "Montserrat", Arial, sans-serif;

	background:
		radial-gradient(circle at 8% 5%, rgba(161, 67, 90, 0.17), transparent 28%),
		radial-gradient(circle at 91% 78%, rgba(225, 197, 130, 0.07), transparent 26%),
		linear-gradient(135deg, #1d171a 0%, var(--lux-chbs-bg) 46%, var(--lux-chbs-bg-deep) 100%);
}

.lux-chbs-booking-experience,
.lux-chbs-booking-experience #page,
.lux-chbs-booking-experience #content,
.lux-chbs-booking-experience .site-content,
.lux-chbs-booking-experience .ast-container {
	min-height: 100vh;
	background-color: transparent;
}

.lux-chbs-booking-experience .chbs-booking-form-id-10007,
.lux-chbs-booking-experience .chbs-booking-form-id-10007 * {
	box-sizing: border-box;
}

.lux-chbs-booking-experience .chbs-main.chbs-booking-form-id-10007 {
	position: relative;
	width: min(
		calc(100% - var(--lux-chbs-page-gutter) - var(--lux-chbs-page-gutter)),
		var(--lux-chbs-page-width)
	) !important;
	max-width: var(--lux-chbs-page-width) !important;
	margin: 0 auto !important;
	padding: var(--lux-chbs-header-space) 0 clamp(44px, 5vw, 82px) !important;
	color: #fff;
	font-family: var(--lux-chbs-sans);
}

.lux-chbs-booking-experience .chbs-main.chbs-booking-form-id-10007 > form,
.lux-chbs-booking-experience .chbs-main.chbs-booking-form-id-10007 .chbs-main-content {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding-inline: 0 !important;
}

/*=========================================================================
  FOUR-STEP JOURNEY NAVIGATION — ALL VIEWPORTS
  Uses the native CHBS states; only presentation is changed.
=========================================================================*/

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-responsive {
	display: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default {
	--lux-nav-circle: 46px;
	--lux-nav-number: 16px;
	--lux-nav-label: clamp(12px, 0.88vw, 15px);
	--lux-nav-row-gap: 12px;
	display: block !important;
	width: 100% !important;
	margin: 0 0 clamp(28px, 2.4vw, 42px) !important;
	padding: 0 clamp(10px, 1vw, 18px) !important;
	overflow: visible !important;
	border: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li {
	position: relative !important;
	float: none !important;
	width: auto !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	text-align: center !important;
}

/* Connector from the centre of this circle to the centre of the next. */
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> div {
	position: absolute !important;
	z-index: 0 !important;
	top: calc(var(--lux-nav-circle) / 2) !important;
	left: 50% !important;
	display: block !important;
	width: 100% !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	background: rgba(255, 255, 255, 0.42) !important;
	box-shadow: none !important;
	transform: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li:last-child
	> div {
	display: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li.chbs-state-completed
	> div {
	background: linear-gradient(90deg, var(--lux-chbs-plum-light), var(--lux-chbs-plum)) !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a,
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a:hover,
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a:focus,
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a:active {
	position: relative !important;
	z-index: 1 !important;
	display: grid !important;
	grid-template-rows: var(--lux-nav-circle) auto !important;
	justify-items: center !important;
	gap: var(--lux-nav-row-gap) !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 8px !important;
	color: rgba(217, 209, 210, 0.76) !important;
	border: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-family: var(--lux-chbs-sans) !important;
	text-decoration: none !important;
	-webkit-tap-highlight-color: transparent !important;
}

/* The visible circle. Native CHBS's 10px transparent outline is removed. */
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a
	> span:first-child {
	position: relative !important;
	display: block !important;
	width: var(--lux-nav-circle) !important;
	height: var(--lux-nav-circle) !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	color: #66727e !important;
	border: 1px solid rgba(255, 255, 255, 0.72) !important;
	border-radius: 50% !important;
	outline: 0 !important;
	background: #f0f1f2 !important;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.14) !important;
	font-size: var(--lux-nav-number) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-align: center !important;
}

/* Absolute centring defeats CHBS's native line-height:50px rule. */
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a
	> span:first-child
	> span:first-child,
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a
	> span:first-child
	> .chbs-meta-icon-tick {
	position: absolute !important;
	inset: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: var(--lux-nav-number) !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	text-align: center !important;
	transform: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a
	> span:first-child
	> .chbs-meta-icon-tick {
	display: none !important;
	font-size: calc(var(--lux-nav-number) + 2px) !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li.chbs-state-selected
	> a
	> span:first-child {
	color: #fff !important;
	border-color: rgba(225, 197, 130, 0.35) !important;
	background: linear-gradient(135deg, var(--lux-chbs-plum-light), var(--lux-chbs-plum-dark)) !important;
	box-shadow: 0 10px 26px rgba(91, 31, 55, 0.35), inset 0 1px rgba(255, 255, 255, 0.18) !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li.chbs-state-completed
	> a
	> span:first-child {
	color: var(--lux-chbs-plum) !important;
	border-color: rgba(107, 41, 68, 0.2) !important;
	background: var(--lux-chbs-ivory) !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li.chbs-state-completed
	> a
	> span:first-child
	> span:first-child {
	display: none !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li.chbs-state-completed
	> a
	> span:first-child
	> .chbs-meta-icon-tick {
	display: flex !important;
}

/* Accessible focus remains on the circle, never as a rectangle around the item. */
.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a:focus-visible
	> span:first-child {
	box-shadow: 0 0 0 3px rgba(225, 197, 130, 0.72), 0 8px 20px rgba(0, 0, 0, 0.14) !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li
	> a
	> span:last-child {
	display: block !important;
	max-width: 240px !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: visible !important;
	color: rgba(217, 209, 210, 0.72) !important;
	font-size: var(--lux-nav-label) !important;
	font-weight: 500 !important;
	line-height: 1.28 !important;
	text-align: center !important;
}

.lux-chbs-booking-experience
	.chbs-main.chbs-booking-form-id-10007
	.chbs-main-navigation-default
	> ul
	> li.chbs-state-selected
	> a
	> span:last-child {
	color: #fff !important;
	font-weight: 650 !important;
}

@media (max-width: 1024px) {
	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default {
		--lux-nav-circle: 36px;
		--lux-nav-number: 13px;
		--lux-nav-label: clamp(9px, 1.65vw, 12px);
		--lux-nav-row-gap: 8px;
		margin-bottom: clamp(22px, 4vw, 32px) !important;
		padding-inline: 2px !important;
	}

	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default
		> ul
		> li
		> a {
		padding-inline: 3px !important;
	}

	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default
		> ul
		> li
		> a
		> span:last-child {
		max-width: 100% !important;
	}
}

@media (max-width: 767px) {
	.lux-chbs-booking-experience .chbs-main.chbs-booking-form-id-10007 {
		width: calc(
			100% - max(14px, env(safe-area-inset-left)) -
				max(14px, env(safe-area-inset-right))
		) !important;
	}

	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default {
		--lux-nav-circle: 34px;
		--lux-nav-number: 12px;
		--lux-nav-label: clamp(8.5px, 2.35vw, 11px);
		--lux-nav-row-gap: 7px;
		padding-inline: 0 !important;
	}

	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default
		> ul
		> li
		> a {
		padding-inline: 1px !important;
	}
}

@media (max-width: 390px) {
	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default {
		--lux-nav-label: 8.5px;
	}

	.lux-chbs-booking-experience
		.chbs-main.chbs-booking-form-id-10007
		.chbs-main-navigation-default
		> ul
		> li
		> a
		> span:last-child {
		letter-spacing: -0.01em !important;
	}
}

/*=========================================================================
  SHARED BUTTON LANGUAGE
=========================================================================*/

.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	a.chbs-button.chbs-button-style-1,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	button.chbs-button.chbs-button-style-1,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	input[type="submit"] {
	float: none !important;
	position: relative;
	z-index: 0;
	isolation: isolate;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 58px;
	padding: 15px 30px !important;
	overflow: hidden !important;
	color: #fff !important;
	border: 1px solid rgba(255, 255, 255, 0.42) !important;
	border-radius: 10px !important;
	outline: 0;
	background-color: var(--lux-chbs-plum-dark) !important;
	background-image:
		linear-gradient(90deg, #171316, #171316),
		linear-gradient(115deg, var(--lux-chbs-plum-light), var(--lux-chbs-plum-dark)) !important;
	background-position: left center, center !important;
	background-repeat: no-repeat !important;
	background-size: 0% 100%, 100% 100% !important;
	box-shadow:
		0 14px 30px rgba(19, 12, 15, 0.24),
		inset 0 1px rgba(255, 255, 255, 0.08) !important;
	font-family: var(--lux-chbs-sans) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: 0.09em;
	text-align: center;
	text-decoration: none !important;
	text-transform: uppercase;
	cursor: pointer;
	transition:
		background-size 440ms cubic-bezier(0.65, 0, 0.35, 1),
		transform 160ms ease,
		box-shadow 220ms ease !important;
}

.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	a.chbs-button.chbs-button-style-1:hover,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	a.chbs-button.chbs-button-style-1:focus-visible,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	button.chbs-button.chbs-button-style-1:hover,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	button.chbs-button.chbs-button-style-1:focus-visible,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	input[type="submit"]:hover,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	input[type="submit"]:focus-visible {
	color: #fff !important;
	background-size: 100% 100%, 100% 100% !important;
	box-shadow:
		0 18px 38px rgba(74, 24, 45, 0.3),
		inset 0 1px rgba(255, 255, 255, 0.14) !important;
}

.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	a.chbs-button.chbs-button-style-1:active,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	button.chbs-button.chbs-button-style-1:active,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	input[type="submit"]:active {
	transform: translateY(1px) scale(0.995);
}

.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	a.chbs-button:focus-visible,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	button.chbs-button:focus-visible,
.lux-chbs-booking-experience
	.chbs-booking-form-id-10007
	input[type="submit"]:focus-visible {
	outline: 3px solid rgba(225, 197, 130, 0.78) !important;
	outline-offset: 3px;
}

/* Keep native button pseudo-elements from drawing over the brand button. */
.lux-chbs-booking-experience .chbs-booking-form-id-10007 a.chbs-button::before,
.lux-chbs-booking-experience .chbs-booking-form-id-10007 a.chbs-button::after,
.lux-chbs-booking-experience .chbs-booking-form-id-10007 button.chbs-button::before,
.lux-chbs-booking-experience .chbs-booking-form-id-10007 button.chbs-button::after {
	display: none !important;
	content: none !important;
}

@media (max-width: 1024px) {
	.lux-chbs-booking-experience {
		--lux-chbs-page-gutter: clamp(16px, 4vw, 34px);
		--lux-chbs-header-space: 126px;
	}

	.lux-chbs-booking-experience .chbs-main.chbs-booking-form-id-10007 {
		padding-bottom: 48px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lux-chbs-booking-experience *,
	.lux-chbs-booking-experience *::before,
	.lux-chbs-booking-experience *::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
