/* v74: customer reviews. Separate file so site.css is untouched. */

/* ---------- reviews section ---------- */
.reviews{padding:clamp(64px,10vh,120px) 0;overflow:hidden;position:relative}
.reviews .sec-head{padding:0 var(--pad)}
.rv-avg{margin-top:12px;display:flex;align-items:center;gap:10px;color:var(--text-secondary);font-size:.95rem}
.rv-stars{color:#ffc93c;letter-spacing:2px;font-size:1.05rem;text-shadow:0 0 10px rgba(255,201,60,.45)}
.rv-stars i{font-style:normal;color:rgba(255,255,255,.18);text-shadow:none}

.rv-float{margin:34px 0 10px;display:grid;gap:22px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.rv-row{overflow:hidden;padding:14px 0}
.rv-track{display:flex;gap:20px;width:max-content;animation:rv-drift calc(var(--n) * 7s) linear infinite}
.rv-right .rv-track{animation-direction:reverse}
.rv-float:hover .rv-track{animation-play-state:paused}
@keyframes rv-drift{to{transform:translateX(-50%)}}

.rv-card{
  position:relative;margin:0;width:300px;flex:0 0 auto;padding:18px 20px 16px;
  border-radius:18px;border:1px solid rgba(111,155,255,.28);
  background:linear-gradient(160deg,rgba(31,84,240,.20),rgba(169,124,255,.10) 60%,rgba(5,5,12,.6));
  box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 24px rgba(31,84,240,.18) inset;
}
.rv-card blockquote{margin:10px 0 12px;font-size:.95rem;line-height:1.5;color:var(--text-primary);
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.rv-card figcaption{display:flex;flex-direction:column;gap:2px;font-size:.82rem;color:var(--text-secondary)}
.rv-card figcaption strong{color:#fff;font-size:.9rem}
.rv-sample{position:absolute;top:10px;right:12px;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  padding:2px 7px;border-radius:6px;background:rgba(255,80,80,.18);color:#ff9d9d;border:1px solid rgba(255,80,80,.35)}

.rv-empty{padding:0 var(--pad);margin:24px 0 0;color:var(--text-secondary)}

/* the form */
.rv-form{
  margin:30px auto 0;max-width:640px;padding:24px;display:grid;gap:14px;
  border-radius:var(--cut);border:1px solid rgba(111,155,255,.25);background:rgba(11,20,40,.6);
  width:calc(100% - 2 * var(--pad));box-sizing:border-box;
}
.rv-form h3{font-size:1.5rem}
.rv-form label{display:grid;gap:6px;font-size:.85rem;color:var(--text-secondary)}
.rv-form input[type=text],.rv-form textarea{
  font:inherit;font-size:16px;color:var(--text-primary);padding:11px 13px;border-radius:10px;
  border:1px solid rgba(111,155,255,.35);background:rgba(5,5,12,.7);
}
.rv-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.rv-rate{border:0;padding:0;margin:0}
.rv-rate legend{padding:0;font-size:.85rem;color:var(--text-secondary);margin-bottom:6px}
.rv-pick{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}
.rv-rate input{position:absolute;opacity:0;pointer-events:none}
.rv-rate label{font-size:1.9rem;line-height:1;color:rgba(255,255,255,.2);cursor:pointer;transition:color .15s,transform .15s}
.rv-rate label:hover,.rv-rate label:hover~label,.rv-rate input:checked~label{color:#ffc93c;text-shadow:0 0 10px rgba(255,201,60,.5)}
.rv-rate label:hover{transform:scale(1.15)}
.rv-rate input:focus-visible+label{outline:2px solid var(--accent);border-radius:4px}
.rv-hp{position:absolute;left:-9999px}
.rv-note{margin:0;font-size:.88rem;color:var(--text-secondary);min-height:1.2em}
.rv-note.is-bad{color:#ff9d9d}.rv-note.is-good{color:#8dffb0}
@media (max-width:640px){
  .rv-two{grid-template-columns:1fr}
  .rv-card{width:250px;padding:15px 16px 14px}
}

/* the corner bubble */
.rv-bubble{position:fixed;right:24px;bottom:28px;z-index:55;max-width:300px;
  transform:translateY(140%);opacity:0;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .6s;pointer-events:none}
.rv-bubble.is-up{transform:none;opacity:1;pointer-events:auto}
.rv-bubble .rv-card{width:auto;animation:none;cursor:pointer;background:linear-gradient(160deg,rgba(20,40,110,.96),rgba(30,20,60,.96))}
.rv-bub-x{position:absolute;top:-8px;right:-8px;z-index:2;width:26px;height:26px;border-radius:50%;
  border:1px solid rgba(255,255,255,.3);background:#0b1430;color:#fff;font-size:16px;line-height:1;cursor:pointer}
@media (max-width:640px){.rv-bubble{left:auto;right:12px;bottom:20px;max-width:min(300px,calc(100% - 24px))}}

@media (prefers-reduced-motion:reduce){
  .rv-track,.rv-card{animation:none}
  .rv-row{overflow-x:auto}
}
.rv-bubble.is-hush{opacity:0;pointer-events:none}

/* one to three reviews: no movement, centred */
.rv-still .rv-track{animation:none;width:auto;flex-wrap:wrap;justify-content:center}
.rv-float:has(.rv-still){-webkit-mask-image:none;mask-image:none}
