/* Canada Limo Booking — Premium Booking Form (v1.2)
   CSS variables drive theming. Defaults = clean premium light. Add
   data-clb-theme="dark" on the wrapper for the luxury dark variant. */

.clb-booking-wrapper {
	/* Brand colors */
	--clb-primary: #0f0f10;
	--clb-primary-hover: #000;
	--clb-primary-text: #fff;
	--clb-accent: #16a34a;
	--clb-accent-soft: rgba(22, 163, 74, 0.08);
	--clb-gold: #c9a368;
	--clb-danger: #dc2626;
	--clb-danger-soft: #fef2f2;

	/* Surfaces */
	--clb-bg: transparent;
	--clb-card-bg: #ffffff;
	--clb-card-border: rgba(15, 15, 16, 0.06);
	--clb-card-radius: 18px;
	--clb-card-padding: 26px;
	--clb-card-shadow:
		0 1px 2px rgba(0,0,0,0.04),
		0 4px 12px rgba(0,0,0,0.04),
		0 16px 40px rgba(0,0,0,0.06);

	/* Text */
	--clb-text: #0f0f10;
	--clb-text-muted: #5a5a60;
	--clb-text-subtle: #8a8a92;
	--clb-text-on-soft: #1a1a1f;

	/* Inputs */
	--clb-border: #e5e7eb;
	--clb-border-strong: #0f0f10;
	--clb-input-bg: #ffffff;
	--clb-input-radius: 12px;
	--clb-input-padding: 12px 14px;
	--clb-input-shadow: inset 0 1px 0 rgba(0,0,0,0.02);
	--clb-focus-ring: 0 0 0 4px rgba(15, 15, 16, 0.06);

	/* Buttons */
	--clb-btn-radius: 14px;
	--clb-btn-padding: 15px 22px;

	/* Misc */
	--clb-tab-bg: #f4f4f6;
	--clb-soft-bg: #fafafb;
	--clb-vehicle-border: #ececef;
	--clb-vehicle-selected-bg: #fafafb;

	/* Typography */
	--clb-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, "Helvetica Neue", Arial, sans-serif;
	--clb-font-display: var(--clb-font-family);
	--clb-font-size-base: 15px;
	--clb-font-size-label: 11px;
	--clb-font-size-title: 28px;
	--clb-max-width: 560px;

	max-width: var(--clb-max-width);
	margin: 0 auto;
	font-family: var(--clb-font-family);
	color: var(--clb-text);
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.clb-booking-wrapper *, .clb-booking-wrapper *::before, .clb-booking-wrapper *::after {
	box-sizing: border-box;
}

/* DARK / LUXURY THEME */
.clb-booking-wrapper[data-clb-theme="dark"] {
	--clb-primary: #c9a368;
	--clb-primary-hover: #b8915b;
	--clb-primary-text: #0f0f10;
	--clb-accent: #c9a368;
	--clb-accent-soft: rgba(201, 163, 104, 0.12);
	--clb-card-bg: #15151a;
	--clb-card-border: rgba(255, 255, 255, 0.06);
	--clb-card-shadow:
		0 1px 2px rgba(0,0,0,0.4),
		0 8px 24px rgba(0,0,0,0.5);
	--clb-text: #f4f4f6;
	--clb-text-muted: #b5b5be;
	--clb-text-subtle: #7a7a85;
	--clb-text-on-soft: #f4f4f6;
	--clb-border: rgba(255,255,255,0.1);
	--clb-border-strong: #c9a368;
	--clb-input-bg: #1d1d24;
	--clb-input-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
	--clb-focus-ring: 0 0 0 4px rgba(201, 163, 104, 0.15);
	--clb-tab-bg: #1d1d24;
	--clb-soft-bg: #1a1a20;
	--clb-vehicle-border: rgba(255,255,255,0.08);
	--clb-vehicle-selected-bg: #1d1d24;
}

/* CARD */
.clb-card {
	background: var(--clb-card-bg);
	border: 1px solid var(--clb-card-border);
	border-radius: var(--clb-card-radius);
	box-shadow: var(--clb-card-shadow);
	padding: var(--clb-card-padding);
	position: relative;
	overflow: hidden;
}

/* STEP NAVIGATION (4-step visible nav) */
.clb-steps-nav {
	display: flex;
	gap: 6px;
	margin: 0 0 26px;
	padding: 6px;
	list-style: none;
	background: var(--clb-tab-bg);
	border-radius: 14px;
	overflow-x: auto;
}
.clb-steps-nav-item {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 8px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
	color: var(--clb-text-muted);
	cursor: not-allowed;
	white-space: nowrap;
	transition: background 0.18s, color 0.18s, box-shadow 0.18s;
	user-select: none;
}
.clb-steps-nav-item.is-clickable {
	cursor: pointer;
}
.clb-steps-nav-item.is-clickable:hover {
	color: var(--clb-text);
	background: rgba(0,0,0,0.03);
}
.clb-steps-nav-item.is-active {
	background: var(--clb-card-bg);
	color: var(--clb-primary);
	box-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 1px rgba(0,0,0,0.04);
	cursor: default;
}
.clb-steps-nav-item.is-done {
	color: var(--clb-accent);
}
.clb-steps-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--clb-border);
	color: var(--clb-text-muted);
	font-size: 12px;
	font-weight: 700;
	flex-shrink: 0;
	transition: background 0.18s, color 0.18s;
}
.clb-steps-nav-item.is-active .clb-steps-num {
	background: var(--clb-primary);
	color: var(--clb-primary-text);
}
.clb-steps-nav-item.is-done .clb-steps-num {
	background: var(--clb-accent);
	color: #fff;
}
.clb-steps-nav-item.is-done .clb-steps-num::before {
	content: "✓";
	font-size: 13px;
}
.clb-steps-nav-item.is-done .clb-steps-num {
	font-size: 0;
}
@media (max-width: 600px) {
	.clb-steps-nav { padding: 4px; gap: 3px; }
	.clb-steps-nav-item { font-size: 11px; padding: 8px 4px; gap: 5px; }
	.clb-steps-label { display: none; }
	.clb-steps-nav-item.is-active .clb-steps-label { display: inline; }
}

/* Section subheaders within a step */
.clb-section-subhead {
	margin: 22px 0 12px;
	font-size: 11px;
	font-weight: 700;
	color: var(--clb-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.6px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--clb-vehicle-border);
}
.clb-section-subhead:first-child {
	margin-top: 0;
}

/* Booking summary grid (Step 4) */
.clb-summary-grid {
	background: var(--clb-soft-bg);
	border-radius: var(--clb-card-radius);
	padding: 18px;
	margin-bottom: 8px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.clb-summary-row {
	display: flex;
	gap: 14px;
	font-size: 14px;
	line-height: 1.5;
}
.clb-summary-row + .clb-summary-row {
	padding-top: 12px;
	border-top: 1px solid var(--clb-vehicle-border);
}
.clb-summary-icon {
	font-size: 18px;
	width: 22px;
	flex-shrink: 0;
	text-align: center;
	line-height: 1.4;
}
.clb-summary-content { flex: 1; min-width: 0; }
.clb-summary-label {
	font-size: 11px;
	font-weight: 700;
	color: var(--clb-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	display: block;
	margin-bottom: 2px;
}
.clb-summary-value {
	color: var(--clb-text);
	font-weight: 500;
	word-wrap: break-word;
}
.clb-summary-value strong { font-weight: 700; }
.clb-summary-edit {
	background: transparent;
	border: 0;
	color: var(--clb-text-muted);
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: underline;
	padding: 0;
	margin-left: 8px;
	font-family: inherit;
	flex-shrink: 0;
}
.clb-summary-edit:hover { color: var(--clb-primary); }

/* HEADER */
.clb-card-head { margin-bottom: 20px; }
.clb-card-head--split {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.clb-eyebrow {
	display: inline-block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 2.4px;
	color: var(--clb-text-subtle);
	text-transform: uppercase;
	margin-bottom: 8px;
	position: relative;
	padding-left: 36px;
}
.clb-eyebrow::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 28px;
	height: 1px;
	background: var(--clb-text-subtle);
}
.clb-head-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--clb-card-bg);
	border: 1px solid var(--clb-vehicle-border);
	color: var(--clb-text);
	padding: 8px 16px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	box-shadow: 0 1px 3px rgba(0,0,0,0.04);
	white-space: nowrap;
	flex-shrink: 0;
}
.clb-head-badge-icon { color: var(--clb-accent, #c9a368); font-size: 13px; line-height: 1; }
@media (max-width: 600px) {
	.clb-head-badge { font-size: 11px; padding: 6px 12px; }
	.clb-eyebrow { letter-spacing: 1.8px; padding-left: 28px; }
	.clb-eyebrow::before { width: 20px; }
}
.clb-card-head--with-back {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 20px;
}
.clb-card-head--with-back h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	color: var(--clb-text);
	letter-spacing: -0.01em;
}
.clb-back {
	background: var(--clb-tab-bg);
	border: 0;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	cursor: pointer;
	font-size: 18px;
	line-height: 1;
	color: var(--clb-text);
	transition: background 0.15s, transform 0.15s;
	display: flex;
	align-items: center;
	justify-content: center;
}
.clb-back:hover { background: var(--clb-border); transform: translateX(-2px); }
.clb-title {
	font-family: Georgia, "Cormorant Garamond", "Playfair Display", "Times New Roman", serif;
	font-size: 30px;
	font-weight: 600;
	margin: 0 0 4px;
	color: var(--clb-text);
	letter-spacing: -0.01em;
	line-height: 1.1;
}
@media (max-width: 600px) {
	.clb-title { font-size: 24px; }
}
.clb-subtitle {
	margin: 0;
	color: var(--clb-text-muted);
	font-size: 14px;
	line-height: 1.5;
}

/* STEPS */
.clb-step { display: none; animation: clb-fade-in 0.3s ease-out; }
.clb-step.is-active { display: block; }
@keyframes clb-fade-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}

/* TABS */
.clb-tabs {
	display: flex;
	gap: 4px;
	background: var(--clb-tab-bg);
	border-radius: 999px;
	padding: 4px;
	margin-bottom: 14px;
}
.clb-tab {
	flex: 1;
	background: transparent;
	border: 0;
	padding: 10px 16px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	color: var(--clb-text-muted);
	font-family: inherit;
	transition: background 0.18s, color 0.18s, box-shadow 0.18s;
}
.clb-tab:hover { color: var(--clb-text); }
.clb-tab.is-active {
	background: #0f0f10;
	color: #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

/* FIELDS */
.clb-field-group { display: flex; flex-direction: column; gap: 12px; }
.clb-field { display: flex; flex-direction: column; gap: 5px; }
.clb-field label {
	font-size: var(--clb-font-size-label);
	font-weight: 600;
	color: var(--clb-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.6px;
}
.clb-field input, .clb-field select, .clb-field textarea {
	width: 100%;
	padding: var(--clb-input-padding);
	border: 1.5px solid var(--clb-border);
	border-radius: var(--clb-input-radius);
	font-size: var(--clb-font-size-base);
	background: var(--clb-input-bg);
	color: var(--clb-text);
	font-family: inherit;
	box-shadow: var(--clb-input-shadow);
	transition: border-color 0.15s, box-shadow 0.15s, background 0.15s;
	appearance: none;
	-webkit-appearance: none;
}
.clb-field select {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%235a5a60' d='M6 8L0 0h12z'/></svg>");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 40px;
}
.clb-field input:focus, .clb-field select:focus, .clb-field textarea:focus {
	border-color: var(--clb-border-strong);
	outline: 0;
	box-shadow: var(--clb-focus-ring);
}
.clb-field input::placeholder, .clb-field textarea::placeholder {
	color: var(--clb-text-subtle);
	opacity: 1; /* iOS Safari sometimes makes placeholders too faded */
}
.clb-field input::-webkit-input-placeholder { color: var(--clb-text-subtle) !important; opacity: 1 !important; }
.clb-field input::-moz-placeholder { color: var(--clb-text-subtle) !important; opacity: 1 !important; }
.clb-field input:-ms-input-placeholder { color: var(--clb-text-subtle) !important; opacity: 1 !important; }
/* Force placeholder visibility on date/time inputs (mobile fix) */
.clb-field input[data-clb-date],
.clb-field input[data-clb-time] {
	color: var(--clb-text);
}
.clb-field input[data-clb-date]:placeholder-shown,
.clb-field input[data-clb-time]:placeholder-shown {
	color: var(--clb-text-subtle);
}

/* INPUT WITH LOCATION DOT — solid pill, NO overlap with text */
.clb-input-with-icon { position: relative; }
.clb-input-with-icon input {
	padding-left: 44px !important;
}
.clb-dot {
	position: absolute;
	left: 18px;
	top: 50%;
	transform: translateY(-50%);
	width: 11px;
	height: 11px;
	border-radius: 50%;
	pointer-events: none;
	z-index: 2;
	box-shadow: 0 0 0 3px var(--clb-card-bg);
}
.clb-dot-pickup { background: #16a34a; }
.clb-dot-dropoff { background: #dc2626; }

/* Yes/No segmented toggle */
.clb-yesno {
	display: inline-flex;
	gap: 0;
	background: var(--clb-tab-bg);
	border: 1px solid var(--clb-border);
	border-radius: 10px;
	padding: 3px;
	position: relative;
}
.clb-yesno-option {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 8px 22px;
	border-radius: 7px;
	font-size: 13px;
	font-weight: 600;
	color: var(--clb-text-muted);
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
	min-width: 64px;
	text-align: center;
	line-height: 1.2;
	user-select: none;
}
.clb-yesno-option:hover:not(.is-active) {
	color: var(--clb-text);
}
.clb-yesno-option.is-active {
	background: var(--clb-card-bg);
	color: var(--clb-text);
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.clb-yesno-option input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
	width: 0;
	height: 0;
}

/* Conditional section (animated reveal for child car seats etc.) */
.clb-conditional {
	overflow: hidden;
	transition: max-height 0.3s ease-out, opacity 0.2s, margin 0.3s;
	max-height: 0;
	opacity: 0;
	margin-top: 0;
}
.clb-conditional.is-open {
	max-height: 800px;
	opacity: 1;
	margin-top: 14px;
}

/* GRID ROWS */
.clb-row { display: grid; gap: 12px; }
.clb-row-2 { grid-template-columns: 1fr 1fr; }
.clb-row-3 { grid-template-columns: 1fr 1fr 1fr; }
.clb-row-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }
@media (max-width: 900px) {
	.clb-row-4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
	.clb-row-4, .clb-row-3 { grid-template-columns: 1fr; }
}

/* BUTTONS */
.clb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 0;
	border-radius: var(--clb-btn-radius);
	padding: var(--clb-btn-padding);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	letter-spacing: 0.01em;
	transition: transform 0.06s, background 0.18s, box-shadow 0.18s, opacity 0.18s;
	position: relative;
	overflow: hidden;
}
.clb-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.clb-btn:active:not(:disabled) { transform: scale(0.985); }
.clb-btn-primary {
	background: var(--clb-primary);
	color: var(--clb-primary-text);
	box-shadow: 0 1px 2px rgba(0,0,0,0.1), 0 4px 12px rgba(0,0,0,0.08);
}
.clb-btn-primary:hover:not(:disabled) {
	background: var(--clb-primary-hover);
	box-shadow: 0 2px 4px rgba(0,0,0,0.12), 0 8px 20px rgba(0,0,0,0.12);
}
.clb-btn-secondary {
	background: var(--clb-tab-bg);
	color: var(--clb-text);
}
.clb-btn-secondary:hover:not(:disabled) {
	background: var(--clb-border);
}
.clb-btn-block { width: 100%; margin-top: 14px; }
.clb-arrow { font-size: 18px; transition: transform 0.18s; }
.clb-btn:hover:not(:disabled) .clb-arrow { transform: translateX(3px); }

.clb-link {
	background: transparent;
	border: 0;
	color: var(--clb-text-muted);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	padding: 8px 14px;
	text-decoration: none;
	font-family: inherit;
	border-radius: 8px;
	transition: background 0.15s, color 0.15s;
}
.clb-link:hover {
	color: var(--clb-text);
	background: var(--clb-soft-bg);
}

/* ERROR */
.clb-error {
	background: var(--clb-danger-soft);
	color: var(--clb-danger);
	padding: 14px 16px;
	border-radius: var(--clb-input-radius);
	font-size: 14px;
	margin-top: 16px;
	border-left: 3px solid var(--clb-danger);
	line-height: 1.5;
}

/* TRIP SUMMARY */
.clb-trip-summary {
	background: var(--clb-soft-bg);
	padding: 14px 16px;
	border-radius: var(--clb-input-radius);
	font-size: 13px;
	color: var(--clb-text-muted);
	margin-bottom: 20px;
	line-height: 1.6;
}
.clb-trip-summary strong { color: var(--clb-text); font-weight: 600; }

/* LOADING */
.clb-loading {
	text-align: center;
	color: var(--clb-text-subtle);
	padding: 40px 20px;
	font-size: 14px;
}
.clb-skeleton {
	background: linear-gradient(90deg, var(--clb-soft-bg) 25%, var(--clb-border) 50%, var(--clb-soft-bg) 75%);
	background-size: 200% 100%;
	animation: clb-skeleton 1.4s ease-in-out infinite;
	border-radius: 8px;
	height: 80px;
	margin-bottom: 10px;
}
@keyframes clb-skeleton {
	0%   { background-position: 200% 0; }
	100% { background-position: -200% 0; }
}

/* VEHICLE CARDS */
.clb-vehicle-list { display: flex; flex-direction: column; gap: 12px; }
.clb-vehicle {
	border: 2px solid var(--clb-vehicle-border);
	border-radius: var(--clb-card-radius);
	padding: 16px;
	cursor: pointer;
	transition: border-color 0.18s, background 0.18s, transform 0.1s, box-shadow 0.2s;
	display: flex;
	gap: 16px;
	align-items: center;
	background: var(--clb-card-bg);
}
.clb-vehicle:hover {
	border-color: var(--clb-border-strong);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}
.clb-vehicle.is-selected {
	border-color: var(--clb-primary);
	background: var(--clb-vehicle-selected-bg);
	box-shadow: 0 0 0 4px var(--clb-accent-soft);
}
.clb-vehicle-image {
	width: 96px;
	height: 72px;
	object-fit: cover;
	border-radius: 10px;
	background: var(--clb-tab-bg);
	flex-shrink: 0;
}
.clb-vehicle-image-placeholder {
	width: 96px;
	height: 72px;
	background: linear-gradient(135deg, #1f1f24 0%, #3a3a44 100%);
	border-radius: 10px;
	color: var(--clb-gold);
	font-size: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.clb-vehicle-info { flex: 1; min-width: 0; }
.clb-vehicle-name {
	font-weight: 700;
	font-size: 16px;
	color: var(--clb-text);
	margin: 0;
	letter-spacing: -0.005em;
}
.clb-vehicle-meta {
	color: var(--clb-text-subtle);
	font-size: 12px;
	margin: 4px 0 0;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.clb-vehicle-meta-item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
/* Inline field feedback (e.g., extra stops added confirmation) */
.clb-field-feedback {
	margin-top: 6px;
	padding: 6px 10px;
	background: var(--clb-accent-soft);
	border-radius: 6px;
	font-size: 12px;
	color: var(--clb-text-muted);
	line-height: 1.4;
}
.clb-field-feedback strong {
	color: var(--clb-text);
}

/* Vehicle price block — compact 3-row layout, smooth price transitions */
.clb-vehicle-price-block {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	text-align: right;
	gap: 2px;
	flex-shrink: 0;
}
.clb-vehicle-price,
.clb-vehicle-price-tax,
.clb-vehicle-price-total {
	transition: color 0.2s;
}
.clb-vehicle-price {
	font-weight: 700;
	font-size: 20px;
	color: var(--clb-text);
	letter-spacing: -0.01em;
	line-height: 1.1;
}
.clb-vehicle-price-sub {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0;
	margin-top: 1px;
}
.clb-vehicle-price-label {
	color: var(--clb-accent);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	font-weight: 700;
}
.clb-vehicle-price-tax {
	color: var(--clb-text-subtle);
	font-size: 11px;
	font-weight: 500;
	white-space: nowrap;
	margin-top: 1px;
}
.clb-vehicle-price-total {
	color: var(--clb-text);
	font-size: 12px;
	font-weight: 700;
	padding-top: 2px;
	margin-top: 2px;
	border-top: 1px solid var(--clb-vehicle-border);
	white-space: nowrap;
}
.clb-flat-rate-badge {
	display: inline-block;
	background: var(--clb-accent-soft);
	color: var(--clb-accent);
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-top: 2px;
}
@media (max-width: 480px) {
	.clb-vehicle-price { font-size: 18px; }
	.clb-vehicle-price-tax, .clb-vehicle-price-total { font-size: 10px; }
}

/* ADDONS SECTION */
.clb-addons-block {
	margin-top: 22px;
	padding-top: 22px;
	border-top: 1px solid var(--clb-vehicle-border);
}
.clb-addons-title {
	font-size: 13px;
	font-weight: 700;
	color: var(--clb-text);
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.clb-addons {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.clb-checkbox {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: var(--clb-soft-bg);
	border: 1.5px solid transparent;
	border-radius: var(--clb-input-radius);
	cursor: pointer;
	font-size: 14px;
	color: var(--clb-text);
	transition: border-color 0.15s, background 0.15s;
}
.clb-checkbox:hover { border-color: var(--clb-border); }
.clb-checkbox input { margin: 0; accent-color: var(--clb-primary); width: 16px; height: 16px; }
.clb-checkbox input:checked + span { font-weight: 600; }
.clb-checkbox span:nth-child(2) { flex: 1; }
.clb-fee { color: var(--clb-accent); font-weight: 700; font-size: 13px; }
.clb-fee-inline { color: var(--clb-text-subtle); font-weight: 400; font-size: 11px; text-transform: none; letter-spacing: 0; }

/* EXTRAS GRID */
.clb-extras-section {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--clb-vehicle-border);
}
.clb-extras-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	background: transparent;
	border: 0;
	padding: 8px 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--clb-text);
	cursor: pointer;
	font-family: inherit;
}
.clb-extras-toggle .clb-chev { transition: transform 0.2s; font-size: 14px; color: var(--clb-text-muted); }
.clb-extras-toggle[aria-expanded="true"] .clb-chev { transform: rotate(180deg); }
.clb-extras-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 14px;
}
.clb-extra-card {
	border: 1.5px solid var(--clb-vehicle-border);
	border-radius: 12px;
	padding: 14px;
	cursor: pointer;
	display: flex;
	gap: 12px;
	transition: border-color 0.15s, background 0.15s, transform 0.08s;
	background: var(--clb-card-bg);
	position: relative;
}
.clb-extra-card:hover { border-color: var(--clb-border-strong); }
.clb-extra-card.is-selected {
	border-color: var(--clb-primary);
	background: var(--clb-vehicle-selected-bg);
}
.clb-extra-card input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.clb-extra-icon {
	font-size: 24px;
	line-height: 1;
	flex-shrink: 0;
}
.clb-extra-info { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.clb-extra-name { font-weight: 600; font-size: 13px; color: var(--clb-text); }
.clb-extra-desc {
	font-size: 11px;
	color: var(--clb-text-subtle);
	line-height: 1.4;
	font-weight: 400;
	font-style: normal;
}
.clb-extra-price {
	font-size: 12px;
	font-weight: 700;
	color: var(--clb-accent);
	margin-top: 4px;
}
.clb-extra-price.is-free { color: var(--clb-text-muted); }

/* PAYMENT SECTION */
.clb-payment-section {
	margin-top: 24px;
	padding-top: 22px;
	border-top: 1px solid var(--clb-vehicle-border);
}
.clb-payment-section h4 {
	margin: 0 0 8px;
	font-size: 15px;
	font-weight: 700;
	color: var(--clb-text);
}
.clb-payment-note {
	margin: 0 0 16px;
	color: var(--clb-text-muted);
	font-size: 13px;
	line-height: 1.5;
}
.clb-card-element {
	padding: 16px;
	border: 1.5px solid var(--clb-border);
	border-radius: var(--clb-input-radius);
	background: var(--clb-input-bg);
	transition: border-color 0.15s, box-shadow 0.15s;
}
.clb-card-element--focused { border-color: var(--clb-border-strong); box-shadow: var(--clb-focus-ring); }
.clb-card-errors {
	color: var(--clb-danger);
	font-size: 13px;
	margin-top: 10px;
	min-height: 18px;
	line-height: 1.4;
}
.clb-tos {
	margin-top: 16px;
	color: var(--clb-text-subtle);
	font-size: 12px;
	text-align: center;
	line-height: 1.6;
}

/* TRUST SIGNALS */
.clb-trust-bar {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	margin-top: 20px;
	padding-top: 16px;
	border-top: 1px solid var(--clb-vehicle-border);
	flex-wrap: wrap;
}
.clb-trust-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 11px;
	font-weight: 600;
	color: var(--clb-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.clb-trust-icon {
	font-size: 14px;
	line-height: 1;
	color: var(--clb-accent);
}

/* SUCCESS */
.clb-success {
	text-align: center;
	padding: 32px 0;
}
.clb-success-icon {
	width: 72px;
	height: 72px;
	background: var(--clb-accent);
	color: #fff;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 36px;
	margin-bottom: 20px;
	animation: clb-pop-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
	box-shadow: 0 8px 24px rgba(22, 163, 74, 0.25);
}
@keyframes clb-pop-in {
	0%   { transform: scale(0); opacity: 0; }
	100% { transform: scale(1); opacity: 1; }
}
.clb-success h2 {
	margin: 0 0 10px;
	font-size: 26px;
	font-weight: 700;
	color: var(--clb-text);
	letter-spacing: -0.02em;
}
.clb-success p { color: var(--clb-text-muted); margin: 8px 0; font-size: 14px; line-height: 1.5; }
.clb-ref {
	display: inline-block;
	background: var(--clb-soft-bg);
	padding: 14px 24px;
	border-radius: var(--clb-input-radius);
	font-weight: 700;
	font-size: 22px;
	letter-spacing: 2px;
	margin: 18px 0;
	color: var(--clb-text);
	font-family: ui-monospace, "SF Mono", Monaco, "Cascadia Mono", monospace;
}

/* SPINNER */
.clb-btn-spinner {
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255,255,255,0.25);
	border-top-color: currentColor;
	border-radius: 50%;
	animation: clb-spin 0.6s linear infinite;
}
@keyframes clb-spin { to { transform: rotate(360deg); } }

/* PRICE BREAKDOWN */
.clb-price-breakdown {
	background: var(--clb-soft-bg);
	border-radius: var(--clb-input-radius);
	padding: 16px;
	margin: 14px 0;
	font-size: 13px;
}
.clb-price-row {
	display: flex;
	justify-content: space-between;
	padding: 4px 0;
	color: var(--clb-text-muted);
}
.clb-price-row.is-total {
	padding-top: 10px;
	margin-top: 6px;
	border-top: 1px solid var(--clb-vehicle-border);
	font-weight: 700;
	color: var(--clb-text);
	font-size: 15px;
}
.clb-deposit-banner {
	background: var(--clb-accent-soft);
	border: 1px solid rgba(22, 163, 74, 0.2);
	border-radius: var(--clb-input-radius);
	padding: 14px 16px;
	margin: 16px 0;
	font-size: 13px;
}
.clb-deposit-banner-amount {
	font-weight: 700;
	color: var(--clb-accent);
	font-size: 15px;
}
.clb-deposit-banner-note {
	color: var(--clb-text-muted);
	margin-top: 4px;
	line-height: 1.5;
}

/* RESPONSIVE */
@media (max-width: 600px) {
	.clb-booking-wrapper { --clb-card-padding: 22px; --clb-card-radius: 16px; --clb-font-size-title: 24px; }
	.clb-row-2, .clb-row-3 { grid-template-columns: 1fr; }
	.clb-vehicle { padding: 14px; gap: 12px; }
	.clb-vehicle-image, .clb-vehicle-image-placeholder { width: 76px; height: 58px; }
	.clb-vehicle-name { font-size: 14px; }
	.clb-vehicle-price { font-size: 17px; }
	.clb-extras-grid { grid-template-columns: 1fr; }
	.clb-trust-bar { gap: 12px; }
	.clb-trust-item { font-size: 10px; }
	.clb-progress-step { font-size: 9px; letter-spacing: 0.3px; }
	.clb-card-head--with-back h3 { font-size: 17px; }
}
@media (max-width: 380px) {
	.clb-booking-wrapper { --clb-card-padding: 18px; }
	.clb-title { font-size: 22px; }
	.clb-vehicle { flex-direction: column; align-items: stretch; text-align: left; }
	.clb-vehicle-image, .clb-vehicle-image-placeholder { width: 100%; height: 120px; }
	.clb-vehicle-price, .clb-vehicle-price-label { text-align: left; }
}

/* STEPPER (Passengers / Bags) — tighter, more refined */
.clb-stepper {
	display: flex;
	align-items: stretch;
	background: var(--clb-input-bg);
	border: 1.5px solid var(--clb-border);
	border-radius: var(--clb-input-radius);
	overflow: hidden;
	height: 44px;
	box-shadow: var(--clb-input-shadow);
	transition: border-color 0.15s, box-shadow 0.15s;
}
.clb-stepper:focus-within {
	border-color: var(--clb-border-strong);
	box-shadow: var(--clb-focus-ring);
}
.clb-stepper-btn {
	background: transparent;
	border: 0;
	width: 36px;
	flex-shrink: 0;
	font-size: 18px;
	font-weight: 500;
	color: var(--clb-text);
	cursor: pointer;
	font-family: inherit;
	transition: background 0.15s, color 0.15s;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	padding: 0;
}
.clb-stepper-btn:hover:not(:disabled) {
	background: var(--clb-primary);
	color: var(--clb-primary-text);
}
.clb-stepper-btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}
.clb-stepper-btn:first-child {
	border-right: 1px solid var(--clb-border);
}
.clb-stepper-btn:last-child {
	border-left: 1px solid var(--clb-border);
}
.clb-stepper-value {
	flex: 1;
	border: 0;
	background: transparent;
	font-size: 16px;
	font-weight: 600;
	color: var(--clb-text);
	text-align: center;
	font-family: inherit;
	padding: 0;
	-moz-appearance: textfield;
	box-shadow: none;
	min-width: 0;
}
.clb-stepper-value::-webkit-outer-spin-button,
.clb-stepper-value::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.clb-stepper-value:focus {
	outline: 0;
	box-shadow: none;
}

/* PAYMENT METHOD CARDS */
.clb-payment-methods {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 14px 0 22px;
}
.clb-payment-method {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 16px;
	border: 1.5px solid var(--clb-vehicle-border);
	border-radius: var(--clb-input-radius);
	cursor: pointer;
	background: var(--clb-card-bg);
	transition: border-color 0.15s, background 0.15s, box-shadow 0.2s;
	position: relative;
}
.clb-payment-method:hover { border-color: var(--clb-border-strong); }
.clb-payment-method.is-selected {
	border-color: var(--clb-primary);
	background: var(--clb-vehicle-selected-bg);
	box-shadow: 0 0 0 4px var(--clb-accent-soft);
}
.clb-payment-method input[type="radio"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.clb-pm-radio {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid var(--clb-border);
	flex-shrink: 0;
	margin-top: 2px;
	position: relative;
	transition: border-color 0.15s, background 0.15s;
	background: var(--clb-card-bg);
}
.clb-payment-method.is-selected .clb-pm-radio {
	border-color: var(--clb-primary);
}
.clb-payment-method.is-selected .clb-pm-radio::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--clb-primary);
}
.clb-pm-content {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
}
.clb-pm-title {
	font-weight: 700;
	font-size: 15px;
	color: var(--clb-text);
	line-height: 1.3;
}
.clb-pm-desc {
	font-size: 13px;
	color: var(--clb-text-muted);
	line-height: 1.45;
}

/* TRUST STRIP — above the booking card */
.clb-trust-strip {
	max-width: var(--clb-max-width);
	margin: 0 auto 14px;
	padding: 12px 18px;
	background: #0f0f10;
	color: #f4f4f6;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 22px;
	flex-wrap: wrap;
	font-family: var(--clb-font-family);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.4px;
	text-transform: uppercase;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.clb-trust-strip-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #f4f4f6;
}
.clb-tsi-icon {
	color: #c9a368;
	font-size: 14px;
	line-height: 1;
}
.clb-tsi-star {
	font-size: 16px;
	color: #c9a368;
}
@media (max-width: 600px) {
	.clb-trust-strip { gap: 12px; padding: 10px 12px; font-size: 11px; letter-spacing: 0.3px; }
	.clb-trust-strip-item { gap: 4px; }
}
@media (max-width: 380px) {
	.clb-trust-strip { font-size: 10px; gap: 10px; }
}

/* SHELL — main + persistent aside (map + trip rail) */
.clb-shell {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
}
@media (min-width: 920px) {
	/* Wide card to accommodate 2-column layout with aside */
	.clb-booking-wrapper { --clb-max-width: 1120px; }
	.clb-shell {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 28px;
		align-items: start;
	}
	.clb-shell-aside {
		position: sticky;
		top: 16px;
	}
	.clb-shell-aside .clb-map-container {
		margin: 0 0 16px;
	}
	.clb-shell-aside .clb-map {
		height: 320px !important;
		min-height: 320px;
	}
}
@media (max-width: 919px) {
	.clb-shell-aside .clb-map { height: 240px !important; min-height: 240px; }
}

/* Hide aside on step 4-5 (full-width main, centered) */
.clb-booking-wrapper.clb-no-aside .clb-shell {
	grid-template-columns: 1fr;
}
.clb-booking-wrapper.clb-no-aside .clb-shell-aside {
	display: none;
}
.clb-booking-wrapper.clb-no-aside .clb-shell-main {
	max-width: 620px;
	margin: 0 auto;
}

/* Trip rail — compact sidebar card with trip context (shown on steps 2-3) */
.clb-trip-rail {
	background: var(--clb-soft-bg);
	border: 1px solid var(--clb-vehicle-border);
	border-radius: var(--clb-card-radius);
	padding: 14px 16px;
	font-size: 13px;
	color: var(--clb-text-muted);
	line-height: 1.45;
}
.clb-trip-rail-section { margin-bottom: 10px; }
.clb-trip-rail-section:last-child { margin-bottom: 0; }
.clb-trip-rail-label {
	font-size: 10px;
	font-weight: 700;
	color: var(--clb-text-subtle);
	text-transform: uppercase;
	letter-spacing: 0.6px;
	margin-bottom: 2px;
}
.clb-trip-rail-value {
	color: var(--clb-text);
	font-weight: 600;
}
.clb-trip-rail-route {
	display: grid;
	gap: 4px;
}
.clb-trip-rail-route-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 12.5px;
	color: var(--clb-text);
	line-height: 1.4;
}
.clb-trip-rail-route-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	margin-top: 4px;
	flex-shrink: 0;
}
.clb-trip-rail-route-dot.pickup { background: #16a34a; }
.clb-trip-rail-route-dot.dropoff { background: #dc2626; }
.clb-trip-rail-route-line {
	width: 1px;
	background: var(--clb-border);
	margin-left: 4px;
	height: 8px;
}
.clb-trip-rail-divider {
	border: 0;
	border-top: 1px solid var(--clb-vehicle-border);
	margin: 8px 0;
}
.clb-trip-rail-vehicle {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 4px 0;
}
.clb-trip-rail-vehicle img {
	width: 56px;
	height: 38px;
	object-fit: contain;
	background: var(--clb-card-bg);
	border-radius: 6px;
	border: 1px solid var(--clb-vehicle-border);
	padding: 2px;
	flex-shrink: 0;
}
.clb-trip-rail-vehicle-info { flex: 1; min-width: 0; }
.clb-trip-rail-vehicle-name { font-weight: 700; color: var(--clb-text); font-size: 13px; }
.clb-trip-rail-vehicle-price { color: var(--clb-text-muted); font-size: 12px; margin-top: 2px; }
.clb-trip-rail-mini-map {
	width: 100%;
	height: 140px;
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(135deg, #e8eaf0, #d0d4dc);
	border: 1px solid var(--clb-vehicle-border);
	margin-top: 10px;
}

/* Trip rail — add-ons live preview */
.clb-trip-rail-addon {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 12px;
	padding: 2px 0;
	color: var(--clb-text);
	gap: 8px;
}
.clb-trip-rail-addon-price {
	color: var(--clb-accent, #16a34a);
	font-weight: 700;
	font-size: 12px;
	flex-shrink: 0;
}

/* Trip rail — running total block */
.clb-trip-rail-total-block {
	padding: 10px 12px;
	background: var(--clb-card-bg);
	border-radius: 10px;
	border: 1px solid var(--clb-vehicle-border);
	margin-top: 4px;
}
.clb-trip-rail-total-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: 12px;
	padding: 2px 0;
	color: var(--clb-text-muted);
}
.clb-trip-rail-total-row.is-total {
	padding-top: 6px;
	margin-top: 4px;
	border-top: 1px solid var(--clb-vehicle-border);
	font-size: 14px;
	font-weight: 700;
	color: var(--clb-text);
}

/* Special requests textarea — breathing room above */
.clb-step1-form textarea {
	min-height: 56px;
	resize: vertical;
}
.clb-field--notes {
	margin-top: 16px !important;
}

/* MAP CONTAINER */
.clb-map-container {
	margin: 0 0 18px;
	border-radius: var(--clb-input-radius);
	overflow: hidden;
	border: 1px solid var(--clb-vehicle-border);
	background: var(--clb-soft-bg);
	display: block;
}
.clb-map {
	width: 100%;
	height: 260px;
	background: linear-gradient(135deg, #e8eaf0, #d0d4dc);
	position: relative;
	display: block;
}

/* Map placeholder (shown until both addresses entered) */
.clb-map-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 32px 24px;
	text-align: center;
	background: linear-gradient(135deg, #f4f5f7 0%, #e2e6ec 100%);
	color: #5a5a60;
}
.clb-map-placeholder-icon {
	font-size: 36px;
	opacity: 0.55;
	margin-bottom: 4px;
}
.clb-map-placeholder-title {
	margin: 0;
	font-size: 15px;
	font-weight: 700;
	color: #1f1f24;
}
.clb-map-placeholder-text {
	margin: 0;
	font-size: 13px;
	color: #6a6a70;
	line-height: 1.5;
	max-width: 280px;
}
.clb-booking-wrapper[data-clb-theme="dark"] .clb-map-placeholder {
	background: linear-gradient(135deg, #1a1a20 0%, #2a2a32 100%);
	color: #a0a0a8;
}
.clb-booking-wrapper[data-clb-theme="dark"] .clb-map-placeholder-title { color: #f4f4f6; }
.clb-booking-wrapper[data-clb-theme="dark"] .clb-map-placeholder-text { color: #888892; }
.clb-map-info {
	padding: 12px 14px;
	font-size: 13px;
	color: var(--clb-text-muted);
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	background: var(--clb-card-bg);
	border-top: 1px solid var(--clb-vehicle-border);
}
.clb-map-info-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.clb-map-info-item strong {
	color: var(--clb-text);
	font-weight: 700;
}

/* OTP panel */
.clb-otp-panel {
	margin-top: 18px;
	padding: 18px;
	background: var(--clb-soft-bg);
	border: 1px solid var(--clb-vehicle-border);
	border-radius: var(--clb-input-radius);
}
.clb-otp-info { margin-bottom: 14px; }
.clb-otp-info p { margin: 0 0 4px; color: var(--clb-text); font-size: 14px; }
.clb-otp-info-text { color: var(--clb-text-muted); font-size: 13px; }
.clb-otp-input {
	letter-spacing: 0.6em !important;
	text-align: center;
	font-size: 20px !important;
	font-weight: 700 !important;
	font-family: ui-monospace, "SF Mono", Monaco, monospace !important;
	padding-left: 16px !important;
}

/* Sleeker, more conservative date/time alignment */
.clb-field input[data-clb-date],
.clb-field input[data-clb-time] {
	background-position: right 14px center;
	background-size: 16px;
	padding-right: 38px !important;
}

/* FLATPICKR THEME OVERRIDES */
.flatpickr-calendar {
	border-radius: var(--clb-card-radius, 14px) !important;
	box-shadow: 0 12px 40px rgba(0,0,0,0.15), 0 4px 12px rgba(0,0,0,0.06) !important;
	border: 1px solid var(--clb-card-border, rgba(15,15,16,0.08)) !important;
	background: var(--clb-card-bg, #fff) !important;
	font-family: var(--clb-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif) !important;
	padding: 4px !important;
	width: 320px !important;
}
.flatpickr-months {
	padding: 8px 8px 0 8px !important;
}
.flatpickr-months .flatpickr-month,
.flatpickr-current-month,
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
	color: var(--clb-text, #111) !important;
	font-weight: 700 !important;
	background: transparent !important;
}
.flatpickr-current-month {
	font-size: 16px !important;
	padding: 8px 0 !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months {
	font-size: 15px !important;
	padding: 4px 6px !important;
	border-radius: 6px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
	background: var(--clb-soft-bg, #fafafb) !important;
}
.flatpickr-prev-month, .flatpickr-next-month {
	color: var(--clb-text-muted, #5a5a60) !important;
	fill: var(--clb-text-muted, #5a5a60) !important;
	padding: 8px !important;
	border-radius: 8px !important;
	height: 36px !important;
	width: 36px !important;
	top: 8px !important;
	transition: background 0.15s, color 0.15s !important;
}
.flatpickr-prev-month:hover, .flatpickr-next-month:hover {
	background: var(--clb-soft-bg, #fafafb) !important;
	color: var(--clb-text, #111) !important;
}
.flatpickr-prev-month svg, .flatpickr-next-month svg {
	fill: currentColor !important;
}
.flatpickr-weekdays {
	background: transparent !important;
}
.flatpickr-weekday {
	color: var(--clb-text-subtle, #8a8a92) !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}
.flatpickr-days {
	width: 100% !important;
}
.dayContainer {
	width: 100% !important;
	min-width: 100% !important;
	max-width: 100% !important;
}
.flatpickr-day {
	color: var(--clb-text, #111) !important;
	border-radius: 8px !important;
	font-weight: 500 !important;
	margin: 1px !important;
	max-width: calc(14.285% - 2px) !important;
	height: 38px !important;
	line-height: 38px !important;
	border: 0 !important;
}
.flatpickr-day:hover {
	background: var(--clb-soft-bg, #fafafb) !important;
}
.flatpickr-day.today {
	color: var(--clb-primary, #0f0f10) !important;
	border: 2px solid var(--clb-border, #e5e7eb) !important;
	font-weight: 700 !important;
}
.flatpickr-day.today:not(.selected):hover {
	background: var(--clb-soft-bg, #fafafb) !important;
	border-color: var(--clb-border-strong, #0f0f10) !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
	background: var(--clb-primary, #0f0f10) !important;
	color: var(--clb-primary-text, #fff) !important;
	border: 0 !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
	color: var(--clb-text-subtle, #c5c5cc) !important;
	background: transparent !important;
	opacity: 0.4 !important;
}
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay {
	color: var(--clb-text-subtle, #c5c5cc) !important;
}

/* Flatpickr TIME picker — clean segmented look */
.flatpickr-time,
.flatpickr-calendar .flatpickr-time {
	border-top: 1px solid var(--clb-vehicle-border, #ececef) !important;
	padding: 16px 14px !important;
	height: auto !important;
	max-height: none !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 0 !important;
	box-sizing: border-box !important;
	background: var(--clb-card-bg, #fff) !important;
}

.flatpickr-time .numInputWrapper {
	background: var(--clb-soft-bg, #fafafb) !important;
	border: 1.5px solid var(--clb-border, #e5e7eb) !important;
	border-radius: 10px !important;
	overflow: hidden !important;
	width: 64px !important;
	height: 50px !important;
	min-height: 50px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	flex: 0 0 auto !important;
	transition: border-color 0.15s, background 0.15s !important;
	position: relative !important;
}
.flatpickr-time .numInputWrapper:hover {
	border-color: var(--clb-border-strong, #0f0f10) !important;
	background: var(--clb-card-bg, #fff) !important;
}
.flatpickr-time .numInputWrapper:focus-within {
	border-color: var(--clb-border-strong, #0f0f10) !important;
	background: var(--clb-card-bg, #fff) !important;
	box-shadow: 0 0 0 3px rgba(15,15,16,0.06) !important;
}

.flatpickr-time input.numInput {
	color: var(--clb-text, #111) !important;
	font-weight: 700 !important;
	font-size: 19px !important;
	background: transparent !important;
	font-family: inherit !important;
	width: 100% !important;
	height: 100% !important;
	text-align: center !important;
	border: 0 !important;
	padding: 0 !important;
	outline: none !important;
	box-shadow: none !important;
	-moz-appearance: textfield !important;
	caret-color: transparent !important;
}
.flatpickr-time input.numInput::selection,
.flatpickr-time input.numInput::-moz-selection {
	background: transparent !important;
	color: var(--clb-text, #111) !important;
}
.flatpickr-time input.numInput::-webkit-outer-spin-button,
.flatpickr-time input.numInput::-webkit-inner-spin-button {
	-webkit-appearance: none !important;
	margin: 0 !important;
}

.flatpickr-time .flatpickr-time-separator {
	color: var(--clb-text-muted, #5a5a60) !important;
	font-weight: 700 !important;
	font-size: 20px !important;
	padding: 0 10px !important;
	line-height: 1 !important;
	user-select: none !important;
}

.flatpickr-time .flatpickr-am-pm {
	background: var(--clb-soft-bg, #fafafb) !important;
	border: 1.5px solid var(--clb-border, #e5e7eb) !important;
	border-radius: 10px !important;
	color: var(--clb-text, #111) !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	width: 62px !important;
	height: 50px !important;
	margin: 0 0 0 10px !important;
	text-align: center !important;
	line-height: 46px !important;
	padding: 0 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	letter-spacing: 0.5px !important;
	transition: border-color 0.15s, background 0.15s !important;
	flex: 0 0 auto !important;
	outline: none !important;
	-webkit-tap-highlight-color: transparent !important;
}
.flatpickr-time .flatpickr-am-pm:hover {
	border-color: var(--clb-border-strong, #0f0f10) !important;
	background: var(--clb-card-bg, #fff) !important;
}
.flatpickr-time .flatpickr-am-pm:focus {
	border-color: var(--clb-border-strong, #0f0f10) !important;
	box-shadow: 0 0 0 3px rgba(15,15,16,0.06) !important;
	background: var(--clb-card-bg, #fff) !important;
}

/* Hide the up/down spinner arrows — we use scroll/click instead */
.flatpickr-time .arrowUp,
.flatpickr-time .arrowDown,
.flatpickr-time .numInputWrapper span.arrowUp,
.flatpickr-time .numInputWrapper span.arrowDown {
	display: none !important;
}

/* Make the entire hour/minute box clickable to cycle */
.flatpickr-time .numInputWrapper { cursor: pointer; }

/* Dark theme variant */
.clb-booking-wrapper[data-clb-theme="dark"] ~ .flatpickr-calendar,
.flatpickr-calendar[data-clb-theme="dark"] {
	background: #15151a !important;
	border-color: rgba(255,255,255,0.08) !important;
}

/* Hide native browser icons (Webkit calendar/clock buttons) on flatpickr inputs */
[data-clb-date]::-webkit-calendar-picker-indicator,
[data-clb-time]::-webkit-calendar-picker-indicator {
	display: none !important;
}

/* Date/time field decoration — calendar icon on right */
.clb-field input[data-clb-date],
.clb-field input[data-clb-time] {
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 18px;
	padding-right: 42px;
	cursor: pointer;
}
.clb-field input[data-clb-date] {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235a5a60' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><line x1='16' y1='2' x2='16' y2='6'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/></svg>");
}
.clb-field input[data-clb-time] {
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235a5a60' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><polyline points='12 6 12 12 16 14'/></svg>");
}

/* ELEMENTOR EDITOR PLACEHOLDER */
.clb-elementor-placeholder {
	border: 2px dashed #d5d5d5;
	background: #f9f9f9;
	padding: 40px 32px;
	text-align: center;
	color: #888;
	border-radius: 16px;
	font-family: var(--clb-font-family);
}
.clb-elementor-placeholder strong {
	color: #111;
	display: block;
	font-size: 17px;
	margin-bottom: 6px;
	font-weight: 700;
}

/* VEHICLE SHOWCASE WIDGET — aeroporttaxi-style clean white cards */
.clb-fleet-grid {
	display: grid;
	gap: 18px;
	font-family: var(--clb-font-family);
}
.clb-fleet-grid.clb-cols-1 { grid-template-columns: 1fr; }
.clb-fleet-grid.clb-cols-2 { grid-template-columns: repeat(2, 1fr); }
.clb-fleet-grid.clb-cols-3 { grid-template-columns: repeat(3, 1fr); }
.clb-fleet-grid.clb-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .clb-fleet-grid.clb-cols-3, .clb-fleet-grid.clb-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .clb-fleet-grid { grid-template-columns: 1fr !important; } }

.clb-fleet-card {
	background: #ffffff;
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid #ececef;
	transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
	display: flex;
	flex-direction: column;
	text-align: center;
}
.clb-fleet-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.06), 0 16px 36px rgba(0,0,0,0.08);
	border-color: #d5d5db;
}
.clb-fleet-card-image-wrap {
	background: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 18px 6px;
	aspect-ratio: 16 / 10;
	overflow: hidden;
}
.clb-fleet-card-image {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
	background: transparent;
}
.clb-fleet-card-body {
	padding: 12px 16px 22px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.clb-fleet-card-name {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	color: #0f0f10;
	letter-spacing: -0.01em;
}
.clb-fleet-card-meta {
	color: #6a6a70;
	font-size: 12px;
	margin: 0 0 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}
.clb-fleet-card-desc {
	color: #5a5a60;
	font-size: 13px;
	line-height: 1.55;
	margin: 0 0 14px;
	flex: 1;
}
.clb-fleet-card-cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	color: #0f0f10;
	font-weight: 700;
	text-decoration: none;
	font-size: 13px;
	transition: gap 0.2s, color 0.15s;
	margin-top: auto;
	padding-top: 4px;
}
.clb-fleet-card-cta:hover { gap: 10px; color: #c9a368; }

/* Booking-form vehicle picker: SVG-friendly image (contain not cover) */
.clb-vehicle-image {
	object-fit: contain !important;
	background: #fff !important;
	padding: 4px;
}
