/* ============================================================================
   REVIEWS PAGE
   ========================================================================== */
.rh-grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:820px){.rh-grid{grid-template-columns:1.35fr .65fr}}
.rating-block{
  text-align:center;padding:2rem 1.5rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  box-shadow:var(--shadow-md);
}
.rb-score{
  font-family:var(--font-display);font-size:clamp(3.4rem,6vw,4.6rem);font-weight:600;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:.6rem;
}
.rating-block .stars{justify-content:center}
.rating-block .stars svg{width:22px;height:22px}
.rb-sub{font-size:var(--fs-small);margin-top:.8rem;color:var(--ink-soft)}

/* platform strip */
.plat-strip{background:var(--bg-cream)}
/* Three review platforms. auto-fit keeps the row balanced at every width
   instead of pinning a column count that a platform change would strand. */
/* Two platforms (Google, QuickBooks) rather than the original four, so cap the
   row and centre it, otherwise each card stretches to half the container. */
.plat-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));max-width:34rem;margin-inline:auto}
.plat{
  display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;
  padding:1.5rem 1rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  transition:transform var(--t-med),box-shadow var(--t-med);
}
a.plat:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.plat-logo{
  width:48px;height:48px;border-radius:14px;display:grid;place-items:center;
  background:var(--bg-soft);margin-bottom:.4rem;
}
.plat-logo svg,.plat-logo img{width:28px;height:28px;object-fit:contain}
.plat b{font-size:.95rem;font-weight:650}
.plat-meta{font-size:var(--fs-tiny);color:var(--ink-faint)}

.rev-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

/* platform card CTA */
.plat-cta{
  display:inline-flex;align-items:center;gap:.3rem;margin-top:.55rem;
  font-size:var(--fs-tiny);font-weight:650;color:var(--purple);
}
.plat-cta svg{width:12px;height:12px;transition:transform .35s var(--ease-spring)}
a.plat:hover .plat-cta svg{transform:translate(2px,-2px)}

/* ---- LEAVE A REVIEW ------------------------------------------------------- */
#leave-a-review{scroll-margin-top:6rem}
.review-links{display:grid;gap:1rem;max-width:62rem;margin-inline:auto}
/* A single Google review link replaced the grid of platform cards here, and a
   lone grid item stretched across half the row with its label pinned left.
   The one-button version gets its own centred wrapper instead. */
/* This is the last content section before the dark CTA banner, which brings its
   own top padding. A full --section-y underneath left a large empty band. */
#leave-a-review{padding-bottom:clamp(2rem,4vw,3.5rem)}
.review-cta{display:flex;justify-content:center;margin-top:.6rem}
.review-cta .btn{justify-content:center}
@media(min-width:760px){
  .review-links{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rl-card--primary{grid-column:1 / -1}
  /* Four cards: the primary opens the block and BBB closes it, so the two
     platform cards pair evenly in between rather than leaving an orphan. */
  .rl-card--wide{grid-column:1 / -1}
}
.rl-card{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.1rem;
  padding:1.3rem 1.5rem;border-radius:var(--r-lg);
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);
  transition:transform var(--t-med),box-shadow var(--t-med),border-color var(--t-med);
}
.rl-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift);border-color:rgba(96,36,149,.24)}
.rl-card--primary{
  background:linear-gradient(135deg,var(--purple-tint),var(--blue-tint));
  border-color:rgba(96,36,149,.18);
}
.rl-logo{
  width:52px;height:52px;border-radius:15px;display:grid;place-items:center;flex:none;
  background:var(--bg-soft);border:1px solid var(--line);
}
.rl-card--primary .rl-logo{background:#fff}
.rl-logo svg,.rl-logo img{width:30px;height:30px;object-fit:contain}
.rl-body b{display:block;font-family:var(--font-display);font-size:1.12rem;font-weight:580;color:var(--ink);line-height:1.25}
.rl-body span{display:block;font-size:var(--fs-small);color:var(--ink-soft);line-height:1.5;margin-top:.2rem}
.rl-tag{
  display:inline-block!important;width:auto;
  font-size:.68rem!important;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
  color:var(--purple)!important;margin:0 0 .3rem!important;
}
.rl-go{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:var(--grad);color:#fff;box-shadow:0 5px 16px rgba(96,36,149,.26);
  transition:transform .35s var(--ease-spring);
}
.rl-card:hover .rl-go{transform:translateX(3px) scale(1.06)}
.rl-go svg{width:17px;height:17px}
@media(max-width:520px){
  .rl-card{grid-template-columns:auto 1fr;gap:.9rem;padding:1.1rem 1.2rem}
  .rl-go{display:none}
}
