.testimonial-slider { position: relative; }

.ts-viewport { overflow: hidden; width: 100%; }

.ts-track { display: flex; will-change: transform; transition: transform .4s ease; align-items: stretch; }

.ts-slide {
    flex: 0 0 80%;
    padding: 0 12px;
    box-sizing: border-box;
    display: flex;
}

.testimonial-card {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* Show partial prev/next by centering track in viewport */
.testimonial-slider .ts-viewport { padding: 10px 0; }

@media (min-width: 768px) {
    .ts-slide {
        flex-basis: 50%;
    }
}

/* On large screens show exactly one slide */
@media (min-width: 1024px) {
    .ts-slide {
        flex-basis: 100%;
    }
}

/* Arrows inside to prevent horizontal overflow */
.ts-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: #fff;
    border: 1px solid #e5e7eb;
    width: 42px;
    height: 42px;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 3;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
}

.ts-prev {
    left: -8%;
}

.ts-next {
    right: -8%;
}

.dark .ts-arrow {
    background: #1f2937;
    border-color: #374151;
}

/* Bullets: circular with white background */
.ts-dots {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin-top: 16px;
}

.ts-dot {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #ffffff;
    border: 2px solid #e5e7eb;
    cursor: pointer;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .06);
}

.ts-dot.active {
    background: #2563eb;
    border-color: #2563eb;
}

.dark .ts-dot {
    background: #111827;
    border-color: #374151;
}

.dark .ts-dot.active {
    background: #7c3aed;
    border-color: #7c3aed;
}