/* Formulaire de candidature aux législatives (reprend les champs .form-champ du thème). */
.form-candidature fieldset{
  margin:0 0 28px; padding:26px 26px 8px; border:1px solid var(--gris-bordure,#E3E8F1); border-radius:16px; background:#fff;
}
.form-candidature legend{
  display:flex; align-items:center; gap:10px; padding:0 8px; margin-left:-8px;
  font-family:Fraunces,Georgia,serif; font-weight:700; font-size:22px; color:var(--bleu-marine,#071E4A);
}
.form-candidature legend span{
  display:grid; place-items:center; width:30px; height:30px; border-radius:50%;
  background:var(--rouge,#EC000C); color:#fff; font:700 15px 'Libre Franklin',system-ui,sans-serif;
}
.form-candidature abbr{ color:var(--rouge,#EC000C); text-decoration:none; }
.form-candidature .etiquette{ font-weight:600; font-size:14px; margin:0 0 9px; color:var(--bleu-marine,#071E4A); }
/* Choix uniques : sélecteur segmenté (options accolées, l'option retenue en bleu marine). */
.form-candidature .choix-ligne{
  display:inline-flex; flex-wrap:wrap; max-width:100%;
  border:1.5px solid var(--gris-bordure,#E3E8F1); border-radius:10px; background:#fff; overflow:hidden;
}
.form-candidature .form-champ label.choix{
  position:relative; display:flex; align-items:center; justify-content:center; margin:0;
  min-height:42px; padding:0 18px; cursor:pointer; white-space:nowrap;
  font-weight:600; font-size:14.5px; color:var(--bleu-marine,#071E4A); background:#fff;
  transition:background .15s, color .15s;
}
.form-candidature .choix + .choix{ border-left:1.5px solid var(--gris-bordure,#E3E8F1); }
.form-candidature .form-champ label.choix:hover{ background:#F3F6FB; }
.form-candidature .choix input{
  position:absolute; opacity:0; width:1px; height:1px; margin:0; padding:0; border:0; pointer-events:none;
}
.form-candidature .form-champ label.choix:has(input:checked){ background:var(--bleu-marine,#071E4A); color:#fff; }
.form-candidature .choix:has(input:focus-visible){ outline:3px solid var(--bleu-clair,#2E5AA8); outline-offset:-3px; }
@media (max-width:560px){
  .form-candidature .choix-ligne{ display:flex; }
  .form-candidature .form-champ label.choix{ flex:1 1 auto; padding:0 12px; }
}
.form-candidature textarea.court{ min-height:80px; }
.form-candidature .parti-nom{ margin-top:10px; width:100%; max-width:420px; }
.form-candidature .form-note{ margin:8px 0 0; }

.pieces{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:20px; }
.piece{
  position:relative; display:flex; flex-direction:column; gap:4px; padding:18px 16px 18px 52px; cursor:pointer;
  border:2px dashed var(--gris-bordure,#E3E8F1); border-radius:14px; background:var(--creme,#FAF7F2);
  transition:border-color .2s, background .2s;
}
.piece::before{
  content:'⇪'; position:absolute; left:16px; top:16px; width:26px; height:26px; border-radius:50%;
  display:grid; place-items:center; background:var(--bleu-marine,#071E4A); color:#fff; font-size:14px;
}
.piece:hover{ border-color:var(--bleu-clair,#2E5AA8); }
.piece.remplie{ border-style:solid; border-color:#1F8A4C; background:#F1FAF4; }
.piece.remplie::before{ content:'✓'; background:#1F8A4C; }
.piece.erreur{ border-color:var(--rouge,#EC000C); }
.piece__titre{ font-weight:700; color:var(--bleu-marine,#071E4A); }
.piece__aide{ font-size:13px; color:var(--gris-texte,#4C566B); word-break:break-word; }
.piece input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; }

.engagements-finaux{ display:grid; gap:10px; margin:6px 0 24px; }
.form-candidature .message-statut.erreur{ color:var(--rouge,#EC000C); font-weight:600; }
.candidature-merci{
  padding:34px; border-radius:16px; background:#F1FAF4; border:1px solid #BFE3CC; outline:none;
}
.candidature-merci__titre{ font-family:Fraunces,Georgia,serif; font-size:26px; font-weight:700; color:var(--bleu-marine,#071E4A); margin:0 0 10px; }

@media (max-width:760px){
  .pieces{ grid-template-columns:1fr; }
  .form-candidature fieldset{ padding:20px 16px 4px; }
}

/* ---- Étape 1 : choix de la circonscription ---- */
.choix-circo{
  margin:0 0 40px; padding:26px; border-radius:18px; background:#fff;
  border:1px solid var(--gris-bordure,#E3E8F1); box-shadow:var(--ombre-douce,0 10px 30px rgba(7,30,74,.08));
}
.choix-circo__tete{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:14px; }
.choix-circo__tete h2{ margin:0; font-size:clamp(24px,3vw,32px); }
.choix-circo__kicker{ margin:0 0 6px; text-transform:uppercase; letter-spacing:3px; font-size:13px; font-weight:700; color:var(--rouge,#EC000C); }
.choix-circo__kicker.etape-2{ margin:0 0 14px; }
.choix-circo__cp label{ display:block; font-weight:600; font-size:14px; margin-bottom:6px; color:var(--bleu-marine,#071E4A); }
.choix-circo__cp div{ display:flex; gap:8px; }
.choix-circo__cp input{ width:130px; padding:10px 14px; border:1px solid var(--gris-bordure,#E3E8F1); border-radius:999px; font-size:16px; }
.choix-circo__cp .btn{ padding:10px 18px; font-size:15px; }
.choix-circo__fil{ font-size:14px; color:var(--gris-texte,#4C566B); margin:4px 0 10px; min-height:20px; }
.choix-circo__fil button{ background:none; border:0; padding:0; color:var(--bleu-clair,#2E5AA8); font:inherit; font-weight:600; cursor:pointer; text-decoration:underline; }
.choix-circo__carte{ height:min(520px,70vh); border-radius:14px; background:var(--creme,#FAF7F2); border:1px solid var(--gris-bordure,#E3E8F1); }
.choix-circo__carte .leaflet-interactive{ cursor:pointer; }
.choix-circo__numero{
  display:grid !important; place-items:center; border-radius:50%; background:rgba(255,255,255,.9);
  color:var(--bleu-marine,#071E4A); font:700 12px 'Libre Franklin',system-ui,sans-serif; box-shadow:0 1px 4px rgba(7,30,74,.25);
}
.choix-circo__info{ margin:12px 0 10px; color:var(--gris-texte,#4C566B); font-size:15px; }
.choix-circo__liste{ display:flex; flex-wrap:wrap; gap:8px; }
.choix-circo__bouton{
  padding:7px 14px; border-radius:999px; border:1px solid var(--gris-bordure,#E3E8F1); background:#fff; cursor:pointer;
  font:600 14px 'Libre Franklin',system-ui,sans-serif; color:var(--bleu-marine,#071E4A);
}
.choix-circo__bouton:hover{ border-color:var(--bleu-clair,#2E5AA8); }
.choix-circo__bouton.actif{ background:var(--rouge,#EC000C); border-color:var(--rouge,#EC000C); color:#fff; }
.choix-circo__choix{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:18px;
  padding:16px 18px; border-radius:12px; background:#FDEBEC; border-left:4px solid var(--rouge,#EC000C);
}
.choix-circo__choix p{ margin:0; }
@media (max-width:760px){
  .choix-circo{ padding:18px 14px; }
  .choix-circo__carte{ height:380px; }
}
