.tbp-form-success-screen {
    padding: 32px 20px;
    text-align: center;
    background: #f6fff8;
    border: 1px solid #28a745;
    border-radius: 10px;
    margin-top: 10px;
}

.tbp-form-success-screen h3 {
    margin: 0 0 12px;
    color: #1f7a34;
}

.tbp-form-success-screen p {
    margin: 0 0 12px;
}

.tbp-hidden {
    display: none;
}

/* ==================================================
TBP BOOKING WIDGET – VERTICAL FORM CSS (Spacing + Overflow Fix)
Colours & Layout preserved exactly
================================================== */


.air-datepicker-button--now {
    color: white;
    background: #C70200;
    border-radius: 6px;
    padding: 6px 12px;
}

.air-datepicker-button--now:hover {
    background: #a50000;
}

.air-datepicker-body--day-name {
    color: #C70200;      /* Your blue */
    font-weight: 600;
}

/* Optional: Weekend different color */
/* .air-datepicker-body--day-name.-weekend- {
    color: #C70200;
} */




/* Time Picker */
/* Time section container */
.air-datepicker-time {
    padding: 10px 14px;
    border-top: 1px solid #f0f0f0;
}

/* Current time text */
.air-datepicker-time--current {
    font-size: 14px;
    font-weight: 500;
    color: #333;
}

/* Slider track */
.air-datepicker-time input[type="range"] {
    -webkit-appearance: none;
    width: 100%;
    height: 4px;
    background: #e5e7eb; /* soft gray */
    border-radius: 4px;
    outline: none;
}

/* Slider thumb */
.air-datepicker-time input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 14px;
    height: 14px;
    background: #243688; /* your brand blue */
    border-radius: 50%;
    cursor: pointer;
    margin-top: -5px;
}

/* Firefox */
.air-datepicker-time input[type="range"]::-moz-range-thumb {
    width: 14px;
    height: 14px;
    background: #243688;
    border: none;
    border-radius: 50%;
    cursor: pointer;
}



/* ---------- Overflow Safety (Widget Only) ---------- */
#tbp-booking-widget,
#tbp-booking-widget * {
	box-sizing: border-box;
}

#tbp-booking-widget {
	max-width: 600px !important;
	margin: 0 auto !important;
	background: #ffffff !important;
	padding: 24px !important;
	border-radius: 14px !important;
	box-shadow: 0 12px 40px rgba(0,0,0,0.1) !important;
	font-family: inherit !important;

	/* Prevent content spilling outside container */
	overflow: hidden;
}

/* Wrap long text (emails/addresses) instead of overflowing */
#tbp-booking-widget,
#tbp-booking-widget .vehicle-item,
#tbp-booking-widget .summary-box,
#tbp-booking-widget #tbp-summary-content,
#tbp-booking-widget #tbp-price-breakdown,
#tbp-booking-widget #tbp-price-surcharges {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Never let media overflow */
#tbp-booking-widget img,
#tbp-booking-widget svg,
#tbp-booking-widget video,
#tbp-booking-widget iframe {
	max-width: 100%;
	height: auto;
}

/* ---------- Messages ---------- */
.tbp-messages {
	display: none;
	padding: 12px 14px;
	margin-bottom: 16px;
	border-radius: 8px;
	font-weight: 600;
	line-height: 1.4;
	border: 1px solid transparent;
}

.tbp-messages.error {
	display: block;
	background: #fff5f5;
	color: #b71c1c;
	border-color: #f5c2c7;
}

.tbp-messages.success {
	display: block;
	background: #f0fff4;
	color: #0f5132;
	border-color: #badbcc;
}

/* ===============================
STEPPER (VERTICAL)
================================ */
.chbs-stepper {
	display: none !important;
	gap: 10px !important;
	margin-bottom: 24px !important;
}

.chbs-stepper__tab {
	display: none !important; /* hide visual tabs on frontend */
	width: 100% !important;
	padding: 14px !important;
	background: #C70200 !important;
	border: none !important;
	color: #fff !important;
	border-radius: 10px !important;
	font-weight: 600 !important;
	text-align: left !important;
}

.chbs-stepper__tab:hover{
	background: #C70200 !important;
	color: #fff !important;
}

.chbs-stepper__tab.chbs-state-active {
	background: #243688 !important;
	color: #ffffff !important;
}

/* ===============================
STEPS
================================ */
.tbp-step {
	animation: tbpFade 0.3s ease !important;
}

.tbp-hidden {
	display: none !important;
}

@keyframes tbpFade {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: translateY(0); }
}

/* ===============================
FORM LAYOUT (VERTICAL)
Spacing improvements only
================================ */
.chbs-simple-booking__grid,
.tbp-step3-form {
	display: flex;
	flex-direction: column;
	gap: 18px !important;            /* was 16px */
	margin-bottom: 22px !important;   /* was 20px */
}

/* ===============================
LABELS & INPUTS
(Scoped “label” to widget to avoid site-wide side effects)
================================ */
#tbp-booking-widget label:not(.tbp-tour-pill) {
	display: flex;
	flex-direction: column;
	gap: 8px !important; /* was 6px */
}

#tbp-booking-widget label:not(.tbp-tour-pill) span {
	font-weight: 600 !important;
}

/* Inputs: keep your look, add max-width to prevent overflow (exclude tour-type radios) */
#tbp-booking-widget input:not(#tbp-phone):not(.iti__tel-input):not(#tbp-confirm):not([type="radio"]):not([type="checkbox"]),
#tbp-booking-widget select,
#tbp-booking-widget textarea {
	width: 100% !important;
	max-width: 100%;
	padding: 12px 14px !important;
	border-radius: 10px !important;
	border: 1px solid #d1d5db !important;
	background: #ffffff !important;
	font-size: 14px !important;
	min-width: 0 !important;
}

/* iOS datetime-local overflow fix */
#tbp-booking-widget input[type="datetime-local"] {
    width: 100% !important;
    max-width: 100%;
    min-width: 0 !important; /* CRITICAL */
    box-sizing: border-box;
}

#tbp-booking-widget input[type="datetime-local"]::-webkit-datetime-edit {
    min-width: 0;
}

@supports (-webkit-touch-callout: none) {
	input.tbp-datetime-picker {
/* 		outline: 1px solid red; */
		width: 100% !important;
		max-width: 12px !important;
		min-width: 0px !important; /* CRITICAL */
		box-sizing: border-box;
		display: block;
    }
}

#tbp-confirm{
	width: 16px !important;
	height: 16px;
	padding: 0 !important;        /* fixes checkbox weird sizing */
	border-radius: 4px !important; /* checkbox should not look like input */
	border: 1px solid #d1d5db !important;
	background: #ffffff !important;
	font-size: 14px !important;
}

#tbp-booking-widget input:not(#tbp-phone):not(.iti__tel-input):not([type="radio"]):not([type="checkbox"]):focus,
#tbp-booking-widget select:focus,
#tbp-booking-widget textarea:focus {
	outline: none !important;
	border-color: #C70200 !important;
	box-shadow: 0 0 0 2px rgba(199, 2, 0, 0.2) !important;
}

/* ===============================
PHONE INPUT (intl-tel-input)
Overflow safe on iOS
================================ */
.tbp-phone-field .iti{
	width: 100% !important;
	padding: initial !important;
	border-radius: 10px !important;
	border: 1px solid #d1d5db !important;
	background: #ffffff !important;
	font-size: 14px !important;
	outline: none;
	margin: 10px 0px;

	overflow: hidden; /* prevents flag dropdown / inner input overflow */
}

.tbp-phone-field .iti input{
	border-radius: 10px !important;
	border: none !important; /* rely on wrapper border */
	background: #ffffff !important;
	font-size: 14px !important;
	outline: none;
}

.tbp-phone-field .iti input:focus{
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(199, 2, 0, 0.2) !important;
}

/* ===============================
TOUR TYPE
================================ */
.tbp-tour-type__options {
	display: flex;
	gap: 8px;          /* was 4px */
	flex-wrap: wrap;   /* prevents overflow on small screens */
}

.tbp-tour-type__options input {
	display: none;
}

.tbp-tour-card {
	flex: 1;
	min-width: 140px;  /* prevents squishing */
}

.tbp-tour-card__label {
	display: block;
	text-align: center;
	padding: 12px 16px;
	border-radius: 8px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	background: #C70200 !important;
	color: #ffffff;
	transition: all 0.2s ease;
}

.tbp-tour-card__label:hover {
	filter: brightness(1.1);
}

.tbp-tour-card input:checked + .tbp-tour-card__label {
	background: #243688 !important;
	color: #ffffff;
}

.tbp-tour-type__heading {
	display: block;
	margin-bottom: 10px;
	font-weight: 600;
}

.tbp-tour-type__grid {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
}

.tbp-tour-type__row {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
	width: 100%;
}

/* Override global #tbp-booking-widget label / input rules — pills are click targets, not form rows */
#tbp-booking-widget label.tbp-tour-pill {
	display: block !important;
	position: relative;
	margin: 0 !important;
	padding: 0 !important;
	flex-direction: unset !important;
	gap: 0 !important;
	width: 100%;
	min-width: 0;
	cursor: pointer;
}

#tbp-booking-widget label.tbp-tour-pill input[type="radio"] {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
	opacity: 0 !important;
	clip: rect(0, 0, 0, 0) !important;
	overflow: hidden !important;
	pointer-events: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	box-shadow: none !important;
	background: transparent !important;
	min-width: 0 !important;
	max-width: none !important;
}

.tbp-tour-pill__label {
	display: block !important;
	text-align: center;
	padding: 12px 10px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	background: #C70200;
	color: #fff;
	transition: filter 0.2s ease, background 0.2s ease;
	width: 100% !important;
	box-sizing: border-box;
	border: none !important;
}

.tbp-tour-pill:hover .tbp-tour-pill__label {
	filter: brightness(1.08);
}

.tbp-tour-pill input:checked + .tbp-tour-pill__label {
	background: #243688;
	color: #fff;
}

.tbp-package-section {
	margin: 20px 0;
	padding: 16px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	background: #fafafa;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.tbp-package-section__field {
	margin: 0;
}

.tbp-package-select-label {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 0;
}

.tbp-package-select-label .tbp-package-section__heading {
	margin-bottom: 0;
}

.tbp-package-section__hint {
	font-size: 13px;
	color: #555;
	margin: 0 0 12px;
}

.tbp-special-offer-select {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.tbp-special-datetime-label {
	display: flex;
	flex-direction: column;
	gap: 8px;
	font-weight: 600;
	margin: 0;
}

.tbp-package-pickup-label {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
}

.tbp-special-datetime-label .tbp-special-datetime {
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid #ccc;
	font-size: 14px;
}

@media (max-width: 520px) {
	.tbp-tour-type__row {
		grid-template-columns: 1fr 1fr;
	}
}

/* ===============================
LOCATION PAIRS
Spacing + overflow safety
================================ */
.tbp-location-pairs {
	margin: 22px 0 !important; /* was 20px */
}

.tbp-pair-row__title{
	font-size: 18px !important;
	font-weight: 500 !important;
	margin-bottom: 6px;
}

.tbp-pair-row,
.datetime-group,
.tbp-extra-field,
.label-tbp-passengers,
.summary-row,
.tbp-step3-form{
	display: flex;
	flex-direction: column;
}

.tbp-pair-row label,
.datetime-group label,
.tbp-extra-field label,
.label-tbp-passengers label,
.summary-row label,
.tbp-step3-form label{
	padding: 10px 0;
}

.tbp-pair-row label select,
.datetime-group label select,
.tbp-extra-field label select,
.summary-row label select,
.tbp-step3-form label input:not(#tbp-phone),
.tbp-step3-form label select{
	margin-top: 10px;
}

.tbp-datetime-container {
	margin-top: 12px;
	border: 1px dashed #e5e7eb;
	border-radius: 12px;
	padding: 12px;
	background: #f9fafb;
}

/* Buttons */
.location-add-btn,
.tbp-pair-row__remove {
	width: 100% !important;
	background: #10b981 !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 12px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	margin-bottom: 8px; /* was 5px */
}

.tbp-pair-row__remove{
	background: #C70200 !important;
}

/* Passenger stepper */
.tbp-stepper {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	background: #f3f4f6 !important;
	padding: 6px;
	border-radius: 12px !important;
	border: 1px solid #e5e7eb;
	overflow: hidden; /* prevents flex overflow */
}

.tbp-stepper__btn {
	width: 40px;
	height: 40px;
	border-radius: 10px !important;
	border: none !important;
	background: #C70200 !important;
	color: #ffffff !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	line-height: 1;
	cursor: pointer;
	transition: transform 0.15s ease, background 0.15s ease;
	flex: 0 0 auto;
}

.tbp-stepper__btn:hover { background: #b00100 !important; }
.tbp-stepper__btn:active { transform: scale(0.95); }
.tbp-stepper__btn:focus-visible {
	outline: 2px solid #243688 !important;
	outline-offset: 2px !important;
}

.tbp-stepper input {
	flex: 1;
	min-width: 0; /* critical flex overflow fix */
	height: 40px;
	text-align: center;
	font-size: 16px;
	font-weight: 600 !important;
	border: none !important;
	border-radius: 10px !important;
	background: #ffffff !important;
	color: #111827 !important;
	appearance: textfield;
}

.tbp-stepper input::-webkit-outer-spin-button,
.tbp-stepper input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Phone field grid (kept) */
.tbp-phone-input-group {
	display: grid;
	grid-template-columns: 120px 1fr;
	gap: 8px;
	align-items: center;
}

.tbp-phone-input-group select {
	padding: 12px !important;
}

@media (max-width: 540px) {
	.tbp-phone-input-group {
		grid-template-columns: 1fr;
	}
}

/* ===============================
VEHICLE LIST (VERTICAL)
Layout preserved, overflow fixed
================================ */
.chbs-vehicle-preview {
	display: flex;
	flex-direction: row;
	gap: 16px !important;
	margin-top: 24px !important;
/* 	flex-wrap: wrap; /* prevents overflow on small screens */
}

.vehicle-item {
	position: relative !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 14px !important;
	padding: 18px !important;
	width: 100% !important;
	background: #f9fafb !important;
	cursor: pointer !important;
	transition: all 0.25s ease !important;

	overflow: hidden; /* prevents long text/image overflow */
}

.vehicle-item:hover { border-color: #C70200 !important; }

.vehicle-item.selected {
	border: 2px solid #C70200 !important;
	background: #eff6ff !important;
	box-shadow: 0 10px 25px rgba(199, 2, 0, 0.3) !important;
}

.vehicle-item.selected::after {
	content: "✓ Selected" !important;
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	background: #C70200 !important;
	color: #ffffff !important;
	font-size: 12px !important;
	padding: 4px 10px !important;
	border-radius: 20px !important;
	font-weight: 600 !important;
}

/* ===============================
SUMMARY & PRICE
Spacing + overflow safety only
================================ */
.summary-box {
	background: #f8fafc !important;
	border-radius: 14px !important;
	padding: 18px !important;   /* was 16px */
	margin-top: 22px !important; /* was 20px */
	overflow: hidden;
}

.summary-row {
	display: flex;
	flex-direction: column;
	gap: 8px !important;         /* was 6px */
	margin-bottom: 16px !important; /* was 14px */
}

label.confirm-check {
	display: flex;
	align-items: center;
	flex-direction: row !important;
	gap: 10px; /* was 8px */
	cursor: pointer;
	font-family: system-ui, -apple-system, sans-serif;
	font-size: 14px;
	font-weight: 400;
	color: #374151;
	line-height: 1.5;
	user-select: none;
}

.confirm-check input[type="checkbox"] {
	flex-shrink: 0;
	width: 16px !important;
	height: 16px;
	cursor: pointer;
}

.vehicle-price-box {
	margin-top: 22px !important; /* was 20px */
	padding: 18px !important;
	background: #C70200 !important;
	color: #ffffff !important;
	border-radius: 14px !important;
	overflow: hidden;
}

.price-value {
	font-size: 24px !important;
	font-weight: 700 !important;
}

/* Price breakdown list spacing */
#tbp-price-breakdown ul{
	margin: 8px 0 0 0;
	padding-left: 18px;
}
#tbp-price-breakdown li{
	margin: 4px 0;
	line-height: 1.4;
}

/* ===============================
BUTTONS (VERTICAL)
Layout preserved, overflow safe
================================ */
.chbs-stepper__actions {
	display: flex;
	gap: 12px !important;
	margin-top: 30px !important;
	/* flex-wrap: wrap; prevents overflow on small screens */
}

.chbs-btn {
	width: 100% !important;
	padding: 14px !important;
	border-radius: 12px !important;
	border: none !important;
	font-weight: 600 !important;
	cursor: pointer !important;
}

.chbs-btn-primary {
	background: #2563eb !important;
	color: #ffffff !important;
}

.chbs-btn-secondary {
	background: #e5e7eb !important;
	color: #111827 !important;
}

/* ===============================
MESSAGE (legacy)
================================ */
#tbp-form-message {
	margin-bottom: 16px !important;
	padding: 14px !important;
	border-radius: 10px !important;
	background: #fee2e2 !important;
	color: #991b1b !important;
	display: none;
}

#tbp-form-message.is-success,
#tbp-form-message.is-error{
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

#tbp-form-message.is-success{
	background: #e2fee2 !important;
	border: 1px solid #7aff7a;
	color: #14532d !important;
}

/* -------------------------------
Customer support
-------------------------------- */
.customer-suport{
	display: flex;
	flex-direction: column;
	padding: 12px 0px; /* slightly more spacing */
	gap: 6px;
}

.customer-suport div{
	width: 100%;
	font-size: 16px;
}

.customer-suport div span{
	font-weight: 600;
}

/* -------------------------------
Responsive
-------------------------------- */
@media (max-width: 768px) {
	#tbp-booking-widget {
		max-width: 100% !important;
		padding: 16px !important;
		border-radius: 0 !important;
	}

	.chbs-stepper__tab {
		text-align: center !important;
		padding: 12px !important;
		font-size: 14px !important;
	}

	.chbs-vehicle-preview {
		font-size: 12px;
	}

	.vehicle-item {
		padding: 14px !important;
	}

	.vehicle-item.selected::after {
		top: 8px !important;
		right: 8px !important;
		font-size: 11px !important;
		padding: 3px 8px !important;
	}

	.chbs-btn {
		font-size: 15px !important;
	}

	.vehicle-price-box {
		padding: 14px !important;
		font-size: 15px !important;
	}

	.price-value {
		font-size: 20px !important;
	}
}

@media (max-width: 480px) {
	#tbp-booking-widget {
		padding: 14px !important;
	}

	#tbp-booking-widget label span,
	.tbp-tour-type span {
		font-size: 13px !important;
	}

	#tbp-booking-widget input:not(#tbp-phone):not([type="radio"]):not([type="checkbox"]),
	#tbp-booking-widget select,
	#tbp-booking-widget textarea {
		font-size: 13px !important;
		padding: 10px 12px !important;
	}

	.tbp-tour-type__options label {
		padding: 10px !important;
		font-size: 13px !important;
	}

	.location-add-btn,
	.tbp-pair-row__remove {
		font-size: 14px !important;
		padding: 10px !important;
	}

	.tbp-pair-row__title {
		font-size: 16px !important;
	}

	.summary-box {
		padding: 14px !important;
	}

	label.confirm-check {
		font-size: 13px !important;
		gap: 8px !important;
	}

	.vehicle-item.selected::after {
		font-size: 10px !important;
	}
}

@media (max-width: 360px) {
	.chbs-stepper__tab {
		font-size: 13px !important;
		padding: 10px !important;
	}

	.chbs-btn {
		padding: 12px !important;
		font-size: 14px !important;
	}

	.price-value {
		font-size: 18px !important;
	}
}