/******************************************************************************/
/* Car Park Booking System — Modern UI skin (CSS-only override)               */
/* Safe to load AFTER style/public.css. Overrides presentation only.          */
/* Does NOT rename/remove any cpbs-* hook class or cpbs_* field name.         */
/* Palette is tweakable via the variables below.                              */
/******************************************************************************/

.cpbs-main
{
	--cpbs-brand-red:#c01f2e;
	--cpbs-brand-orange:#e0532f;
	--cpbs-brand-blue:#3f7fd0;
	--cpbs-cta:linear-gradient(90deg,#b91c2b 0%,#8a4a6d 52%,#3f7fd0 100%);
	--cpbs-accent:linear-gradient(135deg,#c01f2e,#e0532f);
	--cpbs-topbar:linear-gradient(90deg,#c01f2e 0%,#e85d2a 65%,#f0a73f 100%);
	--cpbs-ink:#1f2937;
	--cpbs-ink-soft:#5a6676;
	--cpbs-field-bg:#f6f8fb;
	--cpbs-line:#e4e9f1;
	--cpbs-radius:14px;
}

/******************************************************************************/
/* Card wrapper                                                               */
/******************************************************************************/

.cpbs-main:not(.cpbs-booking-form-widget-mode)
{
	position:relative;
	/* Wider so Step 2 parking cards + the summary sidebar have room.
	   Needs the Elementor page/section set to full width to take effect. */
	max-width:1100px;
	margin-left:auto;
	margin-right:auto;
	padding:34px 36px 30px 36px;
	background:#ffffff;
	border-radius:22px;
	box-shadow:0 30px 60px -22px rgba(20,30,60,.35);
}

	/* Keep Step 1 compact + centered inside the now-wider card (mockup look).
	   Steps 2–5 use the full width for their cards/columns. */
	.cpbs-main .cpbs-main-content .cpbs-main-content-step-1
	{
		max-width:780px;
		margin-left:auto;
		margin-right:auto;
	}

	/* Gradient accent bar across the top of the card */
	.cpbs-main:not(.cpbs-booking-form-widget-mode)::before
	{
		content:"";
		position:absolute;
		top:0; left:0; right:0;
		height:8px;
		border-radius:22px 22px 0 0;
		background:var(--cpbs-topbar);
	}

	/* Pull the step bar a touch below the accent bar */
	.cpbs-main .cpbs-main-content
	{
		margin-top:34px;
	}

/******************************************************************************/
/* Form header (injected by cpbs-modern-ui.js — title + subtitle)            */
/******************************************************************************/

.cpbs-main .cpbs-modern-head
{
	margin:0 0 22px 0;
}

	.cpbs-main .cpbs-modern-head-title
	{
		margin:0 0 6px 0;
		font-size:34px;
		line-height:1.08;
		font-weight:800;
		letter-spacing:-.02em;
		color:#10131a;
	}

	.cpbs-main .cpbs-modern-head-sub
	{
		margin:0;
		font-size:17px;
		font-weight:500;
		color:#6a7686;
	}

/* tighten the gap above the step tabs now that the header sits above them */
.cpbs-main .cpbs-modern-head+.cpbs-main-navigation-default
{
	margin-top:0;
}

/******************************************************************************/
/* Step navigation (turn the numbered circles into modern pills)             */
/******************************************************************************/

.cpbs-main .cpbs-main-navigation-default>ul
{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}

	.cpbs-main .cpbs-main-navigation-default>ul>li
	{
		width:auto;
		float:none;
		flex:1 1 0;
		text-align:center;
	}

	/* hide the connector line between the old circles */
	.cpbs-main .cpbs-main-navigation-default>ul>li>div
	{
		display:none;
	}

	.cpbs-main .cpbs-main-navigation-default>ul>li>a
	{
		display:flex;
		align-items:center;
		justify-content:center;
		gap:7px;
		padding:12px 14px;
		border:1.5px solid #f1d7da;
		border-radius:14px;
		background:#ffffff;
		white-space:nowrap;
		transition:all 150ms ease;
	}

		/* number + label become inline, no circle */
		.cpbs-main .cpbs-main-navigation-default>ul>li>a>span
		{
			display:inline-block;
			margin:0;
		}

		/* the old circle: strip its border AND its branded background
		   (that leftover background was the stray "|" on the active tab) */
		.cpbs-main .cpbs-main-navigation-default>ul>li>a>span:first-child
		{
			display:inline-flex;
			align-items:center;
			justify-content:center;
			width:auto;
			height:auto;
			border:none !important;
			border-radius:0 !important;
			background:transparent !important;
		}

			/* step number */
			.cpbs-main .cpbs-main-navigation-default>ul>li>a>span:first-child>span:first-child
			{
				display:inline-block;
				font-size:14px;
				font-weight:700;
				line-height:1;
			}

			/* tick: hidden by default, shown ONLY on completed steps */
			.cpbs-main .cpbs-main-navigation-default>ul>li>a>span:first-child>span.cpbs-meta-icon-tick
			{
				display:none !important;
				font-size:13px;
				line-height:1;
			}

			.cpbs-main .cpbs-main-navigation-default>ul>li.cpbs-state-completed>a>span:first-child>span.cpbs-meta-icon-tick
			{
				display:inline-block !important;
			}

			/* hide the number on completed steps (the tick replaces it) */
			.cpbs-main .cpbs-main-navigation-default>ul>li.cpbs-state-completed>a>span:first-child>span:first-child
			{
				display:none !important;
			}

		.cpbs-main .cpbs-main-navigation-default>ul>li>a>span:first-child+span
		{
			margin-top:0;
			font-size:13px;
			font-weight:600;
			line-height:1;
		}

	/* default (inactive) colors */
	.cpbs-main .cpbs-main-navigation-default>ul>li>a,
	.cpbs-main .cpbs-main-navigation-default>ul>li>a span
	{
		color:#3a4453 !important;
	}

	.cpbs-main .cpbs-main-navigation-default>ul>li>a:hover
	{
		border-color:#e6b9bf;
		background:#fff7f8;
	}

	/* active step — solid brand red (matches the mockup) */
	.cpbs-main .cpbs-main-navigation-default>ul>li.cpbs-state-selected>a
	{
		background:var(--cpbs-brand-red) !important;
		border-color:var(--cpbs-brand-red) !important;
		box-shadow:0 10px 20px -10px rgba(192,31,46,.55);
	}

		.cpbs-main .cpbs-main-navigation-default>ul>li.cpbs-state-selected>a span
		{
			color:#ffffff !important;
		}

	/* completed step */
	.cpbs-main .cpbs-main-navigation-default>ul>li.cpbs-state-completed>a
	{
		background:#ffffff;
		border-color:var(--cpbs-line);
	}

/******************************************************************************/
/* Step 1 — form panel + fields                                              */
/******************************************************************************/

/* drop the panel's own border so we don't double-box inside the card */
.cpbs-main.cpbs-google-map-enable-0 .cpbs-main-content .cpbs-main-content-step-1 .cpbs-form-panel
{
	border:none !important;
}

/* hide the big section headers ("Entry Date and Time", etc.) — the field    */
/* labels already name each input, matching the target design.              */
.cpbs-main .cpbs-main-content-step-1 .cpbs-header.cpbs-header-style-4
{
	display:none;
}

/* space between the date/time pair inside each group */
.cpbs-main .cpbs-main-content .cpbs-main-content-step-1 .cpbs-form-panel>div:first-child>div>div:first-child>div>div
{
	gap:16px;
}

/******************************************************************************/
/* Input fields (all steps) — turn the connected table into separate cards   */
/******************************************************************************/

.cpbs-main .cpbs-form-field
{
	margin-top:0;
	padding:12px 14px;
	background:var(--cpbs-field-bg);
	border:1px solid var(--cpbs-line);
	border-radius:var(--cpbs-radius);
}

	/* re-enable the left border the original collapsed away */
	.cpbs-main .cpbs-form-field.cpbs-form-field-width-50+.cpbs-form-field-width-50,
	.cpbs-main .cpbs-form-field.cpbs-form-field-width-33+.cpbs-form-field-width-33,
	.cpbs-main .cpbs-main-content .cpbs-main-content-step-1 .cpbs-form-panel>div:first-child>div>div>div>div>.cpbs-form-field+.cpbs-form-field
	{
		border-left-width:1px;
	}

	.cpbs-main .cpbs-form-field>label,
	.cpbs-main .cpbs-form-field>.cpbs-form-field-label
	{
		margin-left:0;
		margin-bottom:5px;
		font-size:12px;
		font-weight:700;
		letter-spacing:.02em;
		color:var(--cpbs-ink-soft);
	}

	.cpbs-main .cpbs-form-field>input,
	.cpbs-main .cpbs-form-field>select,
	.cpbs-main .cpbs-form-field>textarea,
	.cpbs-main .cpbs-form-field .ui-selectmenu-button
	{
		padding:0;
		font-size:16px;
		font-weight:600;
		line-height:24px;
		color:var(--cpbs-ink);
		background:transparent;
	}

	/* focus ring on the card */
	.cpbs-main .cpbs-form-field:focus-within
	{
		border-color:var(--cpbs-brand-blue);
		box-shadow:0 0 0 3px rgba(63,127,208,.15);
	}

	/* calendar / clock affordance icons on the date & time inputs */
	.cpbs-main .cpbs-form-field>input.cpbs-datepicker,
	.cpbs-main .cpbs-form-field>input.cpbs-timepicker
	{
		padding-right:24px;
		background-repeat:no-repeat;
		background-position:right center;
		background-size:18px 18px;
	}

	.cpbs-main .cpbs-form-field>input.cpbs-datepicker
	{
		background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='18'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%239aa6b5'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='4'%20width='18'%20height='18'%20rx='2'/%3E%3Cline%20x1='16'%20y1='2'%20x2='16'%20y2='6'/%3E%3Cline%20x1='8'%20y1='2'%20x2='8'%20y2='6'/%3E%3Cline%20x1='3'%20y1='10'%20x2='21'%20y2='10'/%3E%3C/svg%3E");
	}

	.cpbs-main .cpbs-form-field>input.cpbs-timepicker
	{
		background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='18'%20height='18'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%239aa6b5'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Ccircle%20cx='12'%20cy='12'%20r='9'/%3E%3Cpolyline%20points='12%207%2012%2012%2015%2014'/%3E%3C/svg%3E");
	}

/* ====== Step 1 ONLY: labels OUTSIDE, the input itself is the box ========= */
/* (matches the target mockup — "Entry Date" label above a rounded field)    */
.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field
{
	margin:0 !important;
	padding:0 !important;
	background:transparent !important;
	border:none !important;
}

	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field:focus-within
	{
		border-color:transparent !important;
		box-shadow:none !important;
	}

	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>label,
	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>.cpbs-form-field-label
	{
		display:block;
		margin:0 0 8px 0 !important;
		font-size:15px !important;
		font-weight:700 !important;
		letter-spacing:0 !important;
		text-transform:capitalize !important;
		color:#3a4453 !important;
	}

	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>input,
	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>select,
	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field .ui-selectmenu-button
	{
		width:100% !important;
		padding:15px 18px !important;
		background:#f7f7fb !important;
		border:1px solid #efe6ea !important;
		border-radius:12px !important;
		font-size:16px !important;
		font-weight:700 !important;
		line-height:22px !important;
		color:#1f2937 !important;
	}

		.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>input::placeholder
		{
			color:#9aa4b2;
			font-weight:700;
		}

		.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>input:focus,
		.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>select:focus
		{
			outline:none;
			border-color:var(--cpbs-brand-blue) !important;
			box-shadow:0 0 0 3px rgba(63,127,208,.14) !important;
		}

	/* re-position the calendar / clock icon inside the padded box */
	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>input.cpbs-datepicker,
	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-field>input.cpbs-timepicker
	{
		padding-right:46px !important;
		background-position:right 16px center;
		background-size:20px 20px;
	}

/******************************************************************************/
/* Buttons                                                                    */
/******************************************************************************/

/* Step 1 hero submit ("Get My Quote" / Book Now) — full-width gradient pill  */
.cpbs-main .cpbs-main-content-step-1 .cpbs-form-panel input[type="submit"].cpbs-button-style-1
{
	display:block;
	width:100%;
	margin-top:6px;
	padding:16px 26px;
	border:none !important;
	border-radius:999px;
	font-size:16px;
	font-weight:700;
	color:#ffffff !important;
	background:var(--cpbs-cta) !important;
	box-shadow:0 14px 28px -12px rgba(63,79,120,.6);
	transition:filter 150ms ease, transform 150ms ease;
}

	.cpbs-main .cpbs-main-content-step-1 .cpbs-form-panel input[type="submit"].cpbs-button-style-1:hover
	{
		filter:brightness(1.05);
		transform:translateY(-1px);
	}

/* Step prev / next navigation buttons */
.cpbs-main .cpbs-button.cpbs-button-step-next
{
	border:none !important;
	border-radius:999px;
	color:#ffffff !important;
	background:var(--cpbs-accent) !important;
	box-shadow:0 10px 22px -12px rgba(192,31,46,.7);
}

.cpbs-main .cpbs-button.cpbs-button-step-prev
{
	border:2px solid var(--cpbs-line) !important;
	border-radius:999px;
	color:#41506a !important;
	background:#ffffff !important;
}

	.cpbs-main .cpbs-button.cpbs-button-step-next:hover
	{
		filter:brightness(1.05);
	}

	.cpbs-main .cpbs-button.cpbs-button-step-prev:hover
	{
		border-color:#cdd6e3 !important;
		background:#f4f6fa !important;
	}

/******************************************************************************/
/* Coupon code field spacing                                                  */
/******************************************************************************/

.cpbs-main .cpbs-main-content-step-1 .cpbs-form-panel>div:first-child>div>div+div
{
	padding-top:4px;
}

/******************************************************************************/
/* Mobile responsiveness                                                      */
/******************************************************************************/

@media (max-width:600px)
{
	.cpbs-main:not(.cpbs-booking-form-widget-mode)
	{
		padding:22px 16px 22px 16px;
		border-radius:18px;
	}

	.cpbs-main .cpbs-main-content
	{
		margin-top:26px;
	}

	/* let step pills wrap two-per-row */
	.cpbs-main .cpbs-main-navigation-default>ul>li
	{
		flex:1 1 calc(50% - 10px);
	}

	.cpbs-main .cpbs-main-navigation-default>ul>li>a
	{
		padding:10px 8px;
	}

	/* stack the date / time pair vertically */
	.cpbs-main .cpbs-main-content .cpbs-main-content-step-1 .cpbs-form-panel>div:first-child>div>div:first-child>div>div
	{
		flex-direction:column;
	}

	/* full-width prev / next buttons */
	.cpbs-main .cpbs-main-content-navigation-button .cpbs-button.cpbs-button-step-prev,
	.cpbs-main .cpbs-main-content-navigation-button .cpbs-button.cpbs-button-step-next
	{
		display:block;
		width:100%;
		text-align:center;
	}

	.cpbs-main .cpbs-main-content-navigation-button .cpbs-button.cpbs-button-step-next
	{
		margin-top:12px;
	}
}

/******************************************************************************/
/* STEP 2 — Parking Space Selection (premium booking cards)                   */
/* Styles the AJAX-injected .cpbs-place cards from createPlace(). No markup,   */
/* class, ID, or JS hook is changed — presentation only.                      */
/******************************************************************************/

.cpbs-main
{
	--cpbs-ok:#1f9d57;          /* availability green */
	--cpbs-ok-bg:#e7f6ee;
	/* softer, layered shadow reads more premium than one hard drop shadow */
	--cpbs-card-shadow:0 1px 2px rgba(17,24,39,.04), 0 12px 28px -14px rgba(17,24,39,.18);
}

/* Section heading + result count on ONE line */
.cpbs-main .cpbs-place-list>.cpbs-header
{
	display:inline-block;
	vertical-align:baseline;
	margin:0 12px 0 0;
	font-size:20px;
	font-weight:700;
	color:var(--cpbs-ink);
}

	.cpbs-main .cpbs-place-list>.cpbs-header+div
	{
		display:inline-block;
		vertical-align:baseline;
		font-size:14px;
		color:var(--cpbs-ink-soft);
	}

/* Two cards per row (grid). Stacks to one column on narrow screens. */
.cpbs-main .cpbs-place-list>ul
{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:20px;
	margin-top:20px;
}

	.cpbs-main .cpbs-place-list>ul>li
	{
		margin-top:0;          /* spacing handled by the grid gap */
	}

/* Cards adapt to the WIDTH OF THEIR OWN COLUMN (not the screen), so they fit
   neatly whether the booking form sits in a narrow or a wide container. */
.cpbs-main .cpbs-place-list
{
	container-type:inline-size;
	container-name:cpbscards;
}

/* ---- Card shell — vertical by default: image on top, content below ----- */
/*      (best fit for the narrow column; goes horizontal when there's room)  */
.cpbs-main .cpbs-place
{
	position:relative;
	flex-direction:column;
	margin-top:0;
	height:100%;          /* equal-height cards across a grid row */
	min-height:0;
	background:#ffffff;
	border:1px solid #edf0f5;
	border-radius:20px;
	overflow:hidden;
	box-shadow:var(--cpbs-card-shadow);
	transition:transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}

	.cpbs-main .cpbs-place:hover
	{
		transform:translateY(-4px);
		border-color:#e2e7ef;
		box-shadow:0 1px 2px rgba(17,24,39,.05), 0 24px 48px -20px rgba(17,24,39,.30);
	}

/* Photo = full-width banner on top (hidden by default in the plugin). */
.cpbs-main .cpbs-place .cpbs-place-image
{
	opacity:1;
	height:100%;
	overflow:hidden;
}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-left
	{
		position:relative;
		width:100%;
		height:160px;
		overflow:hidden;
		background:linear-gradient(135deg,#eef1f6,#e2e8f2);
	}

	/* subtle gradient at the bottom of the photo for depth */
	.cpbs-main .cpbs-place>.cpbs-place-layout-column-left::after
	{
		content:"";
		position:absolute;
		left:0; right:0; bottom:0;
		height:46px;
		pointer-events:none;
		background:linear-gradient(to top, rgba(17,24,39,.18), rgba(17,24,39,0));
	}

	.cpbs-main .cpbs-place .cpbs-place-image img
	{
		width:100%;
		height:100%;
		object-fit:cover;
		display:block;
		transition:transform 500ms ease;
	}

	/* gentle zoom on hover — a premium, tactile touch */
	.cpbs-main .cpbs-place:hover .cpbs-place-image img
	{
		transform:scale(1.06);
	}

/* ---- Content column ---------------------------------------------------- */
.cpbs-main .cpbs-place>.cpbs-place-layout-column-right
{
	display:flex;
	flex-direction:column;
	padding:20px 22px 22px 22px;
	gap:13px;
	justify-content:flex-start;
}

/* Reorder the three rows so they never overlap and the button sits at the
   bottom of every card:  title/price  →  features/description  →  button.    */
	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top
	{
		order:1;
	}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom
	{
		order:2;
	}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-middle
	{
		order:3;
		margin-top:auto;     /* pin the Select button to the card bottom */
	}

/* Top line: title on the left, price on the right (compact product-card row) */
.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top
{
	flex-direction:row;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top>div:first-child
	{
		flex:1 1 auto;
		padding-right:0;
	}

.cpbs-main .cpbs-place .cpbs-place-name
{
	font-size:18px;
	line-height:24px;
	margin-bottom:3px;
	font-weight:700;
	letter-spacing:-.01em;
	color:var(--cpbs-ink);
}

.cpbs-main .cpbs-place .cpbs-place-location-name
{
	font-size:12.5px;
	letter-spacing:.01em;
	color:var(--cpbs-ink-soft);
}

	/* "More details" as a refined link, not a plain underline */
	.cpbs-main .cpbs-place .cpbs-place-location-name a,
	.cpbs-main .cpbs-place .cpbs-place-location-name a:hover
	{
		color:var(--cpbs-brand-red) !important;
		font-weight:600;
		text-decoration:none;
		border-bottom:1px solid rgba(192,31,46,.35);
	}

		.cpbs-main .cpbs-place .cpbs-place-location-name a:hover
		{
			border-bottom-color:var(--cpbs-brand-red);
		}

/* Price = the visual anchor, aligned to the right of the title */
.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top>div:first-child+div
{
	flex:0 0 auto;
	text-align:right;
	white-space:nowrap;
}

.cpbs-main .cpbs-place .cpbs-place-price
{
	font-size:25px;
	line-height:1.1;
	font-weight:800;
	letter-spacing:-.02em;
	color:var(--cpbs-brand-red);
}

/* ---- Spec chips (dimensions / availability) ---------------------------- */
.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-middle
{
	align-items:center;
	flex-wrap:wrap;
	gap:10px;
	margin-top:auto;       /* keep the button pinned to the card bottom */
}

	.cpbs-main .cpbs-place .cpbs-place-attribute-1,
	.cpbs-main .cpbs-place .cpbs-place-attribute-2
	{
		flex-grow:0;
		background:var(--cpbs-field-bg);
		border:1px solid var(--cpbs-line);
		border-radius:10px;
		padding:8px 12px;
	}

	.cpbs-main .cpbs-place .cpbs-place-attribute-1>div>div,
	.cpbs-main .cpbs-place .cpbs-place-attribute-2>div>div
	{
		padding-left:34px;
	}

	.cpbs-main .cpbs-place .cpbs-place-attribute-1>div:before,
	.cpbs-main .cpbs-place .cpbs-place-attribute-2>div:before
	{
		margin-top:2px;
		font-size:20px;
		color:var(--cpbs-ink-soft);
	}

	.cpbs-main .cpbs-attribute-field .cpbs-attribute-field-name
	{
		font-size:11px;
		font-weight:700;
		letter-spacing:.03em;
		text-transform:uppercase;
		color:var(--cpbs-ink-soft);
	}

	.cpbs-main .cpbs-attribute-field .cpbs-attribute-field-value
	{
		font-size:14px;
		font-weight:700;
		color:var(--cpbs-ink);
	}

	/* Availability reads as a positive, green signal (scarcity nudge) */
	.cpbs-main .cpbs-place .cpbs-place-attribute-2
	{
		background:var(--cpbs-ok-bg);
		border-color:#bfe6cf;
	}

		.cpbs-main .cpbs-place .cpbs-place-attribute-2 .cpbs-attribute-field-value,
		.cpbs-main .cpbs-place .cpbs-place-attribute-2>div:before
		{
			color:var(--cpbs-ok);
		}

/* ---- CTA button -------------------------------------------------------- */
.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-middle>div:last-child
{
	width:100%;            /* full-width CTA in the vertical card */
	margin-left:0;
}

.cpbs-main .cpbs-place .cpbs-place-select-button
{
	display:block;
	width:100%;
	text-align:center;
	padding:13px 20px !important;
	border:none !important;
	border-radius:14px;
	font-size:15px;
	font-weight:700;
	letter-spacing:.02em;
	color:#ffffff !important;
	background:var(--cpbs-accent) !important;
	box-shadow:0 8px 20px -10px rgba(192,31,46,.6);
	transition:filter 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

	.cpbs-main .cpbs-place .cpbs-place-select-button:hover
	{
		filter:brightness(1.05);
		transform:translateY(-2px);
		box-shadow:0 14px 28px -12px rgba(192,31,46,.65);
	}

/* ---- Description / feature bullets ------------------------------------- */
.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom
{
	margin-top:0;
	padding-top:16px;
	border-top:1px solid #eef1f5;
	font-size:12.5px;
	line-height:1.6;
	letter-spacing:.01em;
	color:var(--cpbs-ink-soft);
	overflow:hidden;        /* keep its content from spilling out of the box */
}

	/* Normalize everything inside the description so the_content's own
	   <p>/<ul> margins, floats or transforms can't push the bullets out. */
	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom *
	{
		color:var(--cpbs-ink-soft) !important;
		float:none !important;
		position:static !important;
		transform:none !important;
		top:auto !important;
		left:auto !important;
		right:auto !important;
		bottom:auto !important;
		margin-top:0 !important;
		margin-bottom:0 !important;
	}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom p,
	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom ul
	{
		margin:0 !important;
		padding:0 !important;
	}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom ul>li
	{
		padding:2px 0;
	}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-bottom ul>li:before
	{
		color:var(--cpbs-ok) !important;   /* green tick instead of red bullet */
	}

/* ---- Selected card highlight (confirms the choice) --------------------- */
.cpbs-main .cpbs-place:has(.cpbs-place-select-button.cpbs-state-selected)
{
	border-color:var(--cpbs-brand-red);
	box-shadow:0 0 0 2px rgba(192,31,46,.18), var(--cpbs-card-shadow);
}

	.cpbs-main .cpbs-place .cpbs-place-select-button.cpbs-state-selected
	{
		background:#0e7c43 !important;        /* "chosen" = solid green */
		box-shadow:0 10px 22px -12px rgba(14,124,67,.7);
	}

/* ---- Sold-out card treatment ------------------------------------------ */
.cpbs-main .cpbs-place:has(.cpbs-place-select-button.cpbs-state-disabled)
{
	opacity:.72;
	filter:grayscale(.25);
}

	.cpbs-main .cpbs-place .cpbs-place-select-button.cpbs-state-disabled
	{
		background:#9aa6b5 !important;
		color:#ffffff !important;
		box-shadow:none;
	}

/* ---- "Recommended" highlight ------------------------------------------- */
/* CSS-only way to flag one option: replace 0 with the place-type post ID    */
/* of the car park you want to promote. The badge text lives here in CSS     */
/* (not translatable — for a multilingual/production setup, add it in PHP).  */
.cpbs-main .cpbs-place[data-place_type_id="0"]
{
	border-color:var(--cpbs-brand-orange);
	box-shadow:0 0 0 2px rgba(224,83,47,.22), var(--cpbs-card-shadow);
}

	.cpbs-main .cpbs-place[data-place_type_id="0"]::before
	{
		content:"RECOMMENDED";
		position:absolute;
		top:0;
		left:0;
		z-index:3;
		padding:5px 14px;
		font-size:11px;
		font-weight:800;
		letter-spacing:.06em;
		color:#ffffff;
		background:var(--cpbs-accent);
		border-radius:0 0 12px 0;
	}

/* ---- Optional reassurance strip below the list ------------------------- */
/* CSS-injected trust line (no data node exists for this). Edit the copy or  */
/* delete this block; for i18n add a real element in PHP instead.            */
.cpbs-main .cpbs-place-list::after
{
	content:"\2713  Free cancellation      \2713  Secure checkout      \2713  Instant confirmation";
	display:block;
	margin-top:18px;
	padding:12px 14px;
	text-align:center;
	font-size:12.5px;
	font-weight:600;
	color:var(--cpbs-ok);
	background:var(--cpbs-ok-bg);
	border-radius:10px;
}

/* Cards stay VERTICAL (image on top, title underneath) at every width — this
   is the layout requested. If you ever want them to go horizontal on very
   wide screens, re-add an @container cpbscards (min-width:…) block here.      */

/* ---- Mobile ------------------------------------------------------------ */
@media (max-width:600px)
{
	/* one card per row on small screens */
	.cpbs-main .cpbs-place-list>ul
	{
		grid-template-columns:1fr;
	}

	.cpbs-main .cpbs-place
	{
		flex-direction:column;
	}

	.cpbs-main .cpbs-place>.cpbs-place-layout-column-left
	{
		flex-basis:auto;
		height:150px;
	}

	/* name + price stack and left-align */
	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top
	{
		flex-direction:column;
		gap:8px;
	}

		.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top>div:first-child
		{
			padding-right:0;
		}

		.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-top>div:first-child+div
		{
			text-align:left;
		}

	/* full-width CTA */
	.cpbs-main .cpbs-place>.cpbs-place-layout-column-right>.cpbs-place-layout-column-right-line-middle>div:last-child
	{
		width:100%;
		margin-left:0;
	}

		.cpbs-main .cpbs-place .cpbs-place-select-button
		{
			display:block;
			width:100%;
			text-align:center;
		}
}

/******************************************************************************/
/* Booking Dates / summary sidebar (Step 2–3 left column)                     */
/* Replaces the plugin's black/branded date boxes with clean light cards.     */
/******************************************************************************/

/* Sidebar container */
.cpbs-main .cpbs-main-content .cpbs-main-content-step-2>.cpbs-layout-25x75 .cpbs-layout-column-left .cpbs-summary-box,
.cpbs-main .cpbs-main-content .cpbs-main-content-step-3>.cpbs-layout-25x75 .cpbs-layout-column-left .cpbs-summary-box
{
	padding:24px !important;
	border:1px solid #edf0f5 !important;
	border-radius:20px;
	background:#ffffff;
	box-shadow:var(--cpbs-card-shadow);
}

/* Each date box → light card with a red accent strip (kills the black box) */
.cpbs-main .cpbs-rental-date-box>div,
.cpbs-main .cpbs-rental-date-box>div:first-child
{
	padding:14px 16px !important;
	text-align:left !important;
	border:1px solid #e9edf3 !important;
	border-left:4px solid var(--cpbs-brand-red) !important;
	border-radius:12px;
	background:linear-gradient(135deg,#fafbfd,#f3f6fa) !important;
}

	/* the vertical connector line between Entry and Exit boxes */
	.cpbs-main .cpbs-rental-date-box>div:first-child::after
	{
		background:var(--cpbs-line) !important;
		left:21px;
	}

	.cpbs-main .cpbs-rental-date-box>div:first-child+div
	{
		margin-top:24px;
	}

	/* label ("Entry date") */
	.cpbs-main .cpbs-rental-date-box>div>span:first-child
	{
		font-size:11px !important;
		font-weight:700 !important;
		letter-spacing:.03em;
		text-transform:uppercase;
		color:var(--cpbs-ink-soft) !important;
	}

	/* date value */
	.cpbs-main .cpbs-rental-date-box>div>span:first-child+span
	{
		margin-top:6px !important;
		font-size:15px !important;
		font-weight:700 !important;
		color:var(--cpbs-ink) !important;
	}

/* Sidebar section headings (Booking Dates / period / Order summary) */
.cpbs-main .cpbs-main-content-step-2>.cpbs-layout-25x75 .cpbs-layout-column-left .cpbs-header,
.cpbs-main .cpbs-main-content-step-3>.cpbs-layout-25x75 .cpbs-layout-column-left .cpbs-header
{
	font-size:15px;
	font-weight:700;
	color:var(--cpbs-ink);
	margin-bottom:12px;
}

/* ---- Order summary — clean line items + bold total --------------------- */
.cpbs-main .cpbs-summary-price-element
{
	margin-top:14px;
}

	/* line items (Space, Extra options, Tax …) — flex rows, no floats */
	.cpbs-main .cpbs-summary-price-element>div
	{
		display:flex;
		align-items:baseline;
		justify-content:space-between;
		gap:12px;
		padding:6px 0;
		clear:none;
		font-size:14px;
	}

		.cpbs-main .cpbs-summary-price-element>div>span:first-child
		{
			color:var(--cpbs-ink-soft);
		}

		.cpbs-main .cpbs-summary-price-element>div>span:first-child+span
		{
			float:none !important;
			font-weight:600;
			color:var(--cpbs-ink);
		}

	/* TOTAL row — single clean divider above, bold red amount */
	.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-total,
	.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-to-pay
	{
		display:flex;
		align-items:center;
		justify-content:space-between;
		gap:12px;
		margin-top:14px;
		padding-top:16px;
		border-top:1px solid var(--cpbs-line) !important;
	}

	.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-to-pay
	{
		margin-top:6px;
		padding-top:10px;
		border-top:none !important;
	}

		/* kill the plugin's stray absolutely-positioned border on the amount */
		.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-total>div,
		.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-to-pay>div
		{
			position:static !important;
			float:none !important;
			top:auto !important;
			right:auto !important;
			margin:0 !important;
			padding-top:0 !important;
			border:none !important;
		}

		/* "Total" label */
		.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-total>div:first-child
		{
			font-size:15px !important;
			font-weight:700 !important;
			color:var(--cpbs-ink) !important;
		}

		/* total amount */
		.cpbs-main .cpbs-summary-price-element>div.cpbs-summary-price-element-total>div:first-child+div
		{
			font-size:21px !important;
			font-weight:800 !important;
			letter-spacing:-.02em;
			color:var(--cpbs-brand-red) !important;
		}

	/* keep each summary row full-width so Space / Total stack vertically */
	.cpbs-main .cpbs-summary-price-element>div
	{
		width:100%;
		float:none;
	}

/******************************************************************************/
/* STEP 3 — Customer Details (premium)                                        */
/******************************************************************************/

/* recolor the loud yellow top accent strip to a clean brand line */
.cpbs-main .cpbs-main-content-step-3 .cpbs-form-panel-content,
.cpbs-main .cpbs-main-content-step-3 .cpbs-client-form .cpbs-form-panel-content
{
	border-top-color:var(--cpbs-brand-red) !important;
	border-top-width:2px !important;
}

/* section headings (Customer Details / Add-on options / Payment Method) */
.cpbs-main .cpbs-main-content-step-3 .cpbs-main-content-navigation-button~* .cpbs-header.cpbs-header-style-3,
.cpbs-main .cpbs-main-content-step-3>.cpbs-header.cpbs-header-style-3,
.cpbs-main .cpbs-main-content-step-3 .cpbs-booking-extra .cpbs-header.cpbs-header-style-3,
.cpbs-main .cpbs-main-content-step-3 .cpbs-client-form .cpbs-header.cpbs-header-style-3,
.cpbs-main .cpbs-main-content-step-3 #cpbs-payment>.cpbs-header.cpbs-header-style-3
{
	font-size:22px;
	font-weight:700;
	letter-spacing:-.01em;
	color:var(--cpbs-ink);
}

/* ---- Add-on options (booking extras) → premium cards ------------------- */
.cpbs-main .cpbs-booking-extra-list>ul>li
{
	align-items:center;
	gap:16px;
	padding:18px 20px !important;
	margin-top:14px;
	background:#ffffff;
	border:1px solid #edf0f5;
	border-radius:16px;
	box-shadow:var(--cpbs-card-shadow);
}

	.cpbs-main .cpbs-booking-extra-list>ul>li .cpbs-booking-extra-name
	{
		font-size:16px !important;
		font-weight:700;
		color:var(--cpbs-ink);
	}

	.cpbs-main .cpbs-booking-extra-list>ul>li .cpbs-booking-extra-price
	{
		float:none !important;
		margin:4px 0 0 0 !important;
		font-size:14px !important;
		font-weight:700;
		color:var(--cpbs-brand-red) !important;
	}

/* ---- Quantity stepper → clean neutral control (was yellow) ------------- */
.cpbs-main .cpbs-quantity
{
	display:inline-flex;
	align-items:center;
	border:1px solid var(--cpbs-line);
	border-radius:10px;
	overflow:hidden;
	background:#ffffff;
}

	.cpbs-main .cpbs-quantity>*
	{
		float:none !important;
	}

	.cpbs-main.cpbs-main .cpbs-quantity>a
	{
		width:42px;
		height:44px;
		line-height:44px;
		font-size:18px;
		background:var(--cpbs-field-bg) !important;
		color:var(--cpbs-ink) !important;
	}

		.cpbs-main.cpbs-main .cpbs-quantity>a:hover
		{
			background:#e7ecf4 !important;
			color:var(--cpbs-brand-red) !important;
		}

	.cpbs-main .cpbs-quantity>input
	{
		width:48px;
		height:44px;
		padding:0 !important;
		font-size:16px !important;
		font-weight:700;
		text-align:center;
		background:#ffffff;
	}

/* ---- Add-on "Select" button → brand pill (override yellow) ------------- */
.cpbs-main .cpbs-booking-extra-list .cpbs-button.cpbs-button-style-1
{
	border:none !important;
	border-radius:12px;
	min-width:130px;
	padding:12px 22px !important;
	font-weight:700;
	color:#ffffff !important;
	background:var(--cpbs-accent) !important;
	box-shadow:0 8px 20px -10px rgba(192,31,46,.6);
	transition:filter 160ms ease, transform 160ms ease;
}

	.cpbs-main .cpbs-booking-extra-list .cpbs-button.cpbs-button-style-1:hover
	{
		filter:brightness(1.05);
		transform:translateY(-1px);
	}

	/* selected add-on = green, consistent with the Step 2 selection */
	.cpbs-main .cpbs-booking-extra-list .cpbs-button.cpbs-button-style-1.cpbs-state-selected
	{
		background:#0e7c43 !important;
		box-shadow:0 8px 20px -10px rgba(14,124,67,.6);
	}

/* sign-in / sign-up / other primary buttons in this step → brand */
.cpbs-main .cpbs-main-content-step-3 .cpbs-client-form .cpbs-button.cpbs-button-style-1
{
	border:none !important;
	border-radius:12px;
	color:#ffffff !important;
	background:var(--cpbs-accent) !important;
}

/* ---- Compact, tidy form fields (were too tall / empty) ----------------- */
.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field
{
	padding:11px 16px;
}

	.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field>label
	{
		margin-bottom:4px;
	}

	.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field input,
	.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field select,
	.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field textarea,
	.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field .ui-selectmenu-button
	{
		padding:0 !important;
		font-size:15px !important;
		line-height:22px !important;
	}

	.cpbs-main .cpbs-main-content-step-3 .cpbs-form-field textarea
	{
		min-height:54px;
	}

/* ---- "Previous step" button → clean outline (was a solid black blob) --- */
.cpbs-main .cpbs-main-content-navigation-button .cpbs-button.cpbs-button-step-prev,
.cpbs-main .cpbs-button.cpbs-button-step-prev
{
	background:#ffffff !important;
	background-image:none !important;
	border:2px solid var(--cpbs-line) !important;
	box-shadow:none !important;
}

	.cpbs-main .cpbs-button.cpbs-button-step-prev,
	.cpbs-main .cpbs-button.cpbs-button-step-prev>span
	{
		color:#41506a !important;
	}

	.cpbs-main .cpbs-button.cpbs-button-step-prev:hover
	{
		background:#f4f6fa !important;
		border-color:#cdd6e3 !important;
	}

/* ---- Payment method → selectable card ---------------------------------- */
.cpbs-main #cpbs-payment>ul>li
{
	display:flex;
	align-items:center;
	gap:14px;
	padding:14px 18px;
	margin-top:10px;
	background:#ffffff;
	border:1px solid #edf0f5;
	border-radius:14px;
	box-shadow:var(--cpbs-card-shadow);
}

	.cpbs-main #cpbs-payment>ul>li:first-child
	{
		margin-top:0;
	}
