/* Homepage customer stories: a continuously moving review rail. */
.testimonials { padding-block: 64px; overflow: hidden; background: #fafbf7; border-top: 1px solid #edf1e8; }
.testimonials-heading { margin-bottom: 34px; }
.testimonials-heading h2 { color: var(--forest); font-size: clamp(44px, 4.8vw, 66px); line-height: 1.06; }
.testimonials-heading h2 > span { position: relative; isolation: isolate; display: inline-block; padding: 3px 13px 8px; margin-top: 5px; }
.testimonials-heading h2 > span::before { content: ''; position: absolute; z-index: -1; inset: 2px 0; background: var(--lime); transform: rotate(-1deg); clip-path: polygon(2% 7%,96% 0,99% 14%,97% 30%,100% 50%,97% 70%,99% 90%,95% 100%,1% 94%,3% 73%,0 53%,3% 29%); }
.testimonials .testimonials-heading > p:last-child { margin-top: 14px; font-size: 16px; }
.testimonial-carousel { --review-gap: 24px; --review-width: calc((min(1220px, 100vw - 88px) - 48px) / 3); }
.testimonial-viewport { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; overscroll-behavior-x: contain; cursor: grab; padding: 12px 3px 28px; margin-inline: -3px; touch-action: pan-y; }
.testimonial-viewport.is-ready { overflow: hidden; }
.testimonial-viewport.is-ready .testimonial-track { will-change: transform; }
.testimonial-viewport::-webkit-scrollbar { display: none; }
.testimonial-viewport:focus-visible { outline: 2px solid var(--green); outline-offset: 7px; border-radius: 8px; }
.testimonial-viewport.is-dragging { cursor: grabbing; user-select: none; }
.testimonial-track, .testimonial-set { display: flex; align-items: stretch; gap: var(--review-gap); width: max-content; }
.testimonial-card { width: var(--review-width); flex: none; display: flex; flex-direction: column; padding: 27px 28px 24px; background: #fff; border: 1px solid #e0e6db; border-radius: 14px; box-shadow: 0 8px 24px #032d1d08; }
.testimonial-quote-mark { height: 33px; color: #c1df9e; font: 700 66px/.9 Georgia,serif; }
.testimonial-stars { display: flex; gap: 3px; margin-top: 17px; margin-bottom: 20px; color: var(--green); }
.testimonial-stars svg { width: 18px; height: 18px; fill: currentColor; }
.testimonial-card blockquote { margin: 0 0 26px; flex: 1; }
.testimonial-card blockquote p { color: #37493b; font-size: 16px; line-height: 1.85; }
.testimonial-person { display: grid; grid-template-columns: 38px 1fr; gap: 0 11px; align-items: center; padding-top: 19px; border-top: 1px solid #e5eadf; }
.testimonial-avatar { width: 38px; height: 38px; display: grid; place-items: center; background: var(--pale); color: var(--forest); border-radius: 50%; font-size: 12px; font-weight: 700; }
.testimonial-name { color: var(--forest); font-size: 14px; font-weight: 700; line-height: 1.6; }
.testimonial-card .testimonial-town { margin: 1px 0 0; font-size: 12px; color: #667563; line-height: 1.6; }
.testimonial-job { grid-column: 2; color: #667563; font-size: 11px; margin-top: 5px; }
.testimonial-bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px; margin-top: 12px; }
.testimonial-google { background: var(--forest); color: #fff; min-height: 49px; font-size: 14px; }
.testimonial-google:hover { background: #0c452b; color: #fff; }
.testimonial-google .icon { color: var(--lime); width: 18px; }
@media (min-width: 1500px) { .testimonial-carousel { --review-width: calc((1220px - 48px) / 3); } }
@media (max-width: 1190px) { .testimonial-carousel { --review-width: calc((100vw - 64px - 48px) / 3); } }
@media (max-width: 1000px) { .testimonial-carousel { --review-width: calc((100vw - 64px - 24px) / 2); } }
@media (max-width: 800px) { .testimonial-carousel { --review-width: calc((100vw - 44px - 24px) / 2); } .testimonial-card { padding: 24px; } }
@media (max-width: 600px) {
  .testimonials { padding-block: 46px; }
  .testimonials-heading { margin-bottom: 22px; }
  .testimonials .testimonials-heading h2 { max-width: none; font-size: clamp(34px, 10.4vw, 44px); }
  .testimonials-heading h2 > span { white-space: nowrap; }
  .testimonials .testimonials-heading > p:last-child { font-size: 15px; }
  .testimonial-carousel { --review-gap: 16px; --review-width: calc(100vw - 60px); }
  .testimonial-card { padding: 24px 23px 22px; }
  .testimonial-card blockquote p { font-size: 15px; line-height: 1.85; }
  .testimonial-bottom { justify-content: center; gap: 23px; margin-top: 2px; }
  .testimonial-google { order: 2; width: 100%; }
}

