form {
    margin: 20px 0;
    clear: both;
}
fieldset {
    border: none;
}
legend {
    font-weight: 600;
}
input,
textarea,
.champ,
select {
    font-style: normal;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
input,
textarea,
select {
    display: table-cell;
    margin: .5em 0;
    padding: .5em;
    vertical-align: middle;
    border-radius: 5px;
    max-width: 100%;
    /* Desactive: la transition globale provoque un glitch sur les champs. */
}
select {
    max-width: 100%;
    width: 100%;
}
option {
    padding: .3em;
    border: none;
    max-width: 100%;
    width: 100%;
}
input:focus,
input.sffocus,
textarea:focus,
textarea.sffocus,
select:focus,
select.sffocus {
    font-weight: normal;
}
.required {}
:valid {}
[required],
:required {}

/* -- Labels ---------------------------------------------------------- */

label {
    display: table-cell;
    width: 45%;
    font-weight: 600;
    vertical-align: bottom;
    padding: .5em 5% .5em 0;
}
textarea,
input[type=text],
input[type=email],
input[type=file],
input[type=username],
input[type=password] {
    width: 95%;
    padding-left: 2.5%;
    padding-right: 2.5%;
}

/* Champs obligatoires : bordure gauche discrète (couleur définie dans couleur.css) */
input[required],
select[required],
textarea[required] {
    border-left-width: 3px;
    border-left-style: solid;
}
