/* One anonymous paragraph at a time, with direct control over movement. */
.reviews-section { position: relative; background: linear-gradient(180deg,#f3efe5 0%,#f8f5ec 100%); border-block: 1px solid #ded8c9; overflow: clip; }
.reviews-section:before { content: ''; position: absolute; width: 520px; height: 630px; inset-inline-end: -270px; top: 30px; border: 1px solid #b9a16b22; border-radius: 50% 50% 0 0; pointer-events: none; }
.reviews-section>.container { position: relative; }
.reviews-section [hidden] { display: none !important; }
.reviews-heading { align-items: center; margin-bottom: 38px; }
.reviews-intro { max-width: 310px; padding-block: 4px; }
.reviews-intro>p { font-size: 15px; line-height: 1.9; color: var(--muted); }
.review-source { display: flex; align-items: center; gap: 9px; margin-top: 17px; font-size: 11px; line-height: 1.8; color: #79683f; }
.review-source .icon { width: 18px; height: 18px; stroke-width: 1.2; }
.reviews-carousel { position: relative; }
.reviews-viewport { position: relative; display: flex; margin-inline: 72px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: 9px; background: var(--green); color: var(--cream); cursor: grab; }
.reviews-viewport::-webkit-scrollbar { display: none; }
.reviews-viewport:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.reviews-viewport.is-dragging { scroll-snap-type: none; cursor: grabbing; user-select: none; }
.review-slide { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 0 0 100%; min-width: 0; min-height: 340px; margin: 0; padding: 31px 65px 36px; scroll-snap-align: center; scroll-snap-stop: always; isolation: isolate; overflow: hidden; text-align: center; }
.review-slide:before { content: ''; position: absolute; width: 300px; height: 400px; inset-inline-end: -120px; bottom: -220px; border: 1px solid #d9bc7526; border-radius: 50% 50% 0 0; z-index: -1; pointer-events: none; }
.review-quote-mark { height: 32px; color: var(--gold-light); font: 78px/.8 'Cormorant Garamond',Georgia,serif; }
.review-slide blockquote { width: 100%; max-width: 830px; margin: 22px 0 27px; }
.review-quote { font: 500 32px/1.4 var(--serif); color: var(--cream); text-wrap: pretty; }
.review-author { position: relative; font: 600 13px/1.7 var(--sans); letter-spacing: .2px; color: var(--gold-light); }
.review-author:before { content: ''; display: block; width: 26px; height: 1px; background: #d7bf8077; margin: 0 auto 10px; }
.review-arrow { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 48px; height: 48px; padding: 11px; border: 1px solid #b8bda5; border-radius: 50%; background: var(--cream); color: var(--green); transition: background .2s,border-color .2s,box-shadow .2s; z-index: 2; }
.review-arrow-left { left: 0; }
.review-arrow-right { right: 0; }
.review-arrow svg { display: block; width: 24px; height: 24px; }
.review-arrow:hover:not(:disabled) { background: #e5d7b7; border-color: #b59b62; box-shadow: 0 4px 14px #073e3410; }
.review-arrow:disabled { opacity: .34; cursor: default; }
.reviews-navigation { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 18px 72px 0; min-height: 36px; }
.review-position { display: inline-flex; align-items: center; gap: 11px; font-size: 13px; font-weight: 600; color: var(--green); min-width: 78px; }
.review-position-total { color: #8c927b; font-weight: 400; }
.review-position-divider { display: block; width: 24px; height: 1px; background: #c2c6b1; }
.review-dots { display: flex; align-items: center; justify-content: center; gap: 1px; }
.review-dot { display: grid; place-items: center; width: 28px; height: 32px; padding: 8px; background: none; border: 0; border-radius: 3px; }
.review-dot>span { display: block; width: 6px; height: 6px; border-radius: 50%; background: #bfc5af; transition: width .2s,background .2s; }
.review-dot.is-active>span { width: 18px; border-radius: 8px; background: var(--green); }
.reviews-hint { color: #6c775f; font-size: 11px; line-height: 1.8; }
.reviews-editorial-note { color: #737761; font-size: 11px; line-height: 1.8; text-align: center; margin: 22px auto 0; }
html[dir=rtl] .review-quote { font-size: 25px; line-height: 1.95; font-weight: 400; }
html[dir=rtl] .review-author { letter-spacing: 0; }
@media (max-width:860px) {
  .reviews-intro { max-width: 540px; margin-top: 20px; }
  .review-source { margin-top: 12px; }
  .reviews-viewport { margin-inline: 58px; }
  .review-slide { padding-inline: 35px; }
  .review-quote { font-size: 29px; }
  .reviews-navigation { flex-wrap: wrap; justify-content: center; gap: 6px 24px; margin-inline: 58px; }
  .reviews-hint { flex-basis: 100%; text-align: center; }
  html[dir=rtl] .review-quote { font-size: 23px; }
}
@media (max-width:620px) {
  .reviews-heading { margin-bottom: 28px; }
  .reviews-intro>p { font-size: 14px; }
  .review-source { font-size: 11px; gap: 8px; }
  .reviews-viewport { margin-inline: 0; border-radius: 7px; }
  .review-slide { min-height: 400px; padding: 30px 41px 33px; }
  .review-slide blockquote { margin-block: 19px 24px; }
  .review-quote { font-size: 26px; line-height: 1.4; }
  .review-author { font-size: 13px; }
  .review-arrow { width: 44px; height: 44px; padding: 10px; }
  .review-arrow-left { left: -14px; }
  .review-arrow-right { right: -14px; }
  .review-arrow:disabled { opacity: .65; background: #f0eee5; }
  .reviews-navigation { margin-inline: 0; gap: 2px 14px; }
  .review-dots { order: -1; flex-basis: 100%; }
  .review-position { min-width: auto; }
  .reviews-hint { flex-basis: auto; text-align: start; }
  .reviews-editorial-note { margin-top: 17px; font-size: 10px; }
  html[dir=rtl] .review-quote { font-size: 20px; line-height: 1.95; }
}
@media (max-width:360px) {
  .review-slide { padding-inline: 35px; }
  .review-quote { font-size: 24px; }
  .review-dot { width: 26px; }
  html[dir=rtl] .review-quote { font-size: 19px; }
}
@media (prefers-reduced-motion:reduce) {
  .review-arrow,.review-dot>span { transition: none; }
  .reviews-viewport { scroll-behavior: auto; }
}
