/* Layout */
.wpcf7 form{
    display: flex;
    flex-direction: column;
    gap: 24px;
    max-width: none;
}

.wpcf7 form label{
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wpcf7 label span::after{
  content: "Optionnel";
  position: absolute;
  top: -25px;
  right: 0px;
  font-size: 14px;
  font-weight: normal;
}

.wpcf7 label span:has(.wpcf7-validates-as-required)::after{
  display: none;
}

.wpcf7 form label,
.wpcf7 form legend{
    font-size: 16px;
    font-weight: 600;
}

.wpcf7 form p{
    width: 100%;
}

.wpcf7 form fieldset{
    width: 100%;
    border: 0;
    margin: 0;
    padding: 0;
}

.wpcf7 form legend{
    margin-bottom: 10px;
}

.wpcf7 br,
.wpcf7-spinner{
    display: none;
}

/* Champs */
.wpcf7 form input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.wpcf7 form textarea,
.wpcf7 form select{
    display: block;
    width: 100%;
    padding: 10px;
    border: 0px;
    border: solid 1px var(--color-grey) !important;
    border-radius: 8px;
    outline: none;
    resize: none;
    background-color: var(--color-white);
    height: 44px;
    appearance: initial;
    color: var(--color-black) !important;
}

.wpcf7 form p label select {
    background-repeat: no-repeat;
    background-position: right 20px center;
    background-image: url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M6.00025 7.00025C5.74425 7.00025 5.48825 6.90225 5.29325 6.70725L0.29325 1.70725C-0.09775 1.31625 -0.09775 0.68425 0.29325 0.29325C0.68425 -0.09775 1.31625 -0.09775 1.70725 0.29325L6.00025 4.58625L10.2933 0.29325C10.6842 -0.09775 11.3162 -0.09775 11.7072 0.29325C12.0982 0.68425 12.0982 1.31625 11.7072 1.70725L6.70725 6.70725C6.51225 6.90225 6.25625 7.00025 6.00025 7.00025Z' fill='%230B0B0B'/%3E%3C/svg%3E%0A");
}

.wpcf7 form input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]),
.wpcf7 form textarea,
.wpcf7 form select,
.wpcf7 form select option,
.wpcf7 form input:not([type="radio"]):not([type="checkbox"]):not([type="submit"])::placeholder,
.wpcf7 form textarea::placeholder,
.wpcf7 form select::placeholder,
.wpcf7 form select option::placeholder{
    font-size: 16px;
}

.wpcf7 form input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):focus,
.wpcf7 form textarea:focus,
.wpcf7 form select:focus{
    border: solid 1px var(--color-primary) !important;
}

.wpcf7 form textarea{
    height: 170px;
}

.wpcf7 form p .wpcf7-form-control-wrap{
    position: relative;
}

.wpcf7 form .wpcf7-checkbox{
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wpcf7 form .wpcf7-radio{
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 16px;
}

.wpcf7 form .wpcf7-list-item{
    margin: 0;
}

.wpcf7 form .wpcf7-list-item label{
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
}

.wpcf7 form .wpcf7-radio .wpcf7-list-item-label,
.wpcf7 form .wpcf7-checkbox .wpcf7-list-item-label{
    font-size: 18px;
}

/* Bouton */
.wpcf7 form  input[type="submit"]{
    width: 100% !important;
    height: 44px !important;
}

/* Messages d'erreur */
.wpcf7-not-valid-tip{
    margin-top: 8px;
    color: #DC3545;
    font-size: 14px;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{
    margin: 0px;
    padding: 12px 25px;
    border: solid 1px #DC3545 !important;
    font-size: 16px;
}

/* Infos */
.wpcf7 form .infos{
    font-size: 12px;
    text-align: end;
}

.wpcf7 form .infos span{
    color: var(--color-primary);
}

/* Empêcher la soumission en double de formulaire */
.wpcf7-form.submitting .wpcf7-submit{
    pointer-events: none;
    opacity: 0.7;
    cursor: wait;
}
