.home-reviews { overflow: hidden; background: var(--surface-ivory); }
.home-reviews-heading { margin: 0 auto 42px; text-align: center; }
.home-reviews-heading .home-section-kicker { margin-bottom: 12px; color: var(--teal-700); }
.home-reviews-heading h2 { margin-bottom: 16px; scroll-margin-top: 110px; }
.home-reviews-heading h2 span { display: inline-block; }
.home-reviews-intro { margin: 0; color: var(--muted); font-size: .92rem; }
.reviews-viewport { overflow-x: auto; padding: 8px 0 16px; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: #c5bdaf transparent; }
.reviews-viewport + .reviews-viewport { margin-top: 4px; }
.reviews-track { --reviews-duration: 60s; display: flex; width: max-content; }
.reviews-viewport-reverse .reviews-track { --reviews-duration: 66s; }
.reviews-group { display: flex; min-width: 100vw; padding-inline: 10px; gap: 20px; align-items: stretch; }
.reviews-group[data-reviews-copy] { display: none; }
.review-card { display: flex; flex: 1 0 304px; width: 304px; min-width: 0; min-height: 248px; padding: 24px; flex-direction: column; color: var(--ink); background: #fff; border: 1px solid #e6e2da; border-radius: 6px; transition: border-color .2s, box-shadow .2s; }
a.review-card:hover, a.review-card:focus-visible { border-color: #bc8589; box-shadow: 0 5px 18px rgba(7,29,43,.07); }
.review-card-header { display: flex; gap: 12px; align-items: center; }
.review-avatar { display: grid; flex: 0 0 40px; width: 40px; height: 40px; place-items: center; color: var(--teal-700); font-size: .85rem; font-weight: 750; background: var(--teal-100); border-radius: 50%; }
.review-avatar { object-fit: cover; }
.review-author { margin: 0 0 3px; font-size: .94rem; overflow-wrap: anywhere; }
.review-service { display: block; color: var(--muted); font-size: .73rem; }
.review-quote { flex: 1; margin: 21px 0 23px; color: #53636b; font-size: .86rem; line-height: 1.9; overflow-wrap: anywhere; }
.review-card-footer { display: flex; padding-top: 15px; gap: 10px; align-items: center; justify-content: space-between; border-top: 1px solid #eeece7; font-size: .7rem; }
.review-source { color: #697780; }
.review-action { color: var(--teal-700); font-weight: 650; }
.review-card-example .review-source { padding: 1px 7px; color: #765725; background: var(--gold-100); border-radius: 3px; }
.review-card-example .review-action { color: #697780; font-weight: 400; }
.home-reviews-controls { display: flex; margin-top: 24px; gap: 12px 24px; align-items: center; justify-content: center; }
.reviews-hint { margin: 0; color: var(--muted); font-size: .76rem; }
.reviews-toggle { display: inline-flex; min-height: 40px; padding: 7px 14px; align-items: center; gap: 8px; color: var(--ink); font-size: .76rem; background: transparent; border: 1px solid #ccc5ba; border-radius: 4px; cursor: pointer; }
.reviews-toggle[hidden] { display: none; }
.reviews-toggle::before { content: "Ⅱ"; color: var(--teal-700); font-weight: 800; }
.reviews-toggle[aria-pressed="true"]::before { content: "▷"; }
.reviews-toggle:hover { background: #fff; border-color: var(--teal-700); }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport { overflow-x: auto; scrollbar-width: none; mask-image: linear-gradient(to right, transparent, #000 48px, #000 calc(100% - 48px), transparent); }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport::-webkit-scrollbar { display: none; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-track { animation: reviews-flow var(--reviews-duration) linear infinite; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport-reverse .reviews-track { animation-direction: reverse; }
.home-reviews.is-enhanced .reviews-group[data-reviews-copy] { display: flex; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport:hover .reviews-track { animation-play-state: paused; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport:focus-within .reviews-track { animation-play-state: paused; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-touching .reviews-track { animation-play-state: paused; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport[data-reviews-static] { overflow-x: auto; mask-image: none; }
.home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport[data-reviews-static] .reviews-track { animation: none; }
@keyframes reviews-flow { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 600px) {
  .home-reviews-heading { margin-bottom: 28px; }
  .home-reviews-heading h2 { font-size: 1.85rem; line-height: 1.4; }
  .home-reviews-intro { font-size: .82rem; }
  .reviews-group { gap: 14px; padding-inline: 7px; }
  .review-card { flex-basis: 278px; width: 278px; padding: 20px; }
  .home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport { mask-image: linear-gradient(to right, transparent, #000 16px, #000 calc(100% - 16px), transparent); }
  .home-reviews-controls { gap: 10px; flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  .home-reviews.is-enhanced:not(.reviews-manual) .reviews-track { animation: none; }
  .home-reviews.is-enhanced:not(.reviews-manual) .reviews-viewport { overflow-x: auto; mask-image: none; }
  .home-reviews.is-enhanced .reviews-group[data-reviews-copy] { display: none; }
}
