/* The complete reviews remain readable and scrollable without JavaScript. */
.reviews-section .reviews-grid {
  --review-gap: 18px;
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc(100% - 24px);
  gap: var(--review-gap);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 0;
  scrollbar-width: thin;
  scrollbar-color: #90aca0 transparent;
  padding: 0 0 14px;
  align-items: stretch;
}
.reviews-section .review {
  min-width: 0;
  grid-column: auto;
  scroll-snap-align: start;
  scroll-margin-inline: 0;
}
.reviews-section .review blockquote {
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 18px;
}
.reviews-section.reviews-ready .review-quote:not(.is-expanded) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 7;
  line-clamp: 7;
  overflow: hidden;
}
.review-read-more {
  min-height: 44px;
  margin: -8px 0 14px;
  padding: 5px 0;
  color: var(--heading, #078462);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 4px;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.reviews-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-top: 14px;
}
.reviews-toolbar[hidden], .review-read-more[hidden] { display: none; }
.reviews-hint { margin: 0; font-size: 14px; color: var(--secondary); }
.reviews-controls { display: flex; align-items: center; gap: 8px; }
.reviews-count { margin-right: 8px; min-width: 66px; font-size: 14px; font-variant-numeric: tabular-nums; }
.reviews-prev svg { transform: rotate(180deg); }
.reviews-controls .icon-button { width: 44px; height: 44px; color: var(--ink); }
.reviews-controls .icon-button:disabled { opacity: .35; cursor: default; }
.reviews-controls .icon-button:disabled:hover { background: #fff; }
.reviews-grid:focus-visible { outline: 3px solid #079777; outline-offset: 5px; }
@media (min-width: 761px) {
  .reviews-section .reviews-grid { --review-gap: 28px; grid-auto-columns: calc((100% - var(--review-gap)) / 2); }
}
@media (min-width: 1101px) {
  .reviews-section .reviews-grid { --review-gap: 36px; grid-auto-columns: calc((100% - 2 * var(--review-gap)) / 3); }
  .reviews-section .review blockquote { font-size: 19px; }
  .reviews-section .review-featured blockquote { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .reviews-grid { scroll-behavior: auto; }
}
@media (max-width: 760px) {
  .reviews-section.section { padding-block: 48px; }
  .reviews-section .section-heading { margin-bottom: 28px; }
  .reviews-section .section-heading h2 { font-size: 32px; }
  .reviews-section.reviews-ready .review-quote:not(.is-expanded) { -webkit-line-clamp: 6; line-clamp: 6; }
}
@media print {
  .reviews-section .reviews-grid { display: grid; grid-auto-flow: row; grid-template-columns: 1fr 1fr; overflow: visible; }
  .reviews-section.reviews-ready .review-quote:not(.is-expanded) { display: block; overflow: visible; }
  .reviews-toolbar, .review-read-more { display: none; }
}
