/* The scrolling review strips that sit at the page breaks. Loaded by the
   homepage AND by every generated page, so it carries its own colours instead
   of borrowing either page's variables — a light paper band in both places.
   Markup is written by tools/build-pages.js from assets/reviews/reviews.json. */
.rv{background:#F7F5F0;color:#16181C;padding:26px 0 30px;border-top:1px solid #E2DDD2;border-bottom:1px solid #E2DDD2;
  font-family:"Segoe UI",system-ui,-apple-system,sans-serif;overflow:hidden}
.rv-head{max-width:980px;margin:0 auto 16px;padding:0 24px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#4F5660}
.rv-head b{color:#16181C;font-weight:700}
.rv-head a{color:#8E6C1B;text-decoration:none;border-bottom:1px solid #C9A961}
.rv-head a:hover{color:#16181C}
.rv-stars{color:#C9982B;letter-spacing:.08em;font-size:15px}
.rv-view{overflow:hidden}
.rv-track{list-style:none;margin:0;padding:0 8px;display:flex;gap:16px;width:max-content;
  animation:rv-scroll calc(var(--n) * 8s) linear infinite}
.rv-view:hover .rv-track,.rv-view:focus-within .rv-track{animation-play-state:paused}
/* The track holds the set twice; sliding exactly half its width loops seamlessly. */
@keyframes rv-scroll{to{transform:translateX(calc(-50% - 8px))}}
.rv-card{flex:0 0 340px;background:#fff;border:1px solid #E2DDD2;border-radius:4px;padding:18px 20px 16px;
  box-shadow:0 1px 2px rgba(22,24,28,.05);display:flex;flex-direction:column}
.rv-card .rv-stars{font-size:14px}
.rv-card p{margin:8px 0 12px;font-size:14.5px;line-height:1.55;color:#2B2F36;font-weight:400;max-width:none;
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.rv-card footer{margin-top:auto;padding:0;text-align:left;font-size:13px;color:#7A818B;background:none;display:block}
.rv-card footer b{color:#16181C;font-weight:600}
@media (max-width:760px){
  .rv-card{flex-basis:280px}
  .rv-head{font-size:12px}
}
/* No motion: the strip becomes a row you scroll by hand, and the duplicate set
   is hidden so nothing is read twice. */
@media (prefers-reduced-motion:reduce){
  .rv-track{animation:none}
  .rv-view{overflow-x:auto}
  .rv-card[aria-hidden]{display:none}
}
