/* Contact du nouveau site — styles PROPRES À CETTE PAGE (pages.css n'est pas touché).
   Réutilise les jetons du concept (--navy, --gold, --muted) ; seule couleur locale :
   l'erreur, contraste mesuré > 7:1 sur blanc. Aucune @media sous 480 px (suite 141). */
:root{--contact-erreur:#9a2b1e}

/* Un `display` d'auteur (form{display:grid}) écrase l'attribut hidden : on le rétablit ICI. */
.contact [hidden]{display:none!important}
/* Le révélateur de site-motion.js ne doit jamais laisser un formulaire à opacity:0. */
.contact .reveal{opacity:1;transform:none;transition:none}

.contact-zone{min-width:0}
.contact-form{gap:20px}
.contact-obligatoire{margin:0;font-size:14px}
.champ{display:grid;gap:0;min-width:0}
.champ label{font-size:15px;font-weight:600;color:var(--navy)}
.champ .facultatif{font-weight:400;color:var(--muted)}
.champ .etoile{color:var(--contact-erreur)}
.contact-form input:not([type=checkbox]),.contact-form textarea{font-size:16px;min-height:48px;margin-top:8px}
.contact-form textarea{min-height:140px;resize:vertical}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.contact-form [aria-invalid=true]{border-color:var(--contact-erreur);box-shadow:0 0 0 1px var(--contact-erreur)}
.champ-erreur{margin:8px 0 0;font-size:14px;font-weight:600;color:var(--contact-erreur)}

.champ .consentement{display:flex;gap:14px;align-items:flex-start;min-height:48px;padding:10px 0;font-size:15px;line-height:1.55;font-weight:400;cursor:pointer}
.consentement input{flex:0 0 28px;width:28px;height:28px;margin:0;accent-color:var(--navy)}
.consentement input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.consentement span{min-width:0}

/* Honeypot : hors écran, jamais display:none (certains robots l'ignorent alors). */
.contact-piege{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}

.contact-statut{min-height:0;font-size:15px;color:var(--muted)}
.contact-statut:empty{display:none}
.contact-alerte{padding:16px 18px;border-radius:12px;border:1px solid var(--contact-erreur);background:#fff5f3;color:var(--contact-erreur);font-size:15px;line-height:1.6;font-weight:600}
.contact-alerte a{text-decoration:underline}
.contact-alerte[data-etat=incertain]{border-color:var(--navy);background:#f6efe0;color:var(--navy)}
.contact-alerte:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

.contact-envoyer{min-height:52px;justify-content:center;font-size:16px;cursor:pointer}
.contact-envoyer[disabled]{opacity:.55;cursor:progress}

.contact-succes,.contact-sansjs{padding:32px;border-radius:24px;border:1px solid #102e4614;background:#fff;box-shadow:0 14px 35px #102e4609}
.contact-succes{border-color:var(--navy);background:#f6efe0}
.contact-succes h2,.contact-sansjs h2{margin:0 0 12px;font-size:26px;letter-spacing:-.5px}
.contact-succes p,.contact-sansjs p{font-size:16px;line-height:1.7;color:var(--navy)}
.contact-sansjs a{text-decoration:underline}
.contact-succes:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* Cible tactile : le lien mailto tenait 29 px de haut (mesuré au navigateur, 360 et 390). */
.contact-direct a{display:flex;align-items:center;min-height:44px;overflow-wrap:anywhere}
@media(max-width:700px){.contact-succes,.contact-sansjs{padding:22px}}
@media(prefers-reduced-motion:reduce){.contact-envoyer{transition:none}}

/* Bouton WhatsApp flottant — restauré depuis la page d'avant #133 (e639baa5).
   44 px minimum, ne recouvre aucun contenu de lecture (bas-droite, fixe). */
.whatsapp{position:fixed;right:16px;bottom:16px;width:56px;height:56px;min-width:44px;min-height:44px;display:grid;place-items:center;background:#25D366;border-radius:50%;box-shadow:0 8px 20px #10203010;z-index:30}
.whatsapp svg{width:28px;height:28px;fill:#fff}
.whatsapp:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(max-width:700px){.whatsapp{right:12px;bottom:12px;width:50px;height:50px}}
