/* ── Testimonials carousel ── */
.testimonials { padding: 2.5rem 0 1rem; }

.testimonials .section-label { padding: 0 1rem; }

.testi-track-wrap { position: relative; }

.testi-track {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 1rem 1rem 1.2rem;
}

.testi-track::-webkit-scrollbar { display: none; }

.testi-card {
    background: var(--white);
    border: 2px solid #f0e8d0;
    border-radius: 20px;
    padding: 1.3rem 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    scroll-snap-align: start;
    flex: 0 0 80vw;         /* 1 card visible on mobile */
    max-width: 300px;
    transition: transform 0.2s, box-shadow 0.2s;
}

@media (min-width: 600px) { .testi-card { flex: 0 0 45vw; } }
@media (min-width: 900px) { .testi-card { flex: 0 0 300px; } }

.testi-card.featured {
    border-color: var(--sun);
    background: linear-gradient(160deg, #fffdf0, #fff9e6);
}

.testi-stars { color: var(--sun); font-size: 0.95rem; letter-spacing: 0.05em; }

.testi-text {
    font-size: 0.9rem;
    line-height: 1.65;
    color: var(--text);
    flex: 1;
    font-style: italic;
}

.testi-text::before { content: '\201C'; font-size: 1.4rem; color: var(--sun); line-height: 0; vertical-align: -0.4rem; margin-right: 0.1rem; }
.testi-text::after  { content: '\201D'; font-size: 1.4rem; color: var(--sun); line-height: 0; vertical-align: -0.4rem; margin-left: 0.1rem; }

.testi-author {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    border-top: 1px dashed #f0e8d0;
    padding-top: 0.9rem;
}

.testi-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    flex-shrink: 0;
}

.testi-info .name {
    font-family: 'Baloo 2', cursive;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--dark);
}

.testi-info .role { font-size: 0.75rem; color: var(--muted); font-weight: 600; }

.testi-tag {
    display: inline-block;
    background: #f0fdf4;
    color: var(--grass);
    border: 1px solid #bbf7d0;
    font-size: 0.68rem;
    font-weight: 800;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    margin-left: auto;
    white-space: nowrap;
}

/* dots */
.testi-dots {
    display: flex;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.5rem 0 1rem;
}

.testi-dot {
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: #e0d8c8;
    transition: width 0.3s ease, background 0.3s ease;
    cursor: pointer;
}

.testi-dot.active {
    width: 22px;
    background: var(--coral);
}