/* Page « Votre avis » : formulaire de retour + avis publiés + règles de traitement. */

.avis-intro { max-width: 720px; margin-bottom: var(--sp-6); }
.avis-intro h1 { margin-bottom: var(--sp-3); }
.avis-verifie[hidden] { display: none; }
.avis-verifie {
  display: inline-block; margin-top: var(--sp-3); padding: 6px 12px; border-radius: 999px;
  background: var(--success-bg); color: var(--success); font-weight: 600;
}

.avis-grille { display: grid; grid-template-columns: minmax(0, 720px) minmax(260px, 1fr); gap: var(--sp-6); align-items: start; }
@media (max-width: 1023px) { .avis-grille { grid-template-columns: minmax(0, 1fr); } }
.avis-form .card-body { padding: var(--sp-6); }

/* Note : 5 étoiles. Rangée inversée (DOM 5 → 1) : « ~ » colore l'étoile survolée
   ou cochée et toutes celles qui la précèdent à l'écran. */
.avis-note { border: 0; padding: 0; margin: 0 0 var(--sp-5); }
.avis-note legend { font-size: var(--fs-sm); font-weight: 600; color: var(--ink); margin-bottom: var(--sp-2); }
.avis-etoiles { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.avis-etoiles label { color: #958A73;   /* étoile vide : 3,4:1 sur blanc (WCAG 1.4.11) */ cursor: pointer; line-height: 0; padding: 2px; border-radius: 6px; transition: color .12s, transform .12s; }
.avis-etoiles label:hover,
.avis-etoiles label:hover ~ label,
.avis-etoiles input:checked ~ label { color: var(--gold); }
.avis-etoiles label:hover { transform: scale(1.08); }
.avis-etoiles input:focus-visible + label { outline: 2px solid var(--gold-deep); outline-offset: 2px; }
.avis-note .error-msg { color: var(--danger); margin: var(--sp-2) 0 0; }
.avis-note .error-msg[hidden] { display: none; }

.avis-identite { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--sp-4); }
@media (max-width: 560px) { .avis-identite { grid-template-columns: minmax(0, 1fr); } }
textarea { resize: vertical; }

.avis-publier { margin-top: var(--sp-2); }
.avis-erreur { color: var(--danger); margin: 0 0 var(--sp-3); }
.avis-form .btn-lg { width: 100%; }
.avis-rgpd { margin: var(--sp-3) 0 0; }

.avis-merci .card-body { padding: var(--sp-6); }
.avis-merci h2 { margin: 0 0 var(--sp-2); }
.avis-merci-insta a { color: var(--gold-deep); text-decoration: underline; text-underline-offset: 3px; }

/* Avis publiés */
.avis-publies { margin-top: var(--sp-8, 64px); }
.avis-publies-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-4); }
.avis-publies-tete h2 { margin: 0; }
.avis-moyenne { margin: 0; color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.avis-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--sp-4); }
.avis-carte .card-body { display: flex; flex-direction: column; gap: var(--sp-3); height: 100%; }
.avis-carte-etoiles { color: #958A73; letter-spacing: 2px; font-size: 18px; }
.avis-carte-etoiles .is-pleine, .avis-moyenne .is-pleine { color: var(--gold); }
.avis-moyenne .avis-carte-etoiles { font-size: 16px; }
.avis-carte-texte { margin: 0; font-family: var(--font-display); font-size: var(--fs-md); line-height: 1.5; color: var(--ink); white-space: pre-line; flex: 1; }
.avis-carte-signature { margin: 0; color: var(--ink-soft); }
.avis-badge {
  display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px;
  background: var(--success-bg); color: var(--success); font-size: var(--fs-xs); font-weight: 600; vertical-align: 1px;
}

/* Règles (information obligatoire sur le traitement des avis, art. L111-7-2 C. conso) */
.avis-regles { padding: var(--sp-5); border-radius: var(--radius-lg, 14px); background: var(--paper-soft); }
@media (min-width: 1024px) { .avis-regles { position: sticky; top: 96px; } }
.avis-regles h2 { font-size: var(--fs-lg); margin: 0 0 var(--sp-3); }
.avis-regles ul { margin: 0; padding-left: 1.2em; display: grid; gap: var(--sp-2); color: var(--ink-soft); }
.avis-regles a { color: var(--gold-deep); }
