/* Homepage reviews only. Without JS, use the same accessible swipe rail as mobile. */
.h-reviews { --review-width: 340px; --review-gap: 18px; overflow: hidden; }
.h-reviews .h-h2 { margin-bottom: 20px; }
.h-reviews .h-rating { gap: 10px 16px; font-size: 15px; }
.h-reviews .h-rating > b, .h-reviews .h-review-score b { color: #fff; }
.h-reviews .h-review-score { white-space: nowrap; color: #a8b7cd; }
.h-reviews-meta { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px 18px; margin: 12px 0 28px; }
.h-reviews-meta p { margin: 0; color: #93a5be; font-size: 13px; }
.h-reviews-viewport:focus-visible { outline: 2px solid #80adff; outline-offset: 3px; }
.h-reviews-viewport {
  max-width: 100%; min-width: 0; overflow-x: auto; scrollbar-width: none;
  scroll-snap-type: x proximity; overscroll-behavior-x: contain;
}
.h-reviews-viewport::-webkit-scrollbar { display: none; width: 0; height: 0; }
.h-reviews-track { display: flex; gap: 0; width: max-content; }
.h-reviews-group { display: flex; flex: 0 0 auto; gap: var(--review-gap); padding: 8px var(--review-gap) 18px 0; }
.h-reviews .rev {
  box-sizing: border-box; flex: 0 0 var(--review-width); width: var(--review-width); min-width: 0;
  padding: 22px; gap: 16px; border: 1px solid #2b405e; border-radius: 16px;
  background: radial-gradient(ellipse at top left, #1c365340, transparent 75%), #111e33;
  box-shadow: 0 6px 20px #0002, inset 0 1px 0 #80adff0a;
  scroll-snap-align: start;
}
.h-reviews .rev-head { gap: 12px; }
.h-reviews .rev-head > div { min-width: 0; }
.h-reviews .rev-head b { display: block; color: #f3f6fd; font-size: 14px; overflow-wrap: anywhere; }
.h-reviews .rev-head time { display: block; margin-top: 4px; font-size: 11px; color: #93a5be; }
.h-reviews .ava { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; background: #203a59; border: 1px solid #375676; color: #c5ddff; }
.h-reviews .rev p { font-size: 14px; line-height: 1.7; color: #bfccde; overflow-wrap: anywhere; white-space: pre-line; }
/* Filled green stars, including the overall rating; no chamfered tiles or outlines. */
.h-reviews .stars { gap: 4px; }
.h-reviews .stars span { width: 18px; height: 18px; clip-path: none; border-radius: 0; background: transparent; color: #344e6b; }
.h-reviews .stars span.on { background: transparent; color: #22c55e; }
.h-reviews .stars .ico { width: 18px; height: 18px; fill: currentColor; stroke: none; }
.h-reviews.is-animated .h-reviews-viewport {
  overflow: hidden; scroll-snap-type: none;
  mask-image: linear-gradient(to right, transparent, #000 24px, #000 calc(100% - 24px), transparent);
}
.h-reviews.is-animated .h-reviews-track { animation: g2u-reviews-marquee var(--reviews-duration, 120s) linear infinite; will-change: transform; }
.h-reviews[data-document-hidden="true"] .h-reviews-track,
.h-reviews-viewport:focus-within .h-reviews-track { animation-play-state: paused; }
@media (hover: hover) { .h-reviews-viewport:hover .h-reviews-track { animation-play-state: paused; } }
@keyframes g2u-reviews-marquee { to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 1024px) { .h-reviews { --review-width: 320px; } }
@media (max-width: 760px), (prefers-reduced-motion: reduce) {
  .h-reviews.is-animated .h-reviews-track { animation: none; transform: none; will-change: auto; }
  .h-reviews.is-animated .h-reviews-viewport { overflow-x: auto; mask-image: none; scroll-snap-type: x proximity; }
  .h-reviews [data-reviews-clone], .h-reviews .h-review-repeat { display: none; }
}
@media (max-width: 760px) {
  .h-reviews { --review-width: clamp(260px, 80vw, 320px); --review-gap: 14px; }
  .h-reviews .rev { padding: 20px; }
  .h-reviews .h-rating { font-size: 14px; gap: 8px 12px; }
  .h-reviews-meta { margin-bottom: 20px; }
}
