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

.wpcf7 form{
    display: flex;
    flex-direction: column;
    gap: 32px;
    max-width: 480px;
}

.wpcf7 form p{
    width: 100%;
}

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

.wpcf7 input.wpcf7-form-control {
    border-radius: 8px;
    border: 1px solid #B9B9C2;
    width: 100%;
    height: 56px;
    padding: 8px;
    font-size: 1rem;
    line-height: 1.25rem;
    font-family: var(--ffMRe);
    background-color: var(--white);
}

.wpcf7 form p label{
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-family: var(--ffMBo);
    font-size: 1.125rem;
    line-height: 1.25rem;
}

.wpcf7 form p label,
.wpcf7 form p label *{
    width: 100%;
}

.wpcf7 form p label input,
.wpcf7 form p label textarea,
.wpcf7 form p label select{
    display: block;
    outline: none;
    border: solid 1px #B5B7BC;
    border-radius: 0px;
    height: 44px;
    resize: none;
    padding: 12px;
}

.wpcf7 form p label input,
.wpcf7 form p label textarea,
.wpcf7 form p label select,
.wpcf7 form p label select option,
.wpcf7 form p label input::placeholder,
.wpcf7 form p label textarea::placeholder,
.wpcf7 form p label select::placeholder,
.wpcf7 form p label select option::placeholder{
    color: #91959C;
    font-size: 16px;
    line-height: 19px;
}

.wpcf7 form p label input:focus,
.wpcf7 form p label textarea:focus,
.wpcf7 form p label select:focus{
    border: solid 2px var(--primary);
}

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

.wpcf7 form p > span > select {
    width: 100%;
    height: 56px;
    border-radius: 8px;
    border: 1px solid #B9B9C2;
    padding: 8px;
    padding-right: 32px;
    font-size: 1rem;
    line-height: 1.25rem;
    font-family: var(--ffMRe);
}

/*
Source - https://stackoverflow.com/a
Posted by KvnG., modified by community. See post 'Timeline' for change history
Retrieved 2025-12-09, License - CC BY-SA 4.0
*/

select {
  -webkit-appearance: none;
  appearance: none;
}

.wpcf7-form-control-wrap:has(select) {
    position: relative;
}

.wpcf7-form-control-wrap:has(select)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 16px;
    transform: translateY(-50%) rotate(45deg);
    width: 8px;
    height: 8px;
    border-right: 1px solid var(--black);
    border-bottom: 1px solid var(--black);
    border-radius: 1px;
    pointer-events: none;
}

.wpcf7 form p > span > textarea {
    width: 100%;
    height: 213px;
    border-radius: 8px;
    border: 1px solid #B9B9C2;
    padding: 8px;
    font-size: 1rem;
    line-height: 1.25rem;
    font-family: var(--ffMRe);
}

.wpcf7 form p label .wpcf7-form-control-wrap::after{
    content: "Optionnel";
    height: fit-content;
    width: fit-content;
    display: block;
    position: absolute;
    font-size: 14px;
    line-height: 16px;
    right: 0px;
    top: -25px;
    color: #545D63;
}

.wpcf7 form p label .wpcf7-form-control-wrap:has(input[aria-required="true"])::after,
.wpcf7 form p label .wpcf7-form-control-wrap:has(textarea[aria-required="true"])::after,
.wpcf7 form p label .wpcf7-form-control-wrap:has(select[aria-required="true"])::after{
    display: none;
}

.wpcf7 form p label textarea{
    height: 170px;
}

.wpcf7-not-valid-tip{
    font-size: 14px;
    margin-top: 2px;
    color: #dc3232;
}

.wpcf7 form p:has(.wpcf7-submit) {
    position: relative;
    overflow: hidden;
    border-radius: 15px;
}

.wpcf7 form .wpcf7-submit{
    background-color: var(--black);
    border-radius: 15px;
    border: unset;
    padding: 8px 10px;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: var(--white);
    font-size: .875rem;
    font-family: var(--ffMRe);
    line-height: normal;
    position: relative;
    transition: all .5s ease;
    overflow: hidden;
    z-index: 1;
}

.wpcf7 form p:has(.wpcf7-submit) .submit-text {
    position: absolute;
    left: 50%;
    padding-left: 30px;
    top: 50%;
    width: 185px;
    transform: translate(-50%, -50%);
    z-index: 3;
    color: var(--white);
    font-size: .875rem;
    font-family: var(--ffMRe);
    pointer-events: none;
    transition: all .5s ease;
}

.submit-text {
    position: relative;
    z-index: 3;
}

.wpcf7 form .wpcf7-submit .submit-text {
    position: relative;
    z-index: 3;
}

.wpcf7 form p:has(.wpcf7-submit)::before {
    content: "";
    display: inline-flex;
    background-image: url("../img/logosIcons/arrow.svg");
    background-repeat: no-repeat;
    background-size: 14px;
    background-position: center;
    background-color: var(--white);
    border-radius: 50px;
    aspect-ratio: 1;
    width: 24px;
    height: 24px;
    padding: 2px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(calc(-100% - 25px), -50%);
    margin-left: -45px;
    z-index: 2;
    pointer-events: none;
    transition: all .5s ease;
}

.wpcf7 form p:has(.wpcf7-submit)::after{
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 100%;
    aspect-ratio: 1;
    background-color: var(--primary);
    border-radius: 50%;
    transform: translate(-50%, 50%) scale(0);
    transition: .5s ease;
    z-index: 1;
    pointer-events: none;
}

.wpcf7 form.sent .wpcf7-response-output {
    border: none !important;
    padding: unset!important;
}

@media (pointer:fine) {
    .wpcf7 form p:has(.wpcf7-submit):hover::after {
        transform: translate(-50%, 50%) scale(2.5);
    }
    
    .wpcf7 form p:has(.wpcf7-submit):hover .wpcf7-submit {
        color: var(--white);
        padding-inline: 13px 7px;
        transition: all .5s ease;
    }

    .wpcf7 form p:has(.wpcf7-submit):hover::before {
        transform: translate(calc(-100% + -20px), -50%);
        transition: all .5s ease;
    }

    .wpcf7 form p:has(.wpcf7-submit):hover .submit-text {
        transform: translate(calc(-50% + 5px), -50%);
    }

    .wpcf7 input:hover,
    .wpcf7 textarea:hover,
    .wpcf7 select:hover,
    .wpcf7 input:focus,
    .wpcf7 textarea:focus,
    .wpcf7 select:focus {
        outline: 1px solid var(--black);
    }
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
    outline: 1px solid var(--black);
}

.wpcf7 form .wpcf7-submit:hover{
    background-color: var(--primary);
    transition: 300ms ease;
}

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

@media (width > 480px){
    .wpcf7 form {
        max-width: unset;
    }
}