/* EVO Medical Spa — Google reviews / testimonials (homepage section).
   Self-contained block: no Elementor structure, driven by /assets/js/evo-reviews.js,
   which swaps in live reviews from /api/reviews when available.
   Palette tokens come from modern.css (--evo-navy, --evo-gold, …). */

.evo-reviews{
  position:relative;padding:88px 24px 92px;
  background:linear-gradient(180deg,#FFFFFF 0%,#F8F4EC 26%,#F5EEE3 100%);
  font-family:var(--evo-sans);color:var(--evo-body-text);
}
.evo-reviews-inner{max-width:1180px;margin:0 auto;}

/* Header: eyebrow, serif heading, Google rating badge */
.evo-reviews-head{text-align:center;max-width:760px;margin:0 auto 46px;}
.evo-reviews-eyebrow{
  display:block;font-size:13px;font-weight:600;letter-spacing:.08em;
  text-transform:uppercase;color:var(--evo-slate);margin-bottom:10px;
}
.evo-reviews-head h2{
  font-family:var(--evo-serif);font-size:clamp(34px,4.4vw,52px);font-weight:700;
  line-height:1.12;color:var(--evo-navy);margin:0 0 18px;
}
.evo-reviews-head h2 i{font-weight:500;}
.evo-reviews-rating{
  display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  background:#fff;border:1px solid var(--evo-line);border-radius:999px;
  padding:10px 22px;box-shadow:var(--evo-shadow);
}
.evo-reviews-rating .evo-reviews-glogo{width:22px;height:22px;display:block;}
.evo-reviews-score{
  font-family:var(--evo-serif);font-size:24px;font-weight:700;color:var(--evo-navy);line-height:1;
}
.evo-reviews-stars{display:inline-flex;gap:2px;}
.evo-reviews-stars svg{width:18px;height:18px;fill:var(--evo-gold);display:block;}
a.evo-reviews-count{
  font-size:14px;font-weight:600;color:var(--evo-slate);text-decoration:none;
  border-bottom:1px solid transparent;transition:color .2s,border-color .2s;
}
a.evo-reviews-count:hover,a.evo-reviews-count:focus{color:var(--evo-navy);border-bottom-color:var(--evo-gold-deep);}

/* Cards: 3-up grid on desktop, snap carousel on mobile */
.evo-reviews-track{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;
  margin:0;padding:0;list-style:none;
}
.evo-reviews-card{
  display:flex;flex-direction:column;gap:14px;
  background:#fff;border:1px solid var(--evo-line);border-radius:22px;
  box-shadow:var(--evo-shadow);padding:28px 26px 24px;
}
.evo-reviews-card .evo-reviews-stars svg{width:16px;height:16px;}
.evo-reviews-card blockquote{
  margin:0;font-size:15.5px;line-height:1.65;color:var(--evo-body-text);
}
.evo-reviews-card blockquote p{
  margin:0;
  display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;
}
.evo-reviews-byline{
  margin-top:auto;display:flex;align-items:center;gap:12px;
  padding-top:14px;border-top:1px solid var(--evo-line);
}
.evo-reviews-avatar{
  flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:var(--evo-gold);color:var(--evo-navy);
  font-family:var(--evo-serif);font-size:18px;font-weight:700;
}
.evo-reviews-byline-name{display:block;font-weight:600;font-size:14.5px;color:var(--evo-navy);line-height:1.3;}
.evo-reviews-byline-when{display:block;font-size:13px;color:var(--evo-slate);}
.evo-reviews-byline .evo-reviews-glogo{width:18px;height:18px;margin-left:auto;opacity:.9;}

/* CTA row */
.evo-reviews-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:40px;}
.evo-reviews-cta a{
  display:inline-block;border-radius:10px;padding:14px 30px;text-decoration:none;
  font:600 15.5px/1.2 var(--evo-sans);transition:background-color .2s,color .2s,transform .15s;
}
a.evo-reviews-cta-all{background:var(--evo-gold);color:var(--evo-navy);}
a.evo-reviews-cta-all:hover,a.evo-reviews-cta-all:focus{background:var(--evo-gold-deep);color:#fff;transform:translateY(-1px);}
a.evo-reviews-cta-write{border:1.5px solid var(--evo-navy);color:var(--evo-navy);background:transparent;}
a.evo-reviews-cta-write:hover,a.evo-reviews-cta-write:focus{background:var(--evo-navy);color:#fff;transform:translateY(-1px);}

/* Scroll reveal: cards rise in with a stagger once the section is in view */
.evo-reviews-card{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.3,1);}
.evo-reviews.evo-revealed .evo-reviews-card{opacity:1;transform:none;}
.evo-reviews.evo-revealed .evo-reviews-card:nth-child(2){transition-delay:.1s;}
.evo-reviews.evo-revealed .evo-reviews-card:nth-child(3){transition-delay:.2s;}
.evo-reviews.evo-revealed .evo-reviews-card:nth-child(4){transition-delay:.3s;}
.evo-reviews.evo-revealed .evo-reviews-card:nth-child(5){transition-delay:.4s;}
.evo-reviews.evo-revealed .evo-reviews-card:nth-child(6){transition-delay:.5s;}
.evo-reviews.no-reveal .evo-reviews-card{opacity:1;transform:none;transition:none;}
@media (prefers-reduced-motion:reduce){
  .evo-reviews-card{opacity:1;transform:none;transition:none;}
}

@media (max-width:1024px){
  .evo-reviews-track{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:767px){
  .evo-reviews{padding:64px 0 68px;}
  .evo-reviews-head{padding:0 24px;margin-bottom:34px;}
  .evo-reviews-track{
    display:flex;overflow-x:auto;gap:16px;padding:4px 24px 18px;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .evo-reviews-track::-webkit-scrollbar{display:none;}
  .evo-reviews-card{flex:0 0 84%;max-width:340px;scroll-snap-align:center;}
  .evo-reviews-cta{padding:0 24px;margin-top:26px;}
  .evo-reviews-cta a{flex:1 1 auto;text-align:center;}
}
