/* =========================================================
   CARVEOO SINGLE VEHICLE — STABLE CONVERSION SHELL
   v2.1.4.8
   IMPORTANT: The existing Elementor specs layout is deliberately untouched.
   ========================================================= */

body.single-hp_listing {
	--cv-detail-ink: #17202a;
	--cv-detail-muted: #68717c;
	--cv-detail-border: #e7e2d9;
	--cv-detail-warm: #fbf9f5;
	--cv-detail-gold: #d2aa59;
	--cv-detail-green: #46745f;
}

body.single-hp_listing,
body.single-hp_listing button,
body.single-hp_listing input,
body.single-hp_listing select,
body.single-hp_listing textarea {
	font-family: Manrope, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Hero / title */
body.single-hp_listing .carveoo-listing-header {
	position: relative;
	margin-bottom: 18px;
	color: var(--cv-detail-ink);
}

body.single-hp_listing .carveoo-listing-header h1,
body.single-hp_listing .carveoo-listing-header .elementor-heading-title {
	margin: 0;
	color: var(--cv-detail-ink);
	font-family: Manrope, system-ui, sans-serif !important;
	font-size: clamp(30px, 3vw, 42px) !important;
	font-weight: 760 !important;
	line-height: 1.06 !important;
	letter-spacing: -0.04em !important;
}

body.single-hp_listing .carveoo-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}

body.single-hp_listing .carveoo-header-actions a,
body.single-hp_listing .carveoo-header-actions button {
	min-height: 38px;
	padding: 8px 12px;
	border: 1px solid var(--cv-detail-border);
	border-radius: 999px;
	background: #fff;
	color: var(--cv-detail-ink);
	box-shadow: 0 2px 10px rgba(23,32,42,.05);
}

/* Gallery */
body.single-hp_listing .carveoo-listing-gallery,
body.single-hp_listing .carveoo-vehicle-gallery {
	overflow: hidden;
	border-radius: 20px;
}

body.single-hp_listing .carveoo-vehicle-gallery {
	gap: 6px !important;
	margin-bottom: 18px !important;
}

body.single-hp_listing .carveoo-vehicle-gallery img,
body.single-hp_listing .carveoo-listing-gallery img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/*
 * VEHICLE SPECS:
 * Intentionally no layout rules here.
 * Elementor's original responsive spec layout is allowed to work normally.
 */

/* Booking column */
body.single-hp_listing .carveoo-booking-column {
	flex: 0 0 36% !important;
	width: 36% !important;
	max-width: 400px !important;
	min-width: 350px !important;
	align-self: flex-start !important;
}

body.single-hp_listing .carveoo-booking-column .elementor-widget-shortcode,
body.single-hp_listing .carveoo-booking-column .elementor-widget-container {
	width: 100%;
}

body.single-hp_listing .carveoo-booking-card {
	position: sticky !important;
	top: 132px !important;
	width: 100% !important;
	max-width: none !important;
	padding: 20px !important;
	border: 1px solid #ded9cf !important;
	border-radius: 18px !important;
	background: #fff !important;
	box-shadow: 0 14px 38px rgba(23,32,42,.10) !important;
	color: var(--cv-detail-ink);
}

body.single-hp_listing .carveoo-booking-card .carveoo-booking-price,
body.single-hp_listing .carveoo-booking-card .carveoo-price {
	color: var(--cv-detail-ink) !important;
	font-family: Manrope, system-ui, sans-serif !important;
	font-size: 28px !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	letter-spacing: -0.035em !important;
}

body.single-hp_listing .carveoo-booking-card input,
body.single-hp_listing .carveoo-booking-card select,
body.single-hp_listing .carveoo-booking-card .select2-selection,
body.single-hp_listing .carveoo-booking-card button:not(.ui-datepicker-trigger) {
	min-height: 44px;
	border-radius: 10px !important;
}

body.single-hp_listing .carveoo-booking-card input,
body.single-hp_listing .carveoo-booking-card select,
body.single-hp_listing .carveoo-booking-card .select2-selection {
	border-color: #dedbd5 !important;
	background: #fff !important;
	color: var(--cv-detail-ink) !important;
}

body.single-hp_listing .carveoo-booking-card hr,
body.single-hp_listing .carveoo-booking-card .carveoo-booking-section,
body.single-hp_listing .carveoo-booking-card .carveoo-price-breakdown {
	border-color: #ece8e0 !important;
}

body.single-hp_listing .carveoo-booking-card button[type="submit"],
body.single-hp_listing .carveoo-booking-card .hp-form__button,
body.single-hp_listing .carveoo-booking-card .button--primary,
body.single-hp_listing .carveoo-booking-card .carveoo-booking-cta {
	width: 100% !important;
	min-height: 48px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--cv-detail-ink) !important;
	color: #fff !important;
	font-size: 13px !important;
	font-weight: 750 !important;
	box-shadow: none !important;
}

/* Main content typography */
body.single-hp_listing main h2,
body.single-hp_listing main h3,
body.single-hp_listing .site-main h2,
body.single-hp_listing .site-main h3 {
	color: var(--cv-detail-ink) !important;
	font-family: Manrope, system-ui, sans-serif !important;
	font-weight: 740 !important;
	letter-spacing: -0.025em !important;
}

body.single-hp_listing main h2,
body.single-hp_listing .site-main h2 {
	font-size: 24px !important;
	line-height: 1.18 !important;
}

body.single-hp_listing main h3,
body.single-hp_listing .site-main h3 {
	font-size: 18px !important;
	line-height: 1.25 !important;
}

@media (min-width: 1024px) {
	body.single-hp_listing .carveoo-booking-column {
		margin-left: 26px !important;
	}
}

@media (min-width: 768px) and (max-width: 1023px) {
	body.single-hp_listing .carveoo-booking-column {
		flex: 0 0 38% !important;
		width: 38% !important;
		min-width: 300px !important;
		max-width: 350px !important;
	}

	body.single-hp_listing .carveoo-booking-card {
		top: 118px !important;
		padding: 16px !important;
	}
}

@media (max-width: 767px) {
	body.single-hp_listing .carveoo-listing-header h1,
	body.single-hp_listing .carveoo-listing-header .elementor-heading-title {
		font-size: 27px !important;
	}

	body.single-hp_listing .carveoo-listing-gallery,
	body.single-hp_listing .carveoo-vehicle-gallery {
		border-radius: 14px;
	}

	body.single-hp_listing .carveoo-booking-column {
		flex: 1 1 100% !important;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		margin-left: 0 !important;
	}

	body.single-hp_listing .carveoo-booking-card {
		position: relative !important;
		top: auto !important;
		padding: 16px !important;
		border-radius: 15px !important;
		box-shadow: 0 8px 24px rgba(23,32,42,.08) !important;
	}

	body.single-hp_listing main h2,
	body.single-hp_listing .site-main h2 {
		font-size: 20px !important;
	}
}


/* =========================================================
   v2.1.4.9 FEATURE ICON ALIGNMENT
   Prevent the feature check icon from covering the text.
   ========================================================= */

body.single-hp_listing .carveoo-features-section .elementor-icon-list-item,
body.single-hp_listing .carveoo-features-section .elementor-icon-list-item > a,
body.single-hp_listing .carveoo-features-section .elementor-icon-list-text,
body.single-hp_listing .carveoo-features-section li {
	position: relative;
}

/* Elementor Icon List variant */
body.single-hp_listing .carveoo-features-section .elementor-icon-list-item {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

body.single-hp_listing .carveoo-features-section .elementor-icon-list-icon {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;
	width: 18px !important;
	min-width: 18px !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.single-hp_listing .carveoo-features-section .elementor-icon-list-text {
	display: block !important;
	padding-left: 0 !important;
	margin-left: 0 !important;
	line-height: 1.45 !important;
}

/* Generic custom feature-card variants that use pseudo-elements/icons. */
body.single-hp_listing .carveoo-features-section [class*="feature"] {
	box-sizing: border-box;
}

body.single-hp_listing .carveoo-features-section [class*="feature"]::before {
	flex: 0 0 auto;
	margin-right: 8px !important;
}

/* If the feature line is a card with an absolutely positioned checkmark,
   reserve enough space for it so the first letters can never sit underneath. */
body.single-hp_listing .carveoo-features-section .carveoo-feature-item,
body.single-hp_listing .carveoo-features-section .carveoo-feature-card {
	padding-left: 38px !important;
}

body.single-hp_listing .carveoo-features-section .carveoo-feature-item::before,
body.single-hp_listing .carveoo-features-section .carveoo-feature-card::before {
	left: 14px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	margin-right: 0 !important;
}

@media (max-width: 767px) {
	body.single-hp_listing .carveoo-features-section .carveoo-feature-item,
	body.single-hp_listing .carveoo-features-section .carveoo-feature-card {
		padding-left: 34px !important;
	}
}


/* =========================================================
   v2.1.4.13 SAFE LOWER-DETAIL POLISH
   No generic [class*="card"] selectors.
   Existing dynamic card internals remain untouched.
   ========================================================= */

body.single-hp_listing .cv-detail-info-section {
	position: relative;
	margin-top: 24px !important;
	padding-top: 22px !important;
	border-top: 1px solid #e8e3da !important;
}

body.single-hp_listing .cv-detail-info-section__title {
	margin: 0 0 11px !important;
	color: #17202a !important;
	font-family: Manrope, system-ui, sans-serif !important;
	font-size: 19px !important;
	font-weight: 760 !important;
	line-height: 1.2 !important;
	letter-spacing: -.025em !important;
}

/* Pickup / return and insurance stay compact, but their existing cards remain intact. */
body.single-hp_listing .cv-detail-section--pickup {
	margin-top: 25px !important;
}

body.single-hp_listing .cv-detail-section--insurance {
	margin-top: 20px !important;
}

/* Host section gets breathing room without touching the host-card internals. */
body.single-hp_listing .cv-detail-section--host {
	margin-top: 22px !important;
}

/* Cancellation is intentionally concise. */
body.single-hp_listing .cv-detail-section--cancellation {
	margin-top: 21px !important;
}

body.single-hp_listing .cv-detail-section--cancellation p {
	color: #626b74 !important;
	line-height: 1.55 !important;
}

/* Reviews keep their existing dynamic card styling. */
body.single-hp_listing .cv-detail-section--reviews {
	margin-top: 22px !important;
}

body.single-hp_listing .cv-detail-section--reviews p {
	line-height: 1.55 !important;
}

/* Related cars: spacing only. Do not restyle their nested card markup. */
body.single-hp_listing .cv-detail-section--related {
	margin-top: 40px !important;
	padding-top: 32px !important;
}

body.single-hp_listing .cv-detail-section--related .cv-detail-info-section__title {
	margin-bottom: 15px !important;
	font-size: 20px !important;
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
	body.single-hp_listing .cv-detail-info-section {
		margin-top: 21px !important;
		padding-top: 19px !important;
	}

	body.single-hp_listing .cv-detail-info-section__title {
		font-size: 17px !important;
	}

	body.single-hp_listing .cv-detail-section--related {
		margin-top: 32px !important;
		padding-top: 26px !important;
	}
}

/* Mobile */
@media (max-width: 767px) {
	body.single-hp_listing .cv-detail-info-section {
		margin-top: 17px !important;
		padding-top: 16px !important;
	}

	body.single-hp_listing .cv-detail-info-section__title {
		margin-bottom: 8px !important;
		font-size: 15px !important;
	}

	body.single-hp_listing .cv-detail-section--related {
		margin-top: 28px !important;
		padding-top: 22px !important;
	}

	body.single-hp_listing .cv-detail-section--related .cv-detail-info-section__title {
		font-size: 16px !important;
	}
}


/* =========================================================
   v2.1.4.29 BOOKING DATE RANGE DISPLAY MIRROR
   Presentation-only fix. The real Flatpickr/HivePress input
   remains underneath and fully interactive.
   ========================================================= */

body.single-hp_listing
.cv-booking-range-host {
	position: relative !important;
	display: block !important;
	width: 100% !important;
}

body.single-hp_listing
.cv-booking-range-display {
	position: absolute !important;
	z-index: 2 !important;

	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;

	display: none;
	align-items: center;

	width: 100% !important;
	min-width: 0 !important;
	height: 100% !important;

	padding: 0 12px !important;

	overflow: hidden;

	color: #17202a !important;
	font-family: Manrope, system-ui, sans-serif !important;
	font-size: inherit !important;
	font-weight: 600 !important;
	line-height: normal !important;

	white-space: nowrap;
	text-overflow: ellipsis;

	pointer-events: none !important;

	box-sizing: border-box !important;
}

body.single-hp_listing
.cv-booking-range-display.is-visible {
	display: flex !important;
}

/*
 * Hide only the text of the native readable field while the mirror is
 * active. Its border, background, click target and Flatpickr behavior remain.
 */
body.single-hp_listing
.cv-booking-range-input--mirror-active {
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
	caret-color: transparent !important;
}

/* Keep placeholder hidden while a complete mirrored range is present. */
body.single-hp_listing
.cv-booking-range-input--mirror-active::placeholder {
	color: transparent !important;
	-webkit-text-fill-color: transparent !important;
}

/* Tablet/mobile drawer uses the same live booking field. */
@media (max-width: 1024px) {
	body.single-hp_listing
	.cv-booking-range-display {
		padding-right: 11px !important;
		padding-left: 11px !important;
	}
}


/* v2.2.2: truthful date-handoff fallback for stale/direct listing links. */
.cv-booking-date-conflict {
	margin: 8px 0 14px !important;
	padding: 10px 12px !important;
	border: 1px solid #e3c99a !important;
	border-radius: 10px !important;
	background: #fff8ea !important;
	color: #6b542b !important;
	font-size: 12px !important;
	font-weight: 650 !important;
	line-height: 1.45 !important;
}
