/* =========================================================================
   Testimonials Page — styles
   Matches the same calm clinical palette used on the Videos page.
   Drop this file at: /wp-content/themes/your-theme/assets/testimonials.css
   ========================================================================= */

:root {
	--tst-ink:        #1A2B3C;
	--tst-ink-soft:   #5B6B7C;
	--tst-accent:     #0E7C7B;
	--tst-accent-dark:#0A5F5E;
	--tst-bg:         #F6F8F8;
	--tst-card-bg:    #FFFFFF;
	--tst-border:     #E3E8EA;
	--tst-star:       #F2A93B;
	--tst-radius:     12px;
	--tst-shadow:     0 4px 18px rgba(26, 43, 60, 0.08);
	--tst-shadow-hover: 0 10px 28px rgba(26, 43, 60, 0.12);
}

.testimonials-page * {
	box-sizing: border-box;
}

/* Clears a sticky/fixed site nav — same fix applied on the Videos page.
   Adjust if your theme's header height differs. */
.testimonials-page {
	padding-top: 90px;
}

@media (max-width: 768px) {
	.testimonials-page {
		padding-top: 70px;
	}
}

.tst-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 24px;
}

/* ---- Hero ------------------------------------------------------------- */

.tst-hero {
	background: linear-gradient(135deg, var(--tst-ink) 0%, #213B4E 100%);
	padding: 64px 24px 48px;
	text-align: center;
}

.tst-hero__inner {
	max-width: 680px;
	margin: 0 auto;
}

.tst-hero__title {
	color: #fff;
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0 0 12px;
}

.tst-hero__subtitle {
	color: rgba(255, 255, 255, 0.78);
	font-size: 1.05rem;
	line-height: 1.6;
	margin: 0 0 24px;
}

.tst-rating-summary {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin-bottom: 20px;
}

.tst-rating-summary__stars {
	display: inline-flex;
	gap: 2px;
}

.tst-rating-summary__stars svg.is-filled {
	fill: var(--tst-star);
}

.tst-rating-summary__stars svg.is-empty {
	fill: rgba(255, 255, 255, 0.25);
}

.tst-rating-summary__text {
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.95rem;
}

.tst-rating-summary__text strong {
	color: #fff;
	font-size: 1.05rem;
}

.tst-google-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: #fff;
	font-weight: 600;
	font-size: 0.9rem;
	padding: 10px 20px;
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.2s ease;
}

.tst-google-link:hover {
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
}

/* ---- Grid section -------------------------------------------------------*/

.tst-grid-section {
	background: var(--tst-bg);
	padding: 56px 0 72px;
}

.tst-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

@media (max-width: 980px) {
	.tst-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
	.tst-grid { grid-template-columns: 1fr; gap: 18px; }
}

/* ---- Review card ---------------------------------------------------------*/

.tst-card {
	background: var(--tst-card-bg);
	border: 1px solid var(--tst-border);
	border-radius: var(--tst-radius);
	padding: 22px 22px 24px;
	box-shadow: var(--tst-shadow);
	transition: transform 0.22s ease, box-shadow 0.22s ease;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.tst-card:hover {
	transform: translateY(-3px);
	box-shadow: var(--tst-shadow-hover);
}

.tst-card__head {
	display: flex;
	align-items: center;
	gap: 12px;
}

.tst-card__avatar {
	flex-shrink: 0;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--tst-accent);
	color: #fff;
	font-weight: 700;
	font-size: 1.05rem;
	display: flex;
	align-items: center;
	justify-content: center;
	text-transform: uppercase;
}

.tst-card__name-wrap {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-width: 0;
}

.tst-card__name {
	color: var(--tst-ink);
	font-weight: 600;
	font-size: 0.98rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.tst-card__date {
	color: var(--tst-ink-soft);
	font-size: 0.8rem;
}

.tst-card__google-mark {
	flex-shrink: 0;
	opacity: 0.85;
}

.tst-card__stars {
	display: inline-flex;
	gap: 2px;
}

.tst-card__stars svg.is-filled {
	fill: var(--tst-star);
}

.tst-card__stars svg.is-empty {
	fill: #DCE2E5;
}

.tst-card__text {
	color: var(--tst-ink);
	font-size: 0.95rem;
	line-height: 1.6;
	margin: 0;
}

/* ---- Load more -----------------------------------------------------------*/

.tst-loadmore-wrap {
	text-align: center;
	margin-top: 36px;
}

.tst-loadmore-btn {
	background: #fff;
	border: 1.5px solid var(--tst-accent);
	color: var(--tst-accent-dark);
	font-weight: 600;
	font-size: 0.95rem;
	padding: 12px 30px;
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.tst-loadmore-btn:hover {
	background: var(--tst-accent);
	color: #fff;
}

/* ---- Empty state ----------------------------------------------------------*/

.tst-empty {
	text-align: center;
	padding: 48px 20px;
	color: var(--tst-ink-soft);
	font-size: 1.05rem;
}

.tst-empty a {
	color: var(--tst-accent-dark);
	font-weight: 600;
	text-decoration: underline;
}

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

.tst-cta {
	text-align: center;
	margin-top: 48px;
	padding-top: 36px;
	border-top: 1px solid var(--tst-border);
}

.tst-cta p {
	color: var(--tst-ink-soft);
	font-size: 1rem;
	margin: 0 0 16px;
}

.tst-cta__btn {
	display: inline-flex;
	align-items: center;
	background: var(--tst-accent);
	color: #fff;
	font-weight: 600;
	font-size: 0.95rem;
	padding: 13px 30px;
	border-radius: 999px;
	text-decoration: none;
	transition: background 0.2s ease, transform 0.2s ease;
}

.tst-cta__btn:hover {
	background: var(--tst-accent-dark);
	transform: translateY(-2px);
	color: #fff;
}

/* ---- Page content (Gutenberg) ---------------------------------------------*/

.tst-page-content {
	padding: 32px 0 0;
}

/* ---- Reduced motion ---------------------------------------------------------*/

@media (prefers-reduced-motion: reduce) {
	.tst-card,
	.tst-loadmore-btn,
	.tst-cta__btn {
		transition: none !important;
	}
	.tst-card:hover,
	.tst-cta__btn:hover {
		transform: none;
	}
}
