﻿/* ==========================================================================
   TESTIMONIAL SHOWCASE — one review per slide
   Markup: template-parts/sections/section-testimonials.php
   ========================================================================== */

.testimonials-slider-section {
	padding-top: var(--space-2xl);
	padding-bottom: var(--space-2xl);
}

.testimonials-slider-container {
	overflow: visible;
}

.testimonials-slider-track {
	position: relative;
}

.testimonial-slide {
	display: none;
	opacity: 0;
	transform: translateX(20px);
	grid-template-columns: minmax(0, 1.05fr) minmax(280px, 0.95fr) minmax(180px, 0.7fr);
	align-items: center;
	gap: 0;
}

.testimonial-slide[hidden] {
	display: none !important;
}

.testimonial-slide.is-active {
	display: grid;
	opacity: 1;
	transform: translateX(0);
	transition: all 0.45s ease;
	animation: testimonial-slide-in 0.45s ease;
}

@keyframes testimonial-slide-in {
	from {
		opacity: 0;
		transform: translateX(20px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.testimonial-slide__hero,
.testimonial-slide__portrait {
	position: relative;
	z-index: 1;
	min-width: 0;
}

.testimonial-slide__hero-img {
	width: 100%;
	height: 460px;
	object-fit: cover;
	border-radius: var(--radius-card, 12px);
	display: block;
}

.testimonial-slide__card {
	position: relative;
	z-index: 2;
	background: #ffffff !important;
	border-radius: 12px;
	box-shadow: 0 18px 50px rgba(15, 23, 42, 0.12);
	padding: 40px 36px 36px;
	margin-left: -72px;
	margin-right: -48px;
}

.testimonial-slide__subtitle {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--color-accent, #FE5C08);
}

.testimonial-slide__heading {
	margin: 0 0 12px;
	font-family: var(--font-heading, var(--font-display));
	font-size: clamp(28px, 3vw, 40px);
	font-weight: 700;
	color: #111827;
	line-height: 1.15;
}

.testimonial-slide__lede {
	margin: 0 0 20px;
	color: var(--color-text-muted, #5b6470);
	font-size: 15px;
	line-height: 1.55;
}

.testimonial-slide__divider {
	display: block;
	width: 56px;
	height: 3px;
	border-radius: 999px;
	background: var(--color-accent, #FE5C08);
	margin: 0 0 20px;
}

.testimonial-slide__quote {
	margin: 0;
	font-size: 17px;
	line-height: 1.7;
	color: #1e293b;
	quotes: none;
}

.testimonial-slide__right,
.testimonial-slide__portrait {
	position: relative;
	z-index: 2;
	min-width: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 8px 0 12px;
}

.testimonial-author-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 12px;
}

.testimonial-author-block__avatar {
	width: 110px;
	height: 110px;
	border-radius: 50%;
	overflow: hidden;
	border: 3px solid var(--color-accent, #FE5C08);
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
	flex-shrink: 0;
}

.testimonial-author-block__avatar img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.testimonial-author-block__name {
	font-size: 18px;
	font-weight: 700;
	color: #111827;
	margin: 0;
}

.testimonial-author-block__role {
	font-size: 13px;
	font-weight: 600;
	color: var(--color-accent, #FE5C08);
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.testimonial-author-block__location {
	font-size: 13px;
	color: #6b7280;
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.testimonial-author-block__meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

/* ---------------- Nav buttons ---------------- */

.testimonials-slider-controls {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 28px;
}

.testimonial-nav {
	display: flex;
	align-items: center;
	justify-content: center;
}

.testimonial-nav-btn {
	display: inline-flex;
	position: relative;
	width: 56px;
	height: 56px;
	margin: 0 8px;
	overflow: hidden;
	outline: none;
	background-color: transparent;
	cursor: pointer;
	border: 0;
}

.testimonial-nav-btn:before,
.testimonial-nav-btn:after {
	content: "";
	position: absolute;
	border-radius: 50%;
	inset: 7px;
}

/* Default State: Primary Blue #03193C */
.testimonial-nav-btn:before {
	border: 3px solid var(--color-primary, #03193C);
	transition: opacity 0.4s cubic-bezier(0.77, 0, 0.175, 1) 80ms,
		transform 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955) 80ms;
}

/* Hover State: Accent Yellow #FE5C08 */
.testimonial-nav-btn:after {
	border: 3px solid var(--color-accent, #FE5C08);
	transform: scale(1.3);
	transition: opacity 0.4s cubic-bezier(0.165, 0.84, 0.44, 1),
		transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
	opacity: 0;
}

.testimonial-nav-btn:hover:before,
.testimonial-nav-btn:focus:before {
	opacity: 0;
	transform: scale(0.7);
}

.testimonial-nav-btn:hover:after,
.testimonial-nav-btn:focus:after {
	opacity: 1;
	transform: scale(1);
}

.testimonial-nav-btn .button-box {
	display: flex;
	position: absolute;
	top: 0;
	left: 0;
	transition: transform 0.4s ease;
}

.testimonial-nav-btn .button-elem {
	display: block;
	width: 20px;
	height: 20px;
	margin: 18px 18px 0 18px;
	fill: var(--color-primary, #03193C);
	transition: fill 0.3s ease;
	flex-shrink: 0;
}

.testimonial-nav-btn:hover .button-elem {
	fill: var(--color-accent, #FE5C08);
}

.testimonial-nav-btn:hover .button-box,
.testimonial-nav-btn:focus .button-box {
	transform: translateX(-56px);
}

/* Prev button rotates arrow 180deg */
.testimonial-nav-btn--prev .button-elem {
	transform: rotate(180deg);
}

/* ---------------- Liquid water-droplet dots ---------------- */

.testimonial-dots {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 32px;
}

.testimonial-dot {
	width: 12px;
	height: 12px;
	border-radius: 50px;
	background: rgba(61, 94, 142, 0.25);
	border: none;
	padding: 0;
	cursor: pointer;
	transition: width 0.45s cubic-bezier(0.68, -0.55, 0.265, 1.55),
		background-color 0.3s ease,
		border-radius 0.4s ease;
}

/* Water droplet stretch effect on active */
.testimonial-dot.is-active {
	width: 32px;
	border-radius: 20px;
	background-color: var(--color-accent, #FE5C08);
}

/* ---------------- Mobile / tablet ---------------- */

@media (max-width: 991px) {
	.testimonial-slide.is-active {
		display: flex;
		flex-direction: column;
		grid-template-columns: none;
	}

	.testimonial-slide__hero-img {
		height: 240px;
		border-radius: 12px 12px 0 0;
	}

	.testimonial-slide__card {
		margin: -48px 16px 0;
		padding: 28px 24px 24px;
	}

	.testimonial-slide__right,
	.testimonial-slide__portrait {
		padding: 24px 16px 8px;
	}

	.testimonial-nav {
		justify-content: center;
	}

	.testimonial-dots {
		flex-wrap: wrap;
	}
}

@media (prefers-reduced-motion: reduce) {
	.testimonial-slide.is-active,
	.testimonial-nav-btn:before,
	.testimonial-nav-btn:after,
	.testimonial-nav-btn .button-box,
	.testimonial-nav-btn .button-elem,
	.testimonial-dot {
		transition: none;
		animation: none;
	}
}
