@import url(https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css);

form {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 100vw;
    box-sizing: border-box;
}
form div {
    display: flex;
}
.genders {
    flex-direction: column;
    align-items: left;
}
textarea, 
input:not(
    [type="submit"],
    [type="radio"]) {
    width: 30%;
    min-width: 15rem;
}
textarea {
    width: 60%;
    min-height: 25vh;
}
label:not(:has(input)) {
    min-width: 20%;
    padding-right: .5rem;
    text-align: end;
}
.submit input {
    margin-left: calc(20% + .5rem);
    padding: .5rem;
}

@media (max-width: 720px) {
    label:not(:has(input)) {
        text-align: start;
    }
}
@media (max-width: 480px) {
    textarea,
    input:not([type="radio"]) {
        max-width: calc(100% - .5rem);
        width: 100%;
    }
    form div {
        flex-direction: column;
    }
    .submit input {
        max-width: 100%;
        margin: 0;
        height: 2rem;
    }
}