.form {
    flex: 1;
    margin-bottom: 2rem;
}

.form__fieldset {
    margin: 0;
    padding: 0;
    border: none;
}

.form__fieldset-toggle {
    display: inline-block;
    cursor: pointer;
    margin: .5rem 0;
}

.form__fieldset--hidden {
    display: none;
}

.form__field {
    display: flex;
    flex-direction: column;
    margin-bottom: 2.2rem;
}

.form__field label {
    margin-bottom: .2rem;
}

.form__field--hidden {
    display: none;
}

.form__field-title {
    margin-bottom: .5rem;
    font-size: 1.1rem;
    font-weight: 800;
}

.form__field-description {
    margin-bottom: .5rem;
    font-weight: 200;
}

.form__field-error {
    margin-top: .5rem;
    color: #f00;
    font-weight: 400;
}

.form__sub-fields {
    display: flex;
    margin: .5rem 0;
}

.form__sub-fields__item {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    margin-right: .5rem;
}

.form__radio {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.form__radio + .form__radio {
    margin-top: .5rem;
}

.form__submit {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.form__submit--horizontal {
    flex-direction: row;
    justify-content: flex-end;
}

.form__end {
    display: flex;
    justify-content: center;
}

.form__submit-button {
    flex: 0 0 auto;
    margin-bottom: 1rem;
}

.form__submit-button:disabled {
    background: #888;
    cursor: not-allowed;
}

@media(min-width: 600px) {
    .form__submit {
        align-items: flex-end;
    }

    .form__submit--horizontal {
        align-items: center;
    }

    .form {
        margin-bottom: 50px;
    }
}
