
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:#f8fafc;color:#1a2e44;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Nunito',system-ui,sans-serif;font-weight:800}
nav{background:#fff;position:sticky;top:0;z-index:100;border-bottom:1px solid #e5e7eb;box-shadow:0 1px 8px rgba(0,0,0,.06)}
.nav-inner{max-width:1280px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:68px}
.logo{font-family:'Nunito',sans-serif;font-size:1.7rem;font-weight:900;text-decoration:none;display:inline-block;background:linear-gradient(90deg,#1a56db 0%,#0077b6 35%,#00968f 65%,#2ecc71 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.nav-links{display:flex;align-items:center;gap:1.8rem}
.nav-links a{color:#6b7280;text-decoration:none;font-size:.9rem;font-weight:500;transition:color .2s}
.nav-links a:hover{color:#0077b6}
.btn-post{background:#2ecc71;color:#fff!important;padding:.5rem 1.1rem;border-radius:8px;font-weight:700;font-size:.86rem;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem}
.btn-compte{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:#0077b6;padding:.42rem 1rem;border-radius:8px;font-weight:700;font-size:.88rem;text-decoration:none;border:1.5px solid #0077b6;transition:all .2s}.btn-compte:hover{background:#0077b6;color:#fff}

footer{background:linear-gradient(160deg,#011e3a 0%,#023070 50%,#0a3d2e 100%);padding:4rem 2rem 2rem}
.footer-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1.2fr;gap:1.6rem;margin-bottom:2.5rem}
.footer-logo{font-family:'Nunito',sans-serif;font-size:1.55rem;font-weight:900;text-decoration:none;display:inline-block;background:linear-gradient(90deg,#74b0ff 0%,#5ce4d4 50%,#55efc4 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.8rem}
.footer-desc{color:rgba(255,255,255,.4);font-size:.83rem;line-height:1.6}
footer h2{color:#fff;font-family:'Nunito',sans-serif;font-size:.93rem;margin-bottom:.9rem;font-weight:700}
footer ul{list-style:none}footer ul li{margin-bottom:.55rem}
footer ul li a{color:rgba(255,255,255,.4);text-decoration:none;font-size:.83rem}
footer ul li a:hover{color:#fff}
.footer-social{display:flex;gap:.7rem}
.footer-social a{width:36px;height:36px;background:rgba(255,255,255,.08);border-radius:8px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.45);text-decoration:none}
.footer-social a:hover{background:#0077b6;color:#fff}
.footer-bottom{max-width:1280px;margin:0 auto;border-top:1px solid rgba(255,255,255,.08);padding-top:1.4rem;text-align:center;color:rgba(255,255,255,.22);font-size:.76rem}
@media(max-width:1024px){.footer-inner{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.footer-inner{grid-template-columns:1fr}}

/* ── Hero « Avis des membres » ── */
.avis-hero{background:#f8fafc;padding:3rem 2rem;border-bottom:1px solid #e5e7eb}
.avis-hero-inner{max-width:1000px;margin:0 auto}
/* Enfants directs uniquement : la grille d'avis est un descendant du hero,
   ces règles ne doivent pas fuir dans les cartes rendues par JS. */
.avis-hero-inner>h1{font-family:'Nunito',sans-serif;font-size:1.9rem;font-weight:900;color:#1a2e44;text-align:center;margin-bottom:.4rem}
.avis-hero-inner>p{text-align:center;color:#6b7280;margin-bottom:2.2rem;font-size:.93rem}
.avis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.avis-grid-msg{grid-column:1/-1;text-align:center;padding:2.5rem 1rem;color:#6b7280;font-size:.9rem}

/* Note moyenne — l'affichage est piloté par JS, display:none reste inline */
.avis-moyenne{text-align:center;margin-top:2rem}
.avis-moyenne-badge{display:inline-flex;align-items:center;gap:.6rem;background:#fff;border:1.5px solid #e5e7eb;border-radius:10px;padding:.7rem 1.4rem}
.avis-moyenne-star{color:#f59e0b;font-size:1.1rem}
.avis-moyenne-val{font-family:'Nunito',sans-serif;font-size:1.1rem;color:#1a2e44}
.avis-moyenne-lib{color:#6b7280;font-size:.83rem}

/* Bloc pleine largeur dans la grille (état vide / état erreur) */
.avis-bloc{grid-column:1/-1;text-align:center;padding:3rem 2rem;background:#fff;border-radius:14px;border:1px solid #e5e7eb}
.avis-bloc-emoji{font-size:2.4rem;margin-bottom:.7rem}
.avis-bloc h2{font-family:'Nunito',sans-serif;font-size:1.15rem;margin-bottom:.45rem;color:#1a2e44}
.avis-bloc p{color:#6b7280;font-size:.9rem;line-height:1.6;max-width:50ch;margin:0 auto}
.avis-bloc p.spaced{margin-bottom:1.2rem}
.avis-bloc-cta{display:inline-block;background:#0077b6;color:#fff;padding:.7rem 1.5rem;border-radius:8px;font-family:'Nunito',sans-serif;font-weight:700;font-size:.88rem;text-decoration:none}

/* Carte d'un avis publié (rendue par JS) */
.avis-pub{background:#fff;border-radius:14px;padding:1.5rem;border:1px solid #e5e7eb;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.avis-pub-stars{color:#f59e0b;font-size:1rem;margin-bottom:.6rem}
.avis-pub-text{color:#374151;font-size:.88rem;line-height:1.7;margin-bottom:1rem}
.avis-pub-user{display:flex;align-items:center;gap:.7rem}
.avis-pub-av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#0077b6,#2ecc71);display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:.85rem;flex-shrink:0}
.avis-pub-nom{font-size:.85rem;display:block;color:#1a2e44}
.avis-pub-role{font-size:.75rem;color:#9ca3af}
/* Dates de publication et de location (art. D111-10) — #6b7280 : contraste AA */
.avis-pub-dates{margin-top:.9rem;padding-top:.7rem;border-top:1px solid #f1f5f9;font-size:.76rem;color:#6b7280;line-height:1.6}

/* Encart « À savoir » placé juste au-dessus des avis (art. D111-10) */
.avis-info{max-width:760px;margin:0 auto 2rem;background:#fff;border:1px solid #e5e7eb;border-left:4px solid #0077b6;border-radius:12px;padding:1.2rem 1.4rem}
.avis-info h2{font-family:'Nunito',sans-serif;font-size:1rem;color:#1a2e44;margin-bottom:.6rem}
.avis-info ul{list-style:none;display:grid;gap:.45rem;margin-bottom:.8rem}
.avis-info li{color:#374151;font-size:.86rem;line-height:1.55}
.avis-info li strong{color:#1a2e44}
.avis-info-lien{color:#0077b6;font-weight:600;font-size:.86rem}

/* Section « Laisser un avis » : renvoi vers Mon compte → Mes réservations */
.avis-depot{max-width:760px;margin:2.5rem auto 0;padding:0 1.5rem;text-align:center}
.avis-depot h2{font-family:'Nunito',sans-serif;font-size:1.4rem;font-weight:900;color:#1a2e44;margin-bottom:.5rem}
.avis-depot p{color:#4b5563;font-size:.9rem;line-height:1.65;margin-bottom:1.2rem}

/* Rubrique « Comment fonctionnent les avis » (art. D111-10 et D111-11) */
.avis-regles{max-width:760px;margin:3rem auto 4rem;padding:2rem 2.2rem;background:#fff;border:1px solid #e5e7eb;border-radius:16px;scroll-margin-top:90px}
.avis-regles h2{font-family:'Nunito',sans-serif;font-size:1.4rem;font-weight:900;color:#1a2e44;margin-bottom:1.2rem}
.avis-regles h3{font-family:'Nunito',sans-serif;font-size:1rem;color:#1a2e44;margin:1.4rem 0 .45rem}
.avis-regles p,.avis-regles li{color:#374151;font-size:.88rem;line-height:1.65}
.avis-regles p+p{margin-top:.6rem}
.avis-regles ul{margin:.4rem 0 .8rem 1.2rem}
/* Valeur que seul l'éditeur peut fixer : visible tant qu'elle n'est pas remplie */
.a-fournir{background:#fef3c7;color:#92400e;border-radius:4px;padding:.05rem .35rem;font-weight:600}
@media(max-width:600px){.avis-regles{padding:1.4rem 1.1rem;margin:2rem 1rem 3rem}.avis-info{padding:1rem 1.1rem}}

/* Pied de page — le :hover est redéclaré pour garder la couleur que
   l'attribut style= imposait à footer ul li a:hover */
.footer-support,.footer-support:hover{color:#ef4444}
.footer-legal{margin-top:.8rem;list-style:none}
.footer-legal-link{color:rgba(255,255,255,.3);text-decoration:none}
