.reviews-section {
  background:
    radial-gradient(circle at 12% 14%, rgba(233,154,120,.13), transparent 19rem),
    radial-gradient(circle at 88% 72%, rgba(75,57,133,.11), transparent 22rem),
    var(--cream-light);
}

.reviews-heading { margin-bottom: 38px; }
.reviews-heading > p { max-width: 520px; color: var(--muted); }

.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.review-card {
  position: relative;
  min-height: 260px;
  padding: 28px 26px 24px;
  border: 3px solid var(--purple);
  border-radius: 24px;
  background: linear-gradient(155deg, #fffdf7, #fbeec1);
  box-shadow: 9px 10px 0 rgba(75,57,133,.12);
  overflow: hidden;
}

.review-card::before {
  content: "✦";
  position: absolute;
  right: 18px;
  top: 10px;
  color: rgba(233,154,120,.28);
  font-size: 4.4rem;
  line-height: 1;
  transform: rotate(12deg);
}

.review-stars {
  position: relative;
  z-index: 1;
  margin: 0 0 14px;
  color: var(--peach);
  font-size: 1.25rem;
  letter-spacing: .14em;
}

.review-text {
  position: relative;
  z-index: 1;
  margin: 0;
  color: var(--ink);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.12rem;
  line-height: 1.52;
}

.review-footer {
  position: relative;
  z-index: 1;
  margin-top: 24px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 14px;
  border-top: 1px solid rgba(75,57,133,.18);
  padding-top: 17px;
}

.review-author { display: grid; gap: 3px; }
.review-author strong { color: var(--purple-dark); }
.review-author small { color: var(--muted); }

.verified-review {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border: 1px solid rgba(75,57,133,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.55);
  color: var(--purple);
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.reviews-loading,
.reviews-empty {
  grid-column: 1 / -1;
  padding: 38px 24px;
  border: 2px dashed rgba(75,57,133,.28);
  border-radius: 22px;
  text-align: center;
  color: var(--muted);
}

.reviews-empty > span { display: block; color: var(--peach); font-size: 2rem; }
.reviews-empty strong { display: block; margin-top: 5px; color: var(--purple-dark); font-size: 1.1rem; }
.reviews-empty p { margin: 7px 0 0; }

@media (max-width: 980px) {
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 590px) {
  .reviews-grid { grid-template-columns: 1fr; gap: 16px; }
  .review-card { min-height: 0; padding: 23px 20px 20px; border-width: 2px; }
  .review-text { font-size: 1.02rem; }
  .review-footer { align-items: flex-start; flex-direction: column; }
}
