/* Formulaires */
fieldset { border: 0; padding: 0; margin: 0 0 8px; }
legend { font-weight: 700; font-size: 1.05rem; margin-bottom: 4px; padding: 0; }
.champ { margin: 14px 0; }
.champ > label, .champ > .libelle { display: block; font-weight: 600; margin-bottom: 4px; }
.champ .obligatoire { color: var(--rouge); }
.aide { color: var(--encre-douce); font-size: .88rem; margin-top: 4px; }
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=date], input[type=url], select, textarea {
  width: 100%; font: inherit; color: inherit;
  padding: 11px 12px; min-height: 48px;
  border: 1px solid #b8c3d3; border-radius: 10px; background: #fff;
}
textarea { min-height: 0; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 3px solid var(--glacier-pale); border-color: var(--glacier); }
.champ--erreur input, .champ--erreur select, .champ--erreur textarea { border-color: var(--rouge); }
.erreur { color: var(--rouge); font-size: .9rem; margin-top: 4px; font-weight: 600; }
.radios { display: grid; gap: 8px; }
.radios label, .case {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 12px; border: 1px solid var(--bord); border-radius: 10px; background: #fff; font-weight: 400; cursor: pointer;
}
.radios input, .case input { width: 22px; height: 22px; margin: 1px 0 0; flex: none; accent-color: var(--glacier); }
.radios--ligne { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); }
.grille-2 { display: grid; gap: 0 12px; }
@media (min-width: 560px) { .grille-2 { grid-template-columns: 1fr 1fr; } }
.code-saisie input { font-size: 1.6rem; letter-spacing: .35em; text-align: center; font-variant-numeric: tabular-nums; }
