/* ── Quick-link card hover ──────────────────────────────── */
.ql-card {
  transition: transform 0.32s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow 0.32s ease,
              border-color 0.32s ease;
}
.ql-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.08), 0 20px 40px rgba(0,0,0,0.10), 0 32px 64px rgba(232,75,30,0.08);
  border-color: rgba(232,75,30,0.30) !important;
}

/* ── Review card stagger entrance on scroll ──────────────── */
@keyframes cardReveal {
  from { opacity: 0; transform: translateY(20px) scale(0.96); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.review-card {
  opacity: 0;
  background: #fff;
  border: 1.5px solid rgba(25,43,60,0.08);
  box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.06), 0 16px 40px rgba(0,0,0,0.03);
  transition: transform 0.32s cubic-bezier(0.34,1.56,0.64,1),
              box-shadow 0.32s ease,
              border-color 0.32s ease;
}
.review-card.visible {
  animation: cardReveal 0.55s cubic-bezier(0.22,1,0.36,1) forwards;
}
.review-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.08), 0 20px 40px rgba(0,0,0,0.10), 0 32px 64px rgba(232,75,30,0.08);
  border-color: rgba(232,75,30,0.25);
}

/* ── Hidden review rows (load more) ────────────────────── */
.reviews-hidden {
  display: none;
}
.reviews-hidden.reviews-shown {
  display: grid;
}

/* ── Star rating color ──────────────────────────────────── */
.star-filled { color: #F59E0B; }
.star-empty  { color: rgba(25,43,60,0.15); }

/* ── Reduce motion (page-specific) ─────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .review-card { animation: none; opacity: 1; }
}
