/* Avis Trustpilot (module avis) : charte du site (menthe, sarcelle, vert, rose), étoiles façon Trustpilot. */
.jm-avis {
	--jm-menthe: #e6f1eb;
	--jm-sarcelle: #23a69a;
	--jm-vert: #016458;
	--jm-rose: #d22467;
	--jm-gris: #6f7775;
	--jm-tp: #00b67a;
	display: grid;
	grid-template-columns: minmax(170px, 210px) 1fr;
	gap: clamp(16px, 2.4vw, 32px);
	align-items: center;
	font-family: Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--jm-gris);
}
.jm-avis__resume { text-align: center; }
.jm-avis__libelle { margin: 0 0 6px; color: var(--jm-vert); font-size: 26px; font-weight: 700; letter-spacing: .02em; }
.jm-avis__note { margin: 8px 0 10px; font-size: 14px; }
.jm-avis__note strong { color: var(--jm-vert); font-size: 16px; }
.jm-avis__trustpilot {
	display: inline-flex; align-items: center; gap: 5px;
	color: #191919 !important; font-size: 15px; font-weight: 700; text-decoration: none;
}
.jm-avis__trustpilot svg { width: 18px; height: 18px; fill: var(--jm-tp); }
.jm-avis__trustpilot:hover { text-decoration: underline; }

.jm-avis__etoiles { display: inline-flex; gap: 3px; vertical-align: middle; }
.jm-avis__case {
	display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 2px;
	background: linear-gradient(90deg, var(--jm-tp) var(--plein), #dcdce6 var(--plein));
}
.jm-avis__case svg { width: 16px; height: 16px; fill: #fff; }
.jm-avis__etoiles--grandes .jm-avis__case { width: 30px; height: 30px; }
.jm-avis__etoiles--grandes .jm-avis__case svg { width: 22px; height: 22px; }

.jm-avis__fenetre { position: relative; min-width: 0; }
.jm-avis__liste {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 18px) / 4);
	gap: 18px; margin: 0; padding: 6px 4px 14px; list-style: none;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
}
.jm-avis__liste::-webkit-scrollbar { display: none; }
.jm-avis__carte {
	scroll-snap-align: start;
	display: flex; flex-direction: column; gap: 10px;
	padding: 20px 20px 22px; border-radius: 16px; background: #fff;
	box-shadow: 0 6px 22px -12px rgba(1, 100, 88, .45), 0 1px 0 rgba(1, 100, 88, .06);
	opacity: 0; transform: translateY(14px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.2, .8, .2, 1), box-shadow .25s ease;
}
.jm-avis.est-visible .jm-avis__carte { opacity: 1; transform: none; }
.jm-avis.est-visible .jm-avis__carte:hover { transform: translateY(-4px); box-shadow: 0 14px 30px -14px rgba(1, 100, 88, .55); }
.jm-avis__tete { display: flex; align-items: center; gap: 12px; }
.jm-avis__avatar {
	display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 50%;
	background: linear-gradient(135deg, var(--jm-sarcelle), var(--jm-vert)); color: #fff; font-weight: 700; font-size: 18px;
}
.jm-avis__auteur { display: block; color: #26302e; font-weight: 700; font-size: 15px; }
.jm-avis__date { display: block; margin-top: 2px; font-size: 12.5px; color: #8b9391; }
.jm-avis__titre { margin: 2px 0 0; color: var(--jm-vert); font-size: 15px; font-weight: 700; line-height: 1.35; }
.jm-avis__texte {
	margin: 0; font-size: 14px; line-height: 1.55;
	display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden;
}
.jm-avis__fleche {
	position: absolute; top: 50%; z-index: 2; display: grid; place-items: center;
	width: 40px; height: 40px; margin-top: -24px; padding: 0; border: 0; border-radius: 50%;
	background: #fff; color: var(--jm-vert); font-size: 26px; line-height: 1; cursor: pointer;
	box-shadow: 0 6px 16px -6px rgba(1, 100, 88, .5); transition: background-color .2s, color .2s, opacity .2s;
}
.jm-avis__fleche:hover, .jm-avis__fleche:focus-visible { background: var(--jm-rose); color: #fff; }
.jm-avis__fleche[disabled] { opacity: 0; pointer-events: none; }
.jm-avis__fleche--prec { left: -14px; }
.jm-avis__fleche--suiv { right: -14px; }

@media (max-width: 1100px) { .jm-avis__liste { grid-auto-columns: calc((100% - 2 * 18px) / 3); } }
@media (max-width: 860px) {
	.jm-avis { grid-template-columns: 1fr; }
	.jm-avis__liste { grid-auto-columns: calc((100% - 18px) / 2); }
}
@media (max-width: 560px) {
	.jm-avis__liste { grid-auto-columns: 84%; }
	.jm-avis__fleche { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.jm-avis__carte { opacity: 1; transform: none; transition: none; }
	.jm-avis__liste { scroll-behavior: auto; }
}
