.reviews-section .reviews-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}

.reviews-section { max-width: 1440px; }

.reviews-section .reviews-grid.reviews-marquee {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}

.reviews-marquee-row {
  overflow: hidden;
  padding: 2px;
  touch-action: pan-y;
}

.reviews-marquee-track,
.reviews-marquee-group {
  display: flex;
  width: max-content;
}

.reviews-marquee-track {
  animation: reviews-marquee 90s linear infinite;
  will-change: transform;
}

.reviews-marquee-row--reverse .reviews-marquee-track {
  animation-direction: reverse;
}

.reviews-marquee-group {
  gap: 18px;
  padding-right: 18px;
}

.reviews-marquee .review-card {
  width: min(360px, 28vw);
  height: 245px;
  min-height: 190px;
  flex: 0 0 min(360px, 28vw);
}

.reviews-grid.reviews-marquee:hover .reviews-marquee-track,
.reviews-grid.reviews-marquee:focus .reviews-marquee-track,
.reviews-grid.reviews-marquee:focus-within .reviews-marquee-track {
  animation-play-state: paused;
}

@keyframes reviews-marquee {
  to { transform: translateX(-50%); }
}

.reviews-section .review-card {
  gap: 12px;
  min-height: 190px;
  padding: clamp(16px, 1.8vw, 22px);
  border: 1px solid color-mix(in srgb, var(--ink) 10%, transparent);
  box-shadow: none;
}

.reviews-section .review-stars {
  gap: 3px;
  color: #fabb05;
}

.reviews-section .review-stars svg {
  width: 27px;
  height: 27px;
  stroke: #bd8200;
  stroke-width: .7;
  paint-order: stroke fill;
}

.reviews-section .review-copy {
  margin: 0;
  font-size: clamp(16px, 1.2vw, 18px);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.reviews-section .review-scores {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.reviews-section .review-scores div {
  display: flex;
  gap: 3px;
}

.reviews-section .review-scores dt,
.reviews-section .review-scores dd {
  margin: 0;
}

.reviews-section .review-person {
  margin-top: auto;
}

.reviews-section .review-avatar {
  --avatar-shade: #5d0b0e;
  width: 46px;
  height: 46px;
  background: var(--avatar-shade);
  color: #f7f0e6;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 5px 16px color-mix(in srgb, var(--avatar-shade) 32%, transparent);
  font-size: 17px;
}

.reviews-section .review-card:nth-child(8n + 2) .review-avatar { --avatar-shade: #70161a; }
.reviews-section .review-card:nth-child(8n + 3) .review-avatar { --avatar-shade: #84262a; }
.reviews-section .review-card:nth-child(8n + 4) .review-avatar { --avatar-shade: #4c1013; }
.reviews-section .review-card:nth-child(8n + 5) .review-avatar { --avatar-shade: #94373a; }
.reviews-section .review-card:nth-child(8n + 6) .review-avatar { --avatar-shade: #662226; }
.reviews-section .review-card:nth-child(8n + 7) .review-avatar { --avatar-shade: #7b1116; }
.reviews-section .review-card:nth-child(8n) .review-avatar { --avatar-shade: #56242a; }

.reviews-section .review-person strong {
  font-size: 15px;
}

@media (max-width: 860px) {
  .reviews-section .reviews-grid {
    grid-template-columns: 1fr;
  }

  .reviews-section .review-card {
    min-height: 210px;
  }

  .reviews-section .reviews-grid.reviews-marquee { gap: 10px; }

  .reviews-marquee .review-card {
    width: min(44vw, 170px);
    height: 132px;
    min-height: 132px;
    flex-basis: min(44vw, 170px);
    gap: 6px;
    padding: 10px;
  }

  .reviews-section .review-stars { gap: 2px; }
  .reviews-section .review-stars svg { width: 14px; height: 14px; }
  .reviews-section .review-copy {
    font-size: 11px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .reviews-section .review-scores { gap: 2px 5px; font-size: 9px; }
  .reviews-section .review-avatar { width: 24px; height: 24px; font-size: 11px; }
  .reviews-section .review-person { gap: 6px; }
  .reviews-section .review-person strong { font-size: 11px; }

  .reviews-marquee-track {
    animation-duration: 180s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .reviews-section .reviews-grid.reviews-marquee {
    overflow: visible;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .reviews-marquee-row {
    overflow: visible;
  }

  .reviews-marquee-track {
    width: auto;
    animation: none;
  }

  .reviews-marquee-group[aria-hidden="true"] {
    display: none;
  }

  .reviews-marquee-group {
    width: 100%;
    flex-wrap: wrap;
  }

  .reviews-marquee .review-card {
    width: calc(50% - 9px);
    flex-basis: calc(50% - 9px);
  }

}

@media (max-width: 860px) and (prefers-reduced-motion: reduce) {
  .reviews-marquee .review-card {
    width: 100%;
    flex-basis: 100%;
  }
}
