/* ==========================================================================
   ALPINA AVIS — feuille de style frontend
   Reference : "Avis clients Alpina Laser - planche UX V2"
   Aucune dependance a Elementor. Tout est scope sous .alp-avis-*
   ========================================================================== */

.alp-avis-scope {
	--alp-fond:        #F7F7F5;
	--alp-carte:       #FFFFFF;
	--alp-texte:       #0F1113;
	--alp-secondaire:  #5F666D;
	--alp-filet:       #E4E6E8;
	--alp-orange:      #F36A21;
	--alp-orange-h:    #D95A14;

	/* Rayon valide : 5 px. Le texte d'introduction de la planche V2
	   indiquait encore 2 px, mais ses composants reels utilisent 5 px,
	   et le brief final tranche a 5 px. Une seule valeur a changer ici. */
	--alp-rayon:       5px;

	--alp-titre:       Archivo, "Archivo", system-ui, sans-serif;
	--alp-corps:       Inter, "Inter", system-ui, -apple-system, sans-serif;
	--alp-mono:        "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

	--alp-contenu:     1160px;
	--alp-gouttiere:   40px;

	box-sizing: border-box;
	color: var(--alp-texte);
	font-family: var(--alp-corps);
}

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

.alp-avis-scope :focus-visible {
	outline: 2px solid var(--alp-orange);
	outline-offset: 3px;
}

.alp-avis-inner {
	max-width: var(--alp-contenu);
	margin-inline: auto;
	padding-inline: var(--alp-gouttiere);
}

/* ---------- Typographie utilitaire ---------- */

.alp-avis-eyebrow {
	font-family: var(--alp-mono);
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--alp-orange);
	margin: 0 0 14px;
}

.alp-avis-mono {
	font-family: var(--alp-mono);
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--alp-secondaire);
}

.alp-avis-scope h1,
.alp-avis-scope h2,
.alp-avis-scope h3 { font-family: var(--alp-titre); letter-spacing: -.02em; }

/* ---------- Note / etoiles ---------- */

.alp-avis-rating { display: inline-flex; align-items: center; gap: 6px; }

.alp-avis-rating__stars {
	font-size: 14px;
	line-height: 1;
	letter-spacing: .06em;
	color: var(--alp-orange);
	white-space: nowrap;
}
.alp-avis-rating__stars .alp-off { color: var(--alp-filet); }

.alp-avis-rating--sm .alp-avis-rating__stars { font-size: 12px; }

.alp-avis-rating__value {
	font-family: var(--alp-mono);
	font-size: 12px;
	font-weight: 600;
	color: var(--alp-texte);
}

/* Equivalent texte, toujours present pour les lecteurs d'ecran */
.alp-avis-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}

/* ---------- Carte d'avis ---------- */

.alp-avis-list { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }

.alp-avis-card {
	background: var(--alp-carte);
	border: 1px solid var(--alp-filet);
	border-radius: var(--alp-rayon);
	padding: 24px;
	display: grid;
	gap: 12px;
}

.alp-avis-card__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

.alp-avis-card__title {
	font-family: var(--alp-titre);
	font-size: 17px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
	color: var(--alp-texte);
}

.alp-avis-card__text {
	margin: 0;
	font-size: 15px;
	line-height: 1.65;
	color: var(--alp-texte);
}

.alp-avis-card__tags { display: flex; flex-wrap: wrap; gap: 8px; }

.alp-avis-tag {
	font-family: var(--alp-mono);
	font-size: 10.5px;
	letter-spacing: .06em;
	color: var(--alp-secondaire);
	border: 1px solid var(--alp-filet);
	border-radius: var(--alp-rayon);
	padding: 4px 8px;
	text-decoration: none;
	background: var(--alp-fond);
}
a.alp-avis-tag:hover { border-color: var(--alp-orange); color: var(--alp-texte); }

.alp-avis-card__identity {
	font-size: 14px;
	color: var(--alp-texte);
	margin: 0;
}
.alp-avis-card__identity .alp-avis-card__org { color: var(--alp-secondaire); }

.alp-avis-card__foot {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 14px;
	align-items: baseline;
	padding-top: 12px;
	border-top: 1px solid var(--alp-filet);
	font-family: var(--alp-mono);
	font-size: 10.5px;
	letter-spacing: .06em;
	color: var(--alp-secondaire);
}

.alp-avis-card__body-text { min-width: 0; display: grid; gap: 12px; }

/* Variante reponse Alpina */
.alp-avis-response {
	background: var(--alp-fond);
	border-radius: var(--alp-rayon);
	padding: 16px 18px;
	display: grid;
	gap: 6px;
}
.alp-avis-response__label {
	font-family: var(--alp-mono);
	font-size: 10.5px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--alp-orange);
}
.alp-avis-response__text { margin: 0; font-size: 14px; line-height: 1.6; color: var(--alp-texte); }

/* Variante avis tiers : filet gauche discret, aucun logo */
.alp-avis-card--third-party { border-left: 1px solid var(--alp-secondaire); }
.alp-avis-third-party {
	font-family: var(--alp-mono);
	font-size: 10.5px;
	letter-spacing: .06em;
	color: var(--alp-secondaire);
}
.alp-avis-third-party__excl::before { content: "\00D7"; margin-right: 5px; }

/* ---------- Galerie de medias ---------- */

.alp-avis-media {
	list-style: none; margin: 4px 0 0; padding: 0;
	display: grid; gap: 10px;
}
.alp-avis-media--unique { grid-template-columns: minmax(0, 320px); }
.alp-avis-media--grille { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }

.alp-avis-media__item { margin: 0; }

.alp-avis-media__ouvrir {
	display: block; width: 100%; padding: 0; border: 1px solid var(--alp-filet);
	border-radius: var(--alp-rayon); background: var(--alp-fond);
	cursor: zoom-in; overflow: hidden; line-height: 0;
}
.alp-avis-media__ouvrir:hover { border-color: var(--alp-orange); }
.alp-avis-media__ouvrir img { display: block; width: 100%; height: 120px; object-fit: cover; }
.alp-avis-media--unique .alp-avis-media__ouvrir img { height: auto; max-height: 260px; }

.alp-avis-media__item--video video {
	display: block; width: 100%; height: 120px; object-fit: cover;
	border: 1px solid var(--alp-filet); border-radius: var(--alp-rayon); background: #000;
}
.alp-avis-media__item--video video.alp-avis-media__solo { height: auto; max-height: 320px; object-fit: contain; }

/* Agrandissement : element <dialog> natif, aucune bibliotheque */
.alp-avis-lightbox {
	border: 0; padding: 0; background: transparent; max-width: 92vw; max-height: 92vh;
}
.alp-avis-lightbox::backdrop { background: rgba(15,17,19,.86); }
.alp-avis-lightbox img { display: block; max-width: 92vw; max-height: 82vh; border-radius: var(--alp-rayon); }
.alp-avis-lightbox__fermer {
	margin-top: 12px; display: inline-flex; min-height: 44px; align-items: center;
	padding: 8px 18px; border: 1px solid var(--alp-filet); border-radius: var(--alp-rayon);
	background: var(--alp-carte); color: var(--alp-texte); font-family: var(--alp-corps); cursor: pointer;
}

/* Champs de depot dans le formulaire */
.alp-avis-media-champs { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.alp-avis-media-champs input[type=file] { width: 100%; font-size: 14px; }

/* ---------- Resume + histogramme ---------- */

.alp-avis-summary {
	display: grid;
	gap: 28px;
	grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
	align-items: start;
	background: var(--alp-carte);
	border: 1px solid var(--alp-filet);
	border-radius: var(--alp-rayon);
	padding: 28px;
}
.alp-avis-summary__score { display: grid; gap: 8px; }
.alp-avis-summary__big {
	font-family: var(--alp-titre);
	font-size: 40px;
	font-weight: 800;
	line-height: 1;
	color: var(--alp-texte);
}
.alp-avis-summary__label { font-size: 14px; color: var(--alp-secondaire); }
.alp-avis-summary__count { font-family: var(--alp-mono); font-size: 11px; letter-spacing: .06em; color: var(--alp-secondaire); }

.alp-avis-distribution { display: grid; gap: 8px; margin: 0; }
.alp-avis-distribution__row { display: grid; grid-template-columns: 62px 1fr 34px; gap: 12px; align-items: center; }
.alp-avis-distribution__key { font-family: var(--alp-mono); font-size: 11px; color: var(--alp-secondaire); }
.alp-avis-distribution__bar { height: 6px; background: var(--alp-filet); border-radius: 999px; overflow: hidden; }
.alp-avis-distribution__fill { display: block; height: 100%; background: var(--alp-orange); }
.alp-avis-distribution__n { font-family: var(--alp-mono); font-size: 11px; color: var(--alp-secondaire); text-align: right; }

/* ---------- Bloc transparence ---------- */

.alp-avis-trust { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 20px; }
.alp-avis-trust__item { display: grid; gap: 4px; }
.alp-avis-trust__t { font-family: var(--alp-mono); font-size: 11px; letter-spacing: .06em; color: var(--alp-texte); }
.alp-avis-trust__d { font-size: 13px; line-height: 1.5; color: var(--alp-secondaire); }

/* ---------- Filtres ---------- */

.alp-avis-filters { display: grid; gap: 16px; }
.alp-avis-filters__row { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
.alp-avis-filters__field { display: grid; gap: 6px; min-width: 200px; flex: 1 1 200px; }
.alp-avis-filters__field label {
	font-family: var(--alp-mono); font-size: 10.5px; letter-spacing: .1em;
	text-transform: uppercase; color: var(--alp-secondaire);
}
.alp-avis-filters select,
.alp-avis-form select,
.alp-avis-form input[type=text],
.alp-avis-form input[type=email],
.alp-avis-form textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	font-family: var(--alp-corps);
	font-size: 15px;
	color: var(--alp-texte);
	background: var(--alp-carte);
	border: 1px solid var(--alp-filet);
	border-radius: var(--alp-rayon);
}
.alp-avis-filters__count { font-family: var(--alp-mono); font-size: 11px; color: var(--alp-secondaire); }

.alp-avis-filters__mobile { display: none; }

/* ---------- Boutons ---------- */

.alp-avis-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px; padding: 12px 22px;
	font-family: var(--alp-titre); font-weight: 700; font-size: 15px;
	border-radius: var(--alp-rayon);
	border: 1px solid var(--alp-orange);
	background: var(--alp-orange);
	color: var(--alp-texte);
	text-decoration: none;
	cursor: pointer;
}
.alp-avis-btn:hover { background: var(--alp-orange-h); border-color: var(--alp-orange-h); color: #fff; }
.alp-avis-btn--ghost { background: transparent; border-color: var(--alp-filet); color: var(--alp-texte); }
.alp-avis-btn--ghost:hover { background: transparent; border-color: var(--alp-orange); color: var(--alp-texte); }

/* ---------- Formulaire ---------- */

.alp-avis-form { display: grid; gap: 18px; max-width: 720px; }
.alp-avis-form fieldset { border: 0; margin: 0; padding: 0; }
.alp-avis-form legend, .alp-avis-form .alp-avis-label {
	font-family: var(--alp-mono); font-size: 10.5px; letter-spacing: .1em;
	text-transform: uppercase; color: var(--alp-secondaire);
	padding: 0; margin-bottom: 8px;
}
.alp-avis-form__field { display: grid; gap: 6px; }
.alp-avis-form__hint { font-size: 13px; color: var(--alp-secondaire); }
.alp-avis-form__opt { font-family: var(--alp-mono); font-size: 10px; letter-spacing: .06em; color: var(--alp-secondaire); text-transform: none; }

/* Note : vrais boutons radio */
.alp-avis-note { display: flex; gap: 8px; flex-wrap: wrap; }
.alp-avis-note__opt { position: relative; }
.alp-avis-note__opt input {
	position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer;
}
.alp-avis-note__box {
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	width: 56px; height: 56px;
	border: 1px solid var(--alp-filet);
	border-radius: var(--alp-rayon);
	background: var(--alp-carte);
	font-family: var(--alp-mono); font-size: 13px; color: var(--alp-texte);
}
.alp-avis-note__box .alp-star { font-size: 12px; color: var(--alp-filet); line-height: 1; }
.alp-avis-note__opt input:checked + .alp-avis-note__box {
	border-color: var(--alp-orange); background: var(--alp-orange); color: var(--alp-texte);
}
.alp-avis-note__opt input:checked + .alp-avis-note__box .alp-star { color: var(--alp-texte); }
.alp-avis-note__opt input:focus-visible + .alp-avis-note__box { outline: 2px solid var(--alp-orange); outline-offset: 3px; }

.alp-avis-consent { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; }
.alp-avis-consent input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; }

/* Erreurs */
.alp-avis-errors {
	border: 1px solid var(--alp-orange);
	border-left-width: 3px;
	border-radius: var(--alp-rayon);
	background: var(--alp-carte);
	padding: 16px 18px;
	display: grid; gap: 8px;
}
.alp-avis-errors__title { font-family: var(--alp-titre); font-weight: 700; font-size: 15px; margin: 0; }
.alp-avis-errors ul { margin: 0; padding-left: 18px; font-size: 14px; }
.alp-avis-errors a { color: var(--alp-texte); }
.alp-avis-field-error {
	font-size: 13px; color: var(--alp-texte);
	display: flex; gap: 6px; align-items: flex-start;
}
.alp-avis-field-error::before { content: "\00D7"; font-weight: 700; color: var(--alp-orange); }
.alp-avis-form__field.is-error input,
.alp-avis-form__field.is-error textarea,
.alp-avis-form__field.is-error select,
.alp-avis-form fieldset.is-error .alp-avis-note__box { border-color: var(--alp-orange); }

/* Confirmation */
.alp-avis-confirm {
	background: var(--alp-carte);
	border: 1px solid var(--alp-filet);
	border-left: 3px solid var(--alp-orange);
	border-radius: var(--alp-rayon);
	padding: 28px;
	display: grid; gap: 14px; max-width: 720px;
}
.alp-avis-confirm h3 { margin: 0; font-size: 20px; }
.alp-avis-confirm p { margin: 0; font-size: 15px; line-height: 1.6; }
.alp-avis-confirm__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 4px; }

/* ---------- Bloc compact fiche produit ---------- */

.alp-avis-product-summary {
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
	min-height: 24px;
	margin: 10px 0 14px;
	font-size: 13px;
}
.alp-avis-product-summary a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--alp-filet); }
.alp-avis-product-summary a:hover { border-bottom-color: var(--alp-orange); }
.alp-avis-product-summary__count { font-family: var(--alp-mono); font-size: 11px; letter-spacing: .06em; color: var(--alp-secondaire); }
.alp-avis-product-summary--empty { color: var(--alp-secondaire); font-size: 13px; }

/* ---------- Sections ---------- */

.alp-avis-section { border-top: 1px solid var(--alp-filet); padding: 56px 0; background: var(--alp-fond); }
.alp-avis-section__head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; flex-wrap: wrap; margin-bottom: 28px; }
.alp-avis-section__title { margin: 0; font-size: clamp(22px, 2.4vw, 30px); }
.alp-avis-section__note { font-family: var(--alp-mono); font-size: 11px; color: var(--alp-secondaire); margin-top: 18px; }
.alp-avis-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; align-items: center; }

.alp-avis-empty { display: grid; gap: 12px; }
.alp-avis-empty__t { font-family: var(--alp-titre); font-size: 18px; font-weight: 700; margin: 0; }
.alp-avis-empty__d { margin: 0; font-size: 14px; color: var(--alp-secondaire); }

/* ---------- Page /avis-clients/ ---------- */

.alp-avis-hero { background: var(--alp-texte); color: var(--alp-fond); padding: 64px 0 52px; }
.alp-avis-hero h1 { margin: 0 0 16px; font-size: clamp(30px, 4vw, 52px); line-height: 1.05; color: var(--alp-fond); max-width: 18em; }
.alp-avis-hero p { margin: 0; max-width: 46em; font-size: clamp(15px, 1.3vw, 18px); line-height: 1.6; color: #C3C4C1; }
.alp-avis-hero .alp-avis-eyebrow { color: var(--alp-orange); }
.alp-avis-hero .alp-avis-trust { margin-top: 32px; }
.alp-avis-hero .alp-avis-trust__t { color: var(--alp-fond); }
.alp-avis-hero .alp-avis-trust__d { color: #A9ADB0; }

.alp-avis-page { background: var(--alp-fond); padding: 48px 0 72px; }
.alp-avis-page__grid { display: grid; gap: 32px; }

/* ---------- Responsive ---------- */

@media (max-width: 1024px) {
	.alp-avis-scope { --alp-gouttiere: 28px; }
	.alp-avis-trust { grid-template-columns: repeat(2, minmax(0,1fr)); }
	.alp-avis-summary { grid-template-columns: 1fr; gap: 20px; }
}

@media (max-width: 768px) {
	.alp-avis-scope { --alp-gouttiere: 20px; }
	.alp-avis-card { padding: 20px; }
	.alp-avis-section { padding: 40px 0; }
	.alp-avis-hero { padding: 44px 0 36px; }

	/* Panneau de filtres mobile */
	.alp-avis-filters__desktop { display: none; }
	.alp-avis-filters__mobile { display: block; }
	.alp-avis-panel[hidden] { display: none; }
	.alp-avis-panel {
		position: fixed; inset: auto 0 0 0; z-index: 99990;
		background: var(--alp-carte);
		border-top: 1px solid var(--alp-filet);
		border-radius: var(--alp-rayon) var(--alp-rayon) 0 0;
		padding: 20px; max-height: 85vh; overflow: auto;
		box-shadow: 0 -8px 24px rgba(15,17,19,.12);
	}
	.alp-avis-panel__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
	.alp-avis-panel__actions { display: flex; gap: 12px; margin-top: 20px; }
	.alp-avis-panel__actions .alp-avis-btn { flex: 1 1 auto; }
	.alp-avis-overlay { position: fixed; inset: 0; background: rgba(15,17,19,.45); z-index: 99989; }
	.alp-avis-overlay[hidden] { display: none; }

	.alp-avis-filters select,
	.alp-avis-form select,
	.alp-avis-form input[type=text],
	.alp-avis-form input[type=email],
	.alp-avis-form textarea { min-height: 48px; font-size: 16px; }

	.alp-avis-section__head { align-items: flex-start; }

	/* Medias : defilement horizontal tactile */
	.alp-avis-media--grille {
		display: flex; overflow-x: auto; gap: 10px;
		scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
		padding-bottom: 6px;
	}
	.alp-avis-media--grille .alp-avis-media__item {
		flex: 0 0 62%; max-width: 240px; scroll-snap-align: start;
	}
	.alp-avis-media--unique { grid-template-columns: 1fr; }
	.alp-avis-media-champs { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
	.alp-avis-trust { grid-template-columns: 1fr; }
	.alp-avis-summary { padding: 20px; }
	.alp-avis-summary__big { font-size: 34px; }
	.alp-avis-note__box { width: 52px; height: 52px; }
}

@media (max-width: 360px) {
	.alp-avis-note { gap: 6px; }
	.alp-avis-note__box { width: 48px; height: 48px; }
	.alp-avis-distribution__row { grid-template-columns: 54px 1fr 28px; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
	.alp-avis-scope * { transition: none !important; animation: none !important; }
}

.alp-avis-empty__a{margin-top:16px}

/* =========================================================
   PASSE UX MINIMALISTE — /avis-clients/
   Surcharges posees en fin de feuille : elles priment sur
   les regles historiques sans les supprimer, ce qui laisse
   les fiches produit strictement inchangees.
   ========================================================= */

/* --- Hero allege : pleine largeur, plus bas, plus aere --- */
/* Le theme enferme le contenu dans .ast-container (max-width 1240px).
   Les marges negatives font ressortir la seule bande noire jusqu'aux
   bords, sans toucher au theme. Le bloc interieur garde sa largeur et
   reste alignes avec les cartes, car la section demeure centree sur le
   meme axe. body porte deja overflow-x:hidden : aucun defilement
   horizontal ne peut apparaitre. */
.alp-avis-scope--page .alp-avis-hero {
	background: var(--alp-encre, #0F1113);
	padding: 88px 0 84px;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}
.alp-avis-scope--page .alp-avis-hero h1 {
	max-width: 20ch;
	margin: 14px 0 0;
}
.alp-avis-scope--page .alp-avis-hero__lede {
	max-width: 56ch;
	margin: 20px 0 0;
	font-size: 1.0625rem;
	line-height: 1.65;
	color: #C9CDD1;
}
.alp-avis-scope--page .alp-avis-hero__note {
	margin: 26px 0 0;
	font-family: var(--alp-mono, 'IBM Plex Mono', monospace);
	font-size: 0.75rem;
	letter-spacing: .04em;
	color: #8B9298;
}

/* --- Corps de page : rythme vertical plus court --- */
.alp-avis-scope--page .alp-avis-page { padding: 72px 0 96px; }
.alp-avis-scope--page .alp-avis-page > .alp-avis-inner { display: grid; gap: 40px; }
.alp-avis-scope--page .alp-avis-section__title { margin: 0; }

/* --- Etat vide : sobre, centre, sans interface autour --- */
.alp-avis-scope--page .alp-avis-empty {
	padding: 56px 24px;
	text-align: center;
	background: #fff;
	border: 1px solid var(--alp-trait, #E4E6E8);
	border-radius: var(--alp-rayon, 5px);
}
.alp-avis-scope--page .alp-avis-empty__t { font-size: 1.125rem; }
.alp-avis-scope--page .alp-avis-empty__d { max-width: 46ch; margin-inline: auto; }

/* --- Bloc CTA repliable --- */
.alp-avis-cta {
	background: #fff;
	border: 1px solid var(--alp-trait, #E4E6E8);
	border-radius: var(--alp-rayon, 5px);
}
.alp-avis-cta__head {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: center;
	justify-content: space-between;
	padding: 26px 28px;
	cursor: pointer;
	list-style: none;
}
.alp-avis-cta__head::-webkit-details-marker { display: none; }
.alp-avis-cta__head::marker { content: ''; }
.alp-avis-cta__t {
	display: block;
	font-family: var(--alp-titre, Archivo, sans-serif);
	font-weight: 700;
	font-size: 1.125rem;
	color: var(--alp-encre, #0F1113);
}
.alp-avis-cta__d { display: block; margin-top: 4px; color: var(--alp-gris, #5F666D); }
.alp-avis-cta__btn { pointer-events: none; }
/* Une fois ouvert, le bouton disparait : il ne sert plus a rien. */
.alp-avis-cta[open] .alp-avis-cta__btn { display: none; }
.alp-avis-cta[open] .alp-avis-cta__head {
	cursor: default;
	padding-bottom: 0;
	border-bottom: 0;
}
.alp-avis-cta__corps { padding: 22px 28px 30px; }
.alp-avis-cta__head:focus-visible {
	outline: 2px solid var(--alp-orange, #F36A21);
	outline-offset: -2px;
}

/* --- Formulaire compact, deux colonnes sur desktop --- */
.alp-avis-cta .alp-avis-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px 20px;
	max-width: 720px;
}
.alp-avis-cta .alp-avis-form__field { margin: 0; }
.alp-avis-cta .alp-avis-form__field--full,
.alp-avis-cta .alp-avis-errors { grid-column: 1 / -1; }
.alp-avis-cta .alp-avis-form input[type=text],
.alp-avis-cta .alp-avis-form input[type=email],
.alp-avis-cta .alp-avis-form select,
.alp-avis-cta .alp-avis-form textarea { width: 100%; }
.alp-avis-form__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
.alp-avis-form__envoi .alp-avis-mono { margin: 0; }

/* --- Note : cinq etoiles, vrais boutons radio conserves --- */
.alp-avis-note { display: flex; gap: 4px; margin-top: 8px; }
.alp-avis-note__etoile {
	font-size: 30px;
	line-height: 1;
	padding: 4px 2px;
	color: #D5D8DB;
	cursor: pointer;
	transition: color .12s ease, transform .12s ease;
}
.alp-avis-note__etoile:hover { transform: translateY(-1px); }
/* Etat selectionne : l'etoile choisie et toutes celles qui la precedent. */
.alp-avis-note:has(#alp-note-1:checked) label[for=alp-note-1],
.alp-avis-note:has(#alp-note-2:checked) label[for=alp-note-1],
.alp-avis-note:has(#alp-note-2:checked) label[for=alp-note-2],
.alp-avis-note:has(#alp-note-3:checked) label[for=alp-note-1],
.alp-avis-note:has(#alp-note-3:checked) label[for=alp-note-2],
.alp-avis-note:has(#alp-note-3:checked) label[for=alp-note-3],
.alp-avis-note:has(#alp-note-4:checked) label[for=alp-note-1],
.alp-avis-note:has(#alp-note-4:checked) label[for=alp-note-2],
.alp-avis-note:has(#alp-note-4:checked) label[for=alp-note-3],
.alp-avis-note:has(#alp-note-4:checked) label[for=alp-note-4],
.alp-avis-note:has(#alp-note-5:checked) label[for=alp-note-1],
.alp-avis-note:has(#alp-note-5:checked) label[for=alp-note-2],
.alp-avis-note:has(#alp-note-5:checked) label[for=alp-note-3],
.alp-avis-note:has(#alp-note-5:checked) label[for=alp-note-4],
.alp-avis-note:has(#alp-note-5:checked) label[for=alp-note-5] { color: var(--alp-orange, #F36A21); }
/* Survol : meme logique, prioritaire sur la selection. */
.alp-avis-note:has(label[for=alp-note-1]:hover) label[for=alp-note-1],
.alp-avis-note:has(label[for=alp-note-2]:hover) label[for=alp-note-1],
.alp-avis-note:has(label[for=alp-note-2]:hover) label[for=alp-note-2],
.alp-avis-note:has(label[for=alp-note-3]:hover) label[for=alp-note-1],
.alp-avis-note:has(label[for=alp-note-3]:hover) label[for=alp-note-2],
.alp-avis-note:has(label[for=alp-note-3]:hover) label[for=alp-note-3],
.alp-avis-note:has(label[for=alp-note-4]:hover) label[for=alp-note-1],
.alp-avis-note:has(label[for=alp-note-4]:hover) label[for=alp-note-2],
.alp-avis-note:has(label[for=alp-note-4]:hover) label[for=alp-note-3],
.alp-avis-note:has(label[for=alp-note-4]:hover) label[for=alp-note-4],
.alp-avis-note:has(label[for=alp-note-5]:hover) label[for=alp-note-1],
.alp-avis-note:has(label[for=alp-note-5]:hover) label[for=alp-note-2],
.alp-avis-note:has(label[for=alp-note-5]:hover) label[for=alp-note-3],
.alp-avis-note:has(label[for=alp-note-5]:hover) label[for=alp-note-4],
.alp-avis-note:has(label[for=alp-note-5]:hover) label[for=alp-note-5] { color: #F79A63; }
/* Focus clavier : visible meme si le radio lui-meme est masque. */
.alp-avis-note__radio:focus-visible + .alp-avis-note__etoile {
	outline: 2px solid var(--alp-orange, #F36A21);
	outline-offset: 2px;
	border-radius: 3px;
}

/* --- Bloc medias --- */
.alp-avis-medias {
	border: 1px dashed var(--alp-trait, #E4E6E8);
	border-radius: var(--alp-rayon, 5px);
	padding: 18px 18px 16px;
	background: var(--alp-creme, #F7F7F5);
}
.alp-avis-medias__tete { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.alp-avis-medias__tete .alp-avis-label { margin: 0; }
.alp-avis-medias__limite {
	font-family: var(--alp-mono, 'IBM Plex Mono', monospace);
	font-size: 0.6875rem;
	color: var(--alp-gris, #5F666D);
}
.alp-avis-medias__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.alp-avis-btn--sm { padding: 9px 16px; font-size: 0.8125rem; }
label.alp-avis-btn { cursor: pointer; }
/* Le champ fichier est masque mais reste focusable : on reporte son
   anneau de focus sur le bouton visible qui le declenche. */
#alp_photos:focus-visible ~ .alp-avis-medias__actions label[for=alp_photos],
#alp_videos:focus-visible ~ .alp-avis-medias__actions label[for=alp_videos] {
	outline: 2px solid var(--alp-orange, #F36A21);
	outline-offset: 2px;
}
.alp-avis-medias__etat {
	margin: 8px 0 0;
	font-family: var(--alp-mono, 'IBM Plex Mono', monospace);
	font-size: 0.6875rem;
	color: var(--alp-gris, #5F666D);
}
.alp-avis-medias__etat:empty { display: none; }

/* --- Mobile : une seule colonne, respirations plus courtes --- */
@media (max-width: 782px) {
	.alp-avis-scope--page .alp-avis-hero { padding: 56px 0 52px; }
	.alp-avis-scope--page .alp-avis-page { padding: 48px 0 64px; }
	.alp-avis-scope--page .alp-avis-page > .alp-avis-inner { gap: 30px; }
	.alp-avis-cta__head { padding: 20px; }
	.alp-avis-cta__corps { padding: 16px 20px 24px; }
	.alp-avis-cta .alp-avis-form { grid-template-columns: 1fr; gap: 16px; }
	.alp-avis-cta__btn { width: 100%; text-align: center; }
	.alp-avis-note__etoile { font-size: 34px; padding: 6px 3px; }
}
