.testimonials-section {
    overflow: hidden;
}

.testimonials-heading {
    max-width: 760px;
}

.testimonials-carousel {
    --testimonials-per-view: 3;
    position: relative;
}

.testimonials-viewport {
    overflow: hidden;
    margin: -0.7rem;
    padding: 0.7rem;
}

.testimonials-track {
    display: flex;
    transition: transform 420ms ease;
    will-change: transform;
}

.testimonial-card {
    display: flex;
    flex: 0 0 calc(100% / var(--testimonials-per-view));
    flex-direction: column;
    min-width: 0;
    min-height: 278px;
    padding: 1.6rem;
    border: 1px solid rgba(209, 43, 43, 0.13);
    border-radius: var(--radius-md, 20px);
    background: var(--surface, #fff);
    box-shadow: 0 12px 28px rgba(101, 20, 20, 0.08);
}

.testimonial-rating {
    color: #e48a25;
    font-size: 1rem;
    letter-spacing: 0.16em;
}

.testimonial-card blockquote {
    flex: 1;
    margin: 1rem 0 1.25rem;
    color: var(--text, #241717);
    font-size: 1rem;
    font-weight: 650;
    line-height: 1.65;
}

.testimonial-card footer {
    display: grid;
    gap: 0.2rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line, rgba(23, 33, 38, 0.1));
}

.testimonial-card footer strong {
    color: var(--primary-strong, #9f1717);
    font-size: 0.92rem;
}

.testimonial-card footer span {
    color: var(--muted, #6f5757);
    font-size: 0.84rem;
}

.testimonials-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.8rem;
    margin-top: 1.35rem;
}

.testimonials-arrow,
.testimonials-dot {
    border: 0;
    cursor: pointer;
}

.testimonials-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.8rem;
    height: 2.8rem;
    border: 1px solid rgba(209, 43, 43, 0.18);
    border-radius: 50%;
    background: #fff;
    color: var(--primary-strong, #9f1717);
    font: 800 1.8rem/1 Arial, sans-serif;
    transition: transform 180ms ease, background 180ms ease, color 180ms ease;
}

.testimonials-arrow:hover,
.testimonials-arrow:focus-visible {
    transform: translateY(-1px);
    background: var(--primary, #d12b2b);
    color: #fff;
}

.testimonials-dots {
    display: flex;
    justify-content: center;
    gap: 0.45rem;
}

.testimonials-dot {
    width: 0.58rem;
    height: 0.58rem;
    padding: 0;
    border-radius: 50%;
    background: rgba(111, 87, 87, 0.32);
}

.testimonials-dot.is-active {
    width: 1.55rem;
    border-radius: 999px;
    background: var(--primary, #d12b2b);
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 900px) {
    .testimonials-carousel { --testimonials-per-view: 2; }
}

@media (max-width: 620px) {
    .testimonials-carousel { --testimonials-per-view: 1; }
    .testimonial-card { min-height: 248px; padding: 1.35rem; }
}

@media (prefers-reduced-motion: reduce) {
    .testimonials-track { transition: none; }
    .testimonials-arrow { transition: none; }
}
