/* s-reviews.css v4 (R3 RV): the 4.8 opener is a WOW moment (Google G, star particles, real cut photos + real review cards flying up in 3 depth layers) and every review shows its real stars.
   s-reviews.css v3: chalk ground, one centred black-type quote per screen, the giant 4.8 opens the band, then the quotes. No clip, no section head.
   Default (no JS / reduced motion) = 4.8 then quotes stacked. .is-pin = pinned scrub. */
.s-reviews.sec{padding:0;overflow:hidden}

.rv__stage{position:relative;overflow:hidden}
.rv__slide{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s10) var(--gut)}
.rv__in{width:100%;max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.rv__q{font-size:34px;text-align:center;text-wrap:balance;max-width:100%}
.rv__by{margin-top:var(--s3)}
.rv__tag{margin:var(--s2) 0 0;color:var(--ink)}
.rv__num{will-change:transform,opacity;color:var(--ink)}
.rv__on{margin-top:var(--s3);display:inline-flex;align-items:center;gap:10px}
.rv__g{width:24px;height:24px;flex:none}
.rv__in{position:relative;z-index:2}

/* ---------- stars: filled gold = rated, outline = not rated. Ground-aware (chalk quotes vs ink cards) ---------- */
.rv__stars{display:inline-flex;gap:3px;align-items:center;line-height:0}
.rv__st{width:var(--st,18px);height:var(--st,18px);fill:var(--gold);stroke:var(--gold);stroke-width:1;stroke-linejoin:round;flex:none}
.rv__st.is-off{fill:none;stroke:rgba(10,10,10,.42);stroke-width:1.5}
.rv__st-part{position:relative;display:block;width:var(--st,18px);height:var(--st,18px)}
.rv__st-part .rv__st{position:absolute;inset:0}
.rv__st--clip{clip-path:inset(0 20% 0 0)}   /* 4.8 of 5: the fifth star is 80% filled */
.rv__stars--agg{--st:22px;margin-top:var(--s2)}
.rv__in > .rv__stars:not(.rv__stars--agg){--st:20px;margin-top:var(--s3)}
.rv__in > .rv__stars:not(.rv__stars--agg) + .rv__by{margin-top:var(--s2)}

/* ---------- the opener's canvas + flying layers: static calm row by default, absolute only under .is-pin ---------- */
.rv__fx{display:none}
.rv__fly{order:2;display:grid;grid-template-columns:1fr;gap:var(--s2);width:100%;max-width:340px;margin-top:var(--s6);--wc:100%}
.rv__ph,.rv__card:not([data-static]){display:none}
.rv__card{margin:0;background:var(--ink);color:var(--paper);padding:14px 16px 16px;text-align:left}
.rv__ct{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.rv__cn{font:800 15px/1 var(--display);letter-spacing:-.01em;color:var(--paper)}
.rv__card .rv__st{--st:13px;fill:var(--gold);stroke:var(--gold)}
.rv__card .rv__st.is-off{fill:none;stroke:rgba(245,243,238,.5)}
.rv__card .rv__stars{gap:2px}
.rv__cq{font:500 14px/1.38 var(--body);color:var(--soft);text-wrap:pretty}
.rv__ph{margin:0;overflow:hidden;background:var(--ink-3);aspect-ratio:3/4}
.rv__ph img{width:100%;height:100%;object-fit:cover}

.s-reviews.is-pin .rv__fx{display:block;position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.s-reviews.is-pin .rv__fly{position:absolute;inset:0;display:block;max-width:none;margin:0;pointer-events:none;
  --w3:96px;--w2:70px;--w1:62px;--wc:130px}
.s-reviews.is-pin .rv__it[data-lite]{display:none !important}   /* phone: fewer items, so the 4.8 stays the subject */
.s-reviews.is-pin .rv__card{padding:10px 11px 12px}
.s-reviews.is-pin .rv__cq{font-size:12.5px;line-height:1.35}
.s-reviews.is-pin .rv__cn{font-size:13px}
.s-reviews.is-pin .rv__card .rv__st{--st:11px}
.s-reviews.is-pin .rv__ct{margin-bottom:7px}
.s-reviews.is-pin .rv__ph,.s-reviews.is-pin .rv__card:not([data-static]){display:block}
.s-reviews.is-pin .rv__it{position:absolute;left:var(--xm);top:0;will-change:transform;backface-visibility:hidden}
.s-reviews.is-pin .rv__ph[data-l="3"]{width:var(--w3);z-index:4;box-shadow:0 22px 44px rgba(10,10,10,.3)}
.s-reviews.is-pin .rv__ph[data-l="2"]{width:var(--w2);z-index:3;box-shadow:0 14px 30px rgba(10,10,10,.24)}
.s-reviews.is-pin .rv__ph[data-l="1"]{width:var(--w1);z-index:1;box-shadow:0 8px 18px rgba(10,10,10,.16)}
.s-reviews.is-pin .rv__card{width:var(--wc);z-index:3;box-shadow:0 18px 38px rgba(10,10,10,.3)}

.rv__prog{display:none}

/* pinned mode: one slide at a time, centred in the screen above the 88px Book bar */
.s-reviews.is-pin .rv__stage{height:100svh}
.s-reviews.is-pin .rv__slide{position:absolute;inset:0;padding:calc(var(--nav-h) + var(--s3)) var(--gut) calc(88px + var(--s6))}
.s-reviews.is-pin .rv__prog{display:flex;gap:6px;position:absolute;z-index:2;left:50%;width:min(220px, calc(100% - 2 * var(--gut)));transform:translateX(-50%);
  bottom:calc(88px + var(--s3) + env(safe-area-inset-bottom))}
.rv__prog i{flex:1;height:2px;background:rgba(10,10,10,.15);overflow:hidden}
.rv__prog b{display:block;height:100%;background:rgba(10,10,10,.85);transform-origin:left center;transform:scaleX(0)}

@media (min-width:900px){
  .rv__slide{padding:var(--s6) var(--gut)}   /* reduced / no-JS stack: one testimonial block, not five screens of chalk */
  .rv__q{font-size:56px;max-width:18ch}
  .rv__by{margin-top:var(--s4)}
  .rv__fly{max-width:1040px;grid-template-columns:repeat(3,1fr);gap:var(--s3)}
  .rv__cq{font-size:16px}
  .rv__cn{font-size:17px}
  .rv__card .rv__st{--st:15px}
  .rv__in > .rv__stars:not(.rv__stars--agg){--st:26px}
  .rv__stars--agg{--st:28px}
  .rv__g{width:34px;height:34px}
  .s-reviews.is-pin .rv__fly{--w3:240px;--w2:190px;--w1:150px;--wc:240px}
  .s-reviews.is-pin .rv__it{left:var(--x)}
  .s-reviews.is-pin .rv__it[data-lite]{display:block !important}
  .s-reviews.is-pin .rv__card{padding:14px 16px 16px;z-index:3}
  .s-reviews.is-pin .rv__ph[data-l="2"]{z-index:3}
  .s-reviews.is-pin .rv__cn{font-size:17px}
  .s-reviews.is-pin .rv__card .rv__st{--st:15px}
  .s-reviews.is-pin .rv__ct{margin-bottom:10px}
  .s-reviews.is-pin .rv__card .rv__cq{font-size:16px}
  .rv__tag{margin-top:var(--s3)}
  .s-reviews.is-pin .rv__slide{padding:calc(var(--nav-h) + var(--s3)) var(--gut) var(--s12)}
  .s-reviews.is-pin .rv__prog{bottom:var(--s6);width:280px}
}

/* last slide: Book a chair + live next open (copy pass round 3) */
.bk{height:auto;min-height:56px;flex-direction:column;gap:5px;padding:12px 26px;text-align:center}
.bk__s{font:500 13px/1 var(--body);color:rgba(10,10,10,.68);white-space:nowrap}
.bk__s:empty{display:none}
.rv__go{margin-top:var(--s4);min-width:240px}
@media (max-width:899px){ .rv__go{align-self:stretch;width:100%;min-height:60px} }   /* phone: the band's one act, full width like the hero */
@media (min-width:900px){ .rv__go{margin-top:var(--s5)} }

/* ES page (RESUME-9): real reviews stay in the reviewer's own English, and say so */
html[lang="es"] .rv__card .rv__cq::after{content:"Reseña en inglés";display:block;margin-top:8px;font:700 10px/1 var(--body);letter-spacing:.12em;
  text-transform:uppercase;color:var(--mute)}
