/* =========================================================
   FA Luxury Transport — Car Detail page (single-car.php)
   Reuses color/font/container tokens from header-footer.css
   ========================================================= */

.fa-car-single,
.fa-car-single * {
	box-sizing: border-box;
}

/* Hide Astra's default page title/breadcrumb chrome above this template's
   own bespoke header so nothing duplicates the "Back to Fleet" row. */
.single-car .ast-container {
	padding: 0;
	max-width: none;
}

/* This template skips Astra's usual #primary/#main wrapper (the actual
   flex item Astra's CSS expects inside the flex .ast-container), so
   .fa-car-single lands as a raw flex child and otherwise shrinks to fit
   its own content instead of stretching across the row. */
.single-car .ast-container {
	display: block;
}

.fa-car-single {
	width: 100%;
}

/* -----------------------------------------------------------
   Top: gallery + info
   ----------------------------------------------------------- */

.fa-car-single__top {
	background: var(--fa-bg-dark);
	padding: 100px 0 80px;
}

.fa-car-single__topinner {
	max-width: var(--fa-container-max);
	margin: 0 auto;
	padding: 0 var(--fa-container-pad);
}

.fa-car-single__back {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 48px;
	color: var(--fa-gray-400);
	font-family: var(--fa-font-sans);
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-decoration: none;
}

.fa-car-single__back:hover {
	color: var(--fa-gold);
}

.fa-car-single__back:focus-visible {
	outline: 2px solid var(--fa-gold);
	outline-offset: 2px;
}

.fa-car-single__back .fa-icon {
	width: 16px;
	height: 16px;
	transition: transform var(--fa-dur-base) var(--fa-ease-out-quart);
}

.fa-car-single__back:hover .fa-icon {
	transform: translateX(-3px);
}

.fa-car-single__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 64px;
	align-items: start;
}

/* One signature entrance for the page: the gallery and info column rise
   in together on load, the info column a beat behind. This is the single
   hero moment for this template — the Amenities/CTA sections below don't
   repeat it, per the brand-register rule against fade-on-scroll on every
   section. */
.fa-car-single__gallery,
.fa-car-single__info {
	animation: fa-car-single-rise var(--fa-dur-slow) var(--fa-ease-out-quart) both;
}

.fa-car-single__info {
	animation-delay: 90ms;
}

@keyframes fa-car-single-rise {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}

.fa-car-single__main {
	position: relative;
	overflow: hidden;
	aspect-ratio: 568 / 454;
	border: 1px solid var(--fa-border);
}

.fa-car-single__main-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity var(--fa-dur-fast) var(--fa-ease-out-quart);
}

.fa-car-single__main-image.is-swapping {
	opacity: 0;
}

.fa-car-single__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	padding: 4px 12px;
	background: rgba(0, 0, 0, 0.7);
	border: 1px solid rgba(161, 124, 43, 0.3);
	color: var(--fa-gold);
	font-family: var(--fa-font-sans);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

.fa-car-single__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 16px;
}

.fa-car-single__thumb {
	width: 110px;
	height: 79px;
	padding: 0;
	overflow: hidden;
	background: none;
	border: 1px solid var(--fa-border);
	cursor: pointer;
	flex-shrink: 0;
	transition: border-color var(--fa-dur-base) var(--fa-ease-out-quart),
		transform var(--fa-dur-fast) var(--fa-ease-out-quart);
}

.fa-car-single__thumb:hover {
	border-color: rgba(161, 124, 43, 0.7);
	transform: translateY(-2px);
}

.fa-car-single__thumb.is-active {
	border-color: var(--fa-gold);
}

.fa-car-single__thumb:focus-visible {
	outline: 2px solid var(--fa-gold);
	outline-offset: 2px;
}

.fa-car-single__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.fa-car-single__eyebrow {
	margin: 0 0 12px;
	color: var(--fa-gold);
	font-family: var(--fa-font-sans);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.3em;
}

.fa-car-single__title {
	margin: 0 0 24px;
	color: var(--fa-white);
	font-family: var(--fa-font-serif);
	font-size: 47px;
	font-weight: 500;
	line-height: 1.25;
}

.fa-car-single__desc {
	margin: 0 0 32px;
	max-width: 560px;
	color: var(--fa-gray-300);
	font-family: var(--fa-font-sans);
	font-weight: 300;
	font-size: 18px;
	line-height: 1.6;
}

.fa-car-single__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 32px;
	margin-bottom: 32px;
}

.fa-car-single__spec {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--fa-gray-300);
	font-family: var(--fa-font-sans);
	font-size: 14px;
}

.fa-car-single__spec .fa-icon {
	width: 20px;
	height: 20px;
	color: var(--fa-gold);
}

.fa-car-single__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.fa-car-single__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 16px 32px;
	font-family: var(--fa-font-sans);
	font-size: 13px;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	text-decoration: none;
	transition: background var(--fa-dur-base) var(--fa-ease-out-quart),
		border-color var(--fa-dur-base) var(--fa-ease-out-quart),
		color var(--fa-dur-base) var(--fa-ease-out-quart);
}

.fa-car-single__btn:focus-visible {
	outline: 2px solid var(--fa-gold);
	outline-offset: 2px;
}

.fa-car-single__btn .fa-icon {
	width: 16px;
	height: 16px;
}

.fa-car-single__btn-icon {
	transition: transform var(--fa-dur-base) var(--fa-ease-out-quart);
}

.fa-car-single__btn:hover .fa-car-single__btn-icon {
	transform: translateX(3px);
}

.fa-car-single__btn--solid {
	background: var(--fa-gold);
	color: var(--fa-black);
}

.fa-car-single__btn--solid:hover {
	background: #8f6c24;
	color: var(--fa-black);
}

.fa-car-single__btn--whatsapp {
	background: #25d366;
	color: var(--fa-white);
}

.fa-car-single__btn--whatsapp:hover {
	background: #1ebe57;
	color: var(--fa-white);
}

.fa-car-single__btn--outline {
	border: 1px solid rgba(255, 255, 255, 0.3);
	color: var(--fa-white);
}

.fa-car-single__btn--outline:hover {
	border-color: var(--fa-gold);
	color: var(--fa-gold);
}

/* -----------------------------------------------------------
   Vehicle Amenities
   ----------------------------------------------------------- */

.fa-car-single__amenities {
	background: var(--fa-bg-panel);
	padding: 80px 0;
}

.fa-car-single__amenitiesinner {
	max-width: var(--fa-container-max);
	margin: 0 auto;
	padding: 0 var(--fa-container-pad);
}

.fa-car-single__amenities-title {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--fa-white);
	font-family: var(--fa-font-serif);
	font-size: 30px;
	font-weight: 500;
}

.fa-car-single__amenities-title .fa-icon {
	width: 24px;
	height: 24px;
	color: var(--fa-gold);
}

.fa-car-single__amenities-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 32px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid var(--fa-border);
	gap: 1px;
}

.fa-car-single__amenity {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 24px;
	background: var(--fa-bg-dark);
	transition: background var(--fa-dur-base) var(--fa-ease-out-quart);
}

.fa-car-single__amenity:hover {
	background: #131317;
}

.fa-car-single__amenity .fa-icon {
	width: 20px;
	height: 20px;
	color: var(--fa-gold);
	flex-shrink: 0;
	transition: transform var(--fa-dur-base) var(--fa-ease-out-quint);
}

.fa-car-single__amenity:hover .fa-icon {
	transform: scale(1.15);
}

/* Reveal the amenity list with a stagger as it scrolls into view — a real
   list-in, not a decorative whole-section fade (car-single.js toggles
   .is-visible via IntersectionObserver, one-time). Scoped behind
   .is-enhanced so it never ships blank without JS. */
.fa-car-single__amenities.is-enhanced .fa-car-single__amenity {
	opacity: 0;
}

.fa-car-single__amenities.is-enhanced .fa-car-single__amenity.is-visible {
	animation: fa-car-single-amenity-in var(--fa-dur-base) var(--fa-ease-out-quart) both;
	animation-delay: calc(var(--i, 0) * 45ms);
}

@keyframes fa-car-single-amenity-in {
	from { opacity: 0; transform: translateY(12px); }
	to { opacity: 1; transform: translateY(0); }
}

.fa-car-single__amenity span {
	color: var(--fa-gray-300);
	font-family: var(--fa-font-sans);
	font-size: 15px;
}

/* -----------------------------------------------------------
   Reserve CTA
   ----------------------------------------------------------- */

.fa-car-single__cta {
	background: var(--fa-black);
	padding: 80px 0;
}

.fa-car-single__ctainner {
	max-width: 700px;
	margin: 0 auto;
	padding: 0 var(--fa-container-pad);
	text-align: center;
}

.fa-car-single__cta-title {
	margin: 0;
	color: var(--fa-white);
	font-family: var(--fa-font-serif);
	font-size: 30px;
	font-weight: 500;
	line-height: 1.3;
}

.fa-car-single__cta-subtitle {
	margin: 20px 0 0;
	color: var(--fa-gray-400);
	font-family: var(--fa-font-sans);
	font-size: 15px;
	line-height: 1.6;
}

.fa-car-single__cta-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin-top: 32px;
}

/* -----------------------------------------------------------
   Responsive
   ----------------------------------------------------------- */

@media (max-width: 1279px) {
	.fa-car-single__top {
		padding: 72px 0 56px;
	}

	.fa-car-single__layout {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.fa-car-single__title {
		font-size: 36px;
	}

	.fa-car-single__amenities,
	.fa-car-single__cta {
		padding: 60px 0;
	}

	.fa-car-single__amenities-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.fa-car-single__title {
		font-size: 28px;
	}

	.fa-car-single__desc {
		font-size: 16px;
	}

	.fa-car-single__actions {
		flex-direction: column;
	}

	.fa-car-single__btn {
		width: 100%;
	}

	.fa-car-single__amenities-grid {
		grid-template-columns: 1fr;
	}

	.fa-car-single__cta-title {
		font-size: 24px;
	}

	.fa-car-single__cta-actions {
		flex-direction: column;
	}
}
