/* ── Testimonials Section ───────────────────────────────────────────── */

.ips-testimonials {
  background-color: var(--ink-bg);
  border-top: 1px solid var(--ink-border);
}

/* Cards grid — 3 columns */
.ips-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 64px;
}

/* Individual card */
.ips-testimonial-card {
  background: var(--ink-card);
  border: 1px solid var(--ink-border);
  padding: 40px 32px 36px;
  position: relative;
  overflow: hidden;
  transition: border-color 0.3s, transform 0.35s var(--ease-out-expo), box-shadow 0.35s;
}

.ips-testimonial-card:hover {
  border-color: var(--ink-gold-dark);
  transform: translateY(-6px);
  box-shadow: 0 16px 48px rgba(0,0,0,0.6);
}

/* Large decorative quote mark */
.ips-testimonial-card__quote-mark {
  font-family: var(--font-sub);
  font-size: 120px;
  line-height: 0.8;
  color: var(--ink-gold);
  opacity: 0.15;
  position: absolute;
  top: 16px;
  left: 24px;
  pointer-events: none;
  user-select: none;
}

/* Stars */
.ips-testimonial-card__stars {
  display: flex;
  gap: 3px;
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}

/* Quote text */
.ips-testimonial-card__text {
  font-size: 15px;
  color: var(--ink-text);
  line-height: 1.8;
  font-style: normal;
  margin-bottom: 28px;
  position: relative;
  z-index: 1;
  quotes: none;
}

/* Footer: name + service */
.ips-testimonial-card__footer {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-top: 20px;
  border-top: 1px solid var(--ink-border);
  position: relative;
  z-index: 1;
}

.ips-testimonial-card__name {
  font-family: var(--font-heading);
  font-size: 18px;
  letter-spacing: 0.05em;
  color: var(--ink-gold);
}

.ips-testimonial-card__service {
  font-family: var(--font-sub);
  font-style: italic;
  font-size: 13px;
  color: var(--ink-muted);
}

/* Google rating badge */
.ips-testimonials__rating {
  display: flex;
  justify-content: center;
}

.ips-rating-badge {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 32px;
  border: 1px solid var(--ink-border);
  background: var(--ink-card);
  animation: pulse-gold 3s ease-in-out infinite;
}

.ips-rating-badge__score {
  font-family: var(--font-heading);
  font-size: 28px;
  color: var(--ink-gold);
  letter-spacing: 0.04em;
}

.ips-rating-badge__label {
  font-size: 13px;
  color: var(--ink-muted);
}

.ips-rating-badge__studio {
  font-size: 12px;
  color: var(--ink-dim);
  padding-left: 12px;
  border-left: 1px solid var(--ink-border);
}

/* ── Responsive ─────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .ips-testimonials__grid { grid-template-columns: 1fr 1fr; }
  .ips-testimonials__grid .ips-testimonial-card:last-child {
    grid-column: span 2;
    max-width: 520px;
    margin-inline: auto;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .ips-testimonials__grid { grid-template-columns: 1fr; }
  .ips-testimonials__grid .ips-testimonial-card:last-child {
    grid-column: span 1;
    max-width: none;
  }
  .ips-rating-badge { flex-wrap: wrap; justify-content: center; gap: 8px; }
  .ips-rating-badge__studio { border-left: none; padding-left: 0; }
}
