/* Google reviews row (_includes/review-row.html), shared by the homepage
   and /reviews. Loaded by default.html when a page sets review_row: true.
   Uses the page stylesheet's own tokens (--bg, --border, --ink, --m-*). */
.rv-bar { display:flex; align-items:center; justify-content:flex-start; gap:12px; flex-wrap:wrap; margin-top:2.5rem; margin-bottom:1.25rem; }
.rv-badge { display:inline-flex; align-items:center; gap:10px; padding:10px 16px; min-height:44px; background:var(--bg); border:1px solid var(--border); border-radius:50px; color:var(--ink); text-decoration:none; box-shadow:0 1px 3px rgba(15,23,42,0.06); transition:border-color 0.15s,transform 0.1s var(--ease-press); }
.rv-badge:active { transform:scale(0.98); }
@media (hover: hover) { .rv-badge:hover { border-color:var(--border2); } .rv-badge:hover .rv-badge-link { text-decoration:underline; text-underline-offset:3px; } }
.rv-badge .rv-g { width:22px; height:22px; }
.rv-badge-score { font-family:var(--display); font-size:1.3rem; font-weight:800; letter-spacing:-0.02em; line-height:1; }
.rv-badge-text { font-size:0.8125rem; font-weight:500; color:var(--muted); }
.rv-badge-link { color:var(--blue); font-weight:600; }
.rv-row { overflow-x:auto; scrollbar-width:none; scroll-snap-type:x proximity; scroll-behavior:auto; padding:4px 2px 8px; -webkit-mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent); mask-image:linear-gradient(90deg,transparent,#000 40px,#000 calc(100% - 40px),transparent); }
.rv-row::-webkit-scrollbar { display:none; }
.rv-row.is-auto { scroll-snap-type:none; }
/* A mouse can grab and throw the row (_includes/review-row.html). */
@media (hover: hover) and (pointer: fine) { .rv-row.is-auto { cursor:grab; } .rv-row.is-auto.is-dragging { cursor:grabbing; } }
.rv-row.is-dragging { -webkit-user-select:none; user-select:none; }
.rv-row:focus-visible { outline:2px solid var(--blue); outline-offset:4px; border-radius:12px; }
.rv-track { display:flex; gap:14px; list-style:none; margin:0; padding:0; width:max-content; }
.rv-card { flex:0 0 300px; display:flex; flex-direction:column; gap:10px; padding:1.25rem 1.3rem; background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); box-shadow:0 1px 3px rgba(15,23,42,0.05); scroll-snap-align:start; }
.rv-head { display:flex; align-items:center; gap:10px; }
.rv-avatar { flex:0 0 40px; width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--display); font-size:1.05rem; font-weight:700; text-transform:uppercase; }
.rv-c0 { background:#6D28D9; } .rv-c1 { background:#1D4ED8; } .rv-c2 { background:#BE185D; } .rv-c3 { background:#15803D; } .rv-c4 { background:#B45309; }
.rv-who { display:flex; flex-direction:column; min-width:0; flex:1; }
.rv-name { font-family:var(--display); font-size:0.9375rem; font-weight:700; color:var(--ink); line-height:1.3; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rv-src { font-size:0.8125rem; color:var(--muted); line-height:1.4; }
.rv-head .rv-g { flex:0 0 20px; width:20px; height:20px; }
.rv-text { font-size:0.875rem; line-height:1.65; color:var(--ink2); display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:7; line-clamp:7; overflow:hidden; }
@media (max-width: 720px) {
  .rv-bar { flex-wrap:nowrap; margin-top:1.5rem; }
  .rv-badge { padding:8px 14px; gap:8px; min-width:0; min-height:48px; }
  .rv-badge-pre { display:none; }
  .rv-row { -webkit-mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent); mask-image:linear-gradient(90deg,transparent,#000 16px,#000 calc(100% - 16px),transparent); }
  .rv-card { flex-basis:min(300px, 82vw); }
}

/* Phones: the row runs edge to edge, the first card on the 20px line. */
@media (max-width: 720px) {
  .rv-row { margin-left: calc(-1 * var(--m-gutter)); margin-right: calc(-1 * var(--m-gutter)); padding-left: var(--m-gutter); padding-right: var(--m-gutter); scroll-padding-inline: var(--m-gutter); }
  .rv-track { gap: var(--m-gap-cards); }
  .rv-card { padding: var(--m-card-pad); border-radius: var(--m-card-radius); }
}
@media (prefers-reduced-motion: reduce) {
  .rv-badge { transition-duration: 0.15s; }
  .rv-badge:active { transform: none; }
}
@media (prefers-contrast: more) {
  .rv-src, .rv-badge-text { color: #334155; }
  .rv-card, .rv-badge { border-color: #0F172A; }
}
