/* Form CF7 */
form {
    --padding:2px;
    --border-size:2px;
    --gap-form:1rem;
    display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--gap-form);width:100%;max-width:50rem;align-items:center;justify-content:center;margin-inline:auto;position:relative;
    & h2 {
        flex-basis:100%;margin-bottom:0;text-align:center;text-transform:none;
        &::after {display:none;}
        & + p {flex-basis:100%;text-align:center!important;display:block;}
    }
    & > p {
        display:flex;flex-direction:row;flex-wrap:wrap;gap:0 var(--gap-form);max-width:80%!important;
    }
    & .flex {
        flex:0 0 calc(100%/3 - var(--gap-form));max-width:calc(100%/3 - var(--gap-form));
        & > p {
            display:flex;flex-direction:column;flex-wrap:wrap;gap:var(--gap-form);max-width:100%!important;
            & > * {flex:1 1 100%;}
        }
    }
    & [type=text], & [type=password], & [type=date], & [type=datetime], & [type=datetime-local], & [type=month], & [type=week], & [type=email], & [type=number], & [type=search], & [type=tel], & [type=time], & [type=url], & [type=color], & [type=file], & textarea, & select, & .login form .input {
        border:2px solid white;border-radius:var(--border-radius);background:var(--dark-blue);width:100%;padding:0 1rem;margin:0;height:auto;line-height:3;font-size:.9rem;color:white;box-shadow:none;max-height:100%;resize:none;
        &:focus {
            box-shadow:none;background:inherit;border:2px solid white;
            &:not(:placeholder-shown) {
                background:var(--dark-blue);color:white;
            }
            & + span:not(.wpcf7-list-item-label) {
                top:-.5rem!important;background:white;color:var(--dark-blue)!important;font-size:.8rem!important;line-height:1.6!important;padding-inline:1rem;opacity:1;
            }
        }
        & + span:not(.wpcf7-list-item-label) {position:absolute;top:0;line-height:3.1;font-size:.9rem;left:1rem;font-weight:normal;transition:var(--transition);color:white;opacity:1;border-radius:var(--border-radius);}
        &:not(:placeholder-shown) + span:not(.wpcf7-list-item-label) {
            top:-.5rem!important;background:white;color:var(--dark-blue)!important;font-size:.8rem!important;line-height:1.6!important;padding-inline:1rem;opacity:1;
        }
    }
    & textarea[rows] {height:7.7rem;}
    & [type=file] {
        &::file-selector-button {display:none;}
    }
    & .wpcf7-radio {
        position:relative;appearance:none;border-radius:var(--border-radius);border:var(--border-size) solid var(--color-primary);width:fit-content;margin:0 auto;text-align:center;line-height:1;transition:var(--transition);background:none;display:flex;padding:var(--padding);align-items:center;justify-content:center;padding:0;
        & > span {flex:1 0 auto;display:block;margin:0;}
        & label {
            margin-bottom:0;height:100%;
            & span {display:none;}
            & [type=radio] {
                appearance:none;margin:0;width:100%;height:100%;border-radius:var(--border-radius);display:block;cursor:pointer;white-space:nowrap;
                &::after {content:attr(value);border-radius:var(--border-radius);background:none;height:100%;transition:var(--transition);display:block;margin-left:0;text-align:center;line-height:2;text-transform:uppercase;padding-inline:2rem;}
                &:checked {
                    &::after {background:var(--color-primary);color:white;}
                }
            }
        }
    }
    & .wpcf7-acceptance {
        background:var(--dark-blue);display:flex;padding:1rem;border-radius:var(--border-radius);align-items:center;justify-content:center;margin-bottom:1rem;flex-basis:100%;
        & label {display:flex;align-items:center;gap:.5rem;margin-bottom:0;color:white;}
        & span.wpcf7-list-item-label {line-height:1.2;}
        & [type="checkbox"] {
            position:relative;appearance:none;border-radius:var(--border-radius);border:var(--border-size) solid var(--color-primary);width:3rem;aspect-ratio:3/2;margin:0;text-align:center;line-height:1;transition:var(--transition);background:var(--dark-blue);display:inline-block;padding:var(--padding);
            &::after {content:'';border-radius:50%;background:var(--color-primary);height:100%;aspect-ratio:1;transition:var(--transition);display:block;margin-left:0;}
            &:checked {
                background:var(--color-primary);
                &::after {background:white;margin-left:calc(50% - var(--border-size) - var(--padding));}
            }
        }
        & a:hover {color:white;text-decoration:underline;}
    }
    & input[type="submit"] {
        border:0;cursor:pointer;transition:var(--transition);border-radius:var(--border-radius);background:white;color:var(--dark-blue);font-size:1rem;text-transform:uppercase;padding-inline:3rem;line-height:2;margin-inline:auto;display:block;width:fit-content;
        &:hover {background:var(--light-blue);color:white;}
        &:disabled {cursor:not-allowed;opacity:.5;}
    }
    & ::placeholder {color:var(--dark-blue);}
    & label {
        position:relative;margin-bottom:1rem;flex-basis:calc(50% - .5rem);width:calc(50% - .5rem);
        &.fullwidth {flex-basis:100%;width:100%;}
        &.hide {display:none;}
    }
    &.invalid {
        & input.wpcf7-validates-as-required:placeholder-shown, & textarea.wpcf7-validates-as-required:placeholder-shown {border-color:red;}
    }
    &.submitting {
        pointer-events:none;
    }
    & .wpcf7-response-output {
        border:0!important;border-radius:var(--border-radius);background:var(--color-tertiary);padding:1rem 2rem!important;text-align:center;display:block;
    }
    & .wpcf7-spinner {
        background-color:var(--color-primary);width:2rem;height:2rem;border-radius:50%;position:absolute;top:calc(50% - 3rem);left:calc(50% - 3rem);
    }
}

@media screen and (max-width:640px) {
    form {
        & label {margin-bottom:.5rem;}
        & > p {max-width:90%!important;}
        & .wpcf7-acceptance {padding-inline:0;width:100%;text-align:left;}
        & .flex {
            flex:0 0 100%;max-width:100%;
            & p {margin-bottom:0!important;}
        }
        & [type=text], & [type=password], & [type=date], & [type=datetime], & [type=datetime-local], & [type=month], & [type=week], & [type=email], & [type=number], & [type=search], & [type=tel], & [type=time], & [type=url], & [type=color], & [type=file], & textarea, & select, & .login form .input {font-size:1rem;line-height:2.6;}
    }
}

/* End Form CF7 */