.reviews-section {
  padding: 80px clamp(22px, 7vw, 110px);
  background: #fff;
}

.reviews-summary {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
  gap: 12px 35px;
  max-width: 1270px;
  margin: 0 auto 34px;
}

.google-brand {
  grid-column: 1;
  display: flex;
  align-items: center;
  gap: 9px;
  width: max-content;
  margin-bottom: 4px;
  color: #3c4043;
  font-size: 16px;
}

.google-brand span {
  background: conic-gradient(from -38deg, #4285f4 0 26%, #34a853 0 42%, #fbbc05 0 66%, #ea4335 0 80%, #4285f4 0);
  background-clip: text;
  color: transparent;
  font: 800 30px/1 Arial, sans-serif;
  -webkit-background-clip: text;
}

.reviews-summary .eyebrow,
.reviews-summary h2 {
  grid-column: 1;
}

.reviews-summary .eyebrow {
  margin-top: 10px;
}

.reviews-summary h2 {
  font: 500 clamp(34px, 4vw, 54px)/1.08 Georgia, serif;
  letter-spacing: -1.6px;
}

.google-rating {
  grid-column: 2;
  grid-row: 2 / span 3;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0 12px;
  min-width: 245px;
  padding: 20px 24px;
  border: 1px solid #e3d8bc;
  border-radius: 14px;
  background: linear-gradient(145deg, #fff, #faf5e8);
  box-shadow: 0 16px 36px #41371920, 0 3px 9px #41371917;
  transform: translateY(-3px);
}

.google-rating strong {
  grid-row: 1 / span 2;
  color: #242820;
  font: 600 64px/1 Georgia, serif;
  text-shadow: 0 2px 0 #fff, 0 5px 12px #5f4a1f20;
}

.google-rating span,
.review-stars {
  color: #d19e35;
  letter-spacing: 2px;
}

.google-rating span {
  font-size: 25px;
  line-height: 1.15;
  text-shadow: 0 3px 9px #9c701d2b;
}

.review-stars {
  font-size: 19px;
  font-weight: 750;
}

.google-rating small {
  color: #737b70;
}

.google-review-link {
  grid-column: 2;
  color: #8b6d30;
  font-size: 11px;
  font-weight: 700;
  text-align: right;
}

.review-marquee {
  max-width: 100%;
  overflow: hidden;
  margin: auto;
  padding: 10px 0 20px;
  mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
}

.review-track {
  display: flex;
  width: max-content;
  animation: review-scroll 55s linear infinite;
}

.review-group {
  display: flex;
  gap: 16px;
  padding-right: 16px;
}

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

@keyframes review-scroll {
  to {
    transform: translateX(-50%);
  }
}

.review-card {
  display: flex;
  flex-direction: column;
  min-height: 235px;
  width: min(360px, 82vw);
  padding: 24px;
  border: 1px solid #dedfd7;
  border-radius: 10px;
  background: #faf9f5;
}

.review-card > p {
  margin: 18px 0 24px;
  color: #596158;
  font-size: 13px;
}

.review-card footer {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  margin-top: auto;
}

.review-card footer strong,
.review-card footer small {
  display: block;
}

.review-card footer small {
  color: #8b9288;
}

.review-card footer a,
.google-attribution {
  color: #8b6d30;
  font-size: 10px;
}

.google-attribution {
  max-width: 1270px;
  margin: 20px auto 0;
  color: #7b8278;
}

@media (max-width: 900px) {
}

@media (max-width: 620px) {
  .reviews-section {
    padding: 60px 16px;
  }

  .reviews-summary {
    grid-template-columns: 1fr;
  }

  .google-rating,
  .google-review-link {
    grid-column: 1;
    grid-row: auto;
    text-align: left;
  }

  .review-card {
    min-height: 0;
  }

  .google-rating {
    width: max-content;
    min-width: 225px;
  }

  .google-rating span {
    font-size: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .review-marquee {
    overflow-x: auto;
    mask-image: none;
  }

  .review-track {
    animation: none;
  }
}
