/* ==========================================================================
   Recenze — horizontal scroll carousel
   ========================================================================== */

.recenze__head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
}
.recenze__head .section__title { margin-bottom: 0.9rem; }
.recenze__head .section__lead { margin-inline: auto; }

/* Full-width viewport with soft fade at both edges. */
.recenze__carousel {
	position: relative;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);
	mask-image: linear-gradient(to right, transparent 0, #000 7%, #000 93%, transparent 100%);
}

/* Track — two identical sets, continuously drifting. */
.recenze__track {
	display: flex;
	list-style: none;
	margin: 0;
	width: max-content;
	padding-block: 1rem 2rem;
	animation: recenze-marquee 126s linear infinite; /* 3× slower (round 8) */
}
.recenze__carousel:hover .recenze__track { animation-play-state: paused; }

@keyframes recenze-marquee {
	from { transform: translateX(-50%); }
	to { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
	.recenze__track { animation: none; }
}

/* Round 7: card modelled on m2stoma.cz/recenze — yellow stars on top, the
   review text (clamped, with "Číst více"), a hairline, then the reviewer's
   Google photo + name with the Google wordmark on the right. */
.review-card {
	flex: 0 0 clamp(290px, 30vw, 380px);
	margin-right: clamp(1rem, 2vw, 1.5rem);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: clamp(1.5rem, 2.5vw, 2.25rem);
	background: var(--bg-body);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
}

.review-card__stars { font-size: 1.15rem; letter-spacing: 0.08em; line-height: 1; margin-bottom: 1.1rem; }
.review-card__stars .is-on { color: #fbbc04; }  /* Google review yellow */
.review-card__stars .is-off { color: var(--border-strong); }

.review-card__title {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--heading);
	margin-bottom: 0.55rem;
}
.review-card__text {
	font-size: 1rem;
	line-height: 1.65;
	color: var(--body);
	margin: 0;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	line-clamp: 6;
	overflow: hidden;
}
.review-card.is-open .review-card__text { -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }

.review-card__more {
	margin-top: 0.6rem;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 0.92rem;
	font-weight: 700;
	color: var(--heading);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.review-card__more:hover { color: var(--primary); }
.review-card__more[hidden] { display: none; }

.review-card__foot {
	align-self: stretch;
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin-top: auto;
	padding-top: 1.25rem;
	border-top: 1px solid var(--border);
}
/* Gap above the hairline: on the text, or on "Číst více" when it shows. */
.review-card__text { margin-bottom: 1.5rem; }
.review-card__text:has(+ .review-card__more:not([hidden])) { margin-bottom: 0; }
.review-card__more { margin-bottom: 1.5rem; }

.review-card__avatar {
	flex: none;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	overflow: hidden;
	background: var(--primary);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.review-card__photo { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.review-card__initial { font-weight: 700; font-size: 1.2rem; }
.review-card__name { font-weight: 700; color: var(--heading); font-size: 1rem; line-height: 1.3; }
.review-card__google { margin-left: auto; flex: none; width: 56px; height: auto; }

/* --- Google attribution + reviewer profile photos ----------------------- */

.recenze__source {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0.9rem 0 0;
	font-size: 0.85rem;
	font-weight: 700;
	color: var(--muted);
}
.recenze__source svg { width: 1rem; height: 1rem; }

/* Aggregate rating, separated from the "Recenze z Google" label by a hairline. */
.recenze__score {
	padding-left: 0.55rem;
	border-left: 1px solid var(--border);
	color: var(--heading);
}

