/* ===== REVIEWS PAGE ===== */
.reviews-page{
  padding:clamp(48px,8vw,100px) clamp(16px,4vw,60px);
  max-width:1200px;margin:0 auto;position:relative;z-index:10;
}
.reviews-page-header{text-align:center;margin-bottom:60px}
.reviews-page-header h1{
  font-size:clamp(2.2rem,5vw,3.6rem);font-weight:900;color:#fff;
  text-shadow:0 0 30px rgba(255,255,255,.5),0 0 60px rgba(255,255,255,.2);
  margin-bottom:6px;
}
.reviews-page-header h1 span{
  color:var(--blue);text-shadow:0 0 28px rgba(25,98,247, .55);
  animation:stocksGlow 2.8s ease-in-out infinite;
}
.reviews-page-header p{color:#a8bfe8;font-size:1.05rem;margin-top:12px}

/* Summary bar */
.reviews-summary{
  display:flex;align-items:center;justify-content:center;
  gap:clamp(20px,5vw,60px);flex-wrap:wrap;
  margin-bottom:56px;
  padding:28px clamp(20px,4vw,48px);
  background:rgba(25,98,247, .06);
  border:1px solid rgba(25,98,247, 0.2);
  border-radius:18px;
  box-shadow:0 0 40px rgba(25,98,247, .08);
}
.rs-item{text-align:center}
.rs-val{
  font-size:clamp(2rem,4vw,3rem);font-weight:900;color:#fff;display:block;
  text-shadow:0 0 25px rgba(255,255,255,0.6), 0 0 45px rgba(255,255,255,0.2);
}
.rs-stars{
  color:var(--blue);font-size:1.3rem;letter-spacing:3px;display:block;margin:4px 0;
  text-shadow: 0 0 15px rgba(25,98,247, 0.95), 0 0 30px rgba(25,98,247, 0.7);
  animation:iconGlowPulse 2.8s ease-in-out infinite;
}
.rs-lbl{font-size:.75rem;color:var(--text2);text-transform:uppercase;letter-spacing:.8px;font-weight:600}
.rs-divider{width:1px;height:50px;background:linear-gradient(180deg,transparent,rgba(25,98,247, .4),transparent)}

/* Filter tabs */
.reviews-filters{
  display:flex;align-items:center;justify-content:center;
  gap:10px;flex-wrap:wrap;margin-bottom:40px;
}
.rf-tab{
  padding:8px 22px;border-radius:50px;font-size:.84rem;font-weight:800;
  border:1px solid rgba(25,98,247,.2);background:rgba(255,255,255,0.03);
  color:var(--text2);cursor:pointer;transition:all 0.3s cubic-bezier(.34,1.56,.64,1);
  font-family:'Jost',sans-serif;letter-spacing:0.3px;
}
.rf-tab:hover{border-color:rgba(25,98,247,.5);color:#fff;background:rgba(25,98,247,0.1);transform:translateY(-1px)}
.rf-tab.active{
  background:linear-gradient(135deg, var(--blue), var(--blue-dim));
  color:#fff;border-color:transparent;
  box-shadow:0 8px 20px -5px rgba(25,98,247,.6);
  transform:scale(1.05);
}

/* Grid */
.reviews-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:20px;
}
.rv-card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  padding:24px;
  transition:all .25s ease;
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;
}
.rv-card::before{
  content:'';position:absolute;inset:0;border-radius:16px;
  background:linear-gradient(135deg,rgba(25,98,247,.04) 0%,transparent 60%);
  pointer-events:none;
}
.rv-card:hover{
  border-color:rgba(25,98,247,.35);
  box-shadow:0 0 30px rgba(25,98,247,.12);
  transform:translateY(-3px);
}
.rv-stars{color:var(--blue);font-size:.9rem;letter-spacing:2px;margin-bottom:14px;
  filter:drop-shadow(0 0 5px rgba(25,98,247,.7));
}
.rv-text{font-size:.88rem;color:var(--text2);line-height:1.7;margin-bottom:18px;flex:1}
.rv-author{display:flex;align-items:center;gap:12px;margin-top:auto}
.rv-avatar{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,rgba(25,98,247,.4),var(--blue));
  border-bottom:1px solid rgba(25,98,247,.2);
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;font-weight:800;color:#fff;
  box-shadow:0 0 12px rgba(25,98,247,.3);
}
.rv-name{font-size:.88rem;font-weight:700;color:#fff}
.rv-date{font-size:.75rem;color:var(--text2);margin-top:2px}
.rv-verified{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.68rem;font-weight:700;color:var(--blue);
  margin-top:4px;
  filter:drop-shadow(0 0 4px rgba(25,98,247,.6));
}
.rv-product{
  display:inline-block;font-size:.72rem;font-weight:700;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.75);border-radius:50px;padding:3px 10px;
  margin-bottom:12px;backdrop-filter:blur(6px);
}

/* No reviews */
.no-reviews{text-align:center;padding:80px 20px;color:var(--text2)}
.no-reviews i{font-size:3rem;color:var(--blue);margin-bottom:16px;display:block;
  filter:drop-shadow(0 0 10px rgba(25,98,247,.6));}
.no-reviews h3{font-size:1.4rem;font-weight:700;color:#fff;margin-bottom:8px}

.rv-reply{
  margin-top:16px;padding:12px 14px;
  background:rgba(25,98,247, .07);
  border-left:2px solid rgba(25,98,247, .45);
  border-radius:0 10px 10px 0;
}
.rv-reply-name{
  font-size:.68rem;font-weight:800;color:var(--blue);
  text-transform:uppercase;letter-spacing:.7px;
  display:block;margin-bottom:5px;
  filter:drop-shadow(0 0 4px rgba(25,98,247,.5));
}
.rv-reply p{margin:0;font-size:.81rem;color:var(--text2);line-height:1.65}

/* Card animations */
@keyframes rvIn  { from{opacity:0;transform:translateY(32px) scale(.94)} to{opacity:1;transform:none} }
@keyframes rvOut { from{opacity:1;transform:none} to{opacity:0;transform:translateY(-14px) scale(.95)} }
.rv-card          { opacity:0; }
.rv-card.rv-in    { animation:rvIn  .44s cubic-bezier(.22,1,.36,1) forwards; }
.rv-card.rv-out   { animation:rvOut .16s ease forwards; pointer-events:none; }

/* Grid scan overlay */
@keyframes gridScan {
  0%   { transform:translateX(-100%); opacity:1; }
  100% { transform:translateX(100%);  opacity:1; }
}
.rv-grid-wrap { position:relative; }
.rv-scan {
  position:absolute;inset:0;z-index:10;overflow:hidden;
  pointer-events:none;border-radius:16px;
}
.rv-scan::before {
  content:'';position:absolute;top:0;left:0;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(25,98,247, .18) 40%,rgba(25,98,247, .35) 50%,rgba(25,98,247, .18) 60%,transparent);
  animation:gridScan .55s cubic-bezier(.4,0,.2,1) forwards;
}

/* Skeleton cards */
@keyframes skelShimmer {
  from{background-position:-500px 0} to{background-position:500px 0}
}
.rv-skeleton {
  background:var(--card);border:1px solid var(--border);border-radius:16px;
  padding:24px;min-height:190px;position:relative;overflow:hidden;
  animation:rvIn .3s ease forwards;
}
.rv-skeleton::after {
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(25,98,247, .12) 40%,rgba(25,98,247, .22) 50%,rgba(25,98,247, .12) 60%,transparent);
  background-size:1000px 100%;
  animation:skelShimmer 1.2s ease-in-out infinite;
}
.rv-skel-pill{height:18px;border-radius:50px;background:rgba(255,255,255,.06);width:38%;margin-bottom:14px}
.rv-skel-line{height:10px;border-radius:4px;background:rgba(255,255,255,.05);margin-bottom:8px}
.rv-skel-line.s{width:60%}.rv-skel-line.xs{width:45%}
.rv-skel-row{display:flex;align-items:center;gap:10px;margin-top:16px}
.rv-skel-av{width:36px;height:36px;border-radius:50%;background:rgba(25,98,247,.14);flex-shrink:0}
.rv-skel-nm{height:10px;border-radius:4px;background:rgba(255,255,255,.06);width:70px;margin-bottom:7px}
.rv-skel-dt{height:8px;border-radius:4px;background:rgba(255,255,255,.04);width:50px}

/* Pagination */
.rv-pagination{
  display:flex;align-items:center;justify-content:center;
  gap:8px;flex-wrap:wrap;margin-top:40px;
}
.rv-page-btn{
  min-width:42px;height:42px;padding:0 12px;border-radius:12px;
  border:1.5px solid rgba(25,98,247,.2);background:rgba(255,255,255,0.03);
  color:var(--text2);font-size:.88rem;font-weight:800;cursor:pointer;
  transition:all 0.3s cubic-bezier(.34,1.56,.64,1);font-family:'Jost',sans-serif;
  display:flex;align-items:center;justify-content:center;
}
.rv-page-btn:hover:not(:disabled){
  border-color:rgba(25,98,247,.5);color:#fff;background:rgba(25,98,247,0.1);
  transform:translateY(-2px);
}
.rv-page-btn.active{
  background:linear-gradient(135deg, var(--blue), var(--blue-dim));
  color:#fff;border-color:transparent;
  box-shadow:0 8px 20px -5px rgba(25,98,247,.6);
}
.rv-page-btn:disabled{opacity:.4;cursor:not-allowed}
.rv-page-info{font-size:.8rem;color:var(--text2);padding:0 6px;align-self:center}

@media(max-width:768px){
  .reviews-grid{grid-template-columns:1fr}
  .rs-divider{display:none}
  .reviews-summary{gap:20px}
}

/* ── Page entry overlay ── */
@keyframes rvOvExit  { to { opacity:0; visibility:hidden; } }
@keyframes rvRingSpin{ to { transform:rotate(360deg); } }
@keyframes rvRingInner{ 0%,100%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(180deg) scale(.88)} }
@keyframes rvPulseGlow{ 0%,100%{opacity:.5;transform:scale(1)} 50%{opacity:1;transform:scale(1.12)} }
@keyframes rvDotsAnim { 0%{content:'.'} 33%{content:'..'} 66%{content:'...'} 100%{content:'.'} }
#rv-overlay {
  position:fixed;inset:0;z-index:9999;
  background:linear-gradient(160deg,#03050f 0%,#060c1f 60%,#030810 100%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;
  transition:opacity .5s ease, visibility .5s ease;
}
#rv-overlay.rv-ov-done { animation:rvOvExit .5s .1s ease forwards; }
.rv-ov-ring-wrap {
  position:relative;width:90px;height:90px;
  display:flex;align-items:center;justify-content:center;
}
.rv-ov-glow {
  position:absolute;inset:-14px;border-radius:50%;
  background:radial-gradient(circle,rgba(25,98,247,.28) 0%,transparent 70%);
  animation:rvPulseGlow 2s ease-in-out infinite;
}
.rv-ov-ring {
  position:absolute;inset:0;border-radius:50%;
  border:2.5px solid transparent;
  border-top-color:var(--blue, #1962f7);
  border-right-color:rgba(25,98,247,.3);
  animation:rvRingSpin .9s linear infinite;
}
.rv-ov-ring-inner {
  position:absolute;inset:10px;border-radius:50%;
  border:1.5px solid transparent;
  border-bottom-color:rgba(25,98,247,.6);
  border-left-color:rgba(25,98,247,.2);
  animation:rvRingSpin .7s linear infinite reverse;
}
.rv-ov-icon {
  font-size:1.5rem;color:var(--blue,#1962f7);position:relative;z-index:1;
  filter:drop-shadow(0 0 10px rgba(25,98,247,.9));
  animation:rvPulseGlow 2s ease-in-out infinite;
}
.rv-ov-label {
  font-family:'Jost',sans-serif;font-size:.85rem;font-weight:700;
  color:rgba(168,191,232,.7);letter-spacing:2px;text-transform:uppercase;
}
.rv-ov-label::after {
  content:'.';animation:rvDotsAnim 1.2s steps(1) infinite;
}
