/* Shared reviews carousel — homepage tokens with fallbacks for service pages. */
.reviews-stage{
  position:relative;
  background:var(--surface,#141416);
  border:1px solid rgba(201,168,76,.22);
  border-radius:var(--radius-lg,28px);
  box-shadow:var(--shadow,0 20px 50px rgba(0,0,0,.35)),0 0 40px rgba(201,168,76,.04);
  padding:clamp(1.5rem,4vw,2.5rem);
  overflow:hidden;
  min-height:280px;
  color:var(--ink,#f5f0e6);
}
.reviews-stage.is-compact{
  padding:1.25rem 1.35rem 1.35rem;
  min-height:220px;
  border-radius:16px;
}
.reviews-track{
  position:relative;
  min-height:200px;
}
.reviews-stage.is-compact .reviews-track{min-height:160px}
.review{
  position:absolute;inset:0;
  display:flex;flex-direction:column;gap:1rem;
  opacity:0;
  transform:translateX(28px);
  pointer-events:none;
  transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);
}
.review.is-active{
  opacity:1;
  transform:none;
  pointer-events:auto;
  position:relative;
}
.review.is-exit{
  opacity:0;
  transform:translateX(-24px);
}
.stars{color:var(--gold,#c9a84c);letter-spacing:.1em;font-size:1rem}
.review-quote{
  font-size:clamp(1.05rem,2.2vw,1.35rem);
  line-height:1.5;color:var(--ink-2,#e8e2d6);font-weight:500;
  letter-spacing:-.02em;max-width:38ch;
  margin:0;
}
.reviews-stage.is-compact .review-quote{
  font-size:clamp(1rem,1.8vw,1.2rem);
  max-width:none;
}
.review-person{
  display:flex;align-items:center;gap:.85rem;margin-top:auto;padding-top:.5rem;
}
.avatar{
  width:48px;height:48px;border-radius:50%;
  display:grid;place-items:center;
  font-size:.85rem;font-weight:800;color:#fff;flex:none;
  box-shadow:0 4px 14px rgba(14,17,23,.12);
  border:2px solid #fff;
  overflow:hidden;background:#111;
}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.c1{background:linear-gradient(145deg,#0b0b0c,#2a2a2e)}
.avatar.c2{background:linear-gradient(145deg,#5c4a1a,#c9a84c)}
.avatar.c3{background:linear-gradient(145deg,#1a1814,#8a7028)}
.avatar.c4{background:linear-gradient(145deg,#2c2410,#b8943a)}
.avatar.c5{background:linear-gradient(145deg,#161618,#4a4030)}
.avatar.c6{background:linear-gradient(145deg,#3d3218,#d4af37)}
.review-person strong{display:block;font-size:.95rem}
.review-person small{color:var(--muted,#9a9286);font-size:.78rem}
.google-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.72rem;font-weight:650;color:var(--muted,#9a9286);
  margin-top:.15rem;
}
.google-badge svg{width:12px;height:12px}

.review-avatars{
  display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;
  gap:.5rem;margin-top:1.5rem;
  overflow-x:auto;padding:.35rem .15rem .6rem;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.review-avatars button{
  width:44px;height:44px;border-radius:50%;border:2px solid transparent;
  padding:0;cursor:pointer;background:none;
  transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s ease,box-shadow .2s ease;
  position:relative;
}
.review-avatars button .avatar{
  width:40px;height:40px;font-size:.72rem;
  transition:transform .2s cubic-bezier(.22,1,.36,1),opacity .2s ease;
  opacity:.55;
}
.review-avatars button:hover .avatar{opacity:.85;transform:scale(1.05)}
.review-avatars button.is-on{
  border-color:var(--gold,#c9a84c);
  box-shadow:0 0 0 3px rgba(201,168,76,.16);
}
.review-avatars button.is-on .avatar{opacity:1;transform:scale(1.06)}
.review-avatars button:focus-visible{outline:2px solid var(--gold,#c9a84c);outline-offset:3px}

.review-nav{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  margin-top:1.25rem;
}
.review-nav .dots{display:flex;gap:.4rem;align-items:center}
.review-nav .dots button{
  width:7px;height:7px;border-radius:50%;border:0;padding:0;
  background:rgba(245,240,230,.14);cursor:pointer;transition:background .2s,transform .2s;
}
.review-nav .dots button.is-on{background:var(--gold,#c9a84c);transform:scale(1.25)}
.review-arrows{display:flex;gap:.5rem}
.review-arrows button{
  width:40px;height:40px;border-radius:50%;border:1px solid rgba(245,240,230,.14);
  background:var(--bg-3,#18181b);cursor:pointer;display:grid;place-items:center;
  font-size:1.1rem;color:inherit;transition:background .15s,border-color .15s;
}
.review-arrows button:hover{background:#1f1f24;border-color:var(--gold,#c9a84c);color:var(--gold,#c9a84c)}
@media(prefers-reduced-motion:reduce){
  .review{transition:none}
}

[data-reviews-section][hidden]{display:none !important}
