/* ════════════════════════════════════════
   TESTIMONIALS CAROUSEL
════════════════════════════════════════ */
.testi-carousel-wrap { position: relative; }

/* Edge fades */
.testi-carousel-wrap::before,
.testi-carousel-wrap::after {
  content: ''; position: absolute; top: 0; bottom: 0; width: 80px; z-index: 2; pointer-events: none;
}
.testi-carousel-wrap::before { left: 0;  background: linear-gradient(to right, var(--surface-1), transparent); }
.testi-carousel-wrap::after  { right: 0; background: linear-gradient(to left,  var(--surface-1), transparent); }

[data-theme="light"] .testi-carousel-wrap::before { background: linear-gradient(to right, var(--surface-1), transparent); }
[data-theme="light"] .testi-carousel-wrap::after  { background: linear-gradient(to left,  var(--surface-1), transparent); }
[data-theme="light"] #testi-section                { background: var(--surface-1); }

/* Scrollable track */
.testi-track {
  display: flex; gap: 1.25rem;
  overflow-x: auto; scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding: 0.25rem 0 1.75rem;
  cursor: grab; user-select: none;
}
.testi-track::-webkit-scrollbar { display: none; }
.testi-track.grabbing { cursor: grabbing; }

/* Cards */
.testi-card {
  flex: 0 0 calc((100% - 2 * 1.25rem) / 3);
  min-width: 280px; scroll-snap-align: start;
  background: var(--surface-2); border-radius: var(--r-lg);
  padding: 1.75rem; border: 1px solid var(--border);
  transition: border-color 280ms, transform 280ms var(--ease);
}
.testi-card:hover { border-color: rgba(254,193,8,.2); transform: translateY(-3px); }

.testi-stars  { display: flex; gap: .22rem; margin-bottom: 1rem; }
.star         { color: var(--gold); font-size: .82rem; }
.testi-quote  { font-family: var(--font-d); font-style: italic; font-size: 1.1rem; line-height: 1.5; color: var(--text-secondary); margin-bottom: 1.2rem; }
.testi-author { display: flex; align-items: center; gap: .7rem; }
.testi-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--burgundy); display: flex; align-items: center; justify-content: center; font-family: var(--font-d); font-size: 1.05rem; color: var(--gold); flex-shrink: 0; border: 1px solid rgba(254,193,8,.2); }
.testi-name   { font-size: .86rem; font-weight: 600; color: var(--text-primary); }
.testi-show   { font-size: .7rem; color: var(--text-muted); margin-top: .1rem; }

/* Prev / Next arrows */
.testi-arrow {
  position: absolute; top: 50%; transform: translateY(calc(-50% - 0.875rem)); z-index: 10;
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--surface-3); border: 1px solid var(--border-strong); color: var(--text-primary);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; opacity: 0.7;
  transition: background 200ms, border-color 200ms, transform 200ms, opacity 200ms;
}
.testi-arrow:hover    { background: var(--burgundy); border-color: var(--burgundy); color: #f4ede3; opacity: 1; transform: translateY(calc(-50% - 0.875rem)) scale(1.08); }
.testi-arrow:disabled { opacity: 0.2; pointer-events: none; }
.testi-arrow-prev { left: -8px; }
.testi-arrow-next { right: -8px; }

/* Dot indicators */
.testi-dots { display: flex; justify-content: center; gap: .5rem; margin-top: .5rem; }
.testi-dot  { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.18); cursor: pointer; border: none; transition: background 220ms, transform 220ms, width 260ms var(--ease); }
.testi-dot.active { background: var(--gold); width: 20px; border-radius: 3px; }
