/* Stories V4. The V3 filenames remain stable for existing integrations. */
.voices-section {
  --voice-ink: #514942; --voice-accent: #89515d;
  background: #f8f5f0; overflow: hidden; padding: 72px 0;
}
.voices-section .voices-container { max-width: 1160px; }
.voices-section .voices-heading { margin: 0 auto 30px; text-align: center; }
.voices-heading .eyebrow { color: #795f54; font-size: 11px; margin: 0 0 10px; }
.voices-heading h2 { font: 500 clamp(30px,3vw,40px)/1.5 var(--serif); letter-spacing: .05em; color: #3d3835; margin: 0 0 12px; }
.voices-heading > p:last-child { font-size: 16px; color: #756b64; margin: 0; }
.voices-carousel { position: relative; margin: auto; outline: none; }
.voices-carousel:focus-visible { outline: 3px solid var(--voice-accent); outline-offset: 6px; }
.voices-section .reviews-viewport { position: relative; overflow: hidden; touch-action: pan-y; padding: 6px 2px 20px; }
.voices-section .review-track { --review-gap: 20px; display: flex; align-items: flex-start; gap: var(--review-gap); min-width: 0; transition: transform .48s cubic-bezier(.22,.72,.22,1); }
.voices-section .review-card {
  flex: 0 0 calc((100% - 2 * var(--review-gap))/3); min-width: 0; min-height: 264px;
  display: flex; flex-direction: column; border-radius: 8px; padding: 28px 28px 24px;
  background: #fffefa; border: 1px solid #e1d6cb;
  box-shadow: 0 6px 18px #44332906; color: var(--voice-ink);
}
.voices-section .review-card-top { height: 30px; flex: none; }
.voices-section .quote-mark { font: 400 50px/1 Georgia,serif; color: #a76f69; }
.voices-section .review-text { flex: 1; font: 400 18px/1.9 var(--serif); color: var(--voice-ink); margin: 18px 0 24px; overflow-wrap: anywhere; text-wrap: pretty; }
.voices-section .review-meta { margin-top: auto; padding-top: 16px; border-top: 1px solid #e7dfd6; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.voices-section .review-chips { display: flex; gap: 12px; align-items: center; }
.voices-section .review-chip { font: 500 14px/1.6 var(--sans); color: #755e56; }
.voices-section .review-chip + .review-chip { border-left: 1px solid #d6c8bb; padding-left: 12px; }
.voices-section .review-footnote { font: 400 12px/1.6 var(--sans); color: #776b63; white-space: nowrap; }
.voices-section .review-card.is-current .review-meta { padding-right: 112px; }
.voices-section .review-card.is-current .review-footnote { display: none; }
.voices-section .review-chips { flex-shrink: 0; }
.voices-section .review-pagination { position: absolute; right: var(--review-control-right,28px); bottom: 44px; display: flex; align-items: center; gap: 2px; height: 28px; background: #fffefa; z-index: 1; }
.voices-section .review-count { display: flex; justify-content: center; align-items: baseline; gap: 3px; min-width: 44px; white-space: nowrap; }
.voices-section #reviewCounter { font: 500 13px/1.5 var(--sans); color: #684c43; }
.voices-section .review-count-total { font-size: 12px; color: #756b64; }
.voices-section .review-arrow { display: grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: 3px; color: #76594f; background: transparent; }
.voices-section .review-arrow:hover { background: #f0e7df; }
.voices-section .review-arrow:focus-visible, .voices-section .voices-soft-cta:focus-visible { outline: 3px solid #89515d; outline-offset: 2px; }
.voices-section .review-arrow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.voices-section .voices-soft-cta { display: flex; align-items: center; gap: 12px; margin: 22px auto 0; padding: 10px 2px; background: transparent; border: 0; border-bottom: 1px solid #bca89b; color: #855e56; font: 500 16px/1.7 var(--sans); }
.voices-section .voices-soft-cta span { font-size: 20px; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@media(max-width:1020px) and (min-width:701px) {
  .voices-section .review-card { flex-basis: calc((100% - var(--review-gap))/2); padding: 24px; }
}
@media(max-width:700px) {
  .voices-section { padding: 52px 0; background: #faf7f2; }
  .voices-section .voices-container { width: calc(100% - 32px); }
  .voices-section .voices-heading { margin-bottom: 24px; text-align: center; }
  .voices-heading h2 { font-size: 29px; margin-bottom: 10px; }
  .voices-heading > p:last-child { font-size: 16px; line-height: 1.8; }
  .voices-section .reviews-viewport { padding: 6px 0 20px; }
  .voices-section .review-track { --review-gap: 12px; }
  .voices-section .review-card { flex:0 0 calc(100% - 36px); min-height: 264px; padding: 24px 22px 22px; }
  .voices-section .review-card.is-current { border-color: #c4a99a; }
  .voices-section .review-text { font-size: 17px; line-height: 1.85; margin: 10px 0 22px; }
  .voices-section .review-meta { gap: 8px; padding-top: 14px; }
  .voices-section .review-pagination { bottom: 34px; height: 44px; gap: 0; }
  .voices-section .review-card.is-current .review-meta { padding-right: 132px; }
  .voices-section .review-count { min-width: 36px; }
  .voices-section #reviewCounter { font-size: 14px; }
  .voices-section .review-arrow { width: 44px; height: 44px; }
  .voices-section .review-card-top { height: 26px; }
  .voices-section .quote-mark { font-size: 44px; }
  .voices-section .review-footnote { font-size: 11px; }
  .voices-section .voices-soft-cta { font-size: 15px; margin-top: 18px; }
}
@media(max-width:360px) {
  .voices-section .review-card { flex-basis: calc(100% - 30px); padding-inline: 20px; }
  .voices-section .review-text { font-size: 17px; }
  .voices-section .review-chip { font-size: 13px; }
}
@media(prefers-reduced-motion:reduce) {
  .voices-section .review-track { transition: none !important; }
}
