/* ============================================================================
   CMP Testimonials — feature image + rating block, with a grid of review cards.
   Port of frontend-v1/src/components/sections/Testimonials.tsx
   (+ data from src/data/testimonials.ts).
   Handle: cmp-w-cmp-testimonials (auto-registered; loaded via get_style_depends()).
   Tokens come from assets/css/tokens.css (:root / [data-theme]); the dark skin
   and neon accents are inherited automatically. Mobile-first; breakpoints at
   768px / 1024px.

   NOTE: the default cards are PLACEHOLDER reviews — the client must replace
   them with real, verified customer feedback before launch.
   ========================================================================== */

/* ── root ───────────────────────────────────────────────────────────────── */
.cmp-testimonials {
	background-color: var(--canvas-sunk);
}

.cmp-testimonials__inner {
	width: 100%;
	max-width: var(--container, 1400px);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

/* ── top: feature image + heading/rating ────────────────────────────────── */
.cmp-testimonials__top {
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	gap: 2.5rem;
}

.cmp-testimonials__figure {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	margin: 0;
	border-radius: var(--r-lg);
	border: 1px solid var(--border-strong);
	box-shadow: var(--shadow-rest);
}

.cmp-testimonials__figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ── heading + eyebrow ──────────────────────────────────────────────────── */
.cmp-testimonials__eyebrow {
	margin-bottom: 1rem;
}

.cmp-testimonials__heading {
	max-width: 16ch;
	margin: 0;
}

/* ── stats row (rating, divider, intro) ─────────────────────────────────── */
.cmp-testimonials__stats {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
	margin-top: 1.75rem;
}

.cmp-testimonials__score {
	display: flex;
	align-items: center;
	gap: 0.875rem;
}

.cmp-testimonials__rating {
	font-family: var(--font-mono);
	font-size: 2.8rem;
	font-weight: 700;
	line-height: 1;
	font-variant-numeric: tabular-nums;
	color: var(--ink);
}

.cmp-testimonials__reviews {
	margin: 0.375rem 0 0;
	color: var(--muted);
}

.cmp-testimonials__divider {
	display: none;
	width: 1px;
	height: 3rem;
	background-color: var(--border-hair);
}

.cmp-testimonials__intro {
	max-width: 42ch;
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.65;
	color: var(--body);
}

/* ── stars ──────────────────────────────────────────────────────────────── */
.cmp-stars {
	display: flex;
	gap: 0.125rem;
}

.cmp-star {
	width: 15px;
	height: 15px;
	color: var(--amber);
	fill: currentColor;
	flex-shrink: 0;
}

/* ── cards grid ─────────────────────────────────────────────────────────── */
.cmp-testimonials__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-top: 2.5rem;
}

.cmp-testimonials__cell {
	display: flex;
}

/* ── card ───────────────────────────────────────────────────────────────── */
.cmp-card {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	padding: 1.5rem;
	border-radius: var(--r-md);
	border: 1px solid var(--border-hair);
	background-color: var(--card);
	box-shadow: var(--shadow-rest);
}

.cmp-card__quote {
	flex: 1;
	margin: 1rem 0 0;
	font-family: var(--font-display);
	font-size: 1.02rem;
	font-style: italic;
	line-height: 1.6;
	color: var(--ink);
}

.cmp-card__author {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.cmp-card__avatar {
	position: relative;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	overflow: hidden;
	border-radius: 50%;
	border: 1px solid var(--border-hair);
	background-color: var(--canvas-sunk);
}

.cmp-card__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cmp-card__author-meta {
	min-width: 0;
}

.cmp-card__name {
	margin: 0;
	font-family: var(--font-display);
	font-size: 0.95rem;
	font-weight: 600;
	line-height: 1.1;
	color: var(--ink);
}

.cmp-card__role {
	margin: 0.125rem 0 0;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	color: var(--amber-text);
}

/* ── tablet ─────────────────────────────────────────────────────────────── */
@media (min-width: 768px) {
	.cmp-testimonials__stats {
		flex-direction: row;
		align-items: center;
	}

	.cmp-testimonials__divider {
		display: block;
	}

	.cmp-testimonials__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* ── desktop ────────────────────────────────────────────────────────────── */
@media (min-width: 1024px) {
	.cmp-testimonials__top {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: 3.5rem;
	}

	.cmp-testimonials__media {
		grid-column: span 5;
	}

	.cmp-testimonials__head {
		grid-column: span 7;
	}

	.cmp-testimonials__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
