/* Client reviews as a swipe row: scroll sideways, drag, or use the arrows. */
.rv-grid { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 4px; overscroll-behavior-x: contain;
  padding: 6px 4px 18px; margin-inline: -4px; scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; }
.rv-grid::-webkit-scrollbar { display: none; }
.rv-grid.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.rv-grid .review { flex: 0 0 min(380px, 82vw); scroll-snap-align: start; }
.rv-grid .review--feature { flex-basis: min(560px, 88vw); grid-column: auto; }
.rv-grid:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 12px; }
.rv-controls { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; }
.rv-hint { font: 600 .68rem/1 var(--font-head); letter-spacing: .18em; text-transform: uppercase; color: var(--gold-ink); margin-right: auto; display: inline-flex; align-items: center; gap: 10px; }
.rv-hint::after { content: "\2192"; display: inline-block; animation: rvNudge 1.8s var(--ease) infinite; }
@keyframes rvNudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(7px); } }
.rv-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gold); background: var(--cream); color: var(--forest); font-size: 1.1rem; cursor: pointer;
  transition: background .25s var(--ease), color .25s var(--ease), transform .25s var(--ease), opacity .25s var(--ease); }
.rv-btn:hover:not(:disabled) { background: var(--forest); color: var(--cream); transform: translateY(-2px); }
.rv-btn:disabled { opacity: .35; cursor: default; }
.rv-btn:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.rv-count { font: 600 .8rem/1 var(--font-head); color: var(--forest); min-width: 4.2em; text-align: center; font-variant-numeric: tabular-nums; }
.calm .rv-hint::after, .calm .rv-grid { animation: none; scroll-behavior: auto; }
@media (prefers-reduced-motion: reduce) { .rv-hint::after { animation: none; } }

/* star rating on each review (visual only, no rating markup for search engines) */
.rv-score { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rv-stars { font-size: 1.05rem; letter-spacing: .12em; line-height: 1; background: linear-gradient(110deg, #A87C2C, #D4B063 45%, #A87C2C); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; text-shadow: none; }
.review--feature .rv-stars { background: linear-gradient(110deg, #C9A55C, #E6CB8A 45%, #C9A55C); -webkit-background-clip: text; background-clip: text; }
.review:hover .rv-stars { animation: rvShine 1.1s var(--ease); }
@keyframes rvShine { 0% { filter: brightness(1); transform: scale(1); } 40% { filter: brightness(1.3); transform: scale(1.06); } 100% { filter: brightness(1); transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .review:hover .rv-stars { animation: none; } }
