.atc-avis {
	--atc-green: #C4FF9D;
	--atc-dark-green: #354834;
	--atc-black: #060907;
	--atc-grey: #899E9B;
	--atc-light-grey: #F3F3F3;
	--atc-orange: #F65731;
	--atc-orange-h: #dc2c00;
	--atc-white: #fff;

	/* Nombre d'avis visibles + espacement. Modifiable ici. */
	--atc-per-view: 3;
	--atc-gap: 1.25rem;

	position: relative;
	max-width: 1120px;
	margin: 2rem auto;
	padding: 0 3.25rem;
	box-sizing: border-box;
}

.atc-avis *,
.atc-avis *::before,
.atc-avis *::after {
	box-sizing: border-box;
}

.atc-avis__viewport {
	overflow: hidden;
	padding-block: 12px; /* laisse respirer l'ombre des cartes */
}

.atc-avis__track {
	display: flex;
	gap: var(--atc-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
}

.atc-avis__slide {
	flex: 0 0 calc((100% - (var(--atc-per-view) - 1) * var(--atc-gap)) / var(--atc-per-view));
	min-width: 0;
	display: flex;
	margin: 0;
}

.atc-avis__card {
	width: 100%;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 1.9rem 1.7rem 1.6rem;
	background: var(--atc-white);
	border: 1px solid var(--atc-light-grey);
	border-radius: 18px;
	box-shadow: 0 12px 34px rgba(6, 9, 7, 0.06);
}

.atc-avis__quote {
	position: relative;
	margin: 0;
	padding-top: 0.75rem;
	color: var(--atc-black);
	font-size: 1rem;
	line-height: 1.55;
	quotes: none;
}

.atc-avis__quote::before {
	content: "\201C";
	position: absolute;
	top: -0.6rem;
	left: -0.25rem;
	color: var(--atc-green);
	font-size: 3rem;
	line-height: 1;
	font-weight: 700;
	pointer-events: none;
}

.atc-avis__identity {
	margin-top: auto;
	font-style: normal;
	font-weight: 700;
	color: var(--atc-orange);
	letter-spacing: 0.01em;
}

.atc-avis__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--atc-orange);
	color: var(--atc-white);
	cursor: pointer;
	transition: background 0.2s ease, transform 0.2s ease;
}

.atc-avis__arrow:hover {
	background: var(--atc-orange-h);
}

.atc-avis__arrow:active {
	transform: translateY(-50%) scale(0.94);
}

.atc-avis__arrow:focus-visible {
	outline: 2px solid var(--atc-dark-green);
	outline-offset: 2px;
}

.atc-avis__arrow[hidden] {
	display: none;
}

.atc-avis__arrow--prev {
	left: 0;
}

.atc-avis__arrow--next {
	right: 0;
}

.atc-avis__arrow svg {
	width: 1.1rem;
	height: 1.1rem;
}

.atc-avis__dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.1rem;
}

.atc-avis__dots[hidden] {
	display: none;
}

.atc-avis__dot {
	width: 0.55rem;
	height: 0.55rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--atc-grey);
	opacity: 0.4;
	cursor: pointer;
	transition: opacity 0.2s ease, background 0.2s ease, transform 0.2s ease;
}

.atc-avis__dot:hover {
	opacity: 0.7;
}

.atc-avis__dot.is-active {
	background: var(--atc-orange);
	opacity: 1;
	transform: scale(1.15);
}

.atc-avis__dot:focus-visible {
	outline: 2px solid var(--atc-dark-green);
	outline-offset: 2px;
}

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

@media (max-width: 620px) {
	.atc-avis {
		--atc-per-view: 1;
		padding: 0 2.4rem;
	}

	.atc-avis__card {
		padding: 1.75rem 1.5rem 1.4rem;
	}

	.atc-avis__arrow {
		width: 2.1rem;
		height: 2.1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.atc-avis__track {
		transition: none;
	}
}