/* "What clients say" (reviews.js). Dark cards + red stars; swipe row on phones, 3-up grid on desktop. Text-only, no Google logo. */
.port.rv{background:linear-gradient(180deg,var(--bk) 0%,#140d0d 100%);border-top:1px solid var(--line)}
.rv__top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 40px;margin-bottom:clamp(28px,5vw,48px)}
.port .rv__top .head{margin:0}
.port .rv__top .h2{margin:0}
.rv__score{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:16px;align-items:center;color:#fff;text-decoration:none;padding:14px 20px;border:1px solid var(--line);border-radius:20px;background:#171717;transition:border-color .25s}
.rv__score:hover{border-color:rgba(255,0,0,.6)}
.rv__score:focus-visible,.rv__more:focus-visible,.rv__row:focus-visible{outline:3px solid #fff;outline-offset:3px}
.rv__big{grid-row:1/3;font:400 clamp(3.2rem,9vw,4.6rem)/.9 var(--disp);letter-spacing:.01em}
.rv__from{font:600 .9rem/1.3 var(--sans);color:#ddd;text-decoration:underline;text-decoration-color:rgba(255,255,255,.35);text-underline-offset:3px}
.rv__score:hover .rv__from{text-decoration-color:var(--red)}
/* stars: grey base + red fill clipped to the rating width */
.rv__hs,.rv__cs{position:relative;display:inline-block;line-height:0;white-space:nowrap}
.rv__hs svg{width:22px;height:22px}
.rv__cs svg{width:17px;height:17px}
.rv__s0 svg{fill:#3a3a3a}
.rv__s1{position:absolute;inset:0 auto 0 0;overflow:hidden}
.rv__s1 svg{fill:var(--red)}
.rv__s0,.rv__s1{display:inline-flex;gap:2px}
/* row: phones = swipe with scroll-snap */
.rv__row{list-style:none;margin:0;padding:4px 2px 18px;display:grid;grid-auto-flow:column;grid-auto-columns:min(86%,360px);gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#444 transparent}
.rv__card{scroll-snap-align:start;min-width:0}
.rv__in{display:flex;flex-direction:column;gap:14px;height:100%;background:#171717;border:1px solid var(--line);border-radius:22px;padding:22px 22px 20px;box-shadow:0 30px 60px -40px #000;position:relative}
.rv__in::before{content:"";position:absolute;left:22px;top:0;width:44px;height:3px;background:var(--red);border-radius:0 0 3px 3px}
.rv__q{margin:0;quotes:none}
.rv__text{margin:0;font:400 1rem/1.6 var(--sans);color:#eee;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.rv__card.is-open .rv__text{display:block;-webkit-line-clamp:unset;line-clamp:none;overflow:visible}
.rv__more{align-self:flex-start;background:none;border:0;padding:10px 0;min-height:44px;margin:-10px 0 -6px;color:#fff;font:700 .78rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:5px}
.rv__more[hidden],.rv__note[hidden]{display:none}
.rv__note{margin:-4px 0 0;font:500 .78rem/1.3 var(--sans);color:var(--g);font-style:italic}
.rv__by{margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.rv__name{margin:0;font:700 1rem/1.3 var(--sans);color:#fff;text-transform:none;overflow-wrap:anywhere}
.rv__meta{margin:4px 0 0;font:600 .72rem/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--g)}
.rv__foot{margin-top:clamp(18px,3vw,30px);display:flex}
@media(max-width:899px){.rv__row{margin-inline:-20px;padding-inline:20px;scroll-padding-inline:20px;align-items:start}}
@media(min-width:900px){
  .rv__row{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-columns:auto;overflow:visible;scroll-snap-type:none;padding:0;margin:0;gap:20px}
  .rv__foot{justify-content:center}
}
@media(prefers-reduced-motion:reduce){.rv__row{scroll-behavior:auto}.rv__score{transition:none}}
