/*
 * Socle public des formulaires Evoque. Les sélecteurs sont volontairement
 * peu spécifiques afin que chaque thème puisse les adapter sans !important.
 */
.evoque-form { display: grid; gap: 1.1rem; width: 100%; max-width: 46rem; }
.evoque-form__title,
.evoque-form__description { margin: 0; }
.evoque-form [data-evoque-form-fields] { display: grid; gap: 1rem; }
.evoque-form__field { display: grid; gap: .4rem; }
.evoque-form__field > label { font-weight: 650; }
.evoque-form__field label span[aria-hidden] { color: #b42318; }
.evoque-form__field input:not([type="checkbox"]),
.evoque-form__field textarea,
.evoque-form__field select {
    box-sizing: border-box;
    width: 100%;
    min-height: 2.8rem;
    padding: .7rem .85rem;
    border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
    border-radius: .45rem;
    color: inherit;
    background: transparent;
    font: inherit;
}
.evoque-form__field textarea { min-height: 8rem; resize: vertical; }
.evoque-form__field input:focus-visible,
.evoque-form__field textarea:focus-visible,
.evoque-form__field select:focus-visible,
.evoque-form__submit:focus-visible {
    outline: 3px solid color-mix(in srgb, currentColor 32%, transparent);
    outline-offset: 2px;
}
.evoque-form__field--checkbox label { display: flex; align-items: flex-start; gap: .6rem; font-weight: 500; }
.evoque-form__field--checkbox input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; accent-color: currentColor; }
.evoque-form__field[hidden] { display: none !important; }
.evoque-form__consent label { display: flex; align-items: flex-start; gap: .6rem; font-size: .92em; }
.evoque-form__consent input { width: 1.1rem; height: 1.1rem; margin-top: .2rem; accent-color: currentColor; }
.evoque-form__consent a { color: inherit; text-underline-offset: .15em; }
.evoque-form__submit {
    justify-self: start;
    min-height: 2.8rem;
    padding: .7rem 1.15rem;
    border: 1px solid currentColor;
    border-radius: .45rem;
    color: inherit;
    background: transparent;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.evoque-form__submit:hover { background: color-mix(in srgb, currentColor 8%, transparent); }
.evoque-form__success,
.evoque-form__error,
.evoque-form-missing { padding: .9rem 1rem; border: 1px solid currentColor; border-radius: .45rem; }
.evoque-form__success { color: #18794e; background: #ecfdf3; }
.evoque-form__error,
.evoque-form-missing { color: #b42318; background: #fff1f0; }
.evoque-form__honeypot {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}
.evoque-form--preview { font-size: .9rem; }
