/* ============================================================ */
/* BLOQUE: REVIEWS 3D CAROUSEL v2.0                             */
/* Anillo 3D con 12 tarjetas. La posición exacta (rotateY /     */
/* translateZ / opacidad) la controla modules/carousel3d.js     */
/* ============================================================ */

.reviews { overflow: hidden; }

.reviews__stage {
  position: relative;
  height: 480px;
  margin: var(--space-2xl) 0 var(--space-xl);
  perspective: 1400px;
  perspective-origin: 50% 40%;
}

.reviews__ring {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 340px;
  height: 380px;
  transform-style: preserve-3d;
  transform: translate(-50%, -50%);
  transition: transform 0.9s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.review-card {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-sm);
  padding: var(--space-xl) var(--space-lg);
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  backface-visibility: hidden;
  transition: opacity 0.6s ease, filter 0.6s ease;
  will-change: transform, opacity;
}

/* La tarjeta frontal recibe glow (clase puesta por JS) */
.review-card--front {
  border-color: rgba(255, 59, 48, 0.5);
  box-shadow: 0 0 60px rgba(255, 59, 48, 0.25), var(--shadow-md);
}

.review-card__face {
  width: 72px;
  height: 72px;
  border-radius: var(--radius-full);
  border: 2px solid var(--accent-primary);
  object-fit: cover;
  background: var(--bg-secondary);
}

.review-card__stars {
  color: var(--warning);
  font-size: var(--text-lg);
  letter-spacing: 0.15em;
}

.review-card__text {
  font-size: var(--text-sm);
  color: var(--text-secondary);
  line-height: 1.65;
  flex: 1;
}

.review-card__author {
  font-size: var(--text-xs);
  color: var(--text-muted);
  line-height: 1.5;
}

.review-card__author strong {
  display: block;
  font-size: var(--text-sm);
  color: var(--text-primary);
}

/* Flechas */
.reviews__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 52px;
  height: 52px;
  border-radius: var(--radius-full);
  border: 1px solid var(--border-hover);
  background: rgba(26, 26, 26, 0.85);
  backdrop-filter: blur(8px);
  color: var(--text-primary);
  font-size: 1.75rem;
  line-height: 1;
  cursor: pointer;
  transition: background var(--transition-fast), border-color var(--transition-fast),
              transform var(--transition-fast);
}

.reviews__arrow:hover {
  background: var(--accent-glow-strong);
  border-color: var(--accent-primary);
  transform: translateY(-50%) scale(1.08);
}

.reviews__arrow--prev { left: var(--space-lg); }
.reviews__arrow--next { right: var(--space-lg); }

.reviews__disclaimer {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
  font-size: var(--text-xs);
  line-height: 1.6;
}

@media (max-width: 767px) {
  .reviews__stage { height: 440px; perspective: 1000px; }
  .reviews__ring { width: 280px; height: 360px; }
  .reviews__arrow--prev { left: var(--space-xs); }
  .reviews__arrow--next { right: var(--space-xs); }
  .reviews__arrow { width: 44px; height: 44px; font-size: 1.4rem; }
}

@media (prefers-reduced-motion: reduce) {
  .reviews__ring { transition: none; }
  .review-card { transition: none; }
}
