/**
 * RAT brand profile for the NOWP CHBS integration.
 */

.nowp-production-shell .nowp-booking--profile-rat {
	--nowp-booking-accent: var(--nowp-gold);
	--nowp-booking-accent-strong: var(--nowp-gold-dark);
	--nowp-booking-ink: var(--nowp-black);
	--nowp-booking-muted: #666666;
	--nowp-booking-surface: var(--nowp-surface-card);
	--nowp-booking-section-surface: var(--nowp-section-light);
	--nowp-booking-field-surface: var(--nowp-surface-field);
	--nowp-booking-summary-surface: var(--nowp-surface-nested);
	--nowp-booking-extra-surface: var(--nowp-surface-nested);
	--nowp-booking-field-ink: #1f1f1f;
	--nowp-booking-border: #e8e1d8;
	--nowp-booking-divider: #eee7de;
	--nowp-booking-step-surface: var(--nowp-surface-nested);
	--nowp-booking-step-muted: #8a8175;
	--nowp-booking-step-complete: #bfa67f;
	--nowp-booking-summary-label: #9c9386;
	--nowp-booking-secondary-surface: var(--nowp-surface-nested);
	--nowp-booking-button-hover: #b89f78;
	--nowp-booking-price: #c6ab82;
	--nowp-booking-focus-ring: rgba(214, 195, 165, 0.18);
	--nowp-booking-focus: var(--nowp-booking-accent);
	--nowp-booking-radius: var(--nowp-surface-radius, 0);
	--nowp-error: #8b1e1e;
	color: var(--nowp-booking-ink);
	padding: 90px 20px;
	border-top: 1px solid var(--nowp-booking-border);
	background: var(--nowp-booking-section-surface);
}

.nowp-booking--profile-rat .nowp-booking-inner {
	max-width: 1180px;
}

.nowp-booking--profile-rat .nowp-booking-kicker {
	margin-bottom: 12px;
	color: var(--nowp-booking-muted);
	font-size: var(--nowp-type-kicker-size);
	font-weight: var(--nowp-type-kicker-weight);
	letter-spacing: var(--nowp-type-kicker-tracking);
	line-height: var(--nowp-type-kicker-line-height);
	text-transform: none;
}

.nowp-booking--profile-rat .nowp-booking-title {
	max-width: 760px;
	margin-inline: auto;
	margin-bottom: 16px;
	font-size: var(--nowp-type-h2-size);
	font-weight: var(--nowp-type-h2-weight);
	letter-spacing: var(--nowp-type-h2-tracking);
	line-height: var(--nowp-type-h2-line-height);
}

.nowp-booking--profile-rat .nowp-booking-subtitle {
	margin-bottom: 40px;
	color: var(--nowp-booking-muted);
	font-size: var(--nowp-type-body-size);
	font-weight: var(--nowp-type-body-weight);
	letter-spacing: var(--nowp-type-body-tracking);
	line-height: var(--nowp-type-body-line-height);
}

.nowp-booking--profile-rat .nowp-booking__engine {
	max-width: 980px;
	margin: 0 auto;
	padding: 28px;
	overflow: hidden;
	border: 1px solid var(--nowp-booking-border);
	border-radius: var(--nowp-booking-radius);
	background: transparent;
	box-shadow: none;
}

/* Without Maps consent CHBS keeps its widget chbs-hidden, so the wrapper has
   nothing to frame: drop the box entirely instead of showing an empty border. */
.nowp-booking--profile-rat .nowp-booking__engine.nowp-chbs-slot--awaiting-consent {
	padding: 0;
	border: 0;
	margin-block: 0;
}

.nowp-booking--profile-rat .nowp-booking__engine--unavailable {
	border: 1px solid var(--nowp-booking-border);
	background: var(--nowp-booking-section-surface);
	color: var(--nowp-booking-muted);
}

.nowp-booking--profile-rat .chbs-main-content-navigation-button {
	padding-inline-end: 0;
}

/* CHBS owns the preloader lifecycle; the RAT profile supplies its visible UI. */
.nowp-booking--profile-rat #chbs-preloader {
	z-index: 1000 !important;
	background: rgba(255, 255, 255, 0.86) !important;
	backdrop-filter: blur(1px);
}

.nowp-booking--profile-rat #chbs-preloader > div {
	display: grid;
	place-items: center;
	background-image: none !important;
}

.nowp-booking--profile-rat #chbs-preloader > div::before {
	width: 46px;
	height: 46px;
	border: 4px solid rgba(184, 157, 119, 0.28);
	border-top-color: var(--nowp-booking-accent-strong);
	border-radius: 50%;
	content: "";
	animation: nowp-chbs-spinner 0.75s linear infinite;
}

@keyframes nowp-chbs-spinner {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.nowp-booking--profile-rat #chbs-preloader > div::before {
		animation-duration: 1.5s;
	}
}

/* Validation feedback. Unmatched qTips retain this readable fallback. */
.nowp-booking--profile-rat .chbs-main :is(.chbs-qtip, .chbs-notice, .chbs-notice-fixed),
.nowp-booking--profile-rat .chbs-main :is(.chbs-qtip, .chbs-notice, .chbs-notice-fixed) .qtip-content {
	border-color: var(--nowp-error) !important;
	border-radius: 0 !important;
	background: var(--nowp-error) !important;
	color: var(--nowp-white, #ffffff) !important;
}

.nowp-booking--profile-rat .chbs-main :is(.chbs-qtip, .chbs-notice, .chbs-notice-fixed) :where(a, span, strong, p) {
	color: var(--nowp-white, #ffffff) !important;
}

.nowp-booking--profile-rat .chbs-qtip.nowp-chbs-qtip--converted {
	display: none !important;
}

.nowp-booking--profile-rat .nowp-chbs-inline-error {
	clear: both;
	width: 100%;
	margin: 0;
	padding: 6px 0 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--nowp-error);
	font-size: var(--nowp-type-small-size);
	font-weight: var(--nowp-type-button-weight);
	line-height: var(--nowp-type-small-line-height);
}

.nowp-booking--profile-rat .chbs-form-field.nowp-chbs-field--invalid :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea, .ui-selectmenu-button),
.nowp-booking--profile-rat .chbs-form-field :is(input, textarea, select)[aria-invalid="true"],
.nowp-booking--profile-rat .chbs-form-field.chbs-state-error :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea, .ui-selectmenu-button),
.nowp-booking--profile-rat .chbs-form-field-error :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), textarea, .ui-selectmenu-button) {
	border: 2px solid var(--nowp-error) !important;
	border-radius: 0 !important;
}

.nowp-booking--profile-rat .chbs-form-field.nowp-chbs-field--invalid input:is([type="checkbox"], [type="radio"]),
.nowp-booking--profile-rat .chbs-form-field input:is([type="checkbox"], [type="radio"])[aria-invalid="true"] {
	border-radius: 0 !important;
	outline: 2px solid var(--nowp-error) !important;
	outline-offset: 2px;
}

/* CHBS navigation buttons. */
.nowp-booking--profile-rat a.chbs-button.chbs-button-style-1.chbs-button-step-next {
	border: 1px solid var(--nowp-booking-accent) !important;
	border-radius: var(--nowp-button-radius, 0) !important;
	background-color: var(--nowp-booking-accent) !important;
	color: #000000 !important;
}

.nowp-booking--profile-rat a.chbs-button.chbs-button-style-1.chbs-button-step-next:hover,
.nowp-booking--profile-rat a.chbs-button.chbs-button-style-1.chbs-button-step-next:focus-visible {
	border-color: var(--nowp-booking-step-complete) !important;
	background-color: var(--nowp-booking-button-hover) !important;
	color: var(--nowp-white) !important;
}

.nowp-booking--profile-rat a.chbs-button.chbs-button-style-2 {
	border: 1px solid var(--nowp-booking-accent) !important;
	border-radius: var(--nowp-button-radius, 0) !important;
	background-color: var(--nowp-booking-secondary-surface) !important;
	color: #000000 !important;
}

.nowp-booking--profile-rat a.chbs-button.chbs-button-style-2:hover,
.nowp-booking--profile-rat a.chbs-button.chbs-button-style-2:focus-visible,
.nowp-booking--profile-rat a.chbs-button.chbs-button-style-2.chbs-state-selected {
	border-color: var(--nowp-booking-accent) !important;
	background-color: var(--nowp-booking-accent) !important;
	color: var(--nowp-white) !important;
}

.nowp-booking--profile-rat .nowp-booking__engine :where(.chbs-button, button, input[type="button"], input[type="submit"]) {
	border-radius: var(--nowp-button-radius, 0);
}

/* Four-step desktop progress navigation. */
.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset {
	position: relative;
	border-bottom: 0 !important;
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset::after {
	position: absolute;
	top: 25px;
	left: 0;
	right: 0;
	z-index: 0;
	height: 1px;
	background: var(--nowp-booking-border);
	content: "";
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset > li > a > span:first-child {
	border: 1px solid var(--nowp-booking-border) !important;
	border-radius: var(--nowp-button-radius, 0) !important;
	background: var(--nowp-booking-step-surface) !important;
	color: var(--nowp-booking-step-muted) !important;
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset > li.chbs-state-selected > a > span:first-child {
	border-color: var(--nowp-booking-accent) !important;
	background: var(--nowp-booking-accent) !important;
	color: var(--nowp-white) !important;
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset > li.chbs-state-completed > a > span:first-child {
	border-color: var(--nowp-booking-step-complete) !important;
	background: var(--nowp-booking-step-complete) !important;
	color: var(--nowp-white) !important;
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset > li > a > span:last-child {
	color: var(--nowp-booking-step-muted) !important;
	font-weight: var(--nowp-type-body-weight) !important;
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset > li.chbs-state-selected > a > span:last-child {
	color: var(--nowp-booking-ink) !important;
	font-weight: var(--nowp-type-button-weight) !important;
}

.nowp-booking--profile-rat .chbs-main-navigation-default ul.chbs-list-reset > li.chbs-state-completed > a > span:last-child {
	color: #5f5648 !important;
	font-weight: var(--nowp-type-body-weight) !important;
}

/* CHBS field shells and interactive controls. */
.nowp-booking--profile-rat .chbs-form-field,
.nowp-booking--profile-rat .chbs-form-field > div {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

.nowp-booking--profile-rat .chbs-form-field-location-autocomplete > input[type="text"],
.nowp-booking--profile-rat input.pac-target-input,
.nowp-booking--profile-rat input.chbs-datepicker,
.nowp-booking--profile-rat input.chbs-timepicker,
.nowp-booking--profile-rat .chbs-form-field-select,
.nowp-booking--profile-rat .chbs-form-field-transfer-type .ui-selectmenu-button {
	border: 1px solid var(--nowp-booking-border) !important;
	border-radius: var(--nowp-surface-radius, 0) !important;
	background: var(--nowp-booking-field-surface) !important;
	box-shadow: none !important;
	color: var(--nowp-booking-field-ink) !important;
}

.nowp-booking--profile-rat .chbs-form-field-location-autocomplete > input[type="text"],
.nowp-booking--profile-rat .chbs-form-field-transfer-type .ui-selectmenu-text {
	font-weight: var(--nowp-type-body-weight) !important;
}

.nowp-booking--profile-rat .chbs-form-field-location-autocomplete > input[type="text"]::placeholder {
	color: var(--nowp-booking-field-ink);
	opacity: 1;
}

/* CHBS phone field: fallback only. chbs-profile-rat.js now keeps this
   placeholder empty, so in working order nothing here is visible. It earns its
   place in the degraded case — a script error before the watcher attaches, or
   the file not loading while this one does — where intl-tel-input's example
   number reappears and would once again read as a value already entered.
   Italic and clearly paler marks it as a format hint instead. Scoped to this
   one input, never to placeholders at large; #8a837a keeps 3.6:1 on the field
   surface, so it stays readable. */
.nowp-production-shell .nowp-chbs-slot input[name="chbs_client_contact_detail_phone_number_placeholder"]::placeholder {
	color: #8a837a;
	font-style: italic;
	opacity: 1;
}

.nowp-booking--profile-rat .chbs-form-field-location-autocomplete > input[type="text"]:hover,
.nowp-booking--profile-rat input.pac-target-input:hover,
.nowp-booking--profile-rat input.chbs-datepicker:hover,
.nowp-booking--profile-rat input.chbs-timepicker:hover,
.nowp-booking--profile-rat .chbs-form-field-select:hover,
.nowp-booking--profile-rat .chbs-form-field-transfer-type .ui-selectmenu-button:hover {
	border-color: var(--nowp-booking-accent) !important;
}

.nowp-booking--profile-rat .chbs-form-field-location-autocomplete > input[type="text"]:focus,
.nowp-booking--profile-rat input.pac-target-input:focus,
.nowp-booking--profile-rat input.chbs-datepicker:focus,
.nowp-booking--profile-rat input.chbs-timepicker:focus,
.nowp-booking--profile-rat .chbs-form-field-select:focus,
.nowp-booking--profile-rat .chbs-form-field-select.ui-state-focus,
.nowp-booking--profile-rat .chbs-form-field-transfer-type .ui-selectmenu-button:focus,
.nowp-booking--profile-rat .chbs-form-field-transfer-type .ui-selectmenu-button.ui-state-focus {
	border-color: var(--nowp-booking-accent) !important;
	outline: none !important;
	box-shadow: 0 0 0 2px var(--nowp-booking-focus-ring) !important;
}

/* Contact controls inserted by CHBS after entering step 3. */
.nowp-booking--profile-rat .chbs-main-content-step-3 .chbs-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.nowp-booking--profile-rat .chbs-main-content-step-3 .chbs-form-field textarea {
	border: 1px solid var(--nowp-booking-border) !important;
	border-radius: var(--nowp-surface-radius, 0) !important;
	background: var(--nowp-booking-field-surface) !important;
	box-shadow: none !important;
	color: var(--nowp-booking-field-ink) !important;
}

.nowp-booking--profile-rat .chbs-main-content-step-3 .chbs-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):hover,
.nowp-booking--profile-rat .chbs-main-content-step-3 .chbs-form-field textarea:hover {
	border-color: var(--nowp-booking-accent) !important;
}

.nowp-booking--profile-rat .chbs-main-content-step-3 .chbs-form-field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):focus,
.nowp-booking--profile-rat .chbs-main-content-step-3 .chbs-form-field textarea:focus {
	border-color: var(--nowp-booking-accent) !important;
	outline: none !important;
	box-shadow: 0 0 0 2px var(--nowp-booking-focus-ring) !important;
}

/* Extra rows are populated asynchronously in step 2. */
.nowp-booking--profile-rat .chbs-booking-extra-category-list > div,
.nowp-booking--profile-rat .chbs-booking-extra-category-list > div > a,
.nowp-booking--profile-rat .chbs-booking-extra-list > ul > li,
.nowp-booking--profile-rat .chbs-booking-extra-list > ul > li > div,
.nowp-booking--profile-rat .chbs-booking-extra-list > ul > li > div.chbs-column-1 > div.chbs-column-1-left,
.nowp-booking--profile-rat .chbs-booking-extra-list > ul > li > div.chbs-column-1 > div.chbs-column-1-right,
.nowp-booking--profile-rat .chbs-booking-extra-list > ul > li > div.chbs-column-2 > .chbs-form-field,
.nowp-booking--profile-rat .chbs-booking-extra-list > ul > li > div.chbs-column-3 {
	border-color: var(--nowp-booking-border) !important;
	background-color: var(--nowp-booking-extra-surface) !important;
}

.nowp-booking--profile-rat .chbs-main .chbs-booking-extra-list > ul > li.chbs-booking-extra-list-item-quantity-enable,
.nowp-booking--profile-rat .chbs-main .chbs-booking-extra-list > li.chbs-booking-extra-list-item-quantity-enable,
.nowp-booking--profile-rat .chbs-main .chbs-booking-extra-list > ul > li.chbs-booking-extra-list-item-quantity-enable > div.chbs-column-2 > div.chbs-form-field > div.chbs-quantity-section,
.nowp-booking--profile-rat .chbs-main .chbs-booking-extra-list > li.chbs-booking-extra-list-item-quantity-enable > div.chbs-column-2 > div.chbs-form-field > div.chbs-quantity-section,
.nowp-booking--profile-rat .chbs-main .chbs-booking-extra-list > ul > li.chbs-booking-extra-list-item-quantity-enable > div.chbs-column-2 > div.chbs-form-field > div.chbs-quantity-section input[type="text"],
.nowp-booking--profile-rat .chbs-main .chbs-booking-extra-list > li.chbs-booking-extra-list-item-quantity-enable > div.chbs-column-2 > div.chbs-form-field > div.chbs-quantity-section input[type="text"] {
	background-color: var(--nowp-booking-extra-surface) !important;
}

/* Vehicle pricing. */
.nowp-booking--profile-rat .chbs-vehicle-content-price span {
	color: var(--nowp-booking-price) !important;
	font-size: var(--nowp-type-h3-size) !important;
	font-weight: var(--nowp-type-h3-weight) !important;
	letter-spacing: var(--nowp-type-h3-tracking);
	line-height: var(--nowp-type-h3-line-height);
	text-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}

/* Booking summary. */
.nowp-booking--profile-rat .chbs-summary {
	padding: 28px 20px 20px !important;
	border: 1px solid var(--nowp-booking-border) !important;
	border-radius: var(--nowp-surface-radius, 0) !important;
	background: var(--nowp-booking-summary-surface) !important;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.04) !important;
}

.nowp-booking--profile-rat .chbs-summary h1,
.nowp-booking--profile-rat .chbs-summary h2,
.nowp-booking--profile-rat .chbs-summary h3,
.nowp-booking--profile-rat .chbs-summary h4,
.nowp-booking--profile-rat .chbs-summary h5,
.nowp-booking--profile-rat .chbs-summary h6 {
	margin-bottom: 18px !important;
	color: var(--nowp-booking-ink) !important;
	font-size: var(--nowp-type-h3-size) !important;
	font-weight: var(--nowp-type-h3-weight) !important;
	letter-spacing: var(--nowp-type-h3-tracking) !important;
	line-height: var(--nowp-type-h3-line-height) !important;
}

.nowp-booking--profile-rat .chbs-summary,
.nowp-booking--profile-rat .chbs-summary * {
	color: var(--nowp-booking-muted);
}

.nowp-booking--profile-rat .chbs-summary .chbs-meta-name,
.nowp-booking--profile-rat .chbs-summary .chbs-summary-meta-name,
.nowp-booking--profile-rat .chbs-summary .chbs-summary-field-name,
.nowp-booking--profile-rat .chbs-summary .chbs-label {
	color: var(--nowp-booking-step-muted) !important;
	font-size: var(--nowp-type-small-size) !important;
	font-weight: var(--nowp-type-small-weight) !important;
	letter-spacing: var(--nowp-type-small-tracking);
	line-height: var(--nowp-type-small-line-height);
	text-transform: uppercase;
}

.nowp-booking--profile-rat .chbs-summary .chbs-meta-value,
.nowp-booking--profile-rat .chbs-summary .chbs-summary-meta-value,
.nowp-booking--profile-rat .chbs-summary .chbs-summary-field-value,
.nowp-booking--profile-rat .chbs-summary p,
.nowp-booking--profile-rat .chbs-summary span,
.nowp-booking--profile-rat .chbs-summary div {
	color: #222222;
}

.nowp-booking--profile-rat .chbs-summary hr {
	margin: 12px 0 !important;
	border: 0 !important;
	border-top: 1px solid var(--nowp-booking-divider) !important;
}

.nowp-booking--profile-rat .chbs-summary > * {
	margin-bottom: 0 !important;
}

.nowp-booking--profile-rat .chbs-summary-price-element-total {
	margin-top: 18px !important;
	padding-top: 12px !important;
	border-top: 2px solid var(--nowp-booking-price) !important;
}

.nowp-booking--profile-rat .chbs-summary-price-element-total * {
	color: var(--nowp-booking-ink) !important;
	font-size: var(--nowp-type-button-size) !important;
	font-weight: var(--nowp-type-button-weight) !important;
	line-height: var(--nowp-type-button-line-height) !important;
}

.nowp-booking--profile-rat .chbs-summary .chbs-summary-field .chbs-summary-field-name {
	color: var(--nowp-booking-summary-label) !important;
	font-size: var(--nowp-type-small-size) !important;
	letter-spacing: var(--nowp-type-small-tracking) !important;
	line-height: var(--nowp-type-small-line-height) !important;
	text-transform: uppercase !important;
}

.nowp-booking--profile-rat .chbs-summary-field-value {
	color: var(--nowp-booking-ink) !important;
	font-size: var(--nowp-type-small-size) !important;
	font-weight: var(--nowp-type-small-weight) !important;
	line-height: var(--nowp-type-small-line-height) !important;
}

.nowp-booking--profile-rat .chbs-summary-field-name {
	margin-bottom: 4px !important;
}

.nowp-booking--profile-rat .nowp-booking__group-cta {
	box-sizing: border-box;
	max-width: 980px;
	margin-inline: auto;
	border: 1px solid var(--nowp-booking-border);
	border-radius: var(--nowp-booking-radius);
	background: var(--nowp-booking-section-surface);
}

.nowp-booking--profile-rat.nowp-booking--step-2 .nowp-booking__group-cta,
.nowp-booking--profile-rat.nowp-booking--step-3 .nowp-booking__group-cta,
.nowp-booking--profile-rat.nowp-booking--step-4 .nowp-booking__group-cta,
.nowp-booking--profile-rat.nowp-booking--step-5 .nowp-booking__group-cta {
	display: none;
}

.nowp-booking--profile-rat .nowp-booking__group-cta p {
	color: var(--nowp-booking-muted);
}

.nowp-booking--profile-rat .nowp-booking__group-link {
	border: 1px solid var(--nowp-booking-accent);
	border-radius: var(--nowp-button-radius, 0);
	background: var(--nowp-booking-secondary-surface);
	color: var(--nowp-booking-ink);
	font-weight: var(--nowp-type-button-weight);
}

.nowp-booking--profile-rat .nowp-booking__group-link:hover {
	border-color: var(--nowp-booking-accent);
	background: var(--nowp-booking-accent);
	color: var(--nowp-white);
}

@media (max-width: 1024px) {
.nowp-booking--profile-rat {
		padding: 75px 20px;
	}

	.nowp-booking--profile-rat .nowp-booking__engine {
		padding: 22px;
	}
}

.nowp-booking--profile-rat,
.nowp-booking--profile-rat *,
.nowp-booking--profile-rat input,
.nowp-booking--profile-rat select,
.nowp-booking--profile-rat textarea,
.nowp-booking--profile-rat button {
	font-family: var(--nowp-font-family) !important;
}

@media (max-width: 767px) {
	.nowp-booking--profile-rat {
		padding: 60px 16px;
	}

	.nowp-booking--profile-rat .nowp-booking__engine {
		padding: 16px;
	}
}
