/* ==========================================================================
   Customer reviews carousel — home (section) and product page (block).
   Scroll-snap track + prev/next buttons (reviews.js). Tokens from main.css.
   ========================================================================== */

.vz-reviews--product { margin-top: clamp(48px, 6vw, 80px); }

.vz-reviews__stars,
.vz-review__stars { display: inline-flex; gap: 2px; color: var(--accent); flex: none; }

.vz-reviews__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.vz-reviews__nav { display: flex; gap: 8px; }
.vz-reviews__nav[hidden] { display: none; }
.vz-reviews__btn { box-shadow: inset 0 0 0 1px var(--line); background: var(--white); border-radius: var(--r-pill); cursor: pointer; }
.vz-reviews__btn:hover:not(:disabled) { background: var(--hover); }
.vz-reviews__btn:disabled { opacity: .4; cursor: default; }

.vz-reviews__list {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 86%;
    align-items: start;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    margin: 0 -4px;
    padding: 4px 4px 12px;
    list-style: none;
    scrollbar-width: thin;
}
.vz-reviews__list:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: var(--r-card); }
@media (prefers-reduced-motion: reduce) { .vz-reviews__list { scroll-behavior: auto; } }
@media (min-width: 700px)  { .vz-reviews__list { grid-auto-columns: calc((100% - 16px) / 2); } }
@media (min-width: 1100px) { .vz-reviews__list { grid-auto-columns: calc((100% - 32px) / 3); } }

.vz-review { scroll-snap-align: start; min-width: 0; display: flex; }
.vz-review__fig { min-height: 220px; }
.vz-review__fig {
    margin: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 22px;
    background: var(--white);
    border-radius: var(--r-card);
    box-shadow: inset 0 0 0 1px var(--line);
}
.vz-reviews--product .vz-review__fig { background: var(--surface); }

.vz-review__text { margin: 0; flex: 1; }
.vz-review__text p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.6;
    color: var(--text-2);
    overflow-wrap: anywhere;
    white-space: pre-line;
}
.vz-review__text p::before { content: "\201C"; }
.vz-review__text p::after  { content: "\201D"; }

.vz-review__meta { display: flex; flex-direction: column; gap: 6px; padding-top: 14px; border-top: 1px solid var(--line); }
.vz-review__item {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--ink);
    overflow-wrap: anywhere;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.vz-review__by { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 13px; color: var(--muted); }
.vz-review__buyer { font-family: var(--font-mono); font-size: 12.5px; }
.vz-review__by > * + time::before { content: "·"; margin-right: 10px; }

.vz-reviews__note { margin-top: 12px; font-size: 13px; color: var(--muted); }

.vz-reviews__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; list-style: none; padding: 0; }
.vz-reviews__chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
    padding: 4px 12px;
    border-radius: var(--r-pill);
    background: var(--gray-bg);
    font-size: 13px;
    font-weight: 600;
    color: var(--text-2);
}
.vz-reviews__chipval { font-family: var(--font-mono); font-size: 12.5px; font-weight: 500; color: var(--ink); }
.vz-reviews__chipof { color: var(--muted); }
.vz-reviews--product .vz-reviews__chip { background: var(--surface); }
