/* Composant commun des formulaires des pages publiques (connexion,
   contact, achat…) : carte, champs, aide, erreurs, bouton d'envoi, et
   messages flash (.alerte). Les champs eux-mêmes (input, textarea…) sont
   stylés dans pages/layout/public.css. */

.page-formulaire{padding:64px 0 84px}
.page-formulaire .wrap{display:flex;flex-direction:column;align-items:center}
.page-formulaire .section-title{text-align:center}
.page-formulaire .section-intro{text-align:center;margin:0 auto 28px}

.formulaire{width:100%;max-width:520px;background:var(--fond-carte);border:1px solid var(--bordure);border-radius:6px;padding:28px 28px 32px}
.formulaire > div + div{margin-top:4px}
.formulaire label{margin-top:1.1rem}
/* Pas d'espace en trop au-dessus du premier champ de la carte. */
.formulaire > div:first-of-type > label:first-child,.formulaire > label:first-of-type{margin-top:0}
.formulaire .aide,.formulaire .help-text{color:var(--brume);font-size:.85rem;margin-top:.3rem}
.formulaire ul{list-style:none;margin:.35rem 0 0;padding:0}
.formulaire ul li,.formulaire .erreur{color:var(--rouge-texte);font-size:.88rem}
.formulaire .erreur-globale{background:var(--tampon-fond);border:1px solid var(--tampon-bordure);border-radius:4px;padding:10px 14px;margin-bottom:6px}
.formulaire .case{display:flex;align-items:flex-start;gap:10px;margin-top:1.3rem}
.formulaire .case input{margin-top:.3rem;accent-color:var(--laiton)}
.formulaire .case label{margin:0;font-size:.95rem}
.formulaire a:not(.btn){color:var(--laiton)}
.formulaire button[type=submit],.formulaire .btn{width:100%;margin-top:1.6rem;cursor:pointer;text-align:center}
.formulaire .sous-lien{margin-top:1.1rem;text-align:center;font-size:.9rem;color:var(--brume)}

/* Champ piège anti-robots (formulaire de contact) : hors de l'écran,
   jamais visible ni atteignable au clavier. */
.champ-piege{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}

/* Messages flash (succès, erreur, info), affichés sous l'en-tête. */
.alertes{padding-top:20px}
.alerte{max-width:720px;margin:0 auto 10px;padding:12px 16px;border-radius:4px;border:1px solid var(--bordure);background:var(--fond-carte)}
.alerte.succes{border-color:var(--statut-en-cours);background:var(--statut-en-cours-fond)}
.alerte.erreur{border-color:var(--tampon-bordure);background:var(--tampon-fond)}
.alerte.info{border-color:var(--bordure-accent);background:var(--laiton-halo)}

@media (max-width:767px){
  .page-formulaire{padding:40px 0 64px}
  .formulaire{padding:22px 18px 26px}
}
.formulaire .explication{margin:0 0 .9rem}
