/* 6.2 Google reviews carousel: reviewer photo, name, stars, newest first. Own classes (grev-*).
   Cards read the section's role colours, so they work on light and dark sections. */

.grev { position: relative; margin-top: var(--s-6); }
.grev__track {
	display: flex; gap: var(--s-4);
	overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none; -ms-overflow-style: none;
	padding-bottom: var(--s-2);
}
.grev__track::-webkit-scrollbar { display: none; }
.grev__card {
	flex: 0 0 calc((100% - 2 * var(--s-4)) / 3);
	scroll-snap-align: start;
	display: flex; flex-direction: column;
	padding: var(--s-5);
	background: var(--bg-2); border-radius: var(--radius-lg);
	min-width: 0;
}
.grev__head { display: flex; align-items: center; gap: var(--s-3); }
.grev__photo, .grev__initial { width: 48px; height: 48px; border-radius: 50%; flex: none; }
.grev__photo { object-fit: cover; background: var(--rule); }
.grev__initial { display: grid; place-items: center; background: var(--c-accent); color: var(--c-white); font-weight: 800; font-size: var(--fs-2); }
.grev__who { display: grid; min-width: 0; line-height: 1.3; }
.grev__name { font-weight: 800; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
a.grev__name:hover { text-decoration: underline; text-underline-offset: 3px; }
.grev__when { font-size: var(--fs-0); color: var(--ink-2); }
.grev__stars { margin-top: var(--s-3); color: var(--c-gold); letter-spacing: 2px; line-height: 1; }
.grev__text {
	margin-top: var(--s-2); color: var(--ink); text-wrap: pretty;
	display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; line-clamp: 6; overflow: hidden;
}
.grev__card.is-open .grev__text { display: block; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }
.grev__more { margin-top: var(--s-2); align-self: start; font-weight: 700; font-size: var(--fs-0); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.grev__nav { display: flex; align-items: center; gap: var(--s-2); margin-top: var(--s-4); }
.grev__btn, .grev__pause { width: 44px; height: 44px; border: 1.5px solid var(--rule); border-radius: 50%; display: grid; place-items: center; color: var(--ink); transition: border-color .2s var(--ease), opacity .2s; }
.grev__btn:hover, .grev__pause:hover { border-color: var(--ink); }
.grev__btn[disabled] { opacity: .35; cursor: default; }
.grev__btn::before { content: ""; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); margin-left: -3px; }
.grev__btn--prev::before { transform: rotate(135deg); margin-left: 3px; }
.grev__pause { width: 36px; height: 36px; }
.grev__pause::before { content: ""; width: 10px; height: 10px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.grev__pause[aria-pressed="true"]::before { width: 0; height: 0; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; margin-left: 2px; }
.grev__src { margin-left: auto; font-size: var(--fs-0); font-weight: 600; color: var(--ink-2); text-decoration: underline; text-underline-offset: 3px; }
.grev__src:hover { color: var(--ink); }

@media (max-width: 960px) { .grev__card { flex-basis: calc((100% - var(--s-4)) / 2); } }
@media (max-width: 600px) { .grev__card { flex-basis: 86%; padding: var(--s-4); } }
@media (prefers-reduced-motion: reduce) { .grev__btn, .grev__pause { transition: none; } }
