/* rNexa reviews: star summary and a one-row, right-to-left review loop */
.stars {
  --size: 15px;
  position: relative; display: inline-block; flex: none;
  width: calc(var(--size) * 5); height: var(--size); background: var(--line);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.6l2.9 6 6.5.8-4.8 4.5 1.2 6.5L12 17.3l-5.8 3.1 1.2-6.5L2.6 9.4l6.5-.8z'/%3E%3C/svg%3E") 0 0 / var(--size) var(--size) repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.6l2.9 6 6.5.8-4.8 4.5 1.2 6.5L12 17.3l-5.8 3.1 1.2-6.5L2.6 9.4l6.5-.8z'/%3E%3C/svg%3E") 0 0 / var(--size) var(--size) repeat-x;
}
.stars::before { content: ""; position: absolute; inset: 0; width: calc(var(--r) / 5 * 100%); background: #f5a524; }
.stars-lg { --size: 22px; }
html:not([data-theme="dark"]) .stars { background: #e3e4e8; }

.rq-sum { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; color: var(--ink-2); }
.rq-sum b { font-size: 20px; font-weight: 600; color: var(--ink); }

.marquee {
  --gap: 16px;
  container-type: inline-size;
  margin-top: 48px; overflow: hidden; text-align: left;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.marquee-track { display: flex; gap: var(--gap); width: max-content; padding: 4px 0; }
.marquee.is-moving .marquee-track { animation: rv-slide var(--dur, 35s) linear infinite; }
.marquee.is-moving:hover .marquee-track, .marquee.is-moving:focus-within .marquee-track, .marquee.is-off .marquee-track { animation-play-state: paused; }
/* The track holds the list twice, so sliding by half its width plus one gap lands on the copy. */
@keyframes rv-slide { to { transform: translate3d(calc(-50% - var(--gap) / 2), 0, 0); } }

.rq-card {
  display: flex; flex-direction: column; gap: 14px;
  width: calc((100cqw - 3 * var(--gap)) / 4); min-height: 240px; padding: 22px;
  border: 1px solid var(--line); border-radius: 20px; background: var(--card);
}
.rq-quote {
  flex: 1; margin: 0; font-size: 15px; line-height: 1.55; color: var(--ink);
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}
.rq-who { display: flex; align-items: center; gap: 10px; }
.rq-avatar { display: grid; place-items: center; width: 32px; height: 32px; flex: none; border-radius: 50%; background: var(--surface); font-size: 13px; font-weight: 600; color: var(--ink-2); }
.rq-name { display: grid; min-width: 0; }
.rq-name b { font-size: 14px; font-weight: 500; }
.rq-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; color: var(--ink-3); }
.rq-note { margin: 24px 0 0; font-size: 14px; color: var(--ink-3); }
.rq-note a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--field-line); }

@media (max-width: 860px) {
  .rq-card { width: 78cqw; }
}
@media (prefers-reduced-motion: reduce) {
  .marquee { overflow-x: auto; scroll-snap-type: x mandatory; }
  .rq-card { scroll-snap-align: start; }
}
