/* ===== Témoignages clients — slider à pagination (migration fidèle) ===== */
.avis { position: relative; background-color: var(--bleu-celeste); padding: 6rem 6rem; overflow: hidden; }
.avis__inner { max-width: var(--max-width); margin: 0 auto; }
.avis__header { max-width: 780px; margin: 0 auto 3.5rem; text-align: center; }
.avis__title { font-family: var(--font-titre); color: var(--noir-onyx); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; font-weight: 400; margin-bottom: 1.5rem; }
.avis__title-mark { color: var(--bleu-cobalt); }

.avis__slider { position: relative; }
.avis__slide:not(.is-active) { display: none; }
.avis__slide.is-active { animation: avisFadeIn 0.5s ease-out; }
@keyframes avisFadeIn { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }

.avis__dots { display: flex; justify-content: center; gap: 0.75rem; margin-top: 2.5rem; }
.avis__dot { width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--bleu-cobalt); background-color: transparent; padding: 0; cursor: pointer; transition: background-color 0.25s ease, transform 0.25s ease; }
.avis__dot:hover { transform: scale(1.2); }
.avis__dot.is-active { background-color: var(--bleu-cobalt); width: 28px; border-radius: 999px; }

.avis__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.avis-card { background-color: var(--blanc-ivoire); border: 1px solid rgba(31,31,31,0.06); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 0.3s ease; }
.avis-card__photo { padding: 1rem 1rem 0; border-radius: 14px; overflow: hidden; }
.avis-card__photo img { width: 100%; height: 180px; object-fit: cover; border-radius: 14px; display: block; transition: transform 0.6s cubic-bezier(0.22,1,0.36,1); }
.avis-card:hover .avis-card__photo img { transform: scale(1.03); }
.avis-card__body { padding: 1.5rem 1.75rem 1.75rem; display: flex; flex-direction: column; gap: 1.25rem; flex-grow: 1; }
.avis-card:not(.avis-card--with-photo) .avis-card__body { padding: 2rem 1.75rem; }
.avis-card:hover { box-shadow: 0 16px 40px rgba(31,31,31,0.08); }
.avis-card__quote { color: var(--noir-onyx); flex-grow: 1; margin: 0; text-align: justify; }
.avis-card__quote::before { content: '“'; font-family: var(--font-titre); font-size: 2.5rem; line-height: 0.5; color: var(--bleu-cobalt); margin-right: 0.25rem; vertical-align: -0.25em; }
.avis-card__author { display: flex; flex-direction: column; gap: 0.15rem; padding-top: 1rem; border-top: 1px solid rgba(31,31,31,0.08); margin: 0; }
.avis-card__name { font-family: var(--font-titre); font-size: 1.05rem; color: var(--noir-onyx); line-height: 1; }
.avis-card__role { color: var(--noir-onyx); }

@media (max-width: 1024px) { .avis__grid { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .avis { padding: 4rem 1.25rem; } }
