/* Voices, testimonial quotes. Lazy. Mobile-first: single column. */
.voices-sec{padding:56px 0}
.voices{display:grid;grid-template-columns:1fr;gap:16px}
.quote{border-radius:var(--r-lg);padding:36px 32px 30px;display:flex;flex-direction:column;gap:28px;min-height:240px}
.quote.dark{background:var(--navy);color:#EEF3F8}
.quote.light{background:var(--card);border:1px solid var(--line)}
.quote .mark{font-family:var(--f-display);font-weight:800;font-size:64px;line-height:0.5;color:var(--accent)}
.quote q{quotes:none;font-family:var(--f-display);font-weight:600;font-size:clamp(21px,3.5vw,25px);line-height:1.4;letter-spacing:-0.015em}
.quote cite{font-style:normal;margin-top:auto;font-size:14px;color:var(--muted)}
.quote.dark cite{color:rgba(238,243,248,0.65)}
.quote cite strong{display:block;font-size:15px;font-weight:600}
.quote.dark cite strong{color:#EEF3F8}
.quote.light cite strong{color:var(--ink)}
.quote.light q{font-style:italic;font-weight:500}
.quote.light{box-shadow:0 1px 2px rgba(23,33,46,0.04)}
.quote .avatar{width:44px;height:44px;border-radius:999px;object-fit:cover;margin-bottom:-6px}
.quote cite .ctx{display:block;font-size:12.5px;opacity:0.75;margin-top:2px}

/* layout-list: reviews stacked one per row, full width, regardless of viewport. */
.voices-sec.layout-list .voices{grid-template-columns:1fr}
.voices-sec.layout-list .quote{min-height:0}
.voices-see-all{display:inline-flex;margin-top:28px}

/* layout-slider: horizontal scroll-snap row, cards at half the container width. */
.voices-sec.layout-slider .voices{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding-bottom:8px;scrollbar-width:thin}
.voices-sec.layout-slider .quote{flex:0 0 86%;scroll-snap-align:start;min-height:0}
