/* ks/reviews: the block's own styles (loaded only when the block is on the page).
   Ported from the K&S prototype's component CSS; token-driven: colours, type, space,
   radii and shadows come from the site's tokens (theme.json presets via tokens.css).
   Base rules (.section, .wrap, .stack, .btn, .eyebrow …) live in assets/css/base.css. */

/* == reviews-head == */
.reviews-head{display:flex;justify-content:space-between;align-items:end;gap:var(--space-l);margin-bottom:var(--space-head);flex-wrap:wrap}

/* == review-score == */
.review-score{display:flex;align-items:center;gap:var(--space-m);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-m);padding:var(--space-s) var(--space-l)}
.review-score__value{font-family:var(--font-heading);font-size:var(--text-display-l);line-height:1;font-weight:500}
.review-score__stars{color:var(--secondary);letter-spacing:0.125em}
.review-score__label{font-size:var(--text-s);color:var(--text-muted);display:block}

/* == review == */
.review{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-m);padding:var(--space-pad-l);display:flex;flex-direction:column;margin:0}
.review__stars{color:var(--secondary);letter-spacing:0.133em;font-size:var(--text-s);margin-bottom:var(--space-s)}
.review__quote{font-family:var(--font-heading);font-weight:400;font-size:var(--text-l);line-height:1.5;flex:1;margin:0 0 var(--space-l)}
.review__author{display:flex;align-items:center;gap:var(--space-s);padding-top:var(--space-m);border-top:1px solid var(--border);font-size:var(--text-s);font-weight:700}
.review__initial{width:38px;height:38px;border-radius:50%;background:var(--neutral-l-4);color:var(--neutral);display:grid;place-items:center;font-style:normal;font-weight:700}
.review__source{font-weight:500;color:var(--text-muted);font-size:var(--text-xs);display:block}
.review--slide{scroll-snap-align:start}
.review--slide .review__quote{flex:0 0 auto;margin-bottom:var(--space-s);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden}
.review--open .review__quote{-webkit-line-clamp:unset;display:block}
.review__more{align-self:flex-start;background:none;border:0;padding:0;font:inherit;font-size:var(--text-s);font-weight:700;color:var(--secondary-d-1);cursor:pointer;margin-bottom:var(--space-l)}
.review--slide .review__author{margin-top:auto}
.review--big .review__quote{font-size:var(--text-2xl)}

/* == reviews-note == */
.reviews-note{font-size:var(--text-xs);color:var(--text-muted);margin:var(--space-m) 0 0}

/* == review-carousel == */
/* Reviews carousel: three across, scroll or click through the rest (site.js fills it from reviews.json) */
.review-carousel--row .review-carousel__track{display:grid;grid-template-columns:none;gap:var(--space-grid);grid-auto-flow:column;grid-auto-columns:calc((100% - 2 * var(--space-grid)) / 3);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding:var(--space-4xs);margin:calc(-1 * var(--space-4xs))}
.review-carousel__track::-webkit-scrollbar{display:none}
.review-carousel__nav{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-l)}
.review-carousel__arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--border-strong);background:var(--white);color:var(--text-body);display:grid;place-items:center;cursor:pointer;transition:background .2s,border-color .2s,opacity .2s}
.review-carousel__arrow-icon{width:18px;height:18px}
.review-carousel__arrow-icon--back{transform:scaleX(-1)}
.review-carousel__arrow:hover:not(:disabled){border-color:var(--secondary);background:var(--bg-body)}
.review-carousel__arrow:disabled{opacity:.35;cursor:default}
.review-carousel__all{margin-left:auto;font-size:var(--text-s)}
/* Practice pages: the proof quote becomes a one-card slider (site.js), arrows and an n / total count under it. */
/* default width the solo carousel's controls take inside the card (a site may set --size-review-nav) */
:where(:root){--size-review-nav:150px}
.review-carousel--solo{display:flex;flex-direction:column;min-width:0;position:relative}
.review-carousel--solo .review-carousel__track{flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:var(--space-grid);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.review-carousel--solo .review-carousel__nav{position:absolute;right:var(--space-pad-l);bottom:var(--space-pad-l);margin:0}
/* the arrows sit inside the card, bottom right, on the reviewer's row: the row keeps room for them */
.review--big.review--slide .review__author{padding-right:var(--size-review-nav)}
.review-carousel--solo .review-carousel__nav[hidden]{display:none}
.review-carousel__count{font-size:var(--text-s);font-weight:700;color:var(--text-muted);font-variant-numeric:tabular-nums;margin-left:var(--space-2xs)}
@media (max-width:1020px){
  .review-carousel--row .review-carousel__track{grid-auto-columns:86%}
}

/* == proof == */
.proof__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-grid);align-items:stretch}
@media (max-width:1020px){
  .proof__grid{grid-template-columns:minmax(0,1fr)}
}

/* == mini-lawyer == */
.mini-lawyer{background:var(--primary-l-1);color:var(--text-on-dark);border-radius:var(--radius-m);padding:var(--space-pad-l);display:flex;flex-direction:column;gap:var(--space-m)}
.mini-lawyer__who{display:flex;gap:var(--space-m);align-items:center}
.mini-lawyer__photo{width:76px;height:76px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid var(--secondary)}
.mini-lawyer__name{font-family:var(--font-heading);font-weight:500;font-size:var(--text-xl);color:var(--white);display:block;line-height:1.2}
.mini-lawyer__credentials{color:var(--text-on-dark-muted);font-size:var(--text-s)}
.mini-lawyer__text{margin:0;color:var(--text-on-dark-muted);font-size:var(--text-s)}
.mini-lawyer__action{margin-top:auto}
