/* ═══════════════════════════════════
   REVIEWS SECTION
   ═══════════════════════════════════ */
.reviews-section {
  background: var(--crema);
  padding-block: var(--section-v);
  overflow: hidden;
}

.reviews-section__header {
  text-align: center;
  max-width: var(--container-narrow);
  margin-inline: auto;
  padding-inline: var(--container-padding);
  margin-bottom: var(--sp-12);
}

.reviews-section__title {
  font-family: var(--font-display);
  font-size: var(--fs-4xl);
  font-weight: 500;
  color: var(--texto-principal);
  line-height: 1.1;
  margin-block: var(--sp-3) var(--sp-5);
}

/* Rating badge */
.reviews-rating-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-3);
  background: var(--blanco);
  border-radius: var(--radius-full);
  padding: var(--sp-2) var(--sp-5);
  box-shadow: var(--shadow-sm);
  margin-top: var(--sp-4);
}

.reviews-rating-badge__score {
  font-family: var(--font-display);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--cafe-principal);
  line-height: 1;
}

.reviews-rating-badge__stars { display: flex; gap: 2px; }

.star-icon {
  width: 16px;
  height: 16px;
  color: #F59E0B;
  fill: currentColor;
}

.reviews-rating-badge__label {
  font-size: var(--fs-xs);
  color: var(--texto-suave);
  line-height: 1.3;
  text-align: left;
}

/* ── Carousel ── */
.reviews-carousel {
  position: relative;
  max-width: var(--container-max);
  margin-inline: auto;
  padding-inline: var(--container-padding);
}

.reviews-track-wrapper {
  overflow: hidden;
  border-radius: var(--radius-lg);
}

.reviews-track {
  display: flex;
  gap: var(--sp-5);
  transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  will-change: transform;
  align-items: stretch;
}

/* ══════════════════════════════════
   REVIEW CARD — rediseño
   ══════════════════════════════════ */
.review-card {
  flex-shrink: 0;
  background: var(--blanco);
  border-radius: var(--radius-xl);
  padding: var(--sp-8) var(--sp-8) var(--sp-6);
  box-shadow: 0 2px 16px rgba(44, 24, 16, 0.07), 0 1px 4px rgba(44,24,16,0.04);
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
  position: relative;
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  /* La anchura la fija JS — fixCardWidths() */
}

.review-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--verde-principal), var(--verde-claro));
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
}

.review-card:hover {
  box-shadow: 0 8px 32px rgba(44, 24, 16, 0.13);
  transform: translateY(-4px);
}

/* Stars */
.review-card__stars {
  display: flex;
  gap: 3px;
}

/* Quote mark decorativa */
.review-card__quote-icon {
  position: absolute;
  top: var(--sp-5);
  right: var(--sp-6);
  font-family: var(--font-display);
  font-size: 5rem;
  line-height: 1;
  color: var(--verde-palido);
  pointer-events: none;
  user-select: none;
  leading-trim: both;
}

/* Texto de la reseña */
.review-card__text {
  font-family: var(--font-heading);
  font-size: var(--fs-base);
  color: var(--texto-secundario);
  line-height: 1.75;
  font-style: italic;
  flex: 1;
  position: relative;
  z-index: 1;
}

/* Autor */
.review-card__author {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--gris-borde);
}

.review-card__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--verde-palido), var(--verde-menta));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: var(--fs-lg);
  font-weight: 600;
  color: var(--verde-profundo);
  flex-shrink: 0;
  border: 2px solid var(--verde-menta);
}

.review-card__name {
  display: block;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--texto-principal);
}

.review-card__source {
  display: block;
  font-size: var(--fs-xs);
  color: var(--verde-principal);
  font-weight: 500;
}

/* ── Controls ── */
.reviews-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-4);
  margin-top: var(--sp-8);
}

.reviews-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--blanco);
  border: 2px solid var(--gris-borde);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  color: var(--texto-secundario);
}

.reviews-btn svg { width: 18px; height: 18px; }

.reviews-btn:hover:not(:disabled) {
  background: var(--verde-principal);
  border-color: var(--verde-principal);
  color: var(--blanco);
  transform: scale(1.08);
}

.reviews-btn:disabled { opacity: 0.3; }

/* Dots */
.reviews-dots {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.reviews-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gris-borde);
  transition: all 0.3s ease;
  border: none;
  padding: 0;
}

.reviews-dot.is-active {
  background: var(--verde-principal);
  width: 24px;
  border-radius: var(--radius-full);
}
