/**
 * AcmeRider Booking — visual theme (matches Figma reference).
 *
 * Everything here is scoped under body.acmerider-booking-page so it never
 * leaks onto the rest of the site. Nothing in this file changes booking
 * logic, validation, pricing, or step navigation — it only restyles the
 * existing markup and adds the sidebar step tracker's visuals.
 *
 * COLORS / RADIUS ARE BEST-GUESS FROM THE FIGMA SCREENSHOTS.
 * Everything is a CSS variable below — send over the real hex codes /
 * radius values from Figma's inspector and these are a one-line-per-value swap.
 */

body.acmerider-booking-page {
	--ar-font: 'Urbanist', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

	--ar-bg: #0f0f10;             /* main card background */
	--ar-bg-elevated: #0C0C0C;    /* sidebar, inputs, vehicle cards */
	--ar-bg-inset: #101012;       /* deeper insets (payment box, dropdown search) */

	--ar-border: #262628;
	--ar-border-strong: #38383b;

	--ar-text: #ffffff;
	--ar-text-dim: #9b9ba0;       /* secondary labels/values */
	--ar-text-faint: #888888;     /* upcoming step labels, placeholder-style text */

	--ar-accent: #FB320E;         /* primary CTA / active state */
	--ar-accent-hover: #d5451c;
	--ar-success: #29a745;        /* completed step check */
	--ar-danger: #ff6b6b;

	--ar-radius-sm: 4px;
	--ar-radius-md: 10px;
	--ar-radius-lg: 14px;

	--ar-field-gap: 12px;         /* vertical gap between fields — kept tight to match Figma */

	--ar-container-max: 1280px;
}

/* -------------------------------------------------------------------- */
/* Layout: card + two-column shell (sidebar | content)                  */
/* -------------------------------------------------------------------- */

.acmerider-booking-page #content.acmerider-booking-page-article,
.acmerider-booking-page .acmerider-booking-page-limiter,
.acmerider-booking-page .acmerider-booking-page-col,
.acmerider-booking-page .acmerider-booking-content-box {
	width: 100%;
	max-width: 100%;
}
.acmerider-booking-page .acmerider-booking-page-col {
	display: block;
}
.acmerider-booking-page #sidebar,
.acmerider-booking-page .sidebar {
	display: none;
}

.acmerider-booking-page #customer_details.col2-set {
	width: 100%;
	float: none;
	margin: 0;
}

.acmerider-booking-page .acmerider-booking-container {
    margin: 0 auto;
    color: var(--ar-text);
    font-family: var(--ar-font);
    /*width: 100%;*/
    /*max-width: 1280px;*/
    /*box-sizing: border-box;*/
}

.woocommerce form.acmerider-booking-checkout .form-row .input-text,
.woocommerce form.acmerider-booking-checkout .form-row select {
    font-family: inherit;
    font-weight: 400;
    letter-spacing: normal;
    padding: 10px 8px;
    display: block;
    background-color: #0C0C0C;
    border-radius: 6px;
    color: #888888;
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    line-height: normal;
    height: 48px;
    font-size: 16px;
    border: 0;
}
.acmerides-step-4 .notes textarea {
    min-height: 200px;
    padding: 24px !important;
    border-radius: 4px !important;
}

.acmerider-booking-page .acmerider-steps-shell {
	display: grid;
	grid-template-columns: 33.33% 1fr;
	gap: 24px;
	align-items: start;
}

.acmerider-booking-page .acmerides-checkout-wrapper {
	width: 100%;
	min-width: 0; /* allow grid child to shrink properly */
}
.acmerider-booking-page .acmerides-checkout-step {
	display: none;
	flex-direction: column;
	gap: 0;
}
.acmerider-booking-page .acmerides-checkout-step.active {
	display: flex;
}

/* Per-step heading is replaced by the sidebar tracker. */
.acmerider-booking-page .acmerides-step-title {
	display: none;
}

.acmerider-booking-page .acmerides-step-subtitle {
	margin: 24px 0 16px;
	font-size: 1.05rem;
	font-weight: 700;
	color: var(--ar-text);
}

.acmerider-booking-page .acmerides-step-note {
	margin: 0;
	font-size: 13px;
	color: var(--ar-text-dim);
	line-height: 1.6;
}

/* -------------------------------------------------------------------- */
/* Sidebar step tracker                                                 */
/* -------------------------------------------------------------------- */

.acmerider-booking-page .acmerider-steps-sidebar {
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border);
	border-radius: var(--ar-radius-lg);
	padding: 24px;
	align-self: start;
}

.acmerider-booking-page .acmerider-steps-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.acmerider-booking-page .acmerider-step-item {
	display: flex;
	align-items: center;
	gap: 12px;
	position: relative;
	padding: 21px 0;
	border-bottom: 1px solid #FFFFFF10;
}

.acmerider-booking-page .acmerider-step-marker {
	position: relative;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
}
/*.acmerider-booking-page .acmerider-step-marker-line {*/
/*	position: absolute;*/
/*	top: 20px;*/
/*	left: 50%;*/
/*	transform: translateX(-50%);*/
/*	width: 2px;*/
/*	height: 22px;*/
/*	background: var(--ar-border-strong);*/
/*	z-index: 0;*/
/*}*/
.acmerider-booking-page .acmerider-step-item.is-done .acmerider-step-marker-line {
	background: var(--ar-success);
}
.acmerider-booking-page .acmerider-step-item:last-child .acmerider-step-marker-line {
	display: none;
}

.acmerider-booking-page .acmerider-step-circle {
	position: relative;
	z-index: 1;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--ar-border-strong);
	background: transparent;
	color: var(--ar-text-faint);
	font-size: 10.5px;
	font-weight: 700;
	box-sizing: border-box;
}
.acmerider-booking-page .acmerider-step-check {
	display: none;
	width: 11px;
	height: 11px;
}
.acmerider-booking-page .acmerider-step-item.is-done .acmerider-step-number {
	display: none;
}
.acmerider-booking-page .acmerider-step-item.is-done .acmerider-step-check {
	display: block;
}
.acmerider-booking-page .acmerider-step-item.is-done .acmerider-step-circle {
	border-color: var(--ar-success);
	background: var(--ar-success);
	color: #fff;
}
.acmerider-booking-page .acmerider-step-item.is-active .acmerider-step-circle {
	border-color: #fff;
	background: transparent;
	color: #fff;
}
.acmerider-booking-page .acmerider-step-item.is-active .acmerider-step-circle::before {
	content: '';
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #fff;
}
.acmerider-booking-page .acmerider-step-item.is-active .acmerider-step-number,
.acmerider-booking-page .acmerider-step-item.is-active .acmerider-step-check {
	display: none;
}

.acmerider-booking-page .acmerider-step-label {
	font-size: 16px;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--ar-text-faint);
	line-height: 1.3;
}
.acmerider-booking-page .acmerider-step-item.is-active .acmerider-step-label {
	color: #fff;
}
.acmerider-booking-page .acmerider-step-item.is-done .acmerider-step-label {
	color: var(--ar-text-dim);
}

/* Mobile collapsible toggle (hidden on desktop) */
.acmerider-booking-page .acmerider-steps-toggle {
	display: none;
}

@media (max-width: 880px) {
	.acmerider-booking-page .acmerider-steps-shell {
		display: block;
	}

	.acmerider-booking-page .acmerider-steps-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		background: var(--ar-bg-elevated);
		border: 1px solid var(--ar-border);
		border-radius: var(--ar-radius-md);
		padding: 14px 16px;
		color: #fff;
		cursor: pointer;
		margin-bottom: 16px;
		font-family: inherit;
	}
	.acmerider-booking-page .acmerider-steps-toggle-eyebrow {
		display: block;
		font-size: 10.5px;
		text-transform: uppercase;
		letter-spacing: 0.06em;
		color: var(--ar-text-faint);
		font-weight: 700;
		margin-bottom: 3px;
	}
	.acmerider-booking-page .acmerider-steps-toggle-title {
		font-size: 15px;
		font-weight: 700;
	}
	.acmerider-booking-page .acmerider-steps-toggle-chevron {
		flex: 0 0 auto;
		width: 9px;
		height: 9px;
		border-right: 2px solid var(--ar-text-dim);
		border-bottom: 2px solid var(--ar-text-dim);
		transform: rotate(45deg);
		transition: transform 0.2s ease;
	}
	.acmerider-booking-page .acmerider-steps-toggle[aria-expanded="true"] .acmerider-steps-toggle-chevron {
		transform: rotate(-135deg);
	}

	.acmerider-booking-page .acmerider-steps-sidebar {
		max-height: 0;
		overflow: hidden;
		padding-top: 0;
		padding-bottom: 0;
		border-width: 0;
		margin-bottom: 0;
		transition: max-height 0.25s ease, padding 0.25s ease;
	}
	.acmerider-booking-page .acmerider-steps-sidebar.is-open {
		max-height: 700px;
		padding-top: 20px;
		padding-bottom: 20px;
		border-width: 1px;
		margin-bottom: 20px;
	}
}

/* -------------------------------------------------------------------- */
/* Form fields (shared across all steps, including WC billing fields)   */
/* -------------------------------------------------------------------- */

.acmerider-booking-page .acmerides-step-fields {
	display: flex;
	flex-direction: column;
	gap: var(--ar-field-gap);
}
.acmerider-booking-page .acmerides-step-fields .form-row,
.acmerider-booking-page .acmerides-step-fields p.form-row {
	margin: 8px 0 !important;
	padding: 0;
	width: 100% !important;
	float: none !important;
	clear: both;
}

/*
 * Figma shows placeholder-style text inside the field itself instead of a
 * separate label line — so the label is visually hidden (but stays in the
 * DOM, still linked via for/id, so screen readers and WooCommerce's error
 * highlighting keep working exactly as before).
 *
 * Fields that show a real heading in Figma (choice groups: Car Seat, Do you
 * have bags, Additional Feature) and single-checkbox captions (Meet & Greet,
 * Special Assistance, Return at different location) are the exceptions and
 * stay visible below.
 */
.acmerider-booking-page .acmerides-step-fields .form-row > label {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Choice-group headings (Figma shows these as real visible text). */
.acmerider-booking-page .acmerides-step-fields #car_seat_field > label,
.acmerider-booking-page .acmerides-step-fields #do_you_have_bags_field > label,
.acmerider-booking-page .acmerides-step-fields #car_additional_feature_field > label {
	position: static;
	width: auto;
	height: auto;
	padding: 0;
	margin: 8px 0 4px;
	overflow: visible;
	clip: auto;
	white-space: normal;
	border: 0;
	display: block;
	font-size: 16px;
	font-weight: 400;
	color: var(--ar-text);
}
p label {
    min-width: fit-content;
	font-size: 16px;
	font-weight: 400;
}

/* Single-checkbox captions (the label wraps the checkbox + its text). */
.acmerider-booking-page .acmerides-step-fields #meet_and_greet_field > label,
.acmerider-booking-page .acmerides-step-fields #special_assistance_field > label,
.acmerider-booking-page .acmerides-step-fields #return_different_location_field > label {
	position: static;
	width: auto;
	height: auto;
	padding: 0;
	margin: 0;
	overflow: visible;
	clip: auto;
	white-space: normal;
	border: 0;
	display: inline-flex;
	align-items: center;
	font-weight: 400;
	font-size: 16px;
	color: var(--ar-text);
}

.acmerider-booking-page .acmerides-step-fields .required {
	color: var(--ar-danger);
}
.acmerider-booking-page .acmerides-step-fields .optional {
	color: var(--ar-text-faint);
	font-weight: 400;
}
.acmerider-booking-page .acmerides-step-fields .woocommerce-input-wrapper,
.acmerider-booking-page .acmerides-step-fields input.input-text,
.acmerider-booking-page .acmerides-step-fields select,
.acmerider-booking-page .acmerides-step-fields textarea {
	width: 100%;
	box-sizing: border-box;
}

/* Pickup/Drop-off address are always full width (matches Figma). */
.acmerider-booking-page .acmerides-step-fields #pickup_location_field,
.acmerider-booking-page .acmerides-step-fields #dropoff_location_field {
	grid-column: 1 / -1;
}

.acmerider-booking-page .input-text,
.acmerider-booking-page select,
.acmerider-booking-page textarea {
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border-strong);
	border-radius: var(--ar-radius-sm);
	color: var(--ar-text);
	padding: 12px 16px;
	font-size: 14px;
	font-family: inherit;
	line-height: 1.4;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.acmerider-booking-page .input-text::placeholder,
.acmerider-booking-page textarea::placeholder {
	color: var(--ar-text-faint);
	opacity: 1;
}
.acmerider-booking-page .input-text:focus,
.acmerider-booking-page select:focus,
.acmerider-booking-page textarea:focus {
	outline: none;
	border-color: var(--ar-accent);
	box-shadow: 0 0 0 3px rgba(239, 80, 35, 0.16);
}
.acmerider-booking-page select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1L5 5L9 1' fill='none' stroke='%239b9ba0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 36px;
}
.acmerider-booking-page textarea {
	resize: vertical;
	min-height: 96px;
}

.acmerider-booking-page input[type="radio"],
.acmerider-booking-page input[type="checkbox"] {
	accent-color: var(--ar-accent);
	width: 16px;
	height: 16px;
	margin: 0 8px 0 0;
	vertical-align: middle;
}
.acmerider-booking-page .woocommerce-input-wrapper label {
	display: inline-flex !important;
	align-items: center;
	width: auto !important;
	font-weight: 500;
	font-size: 14px;
	color: var(--ar-text);
	margin: 0 20px 0 0 !important;
}

/* Two-column itinerary grid (step 1) */
@media (min-width: 600px) {
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--ar-field-gap);
		align-items: start;
	}
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields .form-row-wide,
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields .clear,
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields #acmerides-add-stop,
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields #toll-display,
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields .acmerides-step-note,
	.acmerider-booking-page .acmerides-step-fields .custom-itinerary-fields #acmerider-cart-pricing {
		grid-column: 1 / -1;
	}
}

.acmerider-booking-page #acmerides-add-stop {
	width: fit-content;
	background: transparent;
	border: 0;
	color: var(--ar-accent);
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	padding: 4px 0;
}
.acmerider-booking-page #acmerides-add-stop:hover {
	color: var(--ar-accent-hover);
}

/* Two-column billing grid (step 7) — matches the Figma pairing.
   Field classes are set server-side in acmerider-core.php (layout only). */
.acmerider-booking-page .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--ar-field-gap);
}
.acmerider-booking-page .woocommerce-billing-fields__field-wrapper .form-row {
	width: 100% !important;
}
.acmerider-booking-page .woocommerce-billing-fields__field-wrapper .form-row-wide {
	grid-column: 1 / -1;
}
@media (max-width: 640px) {
	.acmerider-booking-page .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------------- */
/* Actions row (Previous / Next / Place Order)                          */
/* -------------------------------------------------------------------- */

.acmerider-booking-page .acmerides-step-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--ar-border);
}
.acmerider-booking-page .acmerides-step-actions button {
	flex: 1;
	min-width: 140px;
}
.acmerider-booking-page .acmerides-step-actions .acmerides-prev {
	flex: 0 0 auto;
	min-width: 150px;
}

.acmerider-booking-page .acmerides-next,
.acmerider-booking-page .acmerides-proceed-billing,
.acmerider-booking-page .acmerides-get-quote {
	margin: 0;
	padding: 17px 28px;
	background: var(--ar-accent);
	color: #fff;
	border: none;
	border-radius: var(--ar-radius-sm);
	cursor: pointer;
	font-size: 18px;
	font-weight: 400;
	font-family: inherit;
	line-height: 1.2;
	text-align: center;
	transition: background 0.2s ease;
}
.acmerider-booking-page .acmerides-next:hover,
.acmerider-booking-page .acmerides-proceed-billing:hover,
.acmerider-booking-page .acmerides-get-quote:hover {
	background: var(--ar-accent-hover);
}
.acmerider-booking-page .acmerides-next:disabled,
.acmerider-booking-page .acmerides-proceed-billing:disabled,
.acmerider-booking-page .acmerides-get-quote:disabled {
	opacity: 0.6;
	cursor: default;
}

.acmerider-booking-page .acmerides-prev {
	margin: 0;
	padding: 17px 24px;
	background: transparent;
	color: var(--ar-text);
	border: 1px solid var(--ar-border-strong);
	border-radius: var(--ar-radius-sm);
	cursor: pointer;
	font-size: 18px;
	font-weight: 400;
	font-family: inherit;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.acmerider-booking-page .acmerides-prev:hover {
	border-color: var(--ar-text-dim);
	background: var(--ar-bg-elevated);
}

/* -------------------------------------------------------------------- */
/* Vehicle selection (step 5)                                           */
/* -------------------------------------------------------------------- */

.acmerider-booking-page .acmerides-step-5 .acmerider-vehicle-selected {
	outline: 2px solid var(--ar-accent);
	outline-offset: 2px;
}
.acmerider-booking-page .acmerides-step-5 .add_to_cart_button.acmerider-vehicle-selected,
.acmerider-booking-page .acmerides-step-5 .button.acmerider-vehicle-selected {
	background: var(--ar-accent) !important;
	color: #fff !important;
	border-color: var(--ar-accent) !important;
}
.acmerider-booking-page .acmerider-vehicle-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--ar-field-gap);
}
.acmerider-booking-page .acmerider-vehicle-card {
	display: flex;
	flex-direction: column;
	padding: 16px;
	border: 1px solid var(--ar-border);
	border-radius: var(--ar-radius-md);
	background: var(--ar-bg-elevated);
	text-align: center;
}
.acmerider-booking-page .acmerider-vehicle-image img {
	width: 100%;
	height: auto;
	border-radius: var(--ar-radius-sm);
}
.acmerider-booking-page .acmerider-vehicle-name {
	margin: 14px 0 8px;
	font-size: 15px;
	font-weight: 700;
	color: #fff;
}
.acmerider-booking-page .acmerider-vehicle-description {
	flex: 1;
	margin-bottom: 16px;
	color: var(--ar-text-dim);
	font-size: 12.5px;
	line-height: 1.55;
}
.acmerider-booking-page .acmerides-step-5 .price,
.acmerider-booking-page .acmerides-step-5 .woocommerce-Price-amount,
.acmerider-booking-page .acmerides-step-5 .amount {
	display: none !important;
}
.acmerider-booking-page .acmerider-select-vehicle {
	width: 100%;
	padding: 11px 16px;
	background: transparent;
	border: 1px solid var(--ar-border-strong);
	border-radius: var(--ar-radius-sm);
	color: #fff;
	font-weight: 700;
	font-size: 13px;
	font-family: inherit;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.acmerider-booking-page .acmerider-select-vehicle:hover {
	border-color: var(--ar-accent);
}

/* -------------------------------------------------------------------- */
/* Review summary (step 6)                                              */
/* -------------------------------------------------------------------- */

.acmerider-booking-page .acmerides-step-fields--summary {
	gap: 0;
}
.acmerider-booking-page .acmerides-step-fields--summary .acme-summary-wrapper {
	margin: 0;
}

.acmerider-booking-page .acme-summary-wrapper {
	font-family: var(--ar-font);
	color: #fff;
	border: 1px solid var(--ar-border);
	border-radius: var(--ar-radius-md);
	overflow: hidden;
	background: var(--ar-bg-elevated);
}
.acmerider-booking-page .acme-black-header {
	background: #000;
	color: #fff;
	text-align: center;
	padding: 16px;
	font-weight: 700;
	font-size: 18px;
}
.acmerider-booking-page .acme-grey-bar {
	background: rgba(255, 255, 255, 0.06);
	color: var(--ar-text-dim);
	padding: 10px 20px;
	font-weight: 700;
	font-size: 12.5px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 0;
}
.acmerider-booking-page .acme-flex-grid {
	display: flex;
	flex-wrap: wrap;
	padding: 16px 0;
}
.acmerider-booking-page .acme-flex-col {
	flex: 1;
	min-width: 260px;
}
.acmerider-booking-page .acme-item {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
	font-size: 13.5px;
	padding: 0 20px;
}
.acmerider-booking-page .acme-label {
	font-weight: 600;
	color: var(--ar-text-dim);
}
.acmerider-booking-page .acme-pricing-section {
	width: 100%;
	max-width: 340px;
	margin-left: auto;
	padding: 16px 20px 20px;
	text-align: right;
}
.acmerider-booking-page .acme-price-line {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 13px;
	color: var(--ar-text-dim);
	margin-bottom: 6px;
}
.acmerider-booking-page .acme-total-line {
	border-top: 1px solid var(--ar-border-strong);
	padding-top: 10px;
	margin-top: 6px;
	font-weight: 700;
	color: #fff;
	font-size: 16px;
}
.acmerider-booking-page .acme-car-table {
	width: 100%;
	border-collapse: collapse;
}
.acmerider-booking-page .acme-car-table th,
.acmerider-booking-page .acme-car-table td {
	padding: 8px 4px;
	border-bottom: 1px solid var(--ar-border);
	color: #fff;
	text-align: left;
	font-size: 13px;
}

.acmerider-booking-page .acmerider-summary-billing-section {
	display: none;
}
.acmerider-booking-page.acmerider-show-billing-summary .acmerider-summary-billing-section {
	display: block;
}

/* -------------------------------------------------------------------- */
/* Billing & payment (step 7)                                           */
/* -------------------------------------------------------------------- */

.acmerider-booking-page #order_review_heading {
	color: #fff;
}

.acmerider-booking-page .woocommerce-checkout-review-order-table,
.acmerider-booking-page table.shop_table {
	width: 100%;
	border-collapse: collapse;
	color: #fff;
	font-size: 13.5px;
	margin-bottom: 20px;
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border);
	border-radius: var(--ar-radius-md);
	overflow: hidden;
}
.acmerider-booking-page table.shop_table th,
.acmerider-booking-page table.shop_table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--ar-border);
	text-align: left;
}
.acmerider-booking-page table.shop_table thead th {
	color: var(--ar-text-dim);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.acmerider-booking-page table.shop_table tfoot th,
.acmerider-booking-page table.shop_table tfoot td {
	font-weight: 700;
	border-bottom: none;
}
.acmerider-booking-page table.shop_table .order-total .amount {
	color: #fff;
	font-weight: 700;
	font-size: 16px;
}

.acmerider-booking-page ul.wc_payment_methods {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	border: 1px solid var(--ar-border);
	border-radius: var(--ar-radius-md);
	overflow: hidden;
	background: var(--ar-bg-elevated);
}
.acmerider-booking-page ul.wc_payment_methods li.wc_payment_method {
	border-bottom: 1px solid var(--ar-border);
	padding: 16px 18px;
}
.acmerider-booking-page ul.wc_payment_methods li.wc_payment_method:last-child {
	border-bottom: none;
}
.acmerider-booking-page ul.wc_payment_methods label {
	display: inline-flex;
	align-items: center;
	color: #fff;
	font-weight: 600;
	font-size: 14px;
	margin: 0;
	cursor: pointer;
}
.acmerider-booking-page ul.wc_payment_methods img {
	margin-left: 8px;
	vertical-align: middle;
}
.acmerider-booking-page ul.wc_payment_methods .payment_box {
	margin-top: 12px;
	padding: 12px 14px;
	background: var(--ar-bg-inset);
	border-radius: var(--ar-radius-sm);
	color: var(--ar-text-dim);
	font-size: 12.5px;
	line-height: 1.6;
}
.acmerider-booking-page ul.wc_payment_methods .payment_box p {
	margin: 0;
}

.acmerider-booking-page .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
	color: var(--ar-text-dim);
	font-size: 12.5px;
}
.acmerider-booking-page .woocommerce-terms-and-conditions-wrapper a {
	color: var(--ar-text);
}

.acmerider-booking-page #place_order {
	width: 100%;
	padding: 16px 24px;
	background: var(--ar-accent);
	color: #fff;
	border: none;
	border-radius: var(--ar-radius-sm);
	cursor: pointer;
	font-size: 15px;
	font-weight: 700;
	font-family: inherit;
	transition: background 0.2s ease;
}
.acmerider-booking-page #place_order:hover {
	background: var(--ar-accent-hover);
}

/* select2 (WooCommerce country / state dropdowns) */
.acmerider-booking-page .select2-container .select2-selection--single {
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border-strong);
	border-radius: var(--ar-radius-sm);
	height: 46px;
	display: flex;
	align-items: center;
	padding: 0 14px;
}
.acmerider-booking-page .select2-container .select2-selection__rendered {
	color: #fff;
	padding: 0;
	line-height: normal;
}
.acmerider-booking-page .select2-container .select2-selection__placeholder {
	color: var(--ar-text-faint);
}
.acmerider-booking-page .select2-container .select2-selection__arrow {
	height: 44px;
}
.acmerider-booking-page .select2-dropdown {
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border-strong);
}
.acmerider-booking-page .select2-search--dropdown .select2-search__field {
	background: var(--ar-bg-inset);
	border: 1px solid var(--ar-border-strong);
	color: #fff;
	border-radius: var(--ar-radius-sm);
}
.acmerider-booking-page .select2-results__option {
	color: #fff;
}
.acmerider-booking-page .select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--ar-accent);
	color: #fff;
}
.acmerider-booking-page .select2-container--default .select2-results__option[aria-selected="true"] {
	background: var(--ar-bg-inset);
}

/* -------------------------------------------------------------------- */
/* Notices / validation                                                 */
/* -------------------------------------------------------------------- */

.acmerider-booking-page .woocommerce-error,
.acmerider-booking-page .woocommerce-message,
.acmerider-booking-page .woocommerce-info {
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border-strong);
	border-left: 4px solid var(--ar-accent);
	color: #fff;
	border-radius: var(--ar-radius-sm);
	padding: 14px 18px;
	font-size: 13.5px;
	list-style: none;
	margin: 0 0 20px;
}
.acmerider-booking-page .woocommerce-error li {
	color: var(--ar-danger);
}

.acmerider-booking-page .acme-error-text {
	display: block;
	margin-top: 6px;
	color: var(--ar-danger);
	font-size: 12px;
}
.acmerider-booking-page .woocommerce-invalid .input-text {
	border-color: var(--ar-danger) !important;
}

/* jQuery UI datepicker popup */
.acmerider-booking-page .ui-datepicker {
	background: var(--ar-bg-elevated);
	border: 1px solid var(--ar-border-strong);
	border-radius: var(--ar-radius-md);
	padding: 12px;
	font-family: var(--ar-font);
	color: #fff;
	z-index: 100000 !important;
	box-shadow: 0 20px 48px rgba(0, 0, 0, 0.45);
}
.acmerider-booking-page .ui-datepicker .ui-datepicker-header {
	background: transparent;
	border: none;
	color: #fff;
}
.acmerider-booking-page .ui-datepicker .ui-datepicker-title {
	color: #fff;
	font-weight: 700;
}
.acmerider-booking-page .ui-datepicker table.ui-datepicker-calendar {
	width: 100%;
	margin-top: 8px;
}
.acmerider-booking-page .ui-datepicker td a,
.acmerider-booking-page .ui-datepicker td span {
	color: #ddd;
	text-align: center;
	border-radius: 4px;
	padding: 6px;
}
.acmerider-booking-page .ui-datepicker .ui-state-default {
	background: transparent;
	border: none;
}
.acmerider-booking-page .ui-datepicker .ui-state-active,
.acmerider-booking-page .ui-datepicker .ui-state-hover {
	background: var(--ar-accent) !important;
	color: #fff !important;
}
.acmerider-booking-page .ui-datepicker .ui-datepicker-prev,
.acmerider-booking-page .ui-datepicker .ui-datepicker-next {
	cursor: pointer;
	color: #fff;
}
.acmerider-booking-page .ui-datepicker .ui-datepicker-prev.ui-state-disabled,
.acmerider-booking-page .ui-datepicker .ui-datepicker-next.ui-state-disabled {
	opacity: 0.35;
	cursor: default;
}
