/* ===== Reviews: service-page rows + /reviews/ page (responsive) ===== */

/* shared bits */
.rv-stars{display:inline-flex; gap:3px; line-height:1;}
.rv-stars i{
  font-style:normal; width:19px; height:19px; display:inline-flex; align-items:center; justify-content:center;
  font-size:12px; border-radius:4px; background:#26331f; color:#4b5a45;
}
.rv-stars i.on{background:var(--lime); color:#0a0f0b;}
.rv-avatar{
  width:32px; height:32px; border-radius:50%; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center;
  font:700 .8rem var(--font-display); color:#0a0f0b; background:hsl(var(--h,90) 70% 70%);
}
.rv-person{display:flex; align-items:center; gap:10px; margin-top:auto; padding-top:16px;}
.rv-person span{display:flex; flex-direction:column; line-height:1.25; min-width:0;}
.rv-person strong{font-size:.82rem; color:var(--ink);}
.rv-person small{font-size:.7rem; color:var(--ink-faint);}
.rv-demo{
  text-align:center; margin:10px auto 0; font-size:.76rem; color:#0a0f0b; background:var(--lime);
  display:table; padding:4px 14px; border-radius:999px; font-weight:600;
}

/* ---------- section on service pages ---------- */
.rv-section{padding:70px 0 60px; background:var(--bg-raised); border-block:1px solid var(--card-border); overflow:hidden;}
.rv-head{
  max-width:1100px; margin:0 auto 34px; padding:0 28px;
  display:flex; align-items:center; justify-content:space-between; gap:20px 30px; flex-wrap:wrap;
}
.rv-head h2{font-size:clamp(1.5rem, 3.4vw, 2.2rem); margin:0;}
.rv-score{display:flex; align-items:center; gap:14px;}
.rv-score strong{font:700 clamp(2rem, 5vw, 2.8rem)/1 var(--font-display); color:var(--ink);}
.rv-score > span{display:flex; flex-direction:column; gap:6px;}
.rv-score small{font-size:.72rem; color:var(--ink-faint);}

.rv-row{margin-bottom:14px;}
.rv-row.rv-moving{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
          mask-image:linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
}
.rv-track{display:flex; width:max-content;}
.rv-set{display:flex; gap:14px; padding-right:14px;}
.rv-moving .rv-track{animation:rv-scroll var(--dur,60s) linear infinite;}
.rv-moving.rv-reverse .rv-track{animation-direction:reverse;}
.rv-moving:hover .rv-track, .rv-moving:focus-within .rv-track{animation-play-state:paused;}
@keyframes rv-scroll{to{transform:translateX(-50%);}}
/* few reviews: centred wrapping row instead of a scroller */
.rv-static .rv-track{width:auto; max-width:1100px; margin:0 auto; padding:0 28px; justify-content:center;}
.rv-static .rv-set{flex-wrap:wrap; justify-content:center; padding:0;}

.rv-slide{
  width:290px; flex-shrink:0; display:flex; flex-direction:column; padding:20px 20px 18px;
  background:var(--card); border:1px solid var(--card-border); border-radius:var(--radius-md);
}
.rv-slide-text{
  margin:14px 0 0; font-size:.88rem; line-height:1.55; color:var(--ink-dim);
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; min-height:5.4em;
}
.rv-foot{
  max-width:1100px; margin:26px auto 0; padding:0 28px;
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.rv-readall{font-size:.86rem; font-weight:600; color:var(--ink); border-bottom:2px solid var(--lime); padding-bottom:2px;}
.rv-readall:hover{color:var(--lime);}
.rv-write{
  font-size:.82rem; font-weight:600; color:var(--ink); padding:9px 18px; border-radius:999px;
  border:1px solid var(--card-border); background:var(--card); transition:border-color .2s, color .2s;
}
.rv-write:hover{border-color:var(--lime); color:var(--lime);}

@media (prefers-reduced-motion: reduce){
  .rv-row.rv-moving{overflow-x:auto; -webkit-mask-image:none; mask-image:none;}
  .rv-moving .rv-track{animation:none;}
  .rv-moving .rv-set[aria-hidden]{display:none;}
}
@media (max-width:600px){
  .rv-section{padding:50px 0 44px;}
  .rv-head, .rv-foot{padding:0 20px;}
  .rv-slide{width:250px; padding:18px 16px 16px;}
  .rv-static .rv-track{padding:0 20px;}
  .rv-foot{flex-direction:column-reverse; align-items:stretch; text-align:center;}
  .rv-readall{align-self:center;}
  .rv-write{text-align:center;}
}

/* ---------- /reviews/ page ---------- */
.rvp-hero{padding:110px 20px 40px; text-align:center; overflow:hidden;}
.rvp-hero h1{font-size:clamp(2.1rem, 6vw, 3.6rem); display:flex; align-items:center; justify-content:center; gap:.3em; flex-wrap:wrap; margin:0 0 30px;}
.rvp-pill{
  display:inline-flex; align-items:center; gap:.3em; color:var(--lime); background:rgba(182,255,60,.1);
  border:1px solid var(--card-border); border-radius:999px; padding:.05em .45em .1em;
}
.rvp-pill i{font-style:normal; font-size:.7em;}

.rvp-orbit{
  --size:min(88vw, 470px); --b:calc(var(--size) * .155);
  position:relative; width:var(--size); height:var(--size); margin:0 auto 30px;
}
.rvp-orbit::before{
  content:""; position:absolute; inset:calc(var(--b) / 2); border-radius:50%; border:1px dashed var(--card-border);
}
.rvp-bubble{
  position:absolute; top:50%; left:50%; width:var(--b); height:var(--b); margin:calc(var(--b) / -2);
  transform:rotate(var(--a)) translateX(calc(var(--size) / 2 - var(--b) / 2)) rotate(calc(var(--a) * -1));
}
.rvp-bubble b{
  width:100%; height:100%; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font:700 calc(var(--b) * .38) var(--font-display); color:#0a0f0b; background:hsl(var(--h) 72% 70%);
  border:3px solid var(--bg); box-shadow:0 0 0 1px var(--card-border);
  animation:rvp-bob 5s ease-in-out infinite; animation-delay:var(--d);
}
@keyframes rvp-bob{50%{transform:translateY(-7px);}}
.rvp-center{
  position:absolute; inset:19%; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  background:var(--card); border:1px solid var(--card-border); box-shadow:0 20px 60px rgba(0,0,0,.45), inset 0 0 60px rgba(182,255,60,.06);
}
.rvp-center strong{font:700 clamp(2rem, 8vw, 3.1rem)/1 var(--font-display); color:var(--ink);}
.rvp-center strong small{font-size:.38em; color:var(--ink-dim); font-weight:500;}
.rvp-center small{font-size:.7rem; color:var(--ink-faint);}
.rvp-label{font:700 clamp(.9rem, 3vw, 1.15rem) var(--font-display); color:var(--lime);}
.rvp-center .rv-stars i{width:16px; height:16px; font-size:10px;}

.rvp-chip{
  position:absolute; z-index:2; display:flex; flex-direction:column; gap:4px; max-width:190px; text-align:left;
  background:var(--card); border:1px solid var(--card-border); border-radius:12px; padding:9px 13px;
  font-size:.74rem; color:var(--ink-dim); box-shadow:0 10px 30px rgba(0,0,0,.4);
}
.rvp-chip .rv-stars i{width:12px; height:12px; font-size:8px; border-radius:3px;}
.rvp-chip-1{top:6%; right:-12%;}
.rvp-chip-2{top:38%; right:-34%;}
.rvp-chip-3{bottom:14%; left:-30%;}

.rvp-sub{max-width:520px; margin:0 auto 22px; color:var(--ink-dim); font-size:.95rem;}
.rvp-sub a{color:var(--lime); text-decoration:underline; text-underline-offset:3px;}
.rvp-actions{display:flex; align-items:center; justify-content:center; gap:14px; flex-wrap:wrap;}
.rvp-count{
  font-size:.82rem; color:var(--ink-dim); padding:9px 16px; border-radius:999px; border:1px solid var(--card-border); background:var(--card);
}
.rvp-count b{color:var(--ink);}

.rvp-wall{max-width:1100px; margin:0 auto; padding:30px 28px 100px;}
.rvp-bar{display:flex; align-items:center; justify-content:space-between; gap:14px 20px; flex-wrap:wrap; margin-bottom:22px;}
.rvp-tabs{display:flex; gap:8px; flex-wrap:wrap;}
.rvp-tabs button{
  font:600 .8rem var(--font-body); color:var(--ink-dim); background:var(--card); border:1px solid var(--card-border);
  border-radius:999px; padding:8px 15px; cursor:pointer; transition:all .2s;
}
.rvp-tabs button span{color:var(--ink-faint); font-weight:500; margin-left:4px;}
.rvp-tabs button:hover{border-color:var(--lime); color:var(--ink);}
.rvp-tabs button.active{background:var(--lime); color:#0a0f0b; border-color:var(--lime);}
.rvp-tabs button.active span{color:#0a0f0b; opacity:.7;}
.rvp-showing{font-size:.78rem; color:var(--ink-faint); margin:0;}

.rvp-grid{column-count:3; column-gap:16px;}
.rv-tile{
  display:flex; flex-direction:column; break-inside:avoid; margin:0 0 16px; padding:22px 22px 20px;
  background:var(--card); border:1px solid var(--card-border); border-radius:var(--radius-md);
  transition:border-color .25s, transform .25s var(--ease);
}
.rv-tile[hidden]{display:none;}
.rv-tile:hover{border-color:var(--lime); transform:translateY(-3px);}
.rv-tile h3{font-size:1rem; line-height:1.5; margin:14px 0 8px;}
.rv-tile mark{background:rgba(182,255,60,.22); color:var(--ink); padding:1px 6px; border-radius:5px; -webkit-box-decoration-break:clone; box-decoration-break:clone;}
.rv-tile p{margin:12px 0 0; font-size:.86rem; line-height:1.65; color:var(--ink-dim);}
.rv-tile h3 + p{margin-top:0;}
.rv-tile-quote{background:linear-gradient(160deg, rgba(182,255,60,.12), transparent 70%), var(--card);}
.rv-tile-quote blockquote{margin:0 0 16px; font:600 1.2rem/1.4 var(--font-display); color:var(--ink);}
.rv-tile-stat{align-items:flex-start; justify-content:center; min-height:190px; background:var(--lime); border-color:var(--lime);}
.rv-tile-stat strong{font:800 clamp(2.4rem, 5vw, 3.2rem)/1 var(--font-display); color:#0a0f0b;}
.rv-tile-stat span{color:#0a0f0b; font-size:.82rem; margin-top:8px; opacity:.8;}
.rv-tile-stat:hover{transform:none;}
.rvp-more{text-align:center; margin-top:10px;}

@media (max-width:1000px){
  .rvp-chip-2{right:-22%;} .rvp-chip-3{left:-18%;}
}
@media (max-width:900px){ .rvp-grid{column-count:2;} }
@media (max-width:720px){
  .rvp-chip{display:none;}
  .rvp-hero{padding-top:96px;}
  .rvp-wall{padding:20px 20px 70px;}
  .rvp-bar{flex-direction:column; align-items:flex-start;}
  .rvp-tabs{flex-wrap:nowrap; overflow-x:auto; max-width:100%; padding-bottom:6px; scrollbar-width:none;}
  .rvp-tabs::-webkit-scrollbar{display:none;}
  .rvp-tabs button{white-space:nowrap;}
}
@media (max-width:600px){
  .rvp-grid{column-count:1;}
  .rv-tile{padding:20px 18px 18px;}
}
@media (prefers-reduced-motion: reduce){ .rvp-bubble b{animation:none;} }

/* .btn sets display:inline-flex, which would otherwise beat the hidden attribute */
.rvp-more [hidden], .rv-tile[hidden], .rvp-tabs [hidden]{display:none !important;}
