/* ================= reviews ================= */
.rv-head { padding: clamp(1.75rem, 3.5vw, 2.75rem) 0 0; }
.rv-head-in {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0, 500px);
  gap: clamp(1.75rem, 4vw, 3.5rem); align-items: start;
}
.rv-head h1 { max-width: 14ch; }

/* ---------- score panel ---------- */
.score {
  /* laid out across rather than down, so its foot lines up with the lede */
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .45rem 1.4rem;
  padding: 1rem 1.2rem;
  border-radius: 14px;
  background: linear-gradient(178deg, #141b28, #0b1017);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 20px 46px rgba(0,0,0,.5);
}
.score-top { grid-column: 1 / -1; display: flex; align-items: center; gap: .5rem; }
.score-src { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(244,247,251,.42); }
.score-side { display: flex; flex-direction: column; }
.score-n { margin: 0; font-family: Georgia, serif; font-size: 2.4rem; line-height: 1; color: #fff; }
.score-stars { margin: .3rem 0 0; color: #fbbf24; letter-spacing: 2.5px; font-size: .92rem; }
.score-count { margin: .35rem 0 0; font-size: .76rem; color: rgba(244,247,251,.45); white-space: nowrap; }

.bars { margin: 0; display: grid; gap: .22rem; align-content: center; }
.bars > div { display: grid; grid-template-columns: 30px 1fr; align-items: center; gap: .55rem; }
.bars dt { font-size: .72rem; color: rgba(244,247,251,.45); white-space: nowrap; }
.bars dt span { color: #fbbf24; margin-left: 1px; }
.bars dd { margin: 0; display: grid; grid-template-columns: 1fr 18px; align-items: center; gap: .5rem; }
.bar { display: block; height: 5px; border-radius: 3px; background: rgba(255,255,255,.08); overflow: hidden; }
.bar i { display: block; height: 100%; border-radius: 3px; background: linear-gradient(90deg, #fbbf24, #f0a500); }
.bars b { font-size: .72rem; font-weight: 400; color: rgba(244,247,251,.4); text-align: right; }

.score-link { width: auto; margin: 0; min-height: 40px; white-space: nowrap; padding: 0 1rem; font-size: .84rem; }

/* ---------- the reviews ---------- */
.rv-body { padding: clamp(1.75rem, 3.5vw, 2.75rem) 0 clamp(2rem, 4vw, 3rem); }
.rv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.rv-col { display: flex; flex-direction: column; gap: 1rem; }

.rv {
  margin: 0;
  padding: 1.25rem 1.3rem;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 14px 34px rgba(0,0,0,.42);
}
.rv-top { display: flex; align-items: center; gap: .6rem; }
.rv-av {
  width: 34px; height: 34px; flex: none; border-radius: 50%;
  display: grid; place-items: center;
  font-family: Georgia, serif; font-size: .92rem; color: #fff;
  background: linear-gradient(180deg, #4a80ff, #1743b8);
}
.rv-who { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.rv-name { font-family: Georgia, serif; font-size: .98rem; color: #14171c; }
.rv-meta { font-size: .7rem; color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.rv-rate { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .7rem; }
.rv-stars { color: #fbbc04; letter-spacing: 1.4px; font-size: .82rem; }
.rv-when { font-size: .72rem; color: #6b7280; }
.rv-new {
  font-size: .58rem; letter-spacing: .1em; text-transform: uppercase;
  color: #1743b8; padding: 1px 6px; border-radius: 999px;
  background: rgba(47,107,255,.1); border: 1px solid rgba(47,107,255,.28);
}

.rv-text { margin: .7rem 0 0; font-size: .86rem; line-height: 1.6; color: #3f4550; }
.rv-none { font-style: italic; color: #8b919c; }

/* the owner's reply, tucked under its review */
.rv-reply {
  margin: .9rem 0 0; padding: .8rem .9rem;
  border-radius: 10px;
  background: #f4f6fa;
  border-left: 2px solid #1743b8;
}
.rv-reply-h {
  display: block; margin-bottom: .3rem;
  font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: #1743b8;
}
.rv-reply p { margin: 0; font-size: .81rem; line-height: 1.55; color: #4a505c; }

@media (max-width: 900px) {
  .rv-head-in { grid-template-columns: 1fr; }
  .score { max-width: 340px; }
  .rv-grid { grid-template-columns: 1fr; }
}

/* ---------- the CTA, sitting inside the middle column ---------- */
.rv-cta {
  padding: 1.6rem 1.35rem;
  border-radius: 14px;
  text-align: center;
  background: linear-gradient(178deg, rgba(47,107,255,.14), #0b1017);
  border: 1px solid rgba(47,107,255,.42);
  box-shadow: 0 20px 46px rgba(0,0,0,.5);
}
.rv-cta .sec-rule { margin: 0 auto 1rem; }
.rv-cta h2 {
  margin: 0;
  font-family: Georgia, serif; font-weight: 400;
  font-size: 1.32rem; line-height: 1.2; letter-spacing: -.02em; color: #f7f9fc;
}
.rv-cta p { margin: .65rem 0 1.2rem; font-size: .86rem; line-height: 1.55; color: rgba(244,247,251,.6); }
.rv-cta .cta, .rv-cta .cta-ghost { width: 100%; }
.rv-cta .cta { margin-bottom: .5rem; }

@media (max-width: 1100px) { .rv-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px)  { .rv-grid { grid-template-columns: 1fr; } }
