/* Real alumni voices, with a native horizontal track. */
.reviews-section { padding:80px 0 68px; background:#f1ece4; scroll-margin-top:100px; }
.reviews-layout { --reviews-gutter:48px; }
.reviews-heading { display:flex; align-items:center; justify-content:space-between; gap:48px; margin-bottom:35px; }
.reviews-heading .eyebrow { margin-bottom:18px; }
.reviews-heading h2 { max-width:650px; font:400 clamp(36px,3.8vw,54px)/1.13 var(--serif); letter-spacing:-.035em; text-wrap:balance; }
.reviews-heading h2 span { display:block; }
.reviews-intro { margin-top:20px; color:var(--muted); font-size:15px; line-height:1.7; }
.reviews-rating { flex:none; display:flex; flex-direction:column; align-items:center; margin-right:5px; min-width:125px; color:var(--ink); }
.reviews-rating>span:first-child { font:400 70px/.95 var(--serif); letter-spacing:-.065em; }
.reviews-rating>span:first-child small { font-size:30px; color:#877c70; letter-spacing:-.04em; }
.reviews-rating .review-stars { margin-top:14px; font-size:15px; }
.reviews-rating>small { margin-top:4px; font-size:12px; color:var(--muted); }
.reviews-track { display:flex; gap:20px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:var(--reviews-gutter); scrollbar-width:thin; scrollbar-color:#c5b5d2 transparent; padding:3px var(--reviews-gutter) 18px; cursor:grab; }
.reviews-track::-webkit-scrollbar { height:4px; }
.reviews-track::-webkit-scrollbar-thumb { background:#c5b5d2; border-radius:8px; }
.reviews-track:focus-visible { outline:3px solid var(--purple); outline-offset:-3px; }
.reviews-track.is-continuous { scroll-snap-type:none; scroll-behavior:auto; overflow-anchor:none; scrollbar-width:none; }
.reviews-track.is-continuous::-webkit-scrollbar { display:none; }
.reviews-track.is-dragging { cursor:grabbing; user-select:none; scroll-snap-type:none; scroll-behavior:auto; }
.review-card { flex:0 0 clamp(320px,28vw,420px); min-width:0; min-height:398px; margin:0; padding:26px; display:flex; flex-direction:column; scroll-snap-align:start; border:1px solid #dfd6c9; border-radius:16px; background:#fff; box-shadow:0 4px 0 #e6ded34d; }
.review-card-top { display:flex; align-items:center; justify-content:space-between; min-height:24px; margin-bottom:20px; }
.review-stars { color:#94651f; letter-spacing:3px; font-size:13px; line-height:1; white-space:nowrap; }
.review-quote-mark { color:#af98c4; font:400 62px/.5 var(--serif); translate:0 11px; }
.review-card blockquote { margin:0 0 30px; font:400 19px/1.55 var(--serif); font-style:normal; letter-spacing:-.012em; overflow-wrap:break-word; }
.review-card figcaption { display:flex; align-items:center; gap:12px; border-top:1px solid #d8cfdd; padding-top:20px; margin-top:auto; }
.review-avatar { flex:none; width:42px; height:42px; display:grid; place-items:center; border:1px solid #c9b7d9; border-radius:50%; color:#6e4b87; background:#e6daee; font-size:13px; font-weight:500; }
.review-card:not([data-review-tone]):nth-child(3n+2) .review-avatar, .review-card[data-review-tone="1"] .review-avatar { color:#6b6047; background:#ede6d4; border-color:#d7cbb2; }
.review-card:not([data-review-tone]):nth-child(3n) .review-avatar, .review-card[data-review-tone="2"] .review-avatar { color:#566746; background:#dde5d4; border-color:#bdcbae; }
.review-card figcaption strong { display:block; font-size:14px; font-weight:500; line-height:1.4; }
.review-card figcaption small { display:block; margin-top:3px; color:var(--muted); font-size:11px; line-height:1.4; }
.reviews-footer { display:flex; align-items:center; justify-content:space-between; gap:28px; padding-top:23px; }
.reviews-source p { color:#756b78; font-size:11px; margin-top:6px; }
.reviews-controls { display:flex; align-items:center; gap:26px; }
.reviews-controls[hidden] { display:none; }
.reviews-position { width:116px; }
.reviews-position>span:first-child { display:block; text-align:right; color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; }
.reviews-progress { display:block; overflow:hidden; height:3px; margin-top:9px; border-radius:10px; background:#dcd2e1; }
.reviews-progress::before { content:""; display:block; width:var(--review-progress,0%); height:100%; background:var(--purple); border-radius:inherit; }
.reviews-buttons { display:flex; gap:8px; }
.reviews-buttons button { min-height:46px; padding:11px 19px; border:1px solid #c3b0d3; border-radius:9px; background:transparent; color:var(--purple); font:500 13px/1.4 var(--sans); cursor:pointer; transition:background 180ms,color 180ms; }
.reviews-buttons button:not(:disabled):hover { background:#e4d9ef; }
.reviews-buttons .reviews-autoplay { color:var(--muted); border-color:#c9c0cd; }
.reviews-buttons button[data-reviews-next] { border-color:var(--purple); background:var(--purple); color:#fff; }
.reviews-buttons button[data-reviews-next]:not(:disabled):hover { background:#5733b0; }
.reviews-buttons button:disabled { opacity:.38; cursor:default; }
.reviews-buttons button:focus-visible { outline:3px solid var(--purple); outline-offset:4px; }
@media(max-width:1050px) {
  .reviews-heading { gap:24px; }
  .reviews-heading h2 { font-size:46px; }
}
@media(max-width:1000px) {
  .reviews-layout { --reviews-gutter:28px; }
}
@media(max-width:650px) {
  .reviews-section { padding:52px 0 44px; }
  .reviews-layout { --reviews-gutter:22px; }
  .reviews-heading { align-items:flex-end; gap:18px; margin-bottom:27px; }
  .reviews-heading .eyebrow { margin-bottom:15px; }
  .reviews-heading h2 { font-size:clamp(32px,8.5vw,40px); }
  .reviews-intro { margin-top:16px; font-size:13px; }
  .reviews-rating { display:none; }
  .reviews-track { gap:14px; }
  .review-card { flex-basis:88%; min-height:410px; padding:24px; }
  .review-card blockquote { font-size:18px; line-height:1.55; }
  .review-card-top { margin-bottom:19px; }
  .reviews-footer { flex-direction:column-reverse; align-items:stretch; gap:23px; padding-top:17px; }
  .reviews-controls { justify-content:space-between; flex-wrap:wrap; gap:13px; }
  .reviews-position { width:100%; display:flex; align-items:center; gap:14px; }
  .reviews-position>span:first-child { flex:none; text-align:left; font-size:11px; }
  .reviews-position .reviews-progress { flex:1; margin-top:0; }
  .reviews-buttons { width:100%; }
  .reviews-buttons button { flex:1; padding:11px 10px; font-size:12px; }
  .reviews-source { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
  .reviews-source .text-link { font-size:12px; flex:none; }
  .reviews-source p { font-size:10px; text-align:right; max-width:145px; margin:0; }
}
@media(prefers-reduced-motion:reduce) {
  .reviews-track { scroll-behavior:auto; }
  .reviews-buttons button { transition:none; }
}
