/* Слайдер отзывов — handoff «Цены», §3.4. Разметка: template-parts/sections/reviews.php
   Трек выходит в поля секции: карточки «выезжают» от края экрана. */
.vb-reviews { padding-block: var(--page-section-y); overflow: hidden; }
.vb-reviews__inner { max-width: var(--page-max); margin-inline: auto; display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); }
.vb-reviews__head, .vb-reviews__foot { padding-inline: var(--page-pad); }
.vb-reviews__head { gap: clamp(18px, 3vw, 56px); }
.vb-reviews__head .vb-pg-h2 { color: var(--vb-ink); }

.vb-reviews__ratings { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.vb-rating-chip { display: flex; align-items: center; gap: 12px; min-height: 60px; padding: 8px 20px 8px 10px; border-radius: var(--r-pill); background: #fff; box-shadow: var(--sh-flat); }
.vb-rating-chip img { width: 40px; height: 40px; object-fit: contain; }
.vb-rating-chip__text { display: flex; flex-direction: column; line-height: 1.1; }
.vb-rating-chip__score { font-family: var(--font-brand); font-weight: 700; font-size: 22px; color: var(--vb-ink); }
.vb-rating-chip__stars { color: var(--vb-gold); font-size: 16px; }
.vb-rating-chip__name { font-size: 13px; color: var(--vb-ink-3); }

.vb-reviews__track {
  --gap: clamp(12px, 1.4vw, 20px);
  display: flex; gap: var(--gap); overflow-x: auto;
  scroll-snap-type: x mandatory; scroll-padding: 0 var(--page-pad);
  padding: 4px var(--page-pad) 16px;
  scrollbar-width: none; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y; cursor: grab;
}
.vb-reviews__track::-webkit-scrollbar { display: none; }
.vb-reviews__track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.vb-reviews__track:focus-visible { outline-offset: -3px; }

.vb-review {
  flex: 0 0 min(86%, 440px); scroll-snap-align: start;
  background: #fff; border-radius: 26px; box-shadow: var(--sh-flat);
  padding: clamp(22px, 2.2vw, 30px); display: flex; flex-direction: column; gap: 16px;
}
.vb-review__who { display: flex; align-items: center; gap: 14px; }
.vb-review__avatar { flex: none; width: 52px; height: 52px; border-radius: var(--r-pill); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-brand); font-weight: 700; font-size: 22px; }
.vb-review__avatar--photo { object-fit: cover; display: block; padding: 0; }
.vb-review__person { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vb-review__name { font-weight: 700; font-size: 18px; color: var(--vb-ink); }
.vb-review__level { font-size: 14px; color: var(--vb-ink-3); }
.vb-review__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; color: var(--vb-ink-3); }
.vb-review__stars { color: var(--vb-gold); font-size: 18px; letter-spacing: 2px; }
.vb-review__source { margin-left: auto; font-family: var(--font-display); font-weight: 600; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--vb-gold-deep); }
.vb-review__text { font-size: clamp(16px, 1.2vw, 17px); line-height: 1.6; color: var(--vb-ink-2); text-wrap: pretty; }

.vb-reviews__foot { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.vb-reviews__nav { display: flex; align-items: center; gap: 10px; }
.vb-reviews__arrow {
  width: 52px; height: 52px; border-radius: var(--r-pill); border: 1.5px solid var(--vb-ink);
  background: transparent; color: var(--vb-ink); font-size: 20px; cursor: pointer;
  transition: background var(--dur-fast), color var(--dur-fast);
}
.vb-reviews__arrow:hover { background: var(--vb-ink); color: var(--vb-gold); }
.vb-reviews__arrow--dark { background: var(--vb-ink); color: var(--vb-gold); }
.vb-reviews__arrow--dark:hover { background: var(--vb-gold); color: var(--vb-ink); border-color: var(--vb-gold); }
.vb-reviews__pos { font-family: var(--font-brand); font-weight: 700; font-size: 16px; color: var(--vb-ink-3); padding-left: 6px; }
.vb-reviews__dots { display: flex; gap: 5px; padding-left: 8px; }
.vb-reviews__dots span { height: 6px; width: 6px; border-radius: var(--r-pill); background: var(--vb-line-warm); transition: width .3s ease, background .3s ease; }
.vb-reviews__dots span.is-active { width: 18px; background: var(--vb-gold); }
.vb-reviews__links { display: flex; flex-wrap: wrap; gap: 8px; }
.vb-reviews__link {
  flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 52px; padding: 0 22px; border-radius: var(--r-pill);
  border: 1.5px solid var(--vb-ink); color: var(--vb-ink); font-weight: 700; font-size: 15px; text-decoration: none;
  transition: background var(--dur-fast), color var(--dur-fast);
}
.vb-reviews__link span { color: var(--vb-gold-deep); }
.vb-reviews__link:hover { background: var(--vb-ink); color: var(--vb-cream-ink); }
.vb-reviews__link--dark { background: var(--vb-ink); color: var(--vb-cream-ink); }
.vb-reviews__link--dark span { color: var(--vb-gold); }
.vb-reviews__link--dark:hover { background: var(--vb-gold); color: var(--vb-ink); border-color: var(--vb-gold); }
.vb-reviews__link--dark:hover span { color: var(--vb-ink); }

@media (max-width: 759.98px) {
  .vb-reviews__ratings { justify-content: flex-start; }
  .vb-reviews__links { flex: 1 1 100%; }
}
