/* Google reviews on the Prima Nexus website: the sliding cards KB picked on 2026-09-25 (mockup A).
   Written into the pages by scripts/build-reviews.mjs from data/reviews.json. Thin navy lines and
   open space, never boxed cards (Marketing/PRIMA_BRAND_GUIDE.md, rule 58). Uses the site tokens. */
.pn-rv-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 28px; flex-wrap: wrap; }
.pn-rv-score { display: flex; align-items: center; gap: 16px; border-left: 3px solid var(--pn-accent); padding: 6px 0 6px 20px; }
.pn-rv-num { font-family: var(--ff-serif); font-size: 52px; line-height: 1; color: var(--pn-navy); }
.pn-rv-num small { font-size: 20px; color: var(--pn-ink-mute); }
.pn-rv-meta { font-size: 14px; line-height: 1.5; color: var(--pn-ink-soft); }
.pn-rv-meta b { color: var(--pn-navy); font-weight: 600; }
.pn-rv-stars { color: #B8862F; letter-spacing: 1px; white-space: nowrap; font-size: 17px; }
.pn-rv-stars .off { color: #d9d2c3; }
.pn-rv-meta .pn-rv-stars { display: block; font-size: 19px; }

.pn-rv-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 88px) / 3); gap: 44px; overflow-x: auto;
  scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; margin-top: 40px; padding-bottom: 4px; align-items: start; }
.pn-rv-track::-webkit-scrollbar { display: none; }
.pn-rv-track:focus-visible { outline: 2px solid var(--pn-accent); outline-offset: 6px; }
.pn-rv-card { scroll-snap-align: start; border-top: 1px solid var(--pn-navy); padding-top: 22px; display: flex; flex-direction: column; min-width: 0; }
.pn-rv-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.pn-rv-src { font-family: var(--ff-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--pn-ink-mute); white-space: nowrap; }
.pn-rv-q { font-family: var(--ff-serif); font-size: 46px; line-height: .6; color: var(--pn-accent); height: 22px; margin-top: 14px; }
.pn-rv-text { font-family: var(--ff-serif); font-size: 19px; line-height: 1.5; color: var(--pn-navy); margin-top: 10px; }
.pn-rv-text.is-clamped { display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.pn-rv-more { align-self: flex-start; margin-top: 8px; font-size: 13px; font-weight: 500; color: var(--pn-navy); border-bottom: 1px solid var(--pn-accent); padding-bottom: 1px; }
.pn-rv-who { display: flex; align-items: center; gap: 12px; padding-top: 22px; }
.pn-rv-av { width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: 15px; color: #fff; flex: none; }
.pn-rv-av.c0 { background: #0B2545; } .pn-rv-av.c1 { background: #a8874f; } .pn-rv-av.c2 { background: #13325c; } .pn-rv-av.c3 { background: #5b6b86; }
.pn-rv-name { font-weight: 600; font-size: 14.5px; color: var(--pn-ink); }
.pn-rv-topic { font-family: var(--ff-mono); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--pn-accent-deep); margin-top: 3px; }

.pn-rv-controls { display: flex; align-items: center; justify-content: center; gap: 18px; margin-top: 26px; }
.pn-rv-arrow { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--pn-navy); display: inline-flex; align-items: center;
  justify-content: center; color: var(--pn-navy); font-size: 18px; background: transparent; }
.pn-rv-arrow:hover:not([disabled]) { background: var(--pn-navy); color: var(--pn-cream); }
.pn-rv-arrow[disabled] { opacity: .35; cursor: default; }
.pn-rv-dots { display: flex; gap: 8px; align-items: center; }
.pn-rv-dot { width: 8px; height: 8px; border-radius: 4px; background: #d6cfbf; transition: width .2s ease; }
.pn-rv-dot.is-on { background: var(--pn-navy); width: 24px; }
.pn-rv-count { font-family: var(--ff-mono); font-size: 12px; letter-spacing: .12em; color: var(--pn-ink-soft); min-width: 64px; justify-content: center; }
.pn-rv-links { display: flex; gap: 12px 22px; flex-wrap: wrap; justify-content: center; margin-top: 18px; }
.pn-rv-fine { text-align: center; margin-top: 16px; }
.pn-rv.is-static .pn-rv-controls { display: none; }

@media (max-width: 960px) { .pn-rv-track { grid-auto-columns: calc((100% - 44px) / 2); } }
@media (max-width: 620px) {
  .pn-rv-track { grid-auto-columns: 84%; gap: 28px; margin-top: 30px; }
  .pn-rv-num { font-size: 44px; }
  .pn-rv-text { font-size: 18px; }
}
@media (prefers-reduced-motion: reduce) { .pn-rv-track { scroll-behavior: auto; } .pn-rv-dot { transition: none; } }
