/*
Theme Name:   GeneratePress Child
Theme URI:    https://generatepress.com
Description:  VIP Transfer sitesi icin GeneratePress child theme
Author:       Huseyin Emir
Template:     generatepress
Version:      1.0.0
Text Domain:  generatepress-child
*/

/* Ozel CSS kodlarin buraya. Ana tema guncellenince silinmez. */

/* =====================================================================
   FRONT PAGE HERO  (.bt-hero)
   Prefixed with "bt-hero" so it won't clash with theme/plugin styles.
   Mobile-first, no JavaScript, fluid type via clamp().
   ===================================================================== */

.bt-hero {
	position: relative;
	display: flex;
	align-items: center;            /* vertically centre the content */
	min-height: 70vh;               /* mobile height */
	background-image: var(--bt-hero-sm, none);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	overflow: hidden;
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
	.bt-hero {
		background-image: var(--bt-hero-sm-2x, var(--bt-hero-sm, none));
	}
}

@media (min-width: 768px) {
	.bt-hero {
		background-image: var(--bt-hero-lg, var(--bt-hero-sm, none));
	}
}

@media (min-width: 768px) and (-webkit-min-device-pixel-ratio: 2),
       (min-width: 768px) and (min-resolution: 2dppx) {
	.bt-hero {
		background-image: var(--bt-hero-lg-2x, var(--bt-hero-lg, none));
	}
}

/* Ken Burns: animate a bg copy so layout/content stay still. */
.bt-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	background-image: inherit;
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	transform: scale(1);
	transform-origin: center center;
	animation: bt-hero-kenburns 20s ease infinite alternate;
}

@keyframes bt-hero-kenburns {
	from { transform: scale(1); }
	to   { transform: scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
	.bt-hero::after {
		animation: none;
	}
}

/* Soft diagonal overlay — darker at the content corner for readability. */
.bt-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(26, 26, 26, 0.88) 0%,
		rgba(26, 26, 26, 0.62) 42%,
		rgba(26, 26, 26, 0.32) 72%,
		rgba(26, 26, 26, 0.18) 100%
	);
	z-index: 1;
}

/* Content wrapper — left aligned, sits above the overlay. */
.bt-hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(2rem, 6vw, 5rem) clamp(1.25rem, 5vw, 4rem);
	text-align: left;
}

/* Headline — Poppins, falls back to sans-serif. */
.bt-hero__title {
	margin: 0 0 0.5rem;
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	line-height: 1.1;
	color: #ffffff;
	font-size: clamp(2rem, 6vw, 3.75rem);
	max-width: 15ch;
}

/* Gold subline. */
.bt-hero__subline {
	margin: 0 0 1.25rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: #d4af37;
	font-size: clamp(1.125rem, 2.5vw, 1.5rem);
}

/* Intro paragraph. */
.bt-hero__text {
	margin: 0 0 2rem;
	color: #ffffff;
	max-width: 500px;
	line-height: 1.6;
	font-size: clamp(1rem, 1.6vw, 1.125rem);
}

/* Button row — wraps on small screens. */
.bt-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

/* Shared button base. */
.bt-hero__btn {
	display: inline-block;
	padding: 0.85rem 1.75rem;
	border-radius: 6px;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: clamp(0.95rem, 1.4vw, 1.05rem);
	text-decoration: none;
	line-height: 1;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

/* Primary button — gold background, dark text. */
.bt-hero__btn--primary {
	background-color: #d4af37;
	color: #1a1a1a;
	border: 2px solid #d4af37;
}

.bt-hero__btn--primary:hover,
.bt-hero__btn--primary:focus {
	background-color: #c19f2e;
	border-color: #c19f2e;
	color: #1a1a1a;
	transform: translateY(-2px);
}

/* Secondary button — transparent with white border/text. */
.bt-hero__btn--secondary {
	background-color: transparent;
	color: #ffffff;
	border: 2px solid #ffffff;
}

.bt-hero__btn--secondary:hover,
.bt-hero__btn--secondary:focus {
	background-color: #ffffff;
	color: #1a1a1a;
	transform: translateY(-2px);
}

/* Secondary text link under the quick-quote widget. */
.bt-hero__prices-link {
	display: inline-block;
	margin-top: 1rem;
	color: #ffffff;
	font-family: "Poppins", sans-serif;
	font-weight: 500;
	font-size: 0.95rem;
	text-decoration: none;
	border-bottom: 1px solid rgba(212, 175, 55, 0.8);
	transition: color 0.2s ease;
}

.bt-hero__prices-link:hover,
.bt-hero__prices-link:focus {
	color: #d4af37;
}

/* ---------- Hero quick-quote widget (floating white card) ---------- */
.bt-quote {
	margin-top: 0.5rem;
	max-width: 980px;
	padding: 1.25rem;
	background-color: #ffffff;
	border-radius: 14px;
	box-shadow: 0 18px 40px rgba(26, 26, 26, 0.28);
	border-top: 4px solid #d4af37;
}

/* Fields: stacked on mobile, single row on desktop. */
.bt-quote__row {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.bt-quote__trip {
	display: flex;
	margin: 0 0 0.85rem;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	overflow: hidden;
	background: #ffffff;
}

.bt-quote__trip-opt {
	flex: 1 1 50%;
	margin: 0;
	cursor: pointer;
	position: relative;
}

.bt-quote__trip-opt input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.bt-quote__trip-opt span {
	display: block;
	padding: 0.55rem 0.75rem;
	text-align: center;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6b5a2a;
	background: #ffffff;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.bt-quote__trip-opt input:checked + span {
	background: #d4af37;
	color: #1a1a1a;
}

.bt-quote__trip-opt input:focus-visible + span {
	box-shadow: inset 0 0 0 2px #1a1a1a;
}

.bt-quote__row--return {
	margin-top: 0.85rem;
}

.bt-quote__row--return[hidden] {
	display: none !important;
}

.bt-quote__counts {
	display: flex;
	gap: 0.6rem;
}

.bt-quote__counts .bt-quote__field {
	flex: 1 1 0;
	min-width: 0;
}

.bt-quote__field {
	display: flex;
	flex-direction: column;
}

.bt-quote__field label {
	margin-bottom: 0.3rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #1a1a1a;
}

.bt-quote select,
.bt-quote input[type="text"],
.bt-quote input[type="date"] {
	width: 100%;
	padding: 0.7rem 0.75rem;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
	color: #1a1a1a;
	background-color: #ffffff;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	line-height: 1.2;
}

.bt-quote select:focus,
.bt-quote input:focus {
	outline: none;
	border-color: #d4af37;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25);
}

/* Custom pickup address (revealed for "Other"). */
.bt-quote__other {
	display: flex;
	flex-direction: column;
	margin-top: 0.85rem;
}

.bt-quote__other[hidden] {
	display: none;
}

.bt-quote__other label {
	margin-bottom: 0.3rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #1a1a1a;
}

/* Gold submit button. */
.bt-quote__btn {
	width: 100%;
	padding: 0.8rem 1.25rem;
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: 1rem;
	color: #1a1a1a;
	background-color: #d4af37;
	border: 2px solid #d4af37;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.2s ease, transform 0.2s ease;
}

.bt-quote__btn:hover,
.bt-quote__btn:focus {
	background-color: #c19f2e;
	border-color: #c19f2e;
	transform: translateY(-2px);
}

/* Desktop: lay the fields out in one row, button aligned to the bottom. */
@media (min-width: 768px) {
	.bt-quote__row {
		flex-direction: row;
		flex-wrap: wrap;
		align-items: flex-end;
	}
	.bt-quote__field {
		flex: 1 1 160px;
	}
	.bt-quote__counts {
		flex: 0 0 220px;
	}
	.bt-quote__field--submit {
		flex: 1 1 160px;
	}
	.bt-quote__field--submit .bt-quote__btn {
		width: 100%;
		white-space: nowrap;
	}
}

/* ---------- Book Now: trip sidebar + Bookly two-column layout ---------- */
.bt-book-layout {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	max-width: 1100px;
	margin: clamp(1.25rem, 3vw, 2rem) auto clamp(2rem, 5vw, 3rem);
	padding: 0 clamp(1rem, 3vw, 1.5rem);
	align-items: stretch;
}

.bt-book-layout__main {
	min-width: 0;
	flex: 1 1 auto;
}

.bt-trip-aside {
	background: #faf7ec;
	border: 1px solid #e6e0d0;
	border-radius: 14px;
	padding: 1.15rem 1.25rem 1.25rem;
	box-shadow: 0 10px 28px rgba(26, 26, 26, 0.05);
}

.bt-trip-aside__eyebrow {
	margin: 0 0 0.65rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #8a7420;
}

.bt-trip-aside__route {
	margin: 0 0 0.9rem;
}

.bt-trip-aside__from,
.bt-trip-aside__to {
	margin: 0;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.98rem;
	line-height: 1.35;
	color: #1a1a1a;
	word-break: break-word;
}

.bt-trip-aside__arrow {
	margin: 0.2rem 0;
	font-size: 0.85rem;
	color: #d4af37;
	line-height: 1;
}

.bt-trip-aside__map {
	margin: 0 0 1rem;
	border-radius: 10px;
	overflow: hidden;
	border: 1px solid #e6e0d0;
	background: #eee;
	min-height: 200px;
	height: 220px;
	width: 100%;
	position: relative;
	touch-action: none;
	cursor: grab;
	user-select: none;
}

.bt-trip-aside__map.is-dragging {
	cursor: grabbing;
}

.bt-trip-aside__map img {
	display: block;
	width: 100%;
	height: 100%;
}

.bt-trip-map__tiles {
	position: absolute;
	inset: 0;
	overflow: hidden;
	background: #e8e4d8;
}

.bt-trip-map__tiles img {
	position: absolute;
	width: 256px;
	height: 256px;
	max-width: none;
	pointer-events: none;
}

.bt-trip-map__canvas {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.bt-trip-map__zoom {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.bt-trip-map__zbtn {
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid #e6e0d0;
	border-radius: 6px;
	background: #fffef9;
	color: #1a1a1a;
	font-size: 1.1rem;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 1px 4px rgba(26, 26, 26, 0.12);
}

.bt-trip-map__zbtn:hover,
.bt-trip-map__zbtn:focus {
	background: #d4af37;
	border-color: #d4af37;
	outline: none;
}

.bt-trip-map__copy {
	position: absolute;
	right: 6px;
	bottom: 4px;
	z-index: 3;
	margin: 0;
	font-size: 9px;
	line-height: 1.2;
	color: #5a4a12;
	background: rgba(255, 254, 249, 0.85);
	padding: 1px 4px;
	border-radius: 3px;
}

.bt-trip-map__copy a {
	color: inherit;
}

@media (min-width: 900px) {
	.bt-trip-aside__map {
		height: 240px;
	}
}

.bt-trip-aside__meta {
	margin: 0;
}

.bt-trip-aside__row {
	display: grid;
	grid-template-columns: 7.5rem 1fr;
	gap: 0.35rem 0.75rem;
	padding: 0.45rem 0;
	border-top: 1px solid #ebe4d2;
}

.bt-trip-aside__row dt {
	margin: 0;
	font-family: "Inter", sans-serif;
	font-size: 0.8rem;
	color: #6b5a2a;
}

.bt-trip-aside__row dd {
	margin: 0;
	font-family: "Inter", sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1.35;
}

.bt-trip-aside__included {
	margin: 0.85rem 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid #ebe4d2;
}

.bt-trip-aside__included-label {
	margin: 0 0 0.45rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #8a7420;
}

.bt-trip-aside__included-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bt-trip-aside__included-list li {
	position: relative;
	padding: 0.18rem 0 0.18rem 1.15rem;
	font-family: "Inter", sans-serif;
	font-size: 0.8rem;
	line-height: 1.35;
	color: #1a1a1a;
}

.bt-trip-aside__included-list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0.18rem;
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.35;
	color: #d4af37;
}

.bt-trip-aside__note {
	margin: 0.75rem 0 0;
	padding-top: 0.65rem;
	border-top: 1px solid #ebe4d2;
	font-family: "Inter", sans-serif;
	font-size: 0.82rem;
	line-height: 1.4;
	color: #5a4a12;
}

@media (min-width: 900px) {
	.bt-book-layout {
		flex-direction: row;
		align-items: flex-start;
		gap: 1.75rem;
	}

	.bt-trip-aside {
		flex: 0 0 300px;
		width: 300px;
		position: sticky;
		top: 6.5rem;
		max-height: calc(100vh - 7.5rem);
		overflow: auto;
	}

	.bt-book-layout__main {
		flex: 1 1 auto;
	}
}

/* ---------- Book Now: quick-quote summary card (sidebar off) ---------- */
.bt-booking-summary {
	max-width: 760px;
	margin: clamp(1.5rem, 4vw, 2.25rem) auto 1rem;
	padding: 1.2rem 1.45rem;
	background-color: #faf7ec;
	border: 1px solid #e6e0d0;
	border-left: 4px solid #d4af37;
	border-radius: 14px;
	box-shadow: 0 10px 28px rgba(26, 26, 26, 0.05);
}

.bt-booking-summary__label {
	margin: 0 0 0.25rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #8a7420;
}

.bt-booking-summary__detail {
	margin: 0 0 0.35rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1.1rem;
	color: #1a1a1a;
	line-height: 1.4;
}

.bt-booking-summary__note {
	margin: 0;
	font-size: 0.9rem;
	color: #5a4a12;
}

/* Flatpickr calendar — brand gold/dark theme for the hero date field.
   Vendor CSS starts at opacity:0 and fades in; that animation can leave
   the popup invisible. Force the open state fully visible. */
.flatpickr-calendar {
	font-family: "Inter", sans-serif;
	border: 1px solid #e6e0d0;
	border-radius: 12px;
	box-shadow: 0 12px 30px rgba(26, 26, 26, 0.18);
	overflow: hidden;
}

.flatpickr-calendar.open {
	position: fixed !important;
	display: inline-block !important;
	opacity: 1 !important;
	visibility: visible !important;
	pointer-events: auto !important;
	z-index: 2147483646 !important;
	animation: none !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus {
	background: #d4af37;
	border-color: #d4af37;
	color: #1a1a1a;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
	background: #faf3dc;
	border-color: #faf3dc;
	color: #1a1a1a;
}

.flatpickr-day.today {
	border-color: #d4af37;
}

.flatpickr-day.today:hover {
	background: #faf3dc;
	color: #1a1a1a;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
	fill: #d4af37;
}

.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
	font-family: "Poppins", sans-serif;
}

/* Flatpickr alt inputs in the quote widget — match field chrome. */
.bt-quote .flatpickr-input,
.bt-quote input.flatpickr-input,
.bt-quote .bt-quote__fp,
.bt-quote input.bt-quote__fp {
	width: 100%;
	padding: 0.7rem 0.75rem;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
	color: #1a1a1a;
	background-color: #ffffff;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	line-height: 1.2;
	cursor: pointer;
}

.bt-quote .flatpickr-input:focus,
.bt-quote input.flatpickr-input:focus,
.bt-quote .bt-quote__fp:focus,
.bt-quote input.bt-quote__fp:focus {
	outline: none;
	border-color: #d4af37;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25);
}

/* Time-only picker — chips + hour/minute, 24h. */
.flatpickr-calendar.bt-fp-time,
.flatpickr-calendar.noCalendar.hasTime {
	width: 300px;
	padding: 0.95rem 0.95rem 1.15rem;
	background: #fffef9;
	overflow: visible;
	pointer-events: auto;
	z-index: 2147483646;
}

.bt-fp-chips {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.4rem;
	margin: 0 0 0.9rem;
}

.bt-fp-chip {
	appearance: none;
	-webkit-appearance: none;
	min-height: 44px;
	padding: 0.35rem 0.2rem;
	border: 1px solid #e6e0d0;
	border-radius: 8px;
	background: #ffffff;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.82rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
	color: #1a1a1a;
	cursor: pointer;
	line-height: 1;
	box-shadow: none;
	text-transform: none;
	-webkit-tap-highlight-color: transparent;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}

.bt-fp-chip:hover,
.bt-fp-chip:focus {
	border-color: #d4af37;
	background: #faf3dc;
	outline: none;
}

.bt-fp-chip.is-on,
.bt-fp-chip.is-on:hover,
.bt-fp-chip.is-on:focus {
	background: #d4af37;
	border-color: #d4af37;
	color: #1a1a1a;
}

.bt-fp-chip.is-off,
.bt-fp-chip:disabled {
	opacity: 0.38;
	cursor: not-allowed;
	pointer-events: none;
}

body > .flatpickr-calendar {
	z-index: 2147483646;
}

.flatpickr-calendar.bt-fp-time::before,
.flatpickr-calendar.bt-fp-time::after,
.flatpickr-calendar.noCalendar.hasTime::before,
.flatpickr-calendar.noCalendar.hasTime::after {
	display: none;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: 0.45rem;
	max-height: none;
	height: auto;
	line-height: 1;
	border-top: 1px solid #ebe4d2;
	padding: 0.85rem 0 0;
	overflow: visible;
	pointer-events: auto;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .numInputWrapper,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .numInputWrapper {
	position: relative;
	width: 5.1rem;
	height: auto;
	flex: 0 0 auto;
	pointer-events: auto;
	z-index: 2;
	margin: 2.85rem 0 2.7rem;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time input,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time input {
	font-family: "Poppins", sans-serif !important;
	font-weight: 600 !important;
	font-size: 1.65rem !important;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
	color: #1a1a1a !important;
	background: #ffffff !important;
	border: 1px solid #e6e0d0 !important;
	border-radius: 10px !important;
	height: 3.35rem !important;
	line-height: 3.35rem !important;
	padding: 0 0.3rem !important;
	margin: 0 !important;
	box-shadow: none !important;
	-moz-appearance: textfield;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time input:hover,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time input:hover,
.flatpickr-calendar.bt-fp-time .flatpickr-time input:focus,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time input:focus {
	border-color: #d4af37 !important;
	background: #fffdf5 !important;
	box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.22) !important;
	outline: none;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time-separator,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time-separator {
	align-self: center;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1.55rem;
	color: #d4af37;
	width: auto;
	height: auto;
	line-height: 1;
	margin: 2.85rem 0.05rem 2.7rem;
}

/* Replace default scroll-arrow wedges with clean gold ± tap targets. */
.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowUp,
.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowDown,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowUp,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowDown {
	border: none !important;
	border-radius: 8px;
	height: 2.5rem !important;
	opacity: 1 !important;
	background: #faf7ec !important;
	box-sizing: border-box;
	pointer-events: auto;
	z-index: 3;
	cursor: pointer;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowUp,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowUp {
	top: -2.65rem !important;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowDown,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowDown {
	top: auto !important;
	bottom: -2.65rem !important;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowUp:hover,
.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowDown:hover,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowUp:hover,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowDown:hover {
	background: #d4af37 !important;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowUp::after,
.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowDown::after,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowUp::after,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowDown::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 0;
	height: 0;
	border-left: 6px solid transparent;
	border-right: 6px solid transparent;
	transform: translate(-50%, -50%);
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowUp::after,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowUp::after {
	border-bottom: 7px solid #1a1a1a;
	border-top: none;
}

.flatpickr-calendar.bt-fp-time .flatpickr-time .arrowDown::after,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time .arrowDown::after {
	border-top: 7px solid #1a1a1a;
	border-bottom: none;
}

.flatpickr-calendar.bt-fp-time .flatpickr-am-pm,
.flatpickr-calendar.noCalendar.hasTime .flatpickr-am-pm {
	display: none !important;
}

/* iOS-style time wheel (mobile / touch) — replaces Flatpickr time. */
body.bt-time-wheel-open {
	overflow: hidden;
	touch-action: none;
}

.bt-quote__time,
#bt-quote-time,
#bt-quote-time-return {
	cursor: pointer;
	caret-color: transparent;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 767px) {
	.bt-quote__time,
	#bt-quote-time,
	#bt-quote-time-return {
		font-size: 16px;
		min-height: 48px;
	}
}

.bt-time-wheel {
	--bt-wheel-item: 52px;
	--bt-wheel-rows: 5;
	position: fixed;
	inset: 0;
	z-index: 2147483646;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	overscroll-behavior: none;
}

.bt-time-wheel[hidden] {
	display: none !important;
}

.bt-time-wheel__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(26, 26, 26, 0.48);
	opacity: 0;
	transition: opacity 0.25s ease;
}

.bt-time-wheel.is-open .bt-time-wheel__backdrop {
	opacity: 1;
}

.bt-time-wheel__sheet {
	position: relative;
	width: 100%;
	max-width: 28rem;
	background: #fffef9;
	border-radius: 18px 18px 0 0;
	box-shadow: 0 -16px 40px rgba(26, 26, 26, 0.2);
	padding: 0.2rem 0 calc(0.7rem + env(safe-area-inset-bottom, 0px));
	transform: translateY(110%);
	transition: transform 0.32s cubic-bezier(0.32, 0.72, 0, 1);
}

.bt-time-wheel.is-open .bt-time-wheel__sheet {
	transform: translateY(0);
}

.bt-time-wheel__grabber {
	width: 36px;
	height: 5px;
	margin: 0.45rem auto 0.15rem;
	border-radius: 99px;
	background: #d8d0bc;
}

.bt-time-wheel__bar {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	padding: 0.1rem 0.55rem 0.2rem;
}

.bt-time-wheel__title {
	margin: 0;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	color: #1a1a1a;
	text-align: center;
}

.bt-time-wheel__txt {
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	background: transparent;
	box-shadow: none;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.2;
	border-radius: 0;
	font-family: "Inter", sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #6b5a2a;
	padding: 0.55rem 0.7rem;
	cursor: pointer;
	min-height: 48px;
	min-width: 72px;
	-webkit-tap-highlight-color: transparent;
}

.bt-time-wheel__txt--done {
	justify-self: end;
	text-align: right;
	font-weight: 700;
	color: #1a1a1a;
}

.bt-time-wheel__stage {
	position: relative;
	height: calc(var(--bt-wheel-item) * var(--bt-wheel-rows));
	margin: 0.15rem 0.75rem 0.55rem;
}

.bt-time-wheel__band {
	position: absolute;
	left: 0.35rem;
	right: 0.35rem;
	top: 50%;
	height: var(--bt-wheel-item);
	margin-top: calc(var(--bt-wheel-item) / -2);
	background: rgba(212, 175, 55, 0.12);
	border: 1px solid rgba(212, 175, 55, 0.28);
	border-radius: 10px;
	pointer-events: none;
	z-index: 1;
	transform-origin: center;
}

.bt-time-wheel__band.is-tick {
	animation: bt-wheel-tick 0.14s ease;
}

@keyframes bt-wheel-tick {
	0%, 100% { transform: scale(1); background: rgba(212, 175, 55, 0.12); }
	45% { transform: scale(1.015, 1.08); background: rgba(212, 175, 55, 0.22); }
}

.bt-time-wheel__colon {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 3;
	transform: translate(-50%, -52%);
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1.65rem;
	color: #d4af37;
	pointer-events: none;
	line-height: 1;
}

.bt-time-wheel__cols {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: stretch;
	justify-content: center;
	height: 100%;
	mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 82%, transparent 100%);
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 82%, transparent 100%);
}

.bt-time-wheel__col {
	flex: 1 1 50%;
	height: 100%;
	overflow: hidden;
	touch-action: none;
	cursor: grab;
	-webkit-user-select: none;
	user-select: none;
	perspective: 520px;
}

.bt-time-wheel__col[data-col="hour"] {
	padding-right: 1.15rem;
}

.bt-time-wheel__col[data-col="min"] {
	padding-left: 1.15rem;
}

.bt-time-wheel__col.is-dragging {
	cursor: grabbing;
}

.bt-time-wheel__track {
	will-change: transform;
	transform-style: preserve-3d;
}

.bt-time-wheel__item {
	height: var(--bt-wheel-item);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: "Poppins", sans-serif;
	font-variant-numeric: tabular-nums;
	font-size: 1.55rem;
	font-weight: 500;
	color: #8a8a8a;
	opacity: 0.28;
	line-height: 1;
	pointer-events: none;
	transform-origin: center center;
	backface-visibility: hidden;
}

.bt-time-wheel__item.is-active {
	color: #1a1a1a;
	font-weight: 700;
	font-size: 1.85rem;
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.bt-time-wheel__backdrop,
	.bt-time-wheel__sheet,
	.bt-time-wheel__band.is-tick {
		transition: none;
		animation: none;
	}
}

@media (min-width: 768px) and (hover: hover) and (pointer: fine) {
	.bt-time-wheel {
		display: none !important;
	}
}

/* Bookly Cloud SMS / email verification modal — disabled in functions.php. */
.bt-booking .bookly-js-verification-code,
.bt-booking .bookly-js-verification-code.bookly-in,
.bt-booking .bookly-modal.bookly-js-verification-code {
	display: none !important;
	visibility: hidden !important;
	pointer-events: none !important;
}

/* Inline validation message under the quick-quote widget. */
.bt-quote__error {
	margin: 0.85rem 0 0;
	color: #b00020;
	font-family: "Inter", sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
}

.bt-quote__error[hidden] {
	display: none;
}

/* Google PlaceAutocompleteElement — match .bt-quote field styling.
   Host-level CSS properties are supported by Google; ::part() targets
   the shadow-DOM input, focus ring, and prediction dropdown. */
.bt-quote__field .bt-quote__pac,
.bt-quote__field gmp-place-autocomplete.bt-quote__pac {
	margin-top: 0;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac,
.bt-quote .bt-quote__pac {
	display: block;
	width: 100%;
	margin-top: 0.35rem;
	color-scheme: light;
	background-color: #ffffff;
	color: #1a1a1a;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
	line-height: 1.2;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac:focus-within,
.bt-quote .bt-quote__pac:focus-within {
	border-color: #d4af37;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25);
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(focus-ring),
.bt-quote .bt-quote__pac::part(focus-ring) {
	border-color: #d4af37;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25);
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(input),
.bt-quote .bt-quote__pac::part(input) {
	color: #1a1a1a;
	background-color: transparent;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(prediction-list),
.bt-quote .bt-quote__pac::part(prediction-list) {
	background-color: #ffffff;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
	max-height: min(40vh, 16rem);
	overflow-y: auto;
}

.bt-quote__field,
.bt-quote__field .bt-quote__pac,
.bt-quote__field gmp-place-autocomplete.bt-quote__pac,
#bt-quote-from-wrap,
#bt-quote-to-wrap {
	scroll-margin-top: calc(4.75rem + env(safe-area-inset-top, 0px));
	scroll-margin-bottom: 45vh;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(prediction-item),
.bt-quote .bt-quote__pac::part(prediction-item) {
	color: #1a1a1a;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(prediction-item-selected),
.bt-quote .bt-quote__pac::part(prediction-item-selected) {
	background-color: #faf7ec;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(prediction-item-main-text),
.bt-quote .bt-quote__pac::part(prediction-item-main-text) {
	color: #1a1a1a;
}

.bt-quote gmp-place-autocomplete.bt-quote__pac::part(prediction-item-secondary-text),
.bt-quote .bt-quote__pac::part(prediction-item-secondary-text) {
	color: #666666;
}

/* iOS/mobile address sheet — our overlay, pinned to visualViewport, not Google's. */
html.bt-pac-open,
html.bt-pac-open body {
	overflow: hidden !important;
	overscroll-behavior: none;
}

.bt-pac-sheet {
	position: fixed;
	z-index: 2147483000;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	margin: 0;
	padding: 0.7rem 0.9rem calc(0.7rem + env(safe-area-inset-bottom, 0px));
	background: #ffffff;
	color: #1a1a1a;
	color-scheme: light;
}

.bt-pac-sheet[hidden] {
	display: none !important;
}

.bt-pac-sheet__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	margin-bottom: 0.55rem;
}

.bt-pac-sheet__title {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	color: #1a1a1a;
}

.bt-pac-sheet__close,
.bt-pac-sheet__done {
	appearance: none;
	margin: 0;
	padding: 0.45rem 0.7rem;
	min-height: 44px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: #6b5a2a;
	font-family: "Inter", sans-serif;
	font-size: 0.9rem;
	font-weight: 600;
}

.bt-pac-sheet__done {
	background: #d4af37;
	color: #1a1a1a;
}

.bt-pac-sheet__input {
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0.7rem 0.85rem;
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	font-family: "Inter", sans-serif;
	font-size: 16px;
	line-height: 1.2;
	color: #1a1a1a;
	background: #ffffff;
}

.bt-pac-sheet__input:focus {
	outline: none;
	border-color: #d4af37;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25);
}

.bt-pac-sheet__list {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	margin: 0.45rem 0 0;
	padding: 0;
	list-style: none;
}

.bt-pac-sheet__item {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0.8rem 0.55rem;
	min-height: 48px;
	border: 0;
	border-bottom: 1px solid #ebe4d2;
	background: #ffffff;
	text-align: left;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
	color: #1a1a1a;
}

.bt-pac-sheet__item:active,
.bt-pac-sheet__item:focus {
	background: #faf7ec;
}

.bt-pac-sheet__item small {
	display: block;
	margin-top: 0.15rem;
	color: #666666;
	font-size: 0.8rem;
}

.bt-pac-sheet__empty {
	margin: 0.75rem 0.55rem;
	color: #666666;
	font-family: "Inter", sans-serif;
	font-size: 0.9rem;
}

/* Live fare estimate shown under the hero quote widget. */
.bt-quote__estimate {
	margin: 0.85rem 0 0;
	color: #d4af37;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1rem;
}

.bt-quote__estimate[hidden] {
	display: none;
}

.bt-quote__popular {
	margin-top: 0.95rem;
	padding-top: 0.85rem;
	border-top: 1px solid #ebe4d2;
}

.bt-quote__popular-label {
	margin: 0 0 0.5rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6b5a2a;
}

.bt-quote__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.bt-quote__pill {
	appearance: none;
	margin: 0;
	padding: 0.38rem 0.85rem;
	font-family: "Inter", sans-serif;
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1.2;
	color: #6b5a2a;
	background: #faf7ec;
	border: 1px solid #e6e0d0;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.bt-quote__pill:hover,
.bt-quote__pill:focus {
	color: #1a1a1a;
	background: #ffffff;
	border-color: #d4af37;
	outline: none;
}

.bt-quote__pill:focus-visible {
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.25);
}

.bt-quote__pill.is-active {
	color: #1a1a1a;
	background: #d4af37;
	border-color: #d4af37;
}

/* Fare estimate carried into the Book Now "Your trip" card. */
.bt-booking-summary__estimate {
	margin: 0 0 0.35rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	color: #8a6d0f;
}

/* /book-now/ gate — same quote widget as hero, without hero background. */
.bt-booking-quote {
	max-width: 900px;
	margin: 0 auto 2rem;
	padding: 0.5rem 0 1rem;
}

.bt-booking-quote__lead {
	font-size: clamp(1rem, 2vw, 1.1rem);
	line-height: 1.6;
	color: #333333;
	margin: 0 0 1.25rem;
}

/* Desktop: taller hero so the quote widget has clean space below the car. */
@media (min-width: 768px) {
	.bt-hero {
		min-height: 92vh;
	}
}

/* Thin trust strip directly under the home hero. */
.bt-trust {
	background: #1a1a1a;
	border-top: 1px solid rgba(212, 175, 55, 0.45);
	border-bottom: 1px solid rgba(212, 175, 55, 0.18);
}

.bt-trust__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.35rem 1.25rem;
	list-style: none;
	margin: 0 auto;
	padding: 0.55rem clamp(1rem, 4vw, 2rem);
	max-width: 1200px;
}

.bt-trust__item {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	font-family: "Inter", sans-serif;
	font-size: clamp(0.72rem, 1.6vw, 0.82rem);
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.3;
	color: #f5f0e4;
	white-space: nowrap;
}

.bt-trust__item::before {
	content: "✓";
	color: #d4af37;
	font-weight: 700;
	font-size: 0.85em;
	line-height: 1;
}

/* =====================================================================
   FRONT PAGE SECTIONS (below the hero)
   Shared layout helpers + per-section styles, all "bt-" prefixed.
   Mobile-first, fluid type via clamp(), no JavaScript.
   ===================================================================== */

/* Generic vertical rhythm for every section. */
.bt-section {
	padding: clamp(3rem, 8vw, 6rem) 0;
}

/* Centred content wrapper with responsive side padding. */
.bt-container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 clamp(1.25rem, 5vw, 4rem);
}

/* Shared section heading (H2). */
.bt-section__title {
	margin: 0 0 clamp(1.5rem, 4vw, 2.5rem);
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	line-height: 1.15;
	color: #1a1a1a;
	font-size: clamp(1.6rem, 4vw, 2.5rem);
	text-align: center;
}

/* Light variant for dark-background sections. */
.bt-section__title--light {
	color: #ffffff;
}

/* Shared button (reused across sections). */
.bt-btn {
	display: inline-block;
	padding: 0.85rem 1.75rem;
	border-radius: 6px;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: clamp(0.95rem, 1.4vw, 1.05rem);
	text-decoration: none;
	line-height: 1;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.bt-btn--primary {
	background-color: #d4af37;
	color: #1a1a1a;
	border: 2px solid #d4af37;
}

.bt-btn--primary:hover,
.bt-btn--primary:focus {
	background-color: #c19f2e;
	border-color: #c19f2e;
	color: #1a1a1a;
	transform: translateY(-2px);
}

/* Subtle shine sweep on primary gold buttons (hover/focus). */
.bt-btn--primary,
.bt-hero__btn--primary,
.bt-quote__btn {
	position: relative;
	overflow: hidden;
}

.bt-btn--primary::after,
.bt-hero__btn--primary::after,
.bt-quote__btn::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 55%;
	height: 100%;
	background: linear-gradient(
		120deg,
		transparent 0%,
		rgba(255, 255, 255, 0.38) 50%,
		transparent 100%
	);
	transform: translateX(-140%) skewX(-18deg);
	transition: transform 0.3s ease;
	pointer-events: none;
}

.bt-btn--primary:hover::after,
.bt-btn--primary:focus::after,
.bt-hero__btn--primary:hover::after,
.bt-hero__btn--primary:focus::after,
.bt-quote__btn:hover::after,
.bt-quote__btn:focus::after {
	transform: translateX(250%) skewX(-18deg);
}

/* ---------- 1. SERVICES ---------- */
.bt-services__grid {
	display: grid;
	grid-template-columns: 1fr;          /* mobile: 1 column */
	gap: clamp(1rem, 2.5vw, 1.75rem);
}

.bt-card {
	background: #ffffff;
	border: 1px solid #ececec;
	border-radius: 10px;
	padding: clamp(1.5rem, 3vw, 2rem);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) {
	.bt-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 14px 36px rgba(0, 0, 0, 0.1);
	}
}

.bt-card__title {
	margin: 0 0 0.6rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #1a1a1a;
	font-size: clamp(1.15rem, 2vw, 1.3rem);
}

.bt-card__title a {
	color: inherit;
	text-decoration: none;
}

.bt-card__title a:hover,
.bt-card__title a:focus {
	color: #d4af37;
}

.bt-card__text {
	margin: 0;
	color: #444444;
	line-height: 1.6;
	font-size: 1rem;
}

/* Tablet: 2 columns. */
@media (min-width: 600px) {
	.bt-services__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Desktop: 4 columns. */
@media (min-width: 992px) {
	.bt-services__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* ---------- 2. WHY US (dark section) ---------- */
.bt-why {
	background-color: #1a1a1a;
}

.bt-why__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 4vw, 2.5rem);
}

.bt-why__item {
	border-left: 3px solid #d4af37;      /* gold accent */
	padding-left: 1.25rem;
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) {
	.bt-why__item:hover {
		transform: translateY(-4px);
		box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
	}
}

.bt-why__heading {
	margin: 0 0 0.5rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #d4af37;                      /* gold */
	font-size: clamp(1.1rem, 2vw, 1.3rem);
}

.bt-why__text {
	margin: 0;
	color: #ffffff;
	line-height: 1.6;
	font-size: 1rem;
}

@media (min-width: 600px) {
	.bt-why__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---------- 3. POPULAR ROUTES ---------- */
.bt-routes__list {
	list-style: none;
	margin: 0 0 clamp(2rem, 5vw, 3rem);
	padding: 0;
	border: 1px solid #ececec;
	border-radius: 10px;
	overflow: hidden;
}

.bt-route {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.75rem;
	padding: clamp(0.9rem, 2vw, 1.15rem) clamp(1rem, 3vw, 1.5rem);
	border-bottom: 1px solid #ececec;
	font-size: clamp(0.95rem, 1.6vw, 1.05rem);
	transition: background-color 0.2s ease, transform 0.2s ease;
}

@media (hover: hover) {
	.bt-route:hover {
		background-color: #faf7ec;
		transform: translateY(-2px);
	}
}

.bt-route:last-child {
	border-bottom: none;
}

.bt-route__from,
.bt-route__to {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #1a1a1a;
}

.bt-route__arrow {
	color: #d4af37;
	font-weight: 700;
}

/* Push the price to the far right. */
.bt-route__price {
	margin-left: auto;
	color: #666666;
	font-weight: 500;
	white-space: nowrap;
}

.bt-routes__cta {
	text-align: center;
}

/* ---------- 4. HOW IT WORKS ---------- */
.bt-steps__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2rem, 5vw, 3rem);
}

.bt-step {
	text-align: center;
	transition: transform 0.2s ease;
}

@media (hover: hover) {
	.bt-step:hover {
		transform: translateY(-4px);
	}
}

/* Gold numbered circle. */
.bt-step__num {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	background-color: #d4af37;
	color: #1a1a1a;
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: 1.4rem;
}

.bt-step__title {
	margin: 0 0 0.4rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #1a1a1a;
	font-size: clamp(1.1rem, 2vw, 1.25rem);
}

.bt-step__text {
	margin: 0;
	color: #444444;
	line-height: 1.6;
	font-size: 1rem;
}

@media (min-width: 600px) {
	.bt-steps__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 992px) {
	.bt-steps__grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* ---------- Scroll reveal (home) — opacity + translateY only ---------- */
.bt-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition:
		opacity 0.45s ease,
		transform 0.45s ease;
	will-change: opacity, transform;
}

.bt-reveal.is-visible {
	opacity: 1;
	transform: none;
	will-change: auto;
}

/* Hover lift must win over .bt-reveal.is-visible { transform: none }. */
@media (hover: hover) {
	.bt-card.bt-reveal.is-visible:hover {
		transform: translateY(-4px);
	}
	.bt-why__item.bt-reveal.is-visible:hover {
		transform: translateY(-4px);
	}
	.bt-route.bt-reveal.is-visible:hover {
		transform: translateY(-2px);
	}
	.bt-step.bt-reveal.is-visible:hover {
		transform: translateY(-4px);
	}
}

/* Stagger cards/items slightly via nth-child without JS timing hacks. */
.bt-services__grid .bt-reveal:nth-child(2) { transition-delay: 0.05s; }
.bt-services__grid .bt-reveal:nth-child(3) { transition-delay: 0.1s; }
.bt-services__grid .bt-reveal:nth-child(4) { transition-delay: 0.15s; }
.bt-why__grid .bt-reveal:nth-child(2) { transition-delay: 0.05s; }
.bt-why__grid .bt-reveal:nth-child(3) { transition-delay: 0.1s; }
.bt-why__grid .bt-reveal:nth-child(4) { transition-delay: 0.15s; }
.bt-routes__list .bt-reveal:nth-child(2) { transition-delay: 0.04s; }
.bt-routes__list .bt-reveal:nth-child(3) { transition-delay: 0.08s; }
.bt-routes__list .bt-reveal:nth-child(4) { transition-delay: 0.12s; }
.bt-routes__list .bt-reveal:nth-child(5) { transition-delay: 0.16s; }
.bt-routes__list .bt-reveal:nth-child(6) { transition-delay: 0.2s; }
.bt-steps__grid .bt-reveal:nth-child(2) { transition-delay: 0.05s; }
.bt-steps__grid .bt-reveal:nth-child(3) { transition-delay: 0.1s; }
.bt-steps__grid .bt-reveal:nth-child(4) { transition-delay: 0.15s; }

@media (prefers-reduced-motion: reduce) {
	.bt-reveal,
	.bt-reveal.is-visible {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.bt-card,
	.bt-why__item,
	.bt-route,
	.bt-step,
	.bt-fleet-card,
	.bt-hero__btn--primary,
	.bt-hero__btn--secondary,
	.bt-quote__btn,
	.bt-btn--primary,
	.bt-btn--outline {
		transition: none !important;
	}

	.bt-card:hover,
	.bt-why__item:hover,
	.bt-route:hover,
	.bt-step:hover,
	.bt-fleet-card:hover,
	.bt-hero__btn--primary:hover,
	.bt-hero__btn--secondary:hover,
	.bt-quote__btn:hover,
	.bt-btn--primary:hover,
	.bt-btn--outline:hover {
		transform: none !important;
	}

	.bt-btn--primary::after,
	.bt-hero__btn--primary::after,
	.bt-quote__btn::after {
		content: none;
	}
}

/* ---------- 5. FINAL CTA (dark strip) ---------- */
.bt-cta {
	background-color: #1a1a1a;
	text-align: center;
}

.bt-cta__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(1.25rem, 3vw, 1.75rem);
}

.bt-cta .bt-section__title {
	margin-bottom: 0;
}

/* =====================================================================
   SITE-WIDE FOOTER (.bt-footer)
   Our custom footer replaces GeneratePress's default footer (hidden
   below). Dark background, white/gray text, gold link hovers.
   ===================================================================== */

/* Hide GeneratePress's default footer so we have a single footer. */
.site-footer {
	display: none;
}

.bt-footer {
	background-color: #1a1a1a;
	color: #cccccc;
}

/* Columns: stacked on mobile, 3 columns on desktop. */
.bt-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(2rem, 5vw, 3rem);
	padding-top: clamp(3rem, 7vw, 5rem);
	padding-bottom: clamp(2.5rem, 6vw, 4rem);
}

/* Column 1 — brand. */
.bt-footer__logo {
	display: inline-flex;
	align-items: center;
	margin-bottom: 0.85rem;
	color: #ffffff;
	font-size: clamp(1.05rem, 1.9vw, 1.22rem);
	line-height: 1;
}

.bt-footer__logo .bt-brand__lead {
	color: #d4af37;
}

.bt-footer__logo .bt-brand__accent {
	color: #ffffff;
}

.bt-footer__tagline {
	margin: 0;
	max-width: 320px;
	line-height: 1.6;
	font-size: 1rem;
}

/* Column headings. */
.bt-footer__heading {
	margin: 0 0 1rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #d4af37;                      /* gold */
	font-size: clamp(1.05rem, 2vw, 1.2rem);
}

/* Link lists. */
.bt-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bt-footer__list li {
	margin-bottom: 0.6rem;
}

.bt-footer__list a {
	color: #cccccc;
	text-decoration: none;
	font-size: 1rem;
	transition: color 0.2s ease;
}

.bt-footer__list a:hover,
.bt-footer__list a:focus {
	color: #d4af37;                      /* gold hover */
}

.bt-footer__cookie-btn {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 1rem;
	color: #cccccc;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.2s ease;
}

.bt-footer__cookie-btn:hover,
.bt-footer__cookie-btn:focus {
	color: #d4af37;
}

/* Bottom bar. */
.bt-footer__bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 1.25rem 0;
}

.bt-footer__copy {
	margin: 0;
	text-align: center;
	color: #999999;
	font-size: 0.9rem;
}

/* Desktop: 3 columns. */
@media (min-width: 768px) {
	.bt-footer__grid {
		grid-template-columns: 1.4fr 1fr 1fr;
	}
}

/* =====================================================================
   BOOKLY BOOKING FORM  (/book-now/)
   Visual restyle only — scoped to Bookly's own classes so we DON'T touch
   its internal layout or JavaScript. Matches the hero/footer brand.
   Wrapper ".bt-booking" is added by our the_content filter.
   ===================================================================== */

.bt-book-layout .bt-booking {
	max-width: none;
	margin-left: 0;
	margin-right: 0;
}

.bt-booking {
	--bookly-main-color: #d4af37;
	--bookly-color: #d4af37;
	--bt-book-dark: #1a1a1a;
	--bt-book-gold: #d4af37;
	--bt-book-gold-deep: #c19f2e;
	--bt-book-muted: #5c5c5c;
	--bt-book-line: #e6e0d0;
	--bt-book-soft: #faf7ec;
	position: relative;
	max-width: 760px;
	margin: clamp(1.75rem, 4vw, 2.75rem) auto clamp(2.5rem, 6vw, 4rem);
	padding: clamp(1.35rem, 3.5vw, 2.25rem);
	background:
		linear-gradient(180deg, #fffef9 0%, #ffffff 42%, #ffffff 100%);
	border: 1px solid var(--bt-book-line);
	border-radius: 16px;
	box-shadow:
		0 1px 0 rgba(212, 175, 55, 0.22),
		0 18px 40px rgba(26, 26, 26, 0.08);
}

.bt-booking .bookly-form,
.bookly-form {
	font-family: "Inter", sans-serif;
	color: var(--bt-book-dark);
}

.bt-booking .bookly-form .bookly-box {
	margin: 0 0 1.35rem;
}

.bt-booking .bookly-form .bookly-box h2,
.bt-booking .bookly-form .bookly-label-error,
.bt-booking .bookly-form .bookly-progress-tracker,
.bt-booking .bookly-form legend,
.bt-booking .bookly-form .bookly-service-step-title {
	font-family: "Poppins", sans-serif;
}

.bt-booking .bookly-form .bookly-box h2,
.bt-booking .bookly-form .bookly-service-step-title {
	font-weight: 700;
	font-size: clamp(1.2rem, 2.4vw, 1.45rem);
	letter-spacing: -0.01em;
	color: var(--bt-book-dark);
	margin: 0 0 0.85rem;
}

/* Progress tracker — cleaner gold steps + labels. */
.bt-booking .bookly-form .bookly-progress-tracker {
	margin: 0 0 1.75rem !important;
	padding: 0.95rem 1rem !important;
	background: var(--bt-book-soft);
	border: 1px solid var(--bt-book-line);
	border-radius: 12px;
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.02em;
	color: var(--bt-book-muted);
}

.bt-booking .bookly-form .bookly-progress-tracker > div {
	padding-left: 6px;
}

.bt-booking .bookly-form .bookly-progress-tracker > div:first-child {
	padding-left: 0;
}

.bt-booking .bookly-form .bookly-progress-tracker .step {
	height: 8px !important;
	margin-top: 0.55rem !important;
	background: #ddd6c4 !important;
	border-radius: 999px !important;
	overflow: hidden;
}

.bt-booking .bookly-form .bookly-progress-tracker > div:first-child .step,
.bt-booking .bookly-form .bookly-progress-tracker > div:last-child .step {
	border-radius: 999px !important;
}

.bt-booking .bookly-form .bookly-progress-tracker .step.active,
.bt-booking .bookly-form .bookly-progress-tracker > div.active .step,
.bt-booking .bookly-form .bookly-progress-tracker .bookly-active .step {
	background: linear-gradient(90deg, var(--bt-book-gold) 0%, #e2c35a 100%) !important;
	box-shadow: 0 0 0 1px rgba(212, 175, 55, 0.25);
}

/* Form fields — exclude intl-tel-input so the flag/+dial padding stays intact. */
.bt-booking .bookly-form input[type="text"]:not(.iti__tel-input),
.bt-booking .bookly-form input[type="email"],
.bt-booking .bookly-form input[type="tel"]:not(.iti__tel-input),
.bt-booking .bookly-form input[type="number"],
.bt-booking .bookly-form input[type="date"],
.bt-booking .bookly-form input[type="password"],
.bt-booking .bookly-form textarea,
.bt-booking .bookly-form select,
.bt-booking .bookly-form .bookly-form-group input:not(.iti__tel-input),
.bt-booking .bookly-form .bookly-form-group select {
	font-family: "Inter", sans-serif !important;
	font-size: 1rem !important;
	padding: 0.8rem 0.95rem !important;
	border: 1px solid #d5d0c4 !important;
	border-radius: 10px !important;
	background-color: #ffffff !important;
	color: var(--bt-book-dark) !important;
	line-height: 1.4 !important;
	min-height: 48px;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

/* Phone widget (intl-tel-input): keep Bookly/iti left padding for flag + dial code. */
.bt-booking .bookly-form .iti {
	display: block;
	width: 100%;
}

.bt-booking .bookly-form .iti input.iti__tel-input,
.bt-booking .bookly-form input.iti__tel-input {
	font-family: "Inter", sans-serif !important;
	font-size: 1rem !important;
	padding-top: 0.8rem !important;
	padding-bottom: 0.8rem !important;
	padding-right: 0.95rem !important;
	/* padding-left intentionally left to intl-tel-input */
	border: 1px solid #d5d0c4 !important;
	border-radius: 10px !important;
	background-color: #ffffff !important;
	color: var(--bt-book-dark) !important;
	line-height: 1.4 !important;
	min-height: 48px;
	width: 100%;
}

.bt-booking .bookly-form textarea {
	min-height: 110px;
}

.bt-booking .bookly-form input:focus:not(.iti__tel-input),
.bt-booking .bookly-form textarea:focus,
.bt-booking .bookly-form select:focus {
	border-color: var(--bt-book-gold) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.28) !important;
}

.bt-booking .bookly-form .iti input.iti__tel-input:focus {
	border-color: var(--bt-book-gold) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.28) !important;
}

.bt-booking .bookly-form label {
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.92rem;
	color: var(--bt-book-dark);
	margin-bottom: 0.35rem;
}

.bt-booking .bookly-form .bookly-form-group {
	margin-bottom: 0.35rem;
}

.bt-booking .bookly-form .bookly-list {
	padding: 0.85rem 1rem;
	border: 1px solid var(--bt-book-line);
	border-radius: 10px;
	background: #fff;
}

.bt-booking .bookly-form .bookly-list:hover {
	border-color: rgba(212, 175, 55, 0.55);
}

/* Time slots — single-column vertical scroll list (CSS layout only).
   Slot calendar (Bookly "Show calendar") floats left by default and overlaps
   the hour buttons in the sidebar layout — keep it stacked above times. */
.bt-booking .bookly-slot-calendar,
.bt-booking .bookly-js-slot-calendar {
	float: none !important;
	display: block;
	width: 100%;
	max-width: 20rem;
	margin: 0 auto 1rem !important;
	position: relative;
	z-index: 1;
	clear: both;
}

.bt-booking .bookly-form .bookly-time-step {
	overflow: visible !important;
	margin-bottom: 1.25rem !important;
	clear: both;
	position: relative;
	z-index: 2;
}

.bt-booking .bookly-form .bookly-columnizer-wrap {
	max-width: min(100%, 420px);
	margin: 0 auto;
	padding: 0.85rem 0.9rem;
	background: var(--bt-book-soft);
	border: 1px solid var(--bt-book-line);
	border-radius: 14px;
	box-shadow: 0 1px 0 rgba(212, 175, 55, 0.12);
}

.bt-booking .bookly-form .bookly-columnizer {
	white-space: normal !important;
	position: relative !important;
	min-height: 0 !important;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen {
	display: flex !important;
	flex-direction: column !important;
	flex-wrap: nowrap !important;
	width: 100% !important;
	max-width: 100% !important;
	max-height: min(58vh, 420px);
	overflow-x: hidden !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch;
	scroll-snap-type: y proximity;
	gap: 0.35rem;
	padding-right: 0.15rem;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-column {
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	padding: 0 !important;
	float: none !important;
	vertical-align: top;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-column + .bookly-column {
	margin-top: 0.65rem;
	padding-top: 0.65rem;
	border-top: 1px solid var(--bt-book-line);
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-day,
.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour {
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	min-height: 48px;
	margin: 0.28rem 0 !important;
	padding: 0.75rem 1rem !important;
	border-radius: 12px !important;
	border: 1px solid #d5d0c4 !important;
	font-family: "Inter", sans-serif !important;
	font-size: 1rem !important;
	line-height: 1.35 !important;
	text-align: left !important;
	float: none !important;
	box-sizing: border-box;
	scroll-snap-align: start;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, transform 0.12s ease;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-day {
	margin-top: 0.15rem !important;
	margin-bottom: 0.45rem !important;
	background: var(--bt-book-dark) !important;
	border-color: var(--bt-book-dark) !important;
	color: #fff !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 600 !important;
	font-size: 0.92rem !important;
	letter-spacing: 0.01em;
	text-align: center !important;
	cursor: default !important;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour {
	background: #fff !important;
	cursor: pointer !important;
	pointer-events: auto !important;
	position: relative;
	z-index: 2;
	-webkit-tap-highlight-color: transparent;
}

.bt-booking .bookly-time-step .bookly-js-datepicker-calendar-wrap {
	position: relative;
	z-index: 1;
	margin-bottom: 0.75rem;
}

.bt-booking .bookly-time-step .bookly-columnizer-wrap {
	position: relative;
	z-index: 2;
	pointer-events: auto;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour span {
	font-weight: 500 !important;
	color: var(--bt-book-dark) !important;
	font-variant-numeric: tabular-nums;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour .bookly-time-main {
	min-width: 0 !important;
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1.05rem;
	letter-spacing: 0.02em;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour .bookly-hour-icon {
	display: none !important;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour .bookly-time-additional {
	font-family: "Inter", sans-serif;
	font-weight: 500;
	font-size: 0.85rem;
	color: var(--bt-book-muted) !important;
}

@media (hover: hover) {
	.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour:hover:not(.booked) {
		border-color: var(--bt-book-gold) !important;
		background: #fffdf5 !important;
		box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.22);
		transform: translateY(-1px);
	}

	.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour.booked:hover {
		border-color: #d5d0c4 !important;
		background: #fff !important;
		box-shadow: none;
		transform: none;
	}
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour:active:not(.booked),
.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour:focus-visible:not(.booked) {
	border-color: var(--bt-book-gold) !important;
	background: linear-gradient(180deg, #fff8e1 0%, #fff3c4 100%) !important;
	box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.35);
	outline: none;
}

.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour.booked,
.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour.booked:hover {
	opacity: 0.45;
	cursor: default !important;
}

@media (min-width: 768px) {
	.bt-booking .bookly-form .bookly-columnizer-wrap {
		max-width: 380px;
		padding: 1rem 1.05rem;
	}

	.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen {
		max-height: min(52vh, 460px);
	}

	.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-day,
	.bt-booking .bookly-form .bookly-columnizer .bookly-time-screen .bookly-hour {
		min-height: 50px;
		padding: 0.8rem 1.1rem !important;
	}
}

/* Primary buttons */
.bt-booking .bookly-form .bookly-btn,
.bt-booking .bookly-form .bookly-btn > span,
.bt-booking .bookly-form .bookly-btn-submit,
.bt-booking .bookly-form .bookly-btn-submit > span {
	color: var(--bt-book-dark) !important;
	font-family: "Poppins", sans-serif !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em;
	border-radius: 999px !important;
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.bt-booking .bookly-form .bookly-btn,
.bt-booking .bookly-form .bookly-btn-submit {
	min-height: 46px;
	padding: 0.7rem 1.35rem !important;
	box-shadow: 0 8px 18px rgba(212, 175, 55, 0.28);
}

.bt-booking .bookly-form .bookly-btn:hover,
.bt-booking .bookly-form .bookly-btn:focus,
.bt-booking .bookly-form .bookly-btn-submit:hover,
.bt-booking .bookly-form .bookly-btn-submit:focus {
	background-color: var(--bt-book-gold-deep) !important;
	color: var(--bt-book-dark) !important;
	transform: translateY(-1px);
	box-shadow: 0 10px 22px rgba(193, 159, 46, 0.32);
}

/* Nav row + Back */
.bt-booking .bookly-form .bookly-nav-steps {
	margin-top: 0.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--bt-book-line);
}

.bt-booking .bookly-form .bookly-back-step {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: var(--bt-book-dark);
	background: transparent;
	border: none;
	cursor: pointer;
	padding: 0.65rem 0.35rem;
	min-height: 44px;
}

.bt-booking .bookly-form .bookly-back-step:hover,
.bt-booking .bookly-form .bookly-back-step:focus {
	color: var(--bt-book-gold-deep);
}

.bt-booking .powered-by-bookly {
	opacity: 0.45;
	margin-top: 1rem !important;
}

/* Hide Time/Extras briefly while JS auto-advances them.
   Vertical-list Time styles stay as fallback if skip cannot complete. */
.bt-booking.bt-skipping-time .bookly-time-step,
.bt-booking.bt-skipping-time .bookly-columnizer-wrap,
.bt-booking.bt-skipping-extras .bookly-extra-step,
.bt-booking.bt-skipping-extras .bookly-js-extras-container {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.bt-booking .bookly-progress-tracker > div.bt-progress-hidden {
	display: none !important;
}

/* Hold progress bar invisible until JS collapses it to 4 steps (avoids 6-step flash). */
.bt-booking .bookly-progress-tracker:not(.bt-progress-ready),
.bt-booking .bookly-progress-tracker:not(.bt-progress-ready) + ol.bookly-stepper {
	visibility: hidden;
}

/* Extras panel injected into Details (visual merge).
   Bookly's default is a 4-col (2-col on phones) inline-block grid — that
   clips 44px − / + controls at 375px. Each extra is a stacked row. */
.bt-booking .bt-merged-extras {
	margin: 0 0 1.25rem;
	padding: 0.85rem 0.85rem 0.5rem;
	border: 1px solid var(--bt-book-line, #e6e0d0);
	border-radius: 12px;
	background: var(--bt-book-soft, #faf7ec);
	max-width: 100%;
	box-sizing: border-box;
	overflow: visible;
}

.bt-booking .bt-merged-extras .bookly-extra-step,
.bt-booking .bt-merged-extras .bookly-js-extras-container {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.bt-booking .bt-merged-extras .bookly-nav-steps {
	display: none !important;
}

.bt-booking .bt-merged-extras .extra-widget-price {
	display: none;
}

.bt-booking .bt-merged-extras .bookly-extra-step .bookly-extras-item,
.bt-booking .bt-merged-extras .bookly-js-extras-item {
	display: flex !important;
	flex-direction: column;
	align-items: stretch;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0.75rem 0.8rem 0.7rem;
	box-sizing: border-box;
	overflow: visible;
	vertical-align: top;
	background: #ffffff;
	border: 1px solid var(--bt-book-line, #e6e0d0);
	border-radius: 10px;
}

.bt-booking .bt-merged-extras .bookly-extras-thumb,
.bt-booking .bt-merged-extras .bookly-js-extras-thumb {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	text-align: left;
	line-height: 1.35;
	cursor: pointer;
	background: transparent;
}

.bt-booking .bt-merged-extras .bookly-extras-thumb > div,
.bt-booking .bt-merged-extras .bookly-js-extras-thumb > div {
	display: block;
	width: 100%;
	background: none;
}

.bt-booking .bt-merged-extras .extra-widget-title {
	display: block;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--bt-book-dark, #1a1a1a);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bt-booking .bt-merged-extras .extra-widget-duration {
	display: none;
}

/* Bookly hides qty + price when max_quantity is 1. Always show them. */
.bt-booking .bt-merged-extras .bookly-js-extras-item > div:not(.bookly-extras-thumb):not(.bookly-js-extras-thumb) {
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.4rem;
	width: 100%;
	max-width: 100%;
	margin: 0.55rem 0 0;
	box-sizing: border-box;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls {
	display: flex !important;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem;
	width: auto;
	max-width: 100%;
	margin: 0;
	padding: 0;
	overflow: visible;
	box-sizing: border-box;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls > * {
	vertical-align: middle;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls button,
.bt-booking .bt-merged-extras .bookly-extras-count-controls button.bookly-round {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 44px;
	min-width: 44px;
	min-height: 44px;
	width: 44px !important;
	height: 44px !important;
	margin: 0 !important;
	border: 1px solid #e6e0d0 !important;
	border-radius: 8px !important;
	background: #ffffff !important;
	color: #1a1a1a !important;
	cursor: pointer;
	padding: 0 !important;
	line-height: 1 !important;
	box-shadow: none;
	background-image: none !important;
	box-sizing: border-box;
	overflow: visible;
	flex-shrink: 0;
}

.bt-booking .bt-merged-extras .bookly-extras-increment {
	margin-left: 0 !important;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls button:hover,
.bt-booking .bt-merged-extras .bookly-extras-count-controls button:focus,
.bt-booking .bt-merged-extras .bookly-extras-count-controls button.bookly-round:hover,
.bt-booking .bt-merged-extras .bookly-extras-count-controls button.bookly-round:focus {
	border-color: #d4af37 !important;
	background: #faf3dc !important;
	outline: none;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls button .bookly-icon-sm {
	display: none;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls button::before {
	content: "\2212";
	font-family: "Inter", sans-serif;
	font-size: 1.35rem;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls button.bookly-js-extras-increment::before,
.bt-booking .bt-merged-extras .bookly-extras-count-controls button.bookly-extras-increment::before {
	content: "+";
}

.bt-booking .bt-merged-extras .bt-extras-qty-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.4rem;
	width: 100%;
	max-width: 100%;
}

.bt-booking .bt-merged-extras .bookly-extras-count-controls input {
	flex: 0 0 3.25rem;
	width: 3.25rem !important;
	max-width: 3.25rem !important;
	min-width: 0;
	min-height: 44px;
	height: 44px;
	text-align: center;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	font-size: 1rem;
	color: #1a1a1a;
	border: 1px solid #e6e0d0;
	border-radius: 8px;
	background: #ffffff;
	padding: 0;
	margin: 0 !important;
	box-sizing: border-box;
}

.bt-booking .bt-merged-extras .bookly-js-extras-total-price,
.bt-booking .bookly-js-extras-total-price {
	display: block !important;
	margin: 0;
	font-family: "Inter", sans-serif;
	font-size: 0.88rem;
	font-weight: 600;
	color: #1a1a1a;
	letter-spacing: 0.01em;
	text-align: left;
}

.bt-booking .bt-merged-extras .bookly-extras-summary,
.bt-booking .bt-merged-extras .bookly-js-extras-summary {
	display: block;
	width: 100%;
	margin: 0.15rem 0 0;
	font-size: 0.88rem;
}

@media (min-width: 700px) {
	.bt-booking .bt-merged-extras .bookly-js-extras-container {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0.75rem;
	}

	.bt-booking .bt-merged-extras .bookly-extras-summary,
	.bt-booking .bt-merged-extras .bookly-js-extras-summary {
		grid-column: 1 / -1;
	}
}

/* Hide the "Employee" dropdown on step 1 — we have a single staff member, so
   customers only see Category + Service. CSS-only: Bookly keeps the field in
   the DOM and auto-selects the sole staff member, so its JS is unaffected.
   Bookly renders it as <div class="bookly-form-group" data-type="staff">. */
.bt-booking .bookly-form .bookly-form-group[data-type="staff"],
.bt-booking .bookly-form-group[data-type="staff"] {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Vehicle photo preview above the native Service <select> (select unchanged). */
.bt-booking .bt-service-preview {
	margin: 0 0 0.75rem;
}

.bt-booking .bt-service-preview[hidden] {
	display: none !important;
}

.bt-booking .bt-service-preview img {
	display: block;
	max-width: min(100%, 280px);
	max-height: 140px;
	width: auto;
	height: auto;
	aspect-ratio: 2 / 1;
	object-fit: contain;
	border-radius: 10px;
	border: 1px solid var(--bt-book-line, #e6e0d0);
	background: var(--bt-book-soft, #faf7ec);
}

/* Service step vehicle cards (BT_SERVICE_CARDS) — native select stays in DOM for Bookly. */
.bt-booking .bookly-form-group.bt-service-cards-on > label {
	display: none !important;
}

.bt-booking .bookly-form-group.bt-service-cards-on select {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
	border: 0 !important;
	clip: rect(0, 0, 0, 0) !important;
}

/* Collapse Bookly's empty select wrapper so no blank "dropdown" shows. */
.bt-booking .bookly-form-group.bt-service-cards-on > div:has(> select) {
	position: relative;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
}

.bt-booking .bt-service-cards {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin: 0.35rem 0 0.25rem;
	width: 100%;
}

.bt-booking .bt-service-mountain-notice {
	margin: 0 0 0.65rem;
	padding: 0.55rem 0.75rem;
	font-family: "Inter", sans-serif;
	font-size: 0.82rem;
	line-height: 1.35;
	color: #5a4a12;
	background: #faf7ec;
	border: 1px solid #ebe4d2;
	border-left: 3px solid #d4af37;
	border-radius: 8px;
}

.bt-booking .bt-service-card {
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem;
	align-items: center;
	padding: 0.85rem;
	border: 1.5px solid var(--bt-book-line, #e6e0d0);
	border-radius: 12px;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.bt-booking .bt-service-card__badge {
	grid-column: 1 / -1;
	justify-self: start;
	display: inline-block;
	margin: 0 0 0.15rem;
	padding: 0.28rem 0.65rem;
	font-family: "Poppins", sans-serif;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.2;
	color: #1a1a1a;
	background: #d4af37;
	border-radius: 999px;
}

.bt-booking .bt-service-card__tag--ski {
	background: #1a1a1a;
	border-color: #1a1a1a;
	color: #fff;
}

.bt-booking .bt-service-compare {
	margin: 0.85rem 0 0.25rem;
	padding: 0.75rem 0.85rem;
	border: 1px solid var(--bt-book-line, #e6e0d0);
	border-radius: 10px;
	background: #fafafa;
}

.bt-booking .bt-service-compare__label {
	margin: 0 0 0.5rem;
	font-family: "Poppins", sans-serif;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #8a7420;
}

.bt-booking .bt-service-compare__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0.5rem;
}

.bt-booking .bt-service-compare__col {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	font-family: "Inter", sans-serif;
	font-size: 0.78rem;
	color: #1a1a1a;
	line-height: 1.3;
}

.bt-booking .bt-service-compare__name {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.8rem;
	margin-bottom: 0.1rem;
}

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

.bt-booking .bt-service-card.is-selected {
	border-color: #d4af37;
	box-shadow: 0 0 0 1px #d4af37, 0 8px 22px rgba(212, 175, 55, 0.12);
	background: #fffef8;
}

.bt-booking .bt-service-card__media {
	position: relative;
	width: 100%;
	max-width: 220px;
	aspect-ratio: 16 / 10;
	border-radius: 8px;
	overflow: hidden;
	background-color: #f2f2f2;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	border: 1px solid var(--bt-book-line, #e6e0d0);
}

.bt-booking .bt-service-card__media img,
.bt-booking .bt-service-card__img-ph {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	object-fit: contain;
	object-position: center;
	background: transparent;
}

.bt-booking .bt-service-card__name {
	margin: 0 0 0.15rem;
	font-family: "Poppins", sans-serif;
	font-size: 1.05rem;
	font-weight: 600;
	color: #1a1a1a;
	line-height: 1.25;
}

.bt-booking .bt-service-card__subtitle {
	margin: 0 0 0.55rem;
	font-family: "Inter", sans-serif;
	font-size: 0.88rem;
	color: #5c5c5c;
}

.bt-booking .bt-service-card__specs {
	list-style: none;
	margin: 0 0 0.55rem;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 1rem;
}

.bt-booking .bt-service-card__specs li {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	font-family: "Inter", sans-serif;
	font-size: 0.85rem;
	color: #1a1a1a;
}

.bt-booking .bt-service-card__icon {
	width: 1.05rem;
	height: 1.05rem;
	flex: 0 0 auto;
	color: #8a7420;
}

.bt-booking .bt-service-card__tags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.bt-booking .bt-service-card__tag {
	font-family: "Inter", sans-serif;
	font-size: 0.72rem;
	line-height: 1.2;
	padding: 0.28rem 0.55rem;
	border-radius: 999px;
	background: #faf7ec;
	border: 1px solid #ebe4d2;
	color: #5a4a12;
}

.bt-booking .bt-service-card__action {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.45rem;
}

.bt-booking .bt-service-card__price {
	margin: 0;
	font-family: "Poppins", sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.2;
	color: #1a1a1a;
	letter-spacing: 0.01em;
	text-align: center;
}

.bt-booking .bt-service-card__btn {
	appearance: none;
	border: none;
	cursor: pointer;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.88rem;
	line-height: 1.2;
	padding: 0.7rem 1rem;
	border-radius: 8px;
	background: #d4af37;
	color: #1a1a1a;
	width: 100%;
	transition: background 0.15s ease, transform 0.1s ease;
}

.bt-booking .bt-service-card__btn:hover,
.bt-booking .bt-service-card__btn:focus {
	background: #c19f2e;
	outline: none;
}

.bt-booking .bt-service-card.is-selected .bt-service-card__btn {
	background: #1a1a1a;
	color: #fff;
}

@media (min-width: 700px) {
	.bt-booking .bt-service-card {
		grid-template-columns: 160px 1fr auto;
		gap: 1rem;
		padding: 0.95rem 1rem;
	}

	.bt-booking .bt-service-card__media {
		max-width: none;
		width: 160px;
	}

	.bt-booking .bt-service-card__btn {
		width: auto;
		white-space: nowrap;
		min-width: 9.5rem;
	}

	.bt-booking .bt-service-card__action {
		align-items: flex-end;
		min-width: 9.5rem;
	}

	.bt-booking .bt-service-card__price {
		text-align: right;
		font-size: 1.2rem;
	}
}

/* Branded loading — hide Bookly's grey GIF / Ladda spinner; skeletons + gold bar. */
.bt-booking .bookly-form img[src*="loader.gif"],
.bt-booking .bookly-form img[src*="lightgray/img/loader"],
.bt-booking .bookly-form > div:has(> img[src*="loader.gif"]) {
	display: none !important;
}

.bt-booking .bookly-form .bookly-loading:before {
	display: none !important;
	background: none !important;
}

.bt-booking .ladda-button .ladda-spinner,
.bt-booking .bookly-spin-overlay .spinner {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
}

.bt-booking .ladda-button[data-loading] .ladda-label {
	opacity: 0.42;
	transform: none !important;
}

.bt-booking .ladda-button[data-loading]::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 50%;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	border: 1.5px solid rgba(26, 26, 26, 0.12);
	border-top-color: #d4af37;
	border-radius: 50%;
	animation: bt-book-spin 0.7s linear infinite;
	z-index: 4;
	pointer-events: none;
}

@keyframes bt-book-spin {
	to { transform: rotate(360deg); }
}

.bt-booking.bt-booking--skel .bookly-loading-mark {
	display: none !important;
}

.bt-booking .bookly-loading-mark {
	color: #e8e2d4;
}

.bt-booking .bookly-loading-mark svg {
	color: #e8e2d4 !important;
}

.bt-booking .bookly-loading-mark svg path[fill="currentFill"] {
	fill: #d4af37 !important;
}

.bt-booking .bt-book-progress {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 2px;
	z-index: 6;
	overflow: hidden;
	pointer-events: none;
	border-radius: 16px 16px 0 0;
}

.bt-booking .bt-book-progress[hidden] {
	display: none !important;
}

.bt-booking .bt-book-progress__bar {
	display: block;
	height: 100%;
	width: 28%;
	background: linear-gradient(90deg, rgba(212, 175, 55, 0) 0%, #d4af37 42%, #c19f2e 58%, rgba(212, 175, 55, 0) 100%);
	animation: bt-book-progress 1.05s ease-in-out infinite;
}

@keyframes bt-book-progress {
	0% { transform: translateX(-110%); }
	100% { transform: translateX(460%); }
}

.bt-booking .bt-service-skel-wrap {
	margin: 0.35rem 0 0.25rem;
	width: 100%;
}

.bt-booking .bt-service-card.bt-service-skel {
	pointer-events: none;
	border-color: #ebe6d8;
	box-shadow: none;
	background: #fff;
}

.bt-booking .bt-service-skel__media,
.bt-booking .bt-service-skel__line,
.bt-booking .bt-service-skel__btn {
	background-color: #eeeae0;
	background-image: linear-gradient(90deg, #eeeae0 0%, #f7f4ea 42%, #eeeae0 84%);
	background-size: 200% 100%;
	animation: bt-skel-shimmer 1.4s ease-in-out infinite;
}

.bt-booking .bt-service-skel__media {
	width: 100%;
	max-width: 220px;
	aspect-ratio: 16 / 10;
	border-radius: 8px;
}

.bt-booking .bt-service-skel__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	min-width: 0;
}

.bt-booking .bt-service-skel__line {
	display: block;
	height: 0.7rem;
	border-radius: 4px;
}

.bt-booking .bt-service-skel__line--title {
	width: 48%;
	height: 0.95rem;
}

.bt-booking .bt-service-skel__line--sub {
	width: 64%;
}

.bt-booking .bt-service-skel__line--spec {
	width: 36%;
}

.bt-booking .bt-service-skel__line--price {
	width: 4.4rem;
	height: 1.05rem;
}

.bt-booking .bt-service-skel__action {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0.5rem;
}

.bt-booking .bt-service-skel__btn {
	display: block;
	width: 100%;
	height: 2.5rem;
	border-radius: 999px;
}

@keyframes bt-skel-shimmer {
	0% { background-position: 100% 0; }
	100% { background-position: -100% 0; }
}

@media (min-width: 700px) {
	.bt-booking .bt-service-skel__media {
		width: 160px;
		max-width: none;
	}

	.bt-booking .bt-service-skel__action {
		align-items: flex-end;
		min-width: 9.5rem;
	}

	.bt-booking .bt-service-skel__btn {
		width: 9.5rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bt-booking .bt-book-progress__bar,
	.bt-booking .bt-service-skel__media,
	.bt-booking .bt-service-skel__line,
	.bt-booking .bt-service-skel__btn,
	.bt-booking .ladda-button[data-loading]::after {
		animation: none;
	}

	.bt-booking .ladda-button[data-loading]::after {
		border-top-color: #d4af37;
		opacity: 0.85;
	}

	.bt-booking .bt-book-progress__bar {
		width: 100%;
		opacity: 0.85;
		background: #d4af37;
	}
}

/* Hide "I'm available on or after" — Bookly still sets a default date in JS.
   Multiple hooks so this survives addon/markup changes. Field stays in DOM. */
.bt-booking .bookly-form .bookly-service-step .bookly-available-date,
.bt-booking .bookly-form .bookly-service-step .bookly-js-available-date,
.bt-booking .bookly-service-step .bookly-available-date.bookly-js-available-date,
.bt-booking .bookly-form .bookly-service-step .bookly-form-group:has(input.bookly-js-date-from),
.bt-booking .bookly-form .bookly-service-step .bookly-form-group:has(input.bookly-date-from),
.bt-booking .bookly-form .bookly-service-step input.bookly-js-date-from,
.bt-booking .bookly-form .bookly-service-step input.bookly-date-from,
.bt-booking .bookly-form .bookly-service-step label[for^="bookly-available-after-"] {
	display: none !important;
	visibility: hidden !important;
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	pointer-events: none !important;
	opacity: 0 !important;
}

/* Hide weekday + start/finish time row on service step (date/time from hero). */
.bt-booking .bookly-service-step .bookly-js-week-days,
.bt-booking .bookly-service-step .bookly-js-time-range,
.bt-booking .bookly-service-step .bookly-week-days,
.bt-booking .bookly-service-step .bookly-time-range {
	display: none !important;
}

/* Hide Bookly Stripe radio price badge (backend charge unchanged). */
.bt-booking .bookly-js-pay {
	display: none !important;
}

/* Pay locally removed — Stripe only (deposit or full online). */
.bt-booking .bookly-payment-step .bookly-box.bookly-list:has(input[value="local"]) {
	display: none !important;
}

.bt-booking .bookly-js-deposit-wrap {
	margin: 0 0 1.15rem;
}

.bt-booking .bt-payment-charge {
	display: none !important;
}

.bt-booking .bt-payment-charge-note {
	margin: 0 0 1.15rem;
	padding: 0.9rem 1rem;
	font-size: 1rem;
	line-height: 1.5;
	color: #1a1a1a;
	background: #faf7ec;
	border: 1px solid #d4af37;
	border-radius: 10px;
}

.bt-booking .bt-payment-charge-note strong {
	font-family: "Poppins", sans-serif;
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0.01em;
}

/* Flight number custom field (Bookly Details step). */
.bt-booking .bookly-custom-field-row[data-id="900002"] .bookly-form-group > div:last-child {
	margin-top: 0.3rem;
	font-size: 0.8rem;
	color: #6b5a2a;
	line-height: 1.4;
}

/* Legal-agreement custom field (Bookly Details step). */
.bt-booking .bookly-custom-field-row[data-id="900001"] .bookly-form-group > label:first-child {
	display: none;
}

.bt-booking .bookly-custom-field-row[data-id="900001"] a {
	color: #8a6d0f;
	text-decoration: underline;
}

.bt-booking .bookly-custom-field-row[data-id="900001"] a:hover,
.bt-booking .bookly-custom-field-row[data-id="900001"] a:focus {
	color: #d4af37;
}

/* Done step — print-friendly confirmation card. */
.bt-booking .bt-confirm__thanks {
	margin: 0 0 1rem;
	font-family: "Inter", sans-serif;
	font-size: 1rem;
	line-height: 1.5;
	color: #1a1a1a;
}

.bt-booking .bt-confirm {
	margin: 0 0 1rem;
	padding: 1.15rem 1.25rem 1.2rem;
	background: #faf7ec;
	border: 1px solid #e6e0d0;
	border-radius: 14px;
}

.bt-booking .bt-confirm__brand {
	margin: 0 0 0.2rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #d4af37;
}

.bt-booking .bt-confirm__title {
	margin: 0 0 0.55rem;
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: 1.15rem;
	color: #1a1a1a;
}

.bt-booking .bt-confirm__ref {
	margin: 0 0 0.85rem;
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	color: #1a1a1a;
}

.bt-booking .bt-confirm__meta {
	margin: 0;
}

.bt-booking .bt-confirm__row {
	display: grid;
	grid-template-columns: 9.5rem 1fr;
	gap: 0.35rem 0.75rem;
	padding: 0.45rem 0;
	border-top: 1px solid #ebe4d2;
}

.bt-booking .bt-confirm__row dt {
	margin: 0;
	font-family: "Inter", sans-serif;
	font-size: 0.8rem;
	color: #6b5a2a;
}

.bt-booking .bt-confirm__row dd {
	margin: 0;
	font-family: "Inter", sans-serif;
	font-size: 0.9rem;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1.35;
}

.bt-booking .bt-confirm__extras {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bt-booking .bt-confirm__extras li {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 0.5rem 0.85rem;
	align-items: baseline;
}

.bt-booking .bt-confirm__extra-qty,
.bt-booking .bt-confirm__extra-price {
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.bt-booking .bt-confirm__row--total {
	border-top: 1px solid #d4af37;
}

.bt-booking .bt-confirm__row--total dt,
.bt-booking .bt-confirm__row--total dd {
	font-weight: 700;
	color: #1a1a1a;
}

.bt-booking .bt-confirm__pay {
	margin: 0.85rem 0 0;
	padding: 0.75rem 0.85rem;
	font-family: "Inter", sans-serif;
	font-size: 0.92rem;
	line-height: 1.45;
	color: #1a1a1a;
	background: #fff;
	border: 1px solid #d4af37;
	border-radius: 8px;
}

.bt-booking .bt-confirm__pay strong {
	font-weight: 700;
}

.bt-booking .bt-confirm__notes {
	margin: 0.85rem 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid #ebe4d2;
	font-family: "Inter", sans-serif;
	font-size: 0.9rem;
	line-height: 1.45;
	color: #1a1a1a;
	white-space: pre-wrap;
}

.bt-booking .bt-confirm__contact {
	margin: 0.85rem 0 0;
	padding-top: 0.75rem;
	border-top: 1px solid #ebe4d2;
	font-family: "Inter", sans-serif;
	font-size: 0.85rem;
	line-height: 1.45;
	color: #1a1a1a;
}

.bt-booking .bt-confirm__contact p {
	margin: 0.15rem 0;
}

.bt-booking .bt-confirm__contact-label {
	margin: 0 0 0.3rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #6b5a2a;
}

.bt-booking .bt-confirm__actions {
	margin: 0 0 0.5rem;
}

.bt-booking .bt-confirm__download {
	appearance: none;
	display: inline-block;
	margin: 0;
	padding: 0.75rem 1.25rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	color: #1a1a1a;
	background: #d4af37;
	border: 2px solid #d4af37;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.bt-booking .bt-confirm__download:hover,
.bt-booking .bt-confirm__download:focus {
	background: #c19f2e;
	border-color: #c19f2e;
	outline: none;
}

@media print {
	/* Do not use `body * { visibility: hidden }` — Chrome freezes laying out
	   Bookly + OSM map tiles + Stripe iframe for print. Confirmation download
	   prints an isolated iframe; Cmd+P just hides chrome + the map. */
	.site-header,
	.bt-footer,
	.bt-wa,
	.bt-mobile-book,
	.bt-confirm__actions,
	.bt-confirm__download,
	.bt-trip-aside,
	#bt-trip-map,
	.bt-trip-map__tiles {
		display: none !important;
	}
}

/* =====================================================================
   ROUTE LANDING PAGE  (.bt-lp)  — e.g. /zurich-airport-transfer/
   Self-contained styles for the pasted HTML block. "bt-lp" prefixed.
   ===================================================================== */

.bt-lp {
	max-width: 860px;
	margin: 0 auto;
}

/* The single H1 for the page. */
.bt-lp__h1 {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	line-height: 1.15;
	color: #1a1a1a;
	font-size: clamp(1.9rem, 5vw, 3rem);
	margin: 0 0 1rem;
}

/* Intro paragraph. */
.bt-lp__intro {
	font-size: clamp(1.05rem, 2vw, 1.2rem);
	line-height: 1.7;
	color: #333333;
	margin: 0 0 2.5rem;
}

/* Breadcrumbs — visible trail matches BreadcrumbList JSON-LD. */
.bt-crumbs {
	margin: 0 0 1.25rem;
	font-size: 0.88rem;
	color: #666666;
}

.bt-crumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.2rem 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.bt-crumbs__item:not(:last-child)::after {
	content: "/";
	margin-left: 0.35rem;
	color: #bbbbbb;
}

.bt-crumbs a {
	color: #666666;
	text-decoration: none;
}

.bt-crumbs a:hover,
.bt-crumbs a:focus {
	color: #c19f2e;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.bt-crumbs [aria-current="page"] {
	color: #1a1a1a;
}

a.bt-lp__route-name {
	text-decoration: none;
	color: inherit;
}

a.bt-lp__route-name:hover,
a.bt-lp__route-name:focus {
	color: #c19f2e;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Section spacing + H2s. */
.bt-lp__section {
	margin-top: clamp(2.5rem, 6vw, 4rem);
}

.bt-lp__title {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	line-height: 1.2;
	color: #1a1a1a;
	font-size: clamp(1.4rem, 3.5vw, 2rem);
	margin: 0 0 1.25rem;
}

.bt-lp p {
	line-height: 1.7;
	color: #333333;
}

/* Routes list. */
.bt-lp__routes {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid #ececec;
	border-radius: 10px;
	overflow: hidden;
}

.bt-lp__route {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.35rem 0.75rem;
	padding: clamp(0.9rem, 2vw, 1.15rem) clamp(1rem, 3vw, 1.5rem);
	border-bottom: 1px solid #ececec;
}

.bt-lp__route:last-child {
	border-bottom: none;
}

.bt-lp__route-name {
	flex: 0 1 auto;
	min-width: 0;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #1a1a1a;
	font-size: 1.05rem;
}

.bt-lp__route-meta {
	flex: 1 1 8rem;
	min-width: 0;
	color: #666666;
	font-size: 0.92rem;
}

.bt-lp__route-end {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-left: auto;
	flex: 0 0 auto;
}

.bt-lp__route-price {
	color: #1a1a1a;
	font-weight: 600;
	white-space: nowrap;
}

.bt-lp__route-book,
.bt-route__book {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	padding: 0.45rem 0.85rem;
	border-radius: 6px;
	background: #d4af37;
	border: 2px solid #d4af37;
	color: #1a1a1a;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.82rem;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.bt-lp__route-guide {
	font-size: 0.88rem;
	font-weight: 600;
	color: #1a1a1a;
	text-decoration: underline;
	text-underline-offset: 2px;
	white-space: nowrap;
}

.bt-lp__route-guide:hover,
.bt-lp__route-guide:focus {
	color: #c19f2e;
}

/* Three-vehicle fare table on dedicated destination landings. */
.bt-lp__fares-wrap {
	overflow-x: auto;
	border: 1px solid #ececec;
	border-radius: 10px;
}

.bt-lp__fares {
	width: 100%;
	min-width: 32rem;
	border-collapse: collapse;
	margin: 0;
}

.bt-lp__fares th,
.bt-lp__fares td {
	padding: 0.9rem 1.15rem;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid #ececec;
}

.bt-lp__fares thead th {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.88rem;
	background: #faf7ec;
	color: #1a1a1a;
}

.bt-lp__fares tbody th {
	font-weight: 400;
}

.bt-lp__fares tbody tr:last-child th,
.bt-lp__fares tbody tr:last-child td {
	border-bottom: none;
}

.bt-lp__fares tbody th strong {
	display: block;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #1a1a1a;
}

.bt-lp__fares-sub {
	display: block;
	margin-top: 0.15rem;
	color: #666666;
	font-size: 0.88rem;
}

.bt-lp__fares-price {
	font-weight: 600;
	white-space: nowrap;
	color: #1a1a1a;
}

.bt-lp__fares-book {
	margin-top: 1rem;
}

@media (max-width: 699px) {
	.bt-lp__route-guide {
		width: 100%;
	}
}

@media (max-width: 699px) {
	.bt-lp__route-end {
		width: 100%;
		margin-left: 0;
		flex-wrap: wrap;
	}

	.bt-lp__route-price,
	.bt-route__price {
		margin-left: 0;
	}

	.bt-lp__route-book,
	.bt-route__book {
		width: 100%;
	}
}

/* Why-us list. */
.bt-lp__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bt-lp__list li {
	position: relative;
	padding-left: 1.75rem;
	margin-bottom: 0.9rem;
	line-height: 1.6;
	color: #333333;
}

/* Gold check-style marker. */
.bt-lp__list li::before {
	content: "\2713";                    /* checkmark */
	position: absolute;
	left: 0;
	top: 0;
	color: #d4af37;
	font-weight: 700;
}

.bt-lp__list strong {
	color: #1a1a1a;
}

/* Steps (ordered). */
.bt-lp__steps {
	margin: 0;
	padding-left: 1.25rem;
}

.bt-lp__steps li {
	margin-bottom: 0.75rem;
	line-height: 1.6;
	color: #333333;
}

.bt-lp__steps strong {
	color: #1a1a1a;
	font-family: "Poppins", sans-serif;
}

/* FAQ. */
.bt-lp__q {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: #1a1a1a;
	font-size: 1.1rem;
	margin: 1.5rem 0 0.4rem;
}

.bt-lp__a {
	margin: 0;
}

/* Destination guides on route pages. */
.bt-lp__guide {
	margin: 0 0 1.35rem;
	padding: 1.2rem 1.25rem 1.3rem;
	background: #faf7ec;
	border: 1px solid #e6e0d0;
	border-radius: 14px;
}

.bt-lp__guide:last-of-type {
	margin-bottom: 0;
}

.bt-lp__guide-title {
	margin: 0 0 0.35rem;
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: clamp(1.05rem, 2.4vw, 1.25rem);
	line-height: 1.3;
	color: #1a1a1a;
}

.bt-lp__guide-h {
	margin: 1rem 0 0.3rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	color: #1a1a1a;
}

.bt-lp__guide p {
	margin: 0;
}

.bt-lp__guide-book {
	margin-top: 1rem;
}

/* Final CTA. */
.bt-lp__cta {
	margin-top: clamp(2.5rem, 6vw, 4rem);
	padding: clamp(2rem, 5vw, 3rem);
	background-color: #1a1a1a;
	border-radius: 12px;
	text-align: center;
}

.bt-lp__cta p {
	color: #ffffff;
	font-size: clamp(1.1rem, 2.2vw, 1.35rem);
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	margin: 0 0 1.5rem;
}

.bt-lp__cta-note {
	font-family: "Inter", sans-serif !important;
	font-weight: 400 !important;
	font-size: 1rem !important;
	line-height: 1.55;
	margin-bottom: 1.15rem !important;
}

.bt-lp__actions--cta {
	justify-content: center;
	margin-bottom: 1rem;
}

.bt-lp__cta .bt-btn--outline,
.bt-btn--outline-on-dark {
	color: #ffffff;
	border-color: #d4af37;
}

.bt-lp__cta .bt-btn--outline:hover,
.bt-lp__cta .bt-btn--outline:focus,
.bt-btn--outline-on-dark:hover,
.bt-btn--outline-on-dark:focus {
	background-color: #d4af37;
	color: #1a1a1a;
	border-color: #d4af37;
}

.bt-lp__cta small {
	color: #c8c8c8;
}

/* ---------- Contact page bits ---------- */

/* Button row (WhatsApp + Call). */
.bt-lp__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	margin: 0 0 1rem;
}

/* Outline button for light backgrounds (e.g. "Call"). */
.bt-btn--outline {
	background-color: transparent;
	color: #1a1a1a;
	border: 2px solid #1a1a1a;
}

.bt-btn--outline:hover,
.bt-btn--outline:focus {
	background-color: #1a1a1a;
	color: #ffffff;
	transform: translateY(-2px);
}

/* Contact details list. */
.bt-lp__contact {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bt-lp__contact li {
	margin-bottom: 0.6rem;
	line-height: 1.6;
	color: #333333;
}

.bt-lp__contact strong {
	color: #1a1a1a;
}

.bt-lp__contact a {
	color: #1a1a1a;
	text-decoration: none;
	border-bottom: 1px solid #d4af37;
}

.bt-lp__contact a:hover,
.bt-lp__contact a:focus {
	color: #d4af37;
}

/* ---------- Fleet page media ---------- */

/* Responsive vehicle image (used when the real photo is added). */
.bt-lp__media {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 12px;
	margin: 0 0 1.5rem;
}

/* Placeholder shown until the real vehicle photo is added. */
.bt-lp__media--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 16 / 9;
	background-color: #f2f2f2;
	border: 1px dashed #cccccc;
	color: #999999;
	font-family: "Poppins", sans-serif;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
}

/* Vehicle card grid: 1 col mobile, 2 col tablet, 3 col desktop. */
.bt-fleet-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: clamp(1.5rem, 3vw, 2rem);
}

@media (min-width: 600px) {
	.bt-fleet-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (min-width: 900px) {
	.bt-fleet-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Individual vehicle card. */
.bt-fleet-card {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: 1.25rem;
	background-color: #ffffff;
	border: 1px solid #eaeaea;
	border-radius: 14px;
	box-shadow: 0 6px 20px rgba(26, 26, 26, 0.06);
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

@media (hover: hover) {
	.bt-fleet-card:hover {
		transform: translateY(-4px);
		box-shadow: 0 16px 40px rgba(26, 26, 26, 0.12);
	}
}

/* Featured card ("Most Popular") — subtle gold frame. */
.bt-fleet-card--featured {
	border-color: #d4af37;
	box-shadow: 0 10px 26px rgba(212, 175, 55, 0.18);
}

.bt-fleet-card__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background-color: #d4af37;
	color: #1a1a1a;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.3rem 0.85rem;
	border-radius: 999px;
	white-space: nowrap;
}

/* Card image: fixed, uniform frame so all 3 cars appear the same size.
   contain keeps the whole car visible/centered; gray bg fills any gaps. */
.bt-fleet-card .bt-lp__media,
.bt-fleet-card .bt-lp__media--placeholder {
	width: 100%;
	height: 220px;
	margin: 0 0 1rem;
	border-radius: 10px;
	object-fit: contain;
	object-position: center;
	background-color: #f2f2f2;
	aspect-ratio: auto;
}

.bt-fleet-card__title {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	color: #1a1a1a;
	font-size: 1.25rem;
	margin: 0 0 0.15rem;
}

.bt-fleet-card__model {
	font-family: "Inter", sans-serif;
	color: #666666;
	font-size: 0.9rem;
	margin: 0 0 1rem;
}

/* Spec list (passengers / suitcases / hand luggage). */
.bt-fleet-spec {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.bt-fleet-spec__item {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	color: #333333;
	font-size: 0.95rem;
	line-height: 1.3;
}

.bt-fleet-spec__item strong {
	color: #1a1a1a;
}

.bt-fleet-spec__icon {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	color: #d4af37;
}

/* Price box — gold accent for the amount. Pinned to the bottom of the card. */
.bt-fleet-card__price {
	margin-top: auto;
	padding: 0.85rem 1rem;
	background-color: #faf7ec;
	border-radius: 10px;
	text-align: center;
	margin-bottom: 1rem;
}

.bt-fleet-card__price-from {
	display: block;
	font-size: 0.8rem;
	color: #666666;
}

.bt-fleet-card__price-amount {
	font-family: "Poppins", sans-serif;
	font-weight: 700;
	font-size: 1.5rem;
	color: #d4af37;
	line-height: 1.2;
}

.bt-fleet-card__price-note {
	display: block;
	font-size: 0.78rem;
	color: #666666;
}

/* Full-width Select button inside the card. */
.bt-fleet-card__btn {
	display: block;
	text-align: center;
	width: 100%;
}

/* ---------- Legal pages (Terms / Privacy) ---------- */

/* Draft warning box at the top of legal pages. */
.bt-lp__notice {
	margin: 0 0 2rem;
	padding: 1rem 1.25rem;
	background-color: #fbf3d9;           /* soft gold tint */
	border-left: 4px solid #d4af37;
	border-radius: 6px;
	color: #5a4a12;
	line-height: 1.6;
	font-size: 0.95rem;
}

/* Standard bulleted lists for legal copy. */
.bt-lp__points {
	margin: 0;
	padding-left: 1.25rem;
}

.bt-lp__points li {
	margin-bottom: 0.6rem;
	line-height: 1.6;
	color: #333333;
}

.bt-lp__points strong {
	color: #1a1a1a;
}

.bt-cookie-table-wrap {
	margin: 0 0 1.25rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.bt-cookie-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

.bt-cookie-table th,
.bt-cookie-table td {
	padding: 0.75rem 0.85rem;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid #ebe4d2;
	line-height: 1.55;
	color: #333333;
}

.bt-cookie-table thead th {
	font-family: "Poppins", sans-serif;
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: #1a1a1a;
	background: #faf7ec;
	border-bottom-color: #d4af37;
}

.bt-cookie-table tbody th {
	font-weight: 500;
	color: #1a1a1a;
	min-width: 10rem;
}

.bt-cookie-table code {
	font-size: 0.85em;
	word-break: break-word;
}

.bt-cookie-inline {
	display: inline;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	color: #1a1a1a;
	text-decoration: underline;
	text-underline-offset: 0.15em;
	cursor: pointer;
}

.bt-cookie-inline:hover,
.bt-cookie-inline:focus {
	color: #c19f2e;
}

/* =====================================================================
   PREMIUM STICKY HEADER  (concise rebuild)
   Enhances GeneratePress's own nav (forced "float right" in functions.php).
   Brand left, menu right, ONE line on desktop; sticky + subtle shadow +
   shrink on scroll; "Transfers" dropdown; gold "Book Now" button pinned
   right and separated; hamburger < 768px. White bg, #1a1a1a text, gold.
   Colors: --bt-dark / --bt-gold / --bt-gold-dark.
   ===================================================================== */

:root {
	--bt-dark: #1a1a1a;
	--bt-gold: #d4af37;
	--bt-gold-dark: #c19f2e;
}

/* --- Sticky shell + scroll shadow --- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background-color: #ffffff;
	transition: box-shadow 0.25s ease;
}

.site-header.bt-scrolled {
	box-shadow: 0 2px 16px rgba(0, 0, 0, 0.08);
}

/* Clear the WP admin bar when logged in. */
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}

/* --- Layout: brand left, nav right, one line; shrink on scroll ---
   Match the site container (1200px). Do NOT squeeze below that — German
   labels are longer than English and a narrow band made the menu overflow
   left into the logo. Brand never shrinks; gap is the minimum separator. */
.site-header .inside-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: nowrap;
	gap: 1.5rem;
	width: 100%;
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 1.1rem;
	padding-bottom: 1.1rem;
	transition: padding 0.25s ease;
}

.site-header.bt-scrolled .inside-header {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

/* Logo keeps its natural width so menu items cannot slide under it. */
.site-header .site-branding {
	flex: 0 0 auto;
	min-width: max-content;
	position: relative;
	z-index: 2;
}

/* --- Brand logotype --- */
.bt-brand__wordmark {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	font-family: "Poppins", sans-serif;
	line-height: 1;
	white-space: nowrap;
}

.bt-brand__lead {
	font-weight: 400;
	font-size: 0.78em;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	margin-right: -0.22em; /* cancel trailing tracking so gap is intentional */
}

.bt-brand__accent {
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	margin-right: -0.14em;
	transition: color 0.2s ease;
}

/* Never show the WP/Polylang site tagline under the header logo. */
.site-header .site-description {
	display: none !important;
}

/* Home page title ("Home" / "Startseite") must not sit under the brand. */
.home .entry-header,
.home .page-header {
	display: none;
}

.site-header .site-branding .main-title {
	margin: 0;
	font-family: "Poppins", sans-serif;
	font-weight: 400;
	line-height: 1;
	font-size: clamp(0.92rem, 1.5vw, 1.08rem);
	white-space: nowrap;
	transition: font-size 0.25s ease;
}

.site-header .site-branding .main-title a {
	display: inline-flex;
	align-items: center;
	color: var(--bt-dark);
	text-decoration: none;
}

.site-header .site-branding .main-title .bt-brand__lead {
	color: var(--bt-gold);
}

.site-header .site-branding .main-title .bt-brand__accent {
	color: var(--bt-dark);
}

.site-header .site-branding .main-title a:hover .bt-brand__accent,
.site-header .site-branding .main-title a:focus .bt-brand__accent {
	color: var(--bt-gold);
}

.site-header.bt-scrolled .site-branding .main-title { font-size: clamp(0.84rem, 1.35vw, 0.98rem); }

/* --- Primary nav (one line, no wrap) --- */
.main-navigation,
.main-navigation .inside-navigation { background-color: transparent; }

.main-navigation .main-nav > ul {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
}

.main-navigation .main-nav > ul > li {
	flex-shrink: 0;
}

.main-navigation .main-nav ul li a {
	font-family: "Poppins", sans-serif;
	font-weight: 500;
	font-size: 0.95rem;
	color: var(--bt-dark);
	padding: 0.5rem 0.8rem;
	line-height: 1.4;
	white-space: nowrap;
	transition: color 0.2s ease;
}

.main-navigation .main-nav ul li a:hover,
.main-navigation .main-nav ul li a:focus { color: var(--bt-gold); }

/* Active page — gold text + gold underline, no layout shift. */
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-parent > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a {
	color: var(--bt-gold);
	box-shadow: inset 0 -2px 0 0 var(--bt-gold);
}

/* --- "Book Now" gold button, pinned right + separated --- */
/* Add CSS class "bt-book-now" to the Book Now menu item (see steps). */
.main-navigation .main-nav ul li.bt-book-now {
	margin-left: 0.75rem;
	padding-left: 0.75rem;
	border-left: 1px solid #e6e6e6;   /* subtle separator */
}

.main-navigation .main-nav ul li.bt-book-now a {
	background-color: var(--bt-gold) !important;
	color: var(--bt-dark) !important;
	font-weight: 600;
	border-radius: 6px;
	padding: 0.55rem 1.25rem !important;
	box-shadow: none !important;
}

.main-navigation .main-nav ul li.bt-book-now a:hover,
.main-navigation .main-nav ul li.bt-book-now a:focus {
	background-color: var(--bt-gold-dark) !important;
	color: var(--bt-dark) !important;
}

/* Desktop: brand + nav + EN|DE on one row (switcher is last <li> after Book Now).
   min-width: min-content — never shrink the nav below its labels. Combined with
   flex-end, a squeezed nav would overflow LEFT and cover the logo (DE /de/). */
@media (min-width: 769px) {
	.site-header .main-navigation {
		flex: 1 1 auto;
		min-width: min-content;
		display: flex;
		justify-content: flex-end;
	}

	.site-header .main-navigation .inside-navigation {
		flex-wrap: nowrap;
		justify-content: flex-end;
		width: auto;
		max-width: none;
	}

	.site-header .main-navigation .main-nav {
		flex: 0 0 auto;
	}
}

/* Mid-width desktops: use the full bar + tighter item padding so DE labels fit. */
@media (min-width: 769px) and (max-width: 1199px) {
	.site-header .inside-header {
		max-width: 100%;
		gap: 1.25rem;
	}

	.site-header .site-branding .main-title {
		font-size: clamp(0.82rem, 1.35vw, 0.98rem);
	}

	.site-header .site-branding .main-title .bt-brand__lead {
		letter-spacing: 0.16em;
		margin-right: -0.16em;
	}

	.site-header .site-branding .main-title .bt-brand__accent {
		letter-spacing: 0.1em;
		margin-right: -0.1em;
	}

	.main-navigation .main-nav ul li a {
		padding: 0.5rem 0.5rem;
		font-size: 0.875rem;
	}

	.main-navigation .main-nav ul li.bt-book-now {
		margin-left: 0.5rem;
		padding-left: 0.5rem;
	}

	.main-navigation .main-nav ul li.bt-book-now a {
		padding: 0.5rem 0.9rem !important;
	}

	.main-navigation .main-nav ul li.bt-lang-item {
		margin-left: 0.45rem;
		padding-left: 0.45rem;
	}
}

/*
 * German labels overflow the desktop bar at iPad portrait (~769–1024px).
 * GP's mobile-menu query is raised to 1024px on /de/; keep child header
 * layout in sync so min-content cannot clip EN|DE off the right edge.
 */
@media (min-width: 769px) and (max-width: 1024px) {
	html[lang^="de"] .site-header .main-navigation,
	body.bt-lang-de .site-header .main-navigation {
		min-width: 0;
		flex: 1 1 auto;
	}

	html[lang^="de"] .site-header.has-inline-mobile-toggle .inside-header,
	body.bt-lang-de .site-header.has-inline-mobile-toggle .inside-header {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 0.4rem 0.5rem;
	}

	html[lang^="de"] .site-header.has-inline-mobile-toggle .inside-header > .site-branding,
	body.bt-lang-de .site-header.has-inline-mobile-toggle .inside-header > .site-branding {
		flex: 1 1 auto;
		min-width: 0;
		max-width: calc(100% - 3.4rem);
	}

	html[lang^="de"] .site-header.has-inline-mobile-toggle #mobile-menu-control-wrapper,
	body.bt-lang-de .site-header.has-inline-mobile-toggle #mobile-menu-control-wrapper {
		flex: 0 0 auto;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		margin: 0 0 0 auto;
		order: 2;
	}

	html[lang^="de"] .site-header.has-inline-mobile-toggle #site-navigation,
	body.bt-lang-de .site-header.has-inline-mobile-toggle #site-navigation {
		flex: 1 0 100%;
		flex-basis: 100%;
		width: 100%;
		max-width: 100%;
		order: 3;
	}

	html[lang^="de"] .main-navigation .main-nav ul li.bt-book-now,
	body.bt-lang-de .main-navigation .main-nav ul li.bt-book-now {
		margin: 0;
		padding-left: 0;
		border-left: none;
	}

	html[lang^="de"] .main-navigation .main-nav ul li.bt-lang-item,
	body.bt-lang-de .main-navigation .main-nav ul li.bt-lang-item {
		margin: 0.35rem 1.25rem 0.85rem;
		padding-left: 0;
		border-left: none;
		display: flex;
		justify-content: center;
	}
}

/* --- Language switcher (Polylang) — last item, after Book Now --- */
.main-navigation .main-nav ul li.bt-lang-item {
	margin-left: 0.65rem;
	padding-left: 0.65rem;
	border-left: 1px solid #e6e6e6;
	flex-shrink: 0;
}

.bt-lang {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	line-height: 1;
	white-space: nowrap;
}

.main-navigation .main-nav ul li.bt-lang-item a,
.main-navigation .main-nav ul li.bt-lang-item a:hover,
.main-navigation .main-nav ul li.bt-lang-item a:focus {
	background: none !important;
	color: var(--bt-dark) !important;
	font-weight: 600;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	padding: 0.2rem 0.1rem !important;
	border-radius: 0;
	box-shadow: none !important;
	line-height: 1;
}

.main-navigation .main-nav ul li.bt-lang-item a:hover,
.main-navigation .main-nav ul li.bt-lang-item a:focus,
.main-navigation .main-nav ul li.bt-lang-item a.is-active {
	color: var(--bt-gold) !important;
}

.bt-lang__sep {
	color: #cccccc;
	font-weight: 400;
}

/* --- "Transfers" dropdown --- */
.main-navigation .main-nav ul ul {
	background-color: #ffffff;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
	border-radius: 8px;
	padding: 0.4rem 0;
	min-width: 240px;
}

.main-navigation .main-nav ul ul li a {
	padding: 0.7rem 1.15rem;
	color: var(--bt-dark);
	white-space: normal;
}

.main-navigation .main-nav ul ul li a:hover,
.main-navigation .main-nav ul ul li a:focus,
.main-navigation .main-nav ul ul li.current-menu-item > a {
	background-color: #faf6e8;   /* soft gold tint */
	color: var(--bt-gold);
	box-shadow: none;
}

/* --- Mobile (< 768px): hamburger, stacked, Book Now stays gold --- */
.menu-toggle {
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: var(--bt-dark);
}

@media (max-width: 768px) {
	/* Beat GP inline CSS (loaded after this file): brand + hamburger on one
	   row, primary nav wrapping below. Never let the wordmark paint over the toggle. */
	.site-header.has-inline-mobile-toggle .inside-header {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		align-items: center;
		justify-content: space-between;
		gap: 0.4rem 0.5rem;
		text-align: left;
	}

	.site-header.has-inline-mobile-toggle .inside-header > .site-branding {
		flex: 1 1 auto;
		min-width: 0;
		max-width: calc(100% - 3.4rem);
		margin-bottom: 0 !important;
		overflow: hidden;
		z-index: 1;
	}

	.site-header.has-inline-mobile-toggle #mobile-menu-control-wrapper {
		flex: 0 0 auto;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		width: auto !important;
		max-width: 3.25rem;
		margin: 0 0 0 auto !important;
		order: 2;
		position: relative;
		z-index: 5;
	}

	.site-header.has-inline-mobile-toggle #mobile-menu-control-wrapper .menu-toggle,
	.site-header.has-inline-mobile-toggle #mobile-menu-control-wrapper button.menu-toggle {
		width: auto !important;
		min-width: 44px;
		max-width: 48px;
		flex-shrink: 0;
	}

	.site-header.has-inline-mobile-toggle #site-navigation {
		flex: 1 0 100%;
		flex-basis: 100%;
		width: 100%;
		max-width: 100%;
		order: 3;
	}

	.site-header .site-branding .main-title {
		font-size: clamp(0.58rem, 3.05vw, 0.78rem);
		max-width: 100%;
	}

	.site-header .site-branding .main-title a,
	.site-header .site-branding .main-title .bt-brand__wordmark {
		max-width: 100%;
		gap: 0.32em;
	}

	.site-header .site-branding .main-title .bt-brand__lead {
		letter-spacing: 0.08em;
		margin-right: -0.08em;
	}

	.site-header .site-branding .main-title .bt-brand__accent {
		letter-spacing: 0.05em;
		margin-right: -0.05em;
	}

	.main-navigation .main-nav ul li a { padding: 0.9rem 1.25rem; }

	/* Drop the desktop underline for clean stacked items. */
	.main-navigation .main-nav ul li.current-menu-item > a,
	.main-navigation .main-nav ul li.current-menu-parent > a,
	.main-navigation .main-nav ul li.current-menu-ancestor > a {
		box-shadow: none;
		color: var(--bt-gold);
	}

	/* Book Now: gold button, centred, no separator line. */
	.main-navigation .main-nav ul li.bt-book-now {
		margin: 0;
		padding-left: 0;
		border-left: none;
	}
	.main-navigation .main-nav ul li.bt-book-now a {
		margin: 0.5rem 1.25rem;
		text-align: center;
	}

	.main-navigation .main-nav ul li.bt-lang-item {
		margin: 0.35rem 1.25rem 0.85rem;
		padding-left: 0;
		border-left: none;
		display: flex;
		justify-content: center;
	}

	/* Flatten dropdown on mobile. */
	.main-navigation .main-nav ul ul {
		box-shadow: none;
		border-radius: 0;
		min-width: 0;
	}
	.main-navigation .main-nav ul ul li a { padding-left: 2.25rem; }
}

/* =====================================================================
   DRIVER APPLICATION FORM  (.bt-form)  — /join-our-team/
   Premium, mobile-first restyle of the Contact Form 7 markup. Scoped to
   .bt-form so it never touches other CF7/Bookly forms. Brand tokens reused.
   ===================================================================== */

.bt-form {
	max-width: 640px;
	margin: 1.5rem 0 0;
}

/* One field per row, comfortable vertical rhythm. */
.bt-form__field {
	margin-bottom: 1.25rem;
}

/* Labels / group legends — Poppins, dark. */
.bt-form label,
.bt-form__legend {
	display: block;
	margin-bottom: 0.4rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	color: var(--bt-dark, #1a1a1a);
	font-size: 0.98rem;
	line-height: 1.4;
}

/* Required asterisk + helper hint. */
.bt-form__req { color: var(--bt-gold, #d4af37); }

.bt-form__hint {
	display: block;
	margin-top: 0.35rem;
	color: #777777;
	font-size: 0.85rem;
}

/* Inputs, selects, textarea — full width, clean, brand focus ring. */
.bt-form input[type="text"],
.bt-form input[type="tel"],
.bt-form input[type="email"],
.bt-form input[type="number"],
.bt-form select,
.bt-form textarea {
	width: 100%;
	font-family: "Inter", sans-serif;
	font-size: 1rem;
	color: #1a1a1a;
	background-color: #ffffff;
	padding: 0.7rem 0.85rem;
	border: 1px solid #cccccc;
	border-radius: 6px;
	line-height: 1.4;
	box-sizing: border-box;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.bt-form textarea { resize: vertical; }

.bt-form input:focus,
.bt-form select:focus,
.bt-form textarea:focus {
	border-color: #d4af37;
	outline: none;
	box-shadow: 0 0 0 2px rgba(212, 175, 55, 0.35);
}

/* Radio group (work permit) — inline, tidy. */
.bt-form .wpcf7-radio {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
}

.bt-form .wpcf7-list-item {
	margin: 0;
}

.bt-form .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0;
	font-weight: 500;
	cursor: pointer;
}

.bt-form .wpcf7-list-item input[type="radio"] {
	width: auto;
	accent-color: #d4af37;
}

/* Custom file picker — hides OS-locale native button; input stays for CF7 upload. */
.bt-form__file {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.65rem 0.85rem;
}

.bt-form__file-input {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.bt-form__file-btn {
	flex: 0 0 auto;
	font-family: "Poppins", sans-serif;
	font-size: 0.92rem;
	font-weight: 600;
	color: #1a1a1a;
	background-color: #ffffff;
	padding: 0.55rem 1rem;
	border: 2px solid #d4af37;
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.bt-form__file-btn:hover,
.bt-form__file-btn:focus {
	background-color: #d4af37;
	color: #1a1a1a;
	outline: none;
}

.bt-form__file-name {
	flex: 1 1 12rem;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
	color: #666666;
}

/* Legacy rule kept for any un-enhanced fallback. */
.bt-form input[type="file"]:not(.bt-form__file-input) {
	width: 100%;
	font-family: "Inter", sans-serif;
	font-size: 0.95rem;
	color: #444444;
}

/* Submit button — reuses .bt-btn / .bt-btn--primary (added via CF7 classes). */
.bt-form__submit {
	margin-top: 1.5rem;
}

.bt-form .bt-btn {
	cursor: pointer;
	border: 2px solid #d4af37;
	font-family: "Poppins", sans-serif;
}

/* Spinner alignment next to the button. */
.bt-form .wpcf7-spinner {
	margin: 0 0 0 0.75rem;
	vertical-align: middle;
}

/* Inline validation + response messages. */
.bt-form .wpcf7-not-valid-tip {
	color: #b3261e;
	font-size: 0.85rem;
	margin-top: 0.3rem;
}

.bt-form .wpcf7-not-valid {
	border-color: #b3261e !important;
}

.bt-form .wpcf7-response-output {
	margin: 1.5rem 0 0;
	padding: 0.9rem 1.15rem;
	border-radius: 6px;
	border: 1px solid #ececec;
	font-size: 0.95rem;
	line-height: 1.5;
}

/* Success (mail sent) — soft gold. */
.bt-form form.sent .wpcf7-response-output {
	border-color: #d4af37;
	background-color: #faf6e8;
	color: #5a4a12;
}

/* Errors — soft red. */
.bt-form form.invalid .wpcf7-response-output,
.bt-form form.failed .wpcf7-response-output,
.bt-form form.spam .wpcf7-response-output {
	border-color: #e0b4b0;
	background-color: #fbeceb;
	color: #7a201b;
}

/* Two-up fields on wider screens for a tighter, premium layout. */
@media (min-width: 620px) {
	.bt-form__grid-2 {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 1.25rem;
	}
}

/* =====================================================================
   MOBILE STICKY "BOOK NOW" BAR
   ===================================================================== */

.bt-mobile-book {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 999;
	padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
	background: rgba(26, 26, 26, 0.92);
	box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.18);
}

.bt-mobile-book[hidden] {
	display: none;
}

.bt-mobile-book__btn {
	display: block;
	width: 100%;
	padding: 0.85rem 1rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1rem;
	text-align: center;
	text-decoration: none;
	color: #1a1a1a;
	background-color: #d4af37;
	border-radius: 8px;
}

.bt-mobile-book__btn:hover,
.bt-mobile-book__btn:focus {
	color: #1a1a1a;
	background-color: #c19f2e;
}

@media (min-width: 768px) {
	.bt-mobile-book {
		display: none !important;
	}
}

/* Floating WhatsApp (all pages). Hidden on mobile while the Book Now bar is showing. */
.bt-wa {
	position: fixed;
	right: 1.15rem;
	bottom: calc(1.15rem + env(safe-area-inset-bottom, 0px));
	z-index: 998;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.4rem;
	height: 3.4rem;
	color: #ffffff;
	background: #25d366;
	border-radius: 50%;
	box-shadow: 0 6px 18px rgba(37, 211, 102, 0.38);
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.bt-wa:hover,
.bt-wa:focus {
	color: #ffffff;
	background: #1ebe5d;
	transform: translateY(-2px);
	box-shadow: 0 8px 22px rgba(37, 211, 102, 0.48);
	outline: none;
}

.bt-wa:focus-visible {
	box-shadow: 0 0 0 3px rgba(37, 211, 102, 0.45), 0 8px 22px rgba(37, 211, 102, 0.48);
}

.bt-wa__icon {
	display: block;
	width: 1.7rem;
	height: 1.7rem;
}

@media (max-width: 767px) {
	/* Keep WhatsApp visible; sit it above the sticky Book Now bar. */
	.bt-mobile-book:not([hidden]) ~ .bt-wa {
		bottom: calc(5.35rem + env(safe-area-inset-bottom, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.bt-wa,
	.bt-wa:hover,
	.bt-wa:focus {
		transition: none;
		transform: none;
	}
}

/* =====================================================================
   COOKIE CONSENT BAR
   ===================================================================== */

.bt-cookie {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 10050;
	padding: 1rem 1.1rem calc(1rem + env(safe-area-inset-bottom, 0px));
	background: #1a1a1a;
	color: #f5f5f5;
	box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.28);
}

.bt-cookie[hidden] {
	display: none;
}

.bt-cookie__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
}

.bt-cookie__title {
	margin: 0 0 0.35rem;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 1.05rem;
	color: #d4af37;
}

.bt-cookie__text {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
	color: #dddddd;
}

.bt-cookie__text a {
	color: #d4af37;
	text-decoration: underline;
	text-underline-offset: 0.12em;
}

.bt-cookie__text a:hover,
.bt-cookie__text a:focus {
	color: #e8c96a;
}

.bt-cookie__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.bt-cookie__btn {
	flex: 1 1 10rem;
	min-height: 2.75rem;
	padding: 0.7rem 1.1rem;
	border-radius: 8px;
	font-family: "Poppins", sans-serif;
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	border: 1.5px solid transparent;
}

.bt-cookie__btn--primary {
	background: #d4af37;
	color: #1a1a1a;
	border-color: #d4af37;
}

.bt-cookie__btn--primary:focus-visible {
	background: #c19f2e;
	border-color: #c19f2e;
	color: #1a1a1a;
}

.bt-cookie__btn--ghost {
	background: transparent;
	color: #f5f5f5;
	border-color: rgba(255, 255, 255, 0.45);
}

.bt-cookie__btn--ghost:focus-visible {
	background: transparent;
	border-color: #d4af37;
	color: #d4af37;
}

@media (hover: hover) {
	.bt-cookie__btn--primary:hover {
		background: #c19f2e;
		border-color: #c19f2e;
		color: #1a1a1a;
	}

	.bt-cookie__btn--ghost:hover {
		background: transparent;
		border-color: #d4af37;
		color: #d4af37;
	}
}

body.bt-cookie-open .bt-mobile-book,
body.bt-cookie-open .bt-wa {
	display: none !important;
}

@media (min-width: 768px) {
	.bt-cookie__inner {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		gap: 1.5rem;
	}

	.bt-cookie__copy {
		flex: 1 1 auto;
	}

	.bt-cookie__actions {
		flex: 0 0 auto;
		flex-wrap: nowrap;
	}

	.bt-cookie__btn {
		flex: 0 0 auto;
	}
}

/* =====================================================================
   MOBILE PASS  (phones: 375px / 414px, and all < 768px)
   Priority: one-handed booking. 44px tap targets, no page-level
   horizontal scroll, no clipped copy, no overlapping chrome.
   ===================================================================== */

html {
	max-width: 100%;
}

body {
	max-width: 100%;
}

img,
video,
iframe {
	max-width: 100%;
	height: auto;
}

.generate-back-to-top {
	z-index: 990;
}

@media (max-width: 767px) {
	.generate-back-to-top {
		display: none !important;
	}

	body {
		padding-bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
	}

	body:has(.bt-booking) {
		padding-bottom: calc(4.25rem + env(safe-area-inset-bottom, 0px));
	}

	body:has(.bt-booking) .bt-mobile-book {
		display: none !important;
	}

	body:has(.bt-booking) .bt-wa {
		bottom: calc(1.15rem + env(safe-area-inset-bottom, 0px));
	}

	.site-content,
	.bt-lp,
	.bt-section,
	.inside-article {
		overflow-x: clip;
		max-width: 100%;
	}

	/* --- Header: logo + compact hamburger, 44px taps, no overlap --- */
	.site-header .inside-header {
		gap: 0.4rem 0.5rem;
		padding-top: 0.55rem;
		padding-bottom: 0.55rem;
		padding-left: 0.9rem;
		padding-right: 0.55rem;
	}

	.site-header.bt-scrolled .inside-header {
		padding-top: 0.4rem;
		padding-bottom: 0.4rem;
	}

	.site-header .site-branding {
		min-width: 0;
		flex: 1 1 auto;
		max-width: calc(100% - 3.4rem);
		overflow: hidden;
	}

	.site-header .site-branding .main-title {
		font-size: clamp(0.58rem, 3.05vw, 0.76rem);
		max-width: 100%;
	}

	.site-header .site-branding .main-title a,
	.site-header .site-branding .main-title .bt-brand__wordmark {
		max-width: 100%;
	}

	.site-header .main-navigation {
		flex: 0 0 auto;
		width: auto;
		margin-left: auto;
	}

	.site-header.has-inline-mobile-toggle #site-navigation.main-navigation {
		flex: 1 0 100%;
		width: 100%;
		margin-left: 0;
	}

	.site-header .main-navigation .inside-navigation {
		justify-content: flex-end;
		width: auto;
	}

	button.menu-toggle {
		width: auto !important;
		min-width: 44px;
		min-height: 44px;
		line-height: 1 !important;
		padding: 0.6rem 0.7rem !important;
		font-size: 0.9rem;
		-webkit-tap-highlight-color: transparent;
	}

	.main-navigation .main-nav ul li a,
	.main-navigation .main-nav ul ul li a {
		min-height: 44px;
		display: flex;
		align-items: center;
		padding-top: 0.75rem;
		padding-bottom: 0.75rem;
	}

	.toggled .menu-item-has-children .dropdown-menu-toggle {
		min-width: 44px;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.main-navigation .main-nav ul li.bt-book-now a {
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0.5rem 1rem;
	}

	.main-navigation .main-nav ul li.bt-lang-item {
		margin: 0.25rem 1rem 0.9rem;
	}

	.main-navigation .main-nav ul li.bt-lang-item a,
	.main-navigation .main-nav ul li.bt-lang-item a:hover,
	.main-navigation .main-nav ul li.bt-lang-item a:focus {
		min-width: 44px;
		min-height: 44px;
		padding: 0.7rem 0.65rem !important;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-size: 0.88rem;
	}

	/* --- Hero: quote reachable without a tall empty image --- */
	.bt-hero {
		min-height: 0;
		align-items: flex-start;
		overflow: visible;
	}

	.bt-hero::after {
		animation: none;
	}

	.bt-hero__inner {
		padding: 1.15rem 1rem 1.4rem;
	}

	.bt-hero__title {
		max-width: none;
		font-size: clamp(1.65rem, 8vw, 2.15rem);
	}

	.bt-hero__text {
		margin-bottom: 1.15rem;
		max-width: none;
	}

	.bt-hero__btn,
	.bt-btn {
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	.bt-hero__buttons {
		gap: 0.7rem;
	}

	/* --- Quote widget: 16px inputs (no iOS zoom), 44px controls --- */
	.bt-quote {
		padding: 1rem 0.9rem 1.1rem;
		max-width: 100%;
		box-sizing: border-box;
	}

	.bt-quote__trip-opt span {
		min-height: 44px;
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 0.65rem 0.4rem;
		font-size: 0.72rem;
		letter-spacing: 0.02em;
		white-space: normal;
		line-height: 1.2;
	}

	.bt-quote select,
	.bt-quote input[type="text"],
	.bt-quote input[type="date"],
	.bt-quote .flatpickr-input,
	.bt-quote input.flatpickr-input,
	.bt-quote .bt-quote__fp,
	.bt-quote input.bt-quote__fp,
	.bt-quote__time,
	#bt-quote-time,
	#bt-quote-time-return {
		font-size: 16px !important;
		min-height: 44px;
		box-sizing: border-box;
	}

	.bt-quote gmp-place-autocomplete.bt-quote__pac,
	.bt-quote .bt-quote__pac {
		min-height: 44px;
		width: 100%;
		max-width: 100%;
	}

	.bt-quote__pill {
		min-height: 44px;
		padding: 0.55rem 0.9rem;
		font-size: 0.88rem;
	}

	.bt-quote__btn {
		min-height: 48px;
	}

	.bt-quote__counts {
		gap: 0.5rem;
	}

	/* --- Trust bar: wrap, readable, no sideways overflow --- */
	.bt-trust__list {
		gap: 0.45rem 0.85rem;
		padding: 0.7rem 1rem;
		justify-content: flex-start;
	}

	.bt-trust__item {
		white-space: normal;
		font-size: 0.8rem;
		line-height: 1.35;
	}

	/* --- Home cards / routes / footer --- */
	.bt-container {
		padding-left: 1rem;
		padding-right: 1rem;
	}

	.bt-route,
	.bt-lp__route {
		align-items: flex-start;
	}

	.bt-route__price,
	.bt-lp__route-price {
		white-space: nowrap;
	}

	.bt-lp__route-book,
	.bt-route__book {
		min-height: 44px;
		padding: 0.65rem 1rem;
		width: 100%;
		box-sizing: border-box;
	}

	.bt-lp__route-guide {
		white-space: normal;
	}

	.bt-footer__list a,
	.bt-footer__cookie-btn {
		display: inline-flex;
		align-items: center;
		min-height: 44px;
	}

	.bt-footer__grid {
		padding-bottom: 1.5rem;
	}

	/* --- Book Now: vehicles first, then map / trip --- */
	.bt-book-layout {
		padding-left: 0.85rem;
		padding-right: 0.85rem;
		gap: 1.15rem;
	}

	.bt-book-layout__main {
		order: -1;
	}

	.bt-trip-aside {
		padding: 1rem 0.95rem 1.05rem;
	}

	.bt-trip-aside__row {
		grid-template-columns: 1fr;
		gap: 0.12rem 0;
		padding: 0.55rem 0;
	}

	.bt-trip-aside__map {
		min-height: 180px;
		height: 200px;
	}

	.bt-booking .bt-service-card__btn {
		min-height: 44px;
	}

	.bt-booking .bookly-form .bookly-progress-tracker {
		font-size: 0.68rem !important;
		letter-spacing: 0;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0.75rem 0.7rem !important;
	}

	.bt-booking .bookly-form .bookly-nav-steps {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5rem 0.75rem;
		overflow: visible;
	}

	.bt-booking .bookly-form .bookly-right {
		float: none;
		width: 100%;
	}

	.bt-booking .bookly-form .bookly-btn,
	.bt-booking .bookly-form .bookly-btn-submit,
	.bt-booking .bookly-form .bookly-js-next-step {
		min-height: 48px;
		width: 100% !important;
		justify-content: center;
	}

	.bt-booking .bookly-form .StripeElement,
	.bt-booking .bookly-form .bookly-js-card_field,
	.bt-booking .bookly-form iframe[name^="__privateStripe"] {
		min-height: 44px;
		max-width: 100%;
	}

	/* Extras: one full-width row each — label, then − qty +, then price. */
	.bt-booking .bt-merged-extras {
		padding: 0.7rem 0.65rem 0.4rem;
	}

	.bt-booking .bt-merged-extras .bookly-js-extras-container,
	.bt-booking .bt-merged-extras .bookly-extra-step {
		display: flex;
		flex-direction: column;
		gap: 0.55rem;
	}

	.bt-booking .bt-merged-extras .bookly-extra-step .bookly-extras-item,
	.bt-booking .bt-merged-extras .bookly-js-extras-item {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0.7rem 0.75rem 0.65rem;
	}

	.bt-booking .bt-merged-extras .bookly-extras-thumb img,
	.bt-booking .bt-merged-extras .bookly-js-extras-thumb img {
		display: none;
	}

	.bt-booking .bt-merged-extras .bookly-js-extras-total-price {
		text-align: left;
		margin: 0;
	}

	/* --- Landing / legal: tables stay in a swipe tray, not the page --- */
	.bt-lp__fares-wrap,
	.bt-cookie-table-wrap {
		max-width: 100%;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
	}

	.bt-lp__fares {
		min-width: 28rem;
	}

	.bt-cookie-table tbody th {
		min-width: 8rem;
	}

	.bt-lp__h1 {
		overflow-wrap: anywhere;
	}

	.bt-lp__cta {
		padding: 1.35rem 1rem;
	}

	.bt-lp__cta .bt-lp__actions,
	.bt-lp__actions--cta {
		flex-direction: column;
		align-items: stretch;
	}

	.bt-lp__cta .bt-btn {
		width: 100%;
		box-sizing: border-box;
	}

	.bt-fleet-card__badge {
		font-size: 0.68rem;
		padding: 0.28rem 0.7rem;
	}

	.bt-cookie__actions {
		flex-direction: column;
	}

	.bt-cookie__btn {
		width: 100%;
		min-height: 44px;
	}
}

@media (max-width: 400px) {
	.site-header .site-branding .main-title {
		font-size: clamp(0.54rem, 3.2vw, 0.7rem);
	}

	.site-header .site-branding .main-title .bt-brand__lead {
		letter-spacing: 0.06em;
		margin-right: -0.06em;
	}

	.site-header .site-branding .main-title .bt-brand__accent {
		letter-spacing: 0.04em;
		margin-right: -0.04em;
	}

	.bt-quote__trip-opt span {
		font-size: 0.68rem;
		padding-left: 0.3rem;
		padding-right: 0.3rem;
	}
}