/*
 * Homepage testimonials section — "Testimonials".
 *
 * Every selector is scoped under .amber-testimonials so nothing can leak into
 * the header navigation, the WordPress menu markup or a neighbouring section,
 * and every value comes from assets/css/design-tokens.css.
 *
 * Composition note: the band directly above this one (the SaaS Clean features
 * icon grid) sits on the flat light --color-bg, and the CTA below it is a dark
 * band. This section therefore uses a *tinted* slate band with raised white
 * cards, so all three neighbours read as distinct surfaces instead of one long
 * light stack. Layout is an asymmetric bento, not another even grid.
 *
 * Both the light band and the dark ([data-theme="dark"]) band take their
 * colours from theme tokens, so no panel can end up light-on-light.
 */

.amber-testimonials {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: var(--space-section);
	font-family: var(--font-body);
	color: var(--color-text);
	background-color: var(--color-primary-100);
	background-image: linear-gradient(
		168deg,
		var(--color-primary-200) 0%,
		var(--color-primary-100) 34%,
		var(--color-neutral-100) 100%
	);
}

/* Soft emerald glow in the lower-right corner — decorative only. */
.amber-testimonials::after {
	content: "";
	position: absolute;
	z-index: -1;
	right: -14vw;
	bottom: -18vw;
	width: 46vw;
	height: 46vw;
	max-width: 620px;
	max-height: 620px;
	border-radius: var(--radius-full);
	background-image: radial-gradient(
		circle,
		rgba(16, 185, 129, 0.18) 0%,
		rgba(16, 185, 129, 0) 70%
	);
	pointer-events: none;
}

.amber-testimonials__container {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: var(--container-max);
	margin-inline: auto;
	padding-inline: var(--container-padding);
}

/* ---------- Header ---------- */

.amber-testimonials__header {
	max-width: var(--container-narrow);
	margin-bottom: clamp(var(--space-8), 4vw, var(--space-12));
}

.amber-testimonials__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin: 0 0 var(--space-4);
	padding: var(--space-2) var(--space-4);
	border-radius: var(--radius-full);
	background-color: var(--color-accent-100);
	color: var(--color-accent-800);
	font-size: var(--text-sm);
	font-weight: 500;
	letter-spacing: var(--letter-wide);
	text-transform: uppercase;
}

.amber-testimonials__heading {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(var(--text-2xl), 4vw, var(--text-3xl));
	font-weight: 700;
	line-height: var(--leading-tight);
	letter-spacing: var(--letter-tight);
	color: var(--color-text);
}

.amber-testimonials__intro {
	margin: var(--space-4) 0 0;
	max-width: var(--measure);
	font-size: var(--text-lg);
	line-height: var(--leading-normal);
	color: var(--color-text-muted);
}

/* ---------- Asymmetric bento grid ---------- */

.amber-testimonials__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(var(--space-4), 2vw, var(--space-6));
	margin: 0;
	padding: 0;
	list-style: none;
}

.amber-testimonials__card {
	display: flex;
	flex-direction: column;
	grid-column: span 5;
	overflow: hidden;
	background-color: var(--color-surface-raised);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
	transition:
		transform var(--duration-normal) var(--ease-default),
		box-shadow var(--duration-normal) var(--ease-default),
		border-color var(--duration-normal) var(--ease-default);
}

.amber-testimonials__card:hover,
.amber-testimonials__card:focus-within {
	transform: translateY(-4px);
	border-color: var(--color-secondary-300);
	box-shadow: var(--shadow-lg);
}

/* Large featured quote: photo on top, quote below, spanning two rows. */
.amber-testimonials__card--featured {
	grid-column: span 7;
	grid-row: span 2;
	background-color: var(--color-primary-900);
	border-color: var(--color-primary-800);
	color: var(--color-text-on-dark);
	box-shadow: var(--shadow-lg);
}

.amber-testimonials__card--featured:hover,
.amber-testimonials__card--featured:focus-within {
	border-color: var(--color-secondary-600);
	box-shadow: var(--shadow-xl);
}

/* Wide horizontal strip under the bento. */
.amber-testimonials__card--wide {
	grid-column: span 12;
}

.amber-testimonials__media {
	position: relative;
	overflow: hidden;
}

.amber-testimonials__media-img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	transition: transform var(--duration-slow) var(--ease-default);
}

.amber-testimonials__card:hover .amber-testimonials__media-img,
.amber-testimonials__card:focus-within .amber-testimonials__media-img {
	transform: scale(1.03);
}

/*
 * Square photo inside the wide quote strip. It sits before the author block in
 * the flex row, so the strip never reads as a bare slab of text.
 */
.amber-testimonials__media--inline {
	flex: 0 0 auto;
	order: -2;
	width: clamp(104px, 13vw, 160px);
	border-radius: var(--radius-md);
}

.amber-testimonials__media--inline .amber-testimonials__media-img {
	aspect-ratio: 1 / 1;
}

.amber-testimonials__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--space-4);
	margin: 0;
	padding: clamp(var(--space-5), 2.5vw, var(--space-8));
}

.amber-testimonials__card--wide .amber-testimonials__body {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: clamp(var(--space-4), 3vw, var(--space-10));
}

/* ---------- Rating ---------- */

.amber-testimonials__rating {
	display: flex;
	gap: var(--space-1);
	margin: 0;
	font-size: var(--text-base);
	line-height: 1;
	color: var(--color-highlight-600);
}

.amber-testimonials__card--featured .amber-testimonials__rating {
	color: var(--color-highlight-400);
}

.amber-testimonials__star--empty {
	color: var(--color-neutral-300);
}

.amber-testimonials__card--featured .amber-testimonials__star--empty {
	color: var(--color-primary-700);
}

/* ---------- Quote ---------- */

.amber-testimonials__quote {
	margin: 0;
	padding: 0;
	border: 0;
	quotes: none;
}

.amber-testimonials__quote p {
	margin: 0;
	max-width: var(--measure);
	font-size: var(--text-base);
	line-height: var(--leading-normal);
	color: var(--color-text);
}

.amber-testimonials__quote p::before {
	content: "\201C";
}

.amber-testimonials__quote p::after {
	content: "\201D";
}

.amber-testimonials__quote--lead p {
	font-family: var(--font-heading);
	font-size: clamp(var(--text-lg), 2.2vw, var(--text-xl));
	font-weight: 600;
	line-height: var(--leading-snug);
	letter-spacing: var(--letter-tight);
	color: var(--color-text-on-dark);
}

.amber-testimonials__card--wide .amber-testimonials__quote {
	flex: 1 1 24rem;
}

/* ---------- Author ---------- */

.amber-testimonials__author {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	margin-top: auto;
	padding: 0;
	text-align: left;
}

.amber-testimonials__card--wide .amber-testimonials__author {
	flex: 0 0 auto;
	margin-top: 0;
	order: -1;
}

.amber-testimonials__avatar {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: var(--radius-full);
	background-color: var(--color-primary-100);
	color: var(--color-primary-800);
	font-family: var(--font-heading);
	font-size: var(--text-sm);
	font-weight: 700;
	letter-spacing: var(--letter-normal);
}

.amber-testimonials__card--featured .amber-testimonials__avatar {
	background-color: var(--color-primary-700);
	color: var(--color-text-on-dark);
}

.amber-testimonials__author-text {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.amber-testimonials__name {
	font-family: var(--font-heading);
	font-size: var(--text-base);
	font-weight: 600;
	letter-spacing: var(--letter-tight);
	color: var(--color-text);
}

.amber-testimonials__role {
	font-size: var(--text-sm);
	color: var(--color-text-muted);
}

.amber-testimonials__card--featured .amber-testimonials__name {
	color: var(--color-text-on-dark);
}

.amber-testimonials__card--featured .amber-testimonials__role {
	color: var(--color-text-muted-on-dark);
}

/* ---------- Dark theme ---------- */

[data-theme="dark"] .amber-testimonials {
	background-color: var(--color-bg-dark);
	background-image: linear-gradient(
		168deg,
		var(--color-surface-dark) 0%,
		var(--color-bg-dark) 46%,
		var(--color-surface-dark) 100%
	);
	color: var(--color-text-on-dark);
}

[data-theme="dark"] .amber-testimonials::after {
	background-image: radial-gradient(
		circle,
		rgba(16, 185, 129, 0.24) 0%,
		rgba(16, 185, 129, 0) 70%
	);
}

[data-theme="dark"] .amber-testimonials__eyebrow {
	background-color: var(--color-accent-900);
	color: var(--color-accent-200);
}

[data-theme="dark"] .amber-testimonials__heading,
[data-theme="dark"] .amber-testimonials__quote p,
[data-theme="dark"] .amber-testimonials__name {
	color: var(--color-text-on-dark);
}

[data-theme="dark"] .amber-testimonials__intro,
[data-theme="dark"] .amber-testimonials__role {
	color: var(--color-text-muted-on-dark);
}

[data-theme="dark"] .amber-testimonials__card {
	background-color: var(--color-surface-dark);
	border-color: var(--color-border-dark);
}

[data-theme="dark"] .amber-testimonials__card--featured {
	background-color: var(--color-surface-dark-elevated);
	border-color: var(--color-neutral-600);
}

[data-theme="dark"] .amber-testimonials__avatar {
	background-color: var(--color-surface-dark-elevated);
	color: var(--color-text-on-dark);
}

[data-theme="dark"] .amber-testimonials__star--empty {
	color: var(--color-neutral-600);
}

/* ---------- Moderate entrance (staggered reveal) ---------- */

/*
 * The hidden start state only applies once the section's own script has added
 * .amber-testimonials--js, so the quotes are always readable with JavaScript
 * off, blocked or still loading.
 */
.amber-testimonials--js .amber-testimonials__reveal {
	opacity: 0;
	transform: translateY(18px);
	transition:
		opacity var(--duration-slow) var(--ease-out),
		transform var(--duration-slow) var(--ease-out);
}

.amber-testimonials--js .amber-testimonials__reveal.is-visible {
	opacity: 1;
	transform: none;
}

.amber-testimonials--js .amber-testimonials__grid .amber-testimonials__reveal {
	transition-delay: calc(var(--amber-testi-index, 0) * 90ms);
}

/* ---------- Tablet ---------- */

@media (max-width: 1024px) {
	.amber-testimonials__card,
	.amber-testimonials__card--featured,
	.amber-testimonials__card--wide {
		grid-column: span 12;
		grid-row: auto;
	}

	.amber-testimonials__card--wide .amber-testimonials__body {
		flex-direction: column;
		align-items: flex-start;
	}

	.amber-testimonials__card--wide .amber-testimonials__author {
		order: 0;
		margin-top: auto;
	}

	/* Stacked body: the photo becomes a full-width banner at the top. */
	.amber-testimonials__media--inline {
		order: -2;
		width: 100%;
	}

	.amber-testimonials__media--inline .amber-testimonials__media-img {
		aspect-ratio: 16 / 9;
	}
}

@media (min-width: 641px) and (max-width: 1024px) {
	/* Two even columns for the three smaller quotes, featured stays full width. */
	.amber-testimonials__card {
		grid-column: span 6;
	}

	.amber-testimonials__card--featured {
		grid-column: span 12;
	}

	.amber-testimonials__card--featured .amber-testimonials__media-img {
		aspect-ratio: 21 / 9;
	}
}

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

@media (max-width: 640px) {
	.amber-testimonials__heading {
		font-size: var(--text-xl);
	}

	.amber-testimonials__intro {
		font-size: var(--text-base);
	}

	.amber-testimonials__quote--lead p {
		font-size: var(--text-lg);
	}

	.amber-testimonials__media-img {
		aspect-ratio: 4 / 3;
	}

	.amber-testimonials::after {
		width: 80vw;
		height: 80vw;
		right: -30vw;
	}
}

/* ---------- Motion preference ---------- */

@media (prefers-reduced-motion: reduce) {
	.amber-testimonials__card,
	.amber-testimonials__media-img,
	.amber-testimonials--js .amber-testimonials__reveal {
		transition: none;
	}

	.amber-testimonials__card:hover,
	.amber-testimonials__card:focus-within {
		transform: none;
	}

	.amber-testimonials__card:hover .amber-testimonials__media-img,
	.amber-testimonials__card:focus-within .amber-testimonials__media-img {
		transform: none;
	}

	.amber-testimonials--js .amber-testimonials__reveal {
		opacity: 1;
		transform: none;
	}
}
