/* =========================================================
   FA Luxury Transport — Testimonial carousel ([fa_testimonial])
   Reuses color/font/container tokens from header-footer.css
   ========================================================= */

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

/* Astra's block-layout CSS (".entry-content[data-ast-blocks-layout] > *")
   applies max-width + auto margins to every direct child of the content
   area with higher specificity than a single class selector — !important
   is needed here to break out of that boxed layout for this full-bleed
   section, the same way Astra's own ".alignfull" utility does. */
.fa-testimonial {
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
	background: #0b0b0d;
	padding: 100px var(--fa-container-pad, 120px);
	overflow: hidden;
}

.fa-testimonial__inner {
	max-width: 824px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.fa-testimonial__eyebrow {
	margin: 0;
	color: var(--fa-gold, #a17c2b);
	font-size: 13px;
	font-family: var(--fa-font-sans);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.3em;
}

.fa-testimonial__icon {
	display: block;
	margin-top: 20px;
	color: var(--fa-gold, #a17c2b);
	font-family: Georgia, "Times New Roman", Times, serif;
	font-size: 72px;
	font-weight: 700;
	font-style: normal;
	line-height: 1;
}

/* -----------------------------------------------------------
   Carousel — slides are grid-stacked on the same cell so the
   section auto-sizes to the tallest testimonial without JS
   measuring, and swapping the active slide is a simple
   opacity crossfade (no layout jump between slides).
   ----------------------------------------------------------- */

.fa-testimonial__carousel {
	width: 100%;
}

.fa-testimonial__slides {
	display: grid;
	margin-top: 28px;
}

.fa-testimonial__slide {
	grid-area: 1 / 1;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.5s ease;
}

.fa-testimonial__slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.fa-testimonial__quote {
	margin: 0;
	color: var(--fa-white, #fff);
	font-size: 28px;
	font-family: var(--fa-font-serif);
	font-weight: 300;
	line-height: 1.6;
}

.fa-testimonial__quote p {
	margin: 0;
}

.fa-testimonial__meta {
	margin-top: 36px;
}

.fa-testimonial__name {
	margin: 0;
	color: var(--fa-gold, #a17c2b);
	font-size: 17px;
	font-family: var(--fa-font-serif);
	font-weight: 400;
	line-height: 1.5;
}

.fa-testimonial__role {
	margin: 4px 0 0;
	color: var(--fa-gray-500, #6a7282);
	font-size: 13px;
	font-family: var(--fa-font-sans);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

/* -----------------------------------------------------------
   Dot pagination
   ----------------------------------------------------------- */

.fa-testimonial__dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	margin-top: 36px;
}

.fa-testimonial__dot {
	width: 16px;
	height: 6px;
	padding: 0;
	background: rgba(255, 255, 255, 0.2);
	border: none;
	border-radius: 3px;
	cursor: pointer;
	transition: width 0.3s ease, background-color 0.3s ease;
}

.fa-testimonial__dot:hover,
.fa-testimonial__dot:focus-visible {
	background: rgba(255, 255, 255, 0.4);
}

.fa-testimonial__dot:focus-visible {
	outline: 1px solid var(--fa-gold, #a17c2b);
	outline-offset: 3px;
}

.fa-testimonial__dot.is-active {
	width: 40px;
	background: var(--fa-gold, #a17c2b);
}

.fa-testimonial__dot.is-active:hover,
.fa-testimonial__dot.is-active:focus-visible {
	background: var(--fa-gold, #a17c2b);
}

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

@media (max-width: 1279px) {
	.fa-testimonial {
		padding: 80px var(--fa-container-pad, 60px);
	}

	.fa-testimonial__inner {
		max-width: 100%;
	}

	.fa-testimonial__quote {
		font-size: 24px;
	}
}

@media (max-width: 767px) {
	.fa-testimonial {
		padding: 56px var(--fa-container-pad, 24px);
	}

	.fa-testimonial__eyebrow {
		font-size: 12px;
		letter-spacing: 0.2em;
	}

	.fa-testimonial__icon {
		margin-top: 14px;
		font-size: 52px;
	}

	.fa-testimonial__slides {
		margin-top: 20px;
	}

	.fa-testimonial__quote {
		font-size: 19px;
		line-height: 1.5;
	}

	.fa-testimonial__meta {
		margin-top: 24px;
	}

	.fa-testimonial__dots {
		margin-top: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fa-testimonial__slide,
	.fa-testimonial__dot {
		transition: none;
	}
}
