.testimonials { background: var(--cream-2); }
.rev-summary {
  display: flex;
  align-items: stretch;
  gap: 0;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: 22px;
  padding: 22px 28px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.rev-sum-block {
  padding: 6px 28px 6px 0;
  display: flex; align-items: center; gap: 16px;
}
.rev-sum-block + .rev-sum-block { border-left: 1px solid var(--rule); padding-left: 28px; }
.g-logo {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--paper);
  border: 1px solid var(--rule);
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 44px;
}
.rev-rating-num {
  font-family: "Fraunces", serif;
  font-size: 34px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1;
}
.rev-stars {
  display: inline-flex; gap: 2px;
  color: var(--gold);
  margin-top: 4px;
}
.rev-stars svg { width: 16px; height: 16px; }
.rev-sub {
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 4px;
}
.rev-actions { margin-left: auto; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.rev-actions .btn-primary { background: var(--maroon); }

.reviews {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.review {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: 20px;
  padding: 24px 24px 22px;
  position: relative;
  display: flex; flex-direction: column;
  transition: transform 0.25s, box-shadow 0.25s;
}
.review:hover { transform: translateY(-2px); box-shadow: 0 18px 30px -20px rgba(27,20,17,0.25); }
.review-head {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 14px;
}
.review-avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: "Fraunces", serif;
  font-weight: 600;
  font-size: 18px;
  flex: 0 0 44px;
}
.review-meta { flex: 1; min-width: 0; }
.review-name {
  font-weight: 600; font-size: 14.5px;
  display: flex; align-items: center; gap: 6px;
  color: var(--ink);
}
.review-sub { font-size: 12px; color: var(--ink-soft); margin-top: 2px; }
.review-g {
  width: 18px; height: 18px;
  opacity: 0.85;
  flex: 0 0 18px;
}
.review-stars-row {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 10px;
}
.review-stars { display: inline-flex; gap: 1px; color: var(--gold); }
.review-stars svg { width: 14px; height: 14px; }
.review-time { font-size: 12px; color: var(--ink-soft); }
.review-text {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink);
  margin: 0;
  text-wrap: pretty;
}
.review-text .more {
  color: var(--maroon);
  font-weight: 600;
  margin-left: 4px;
  cursor: pointer;
}
.review-foot {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11.5px;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}
.review-foot .via {
  display: inline-flex; align-items: center; gap: 6px;
  text-transform: uppercase; letter-spacing: 0.16em; font-size: 10px;
}
@media (max-width: 1000px) { .reviews { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
  .reviews {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 14px;
    padding: 4px 4px 12px;
    margin: 0 -4px;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }
  .review {
    flex: 0 0 86%;
    scroll-snap-align: center;
  }
  .rev-sum-block + .rev-sum-block { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 16px; margin-top: 6px; }
  .rev-actions { margin-left: 0; width: 100%; }
}
