.user-login-form > *,
.user-pass > *,
.user-pass-reset > * {
    grid-column: 5 / span 4;
    width: 100%;
}

.user-pass-reset > * {
    grid-column: 1 / span 12;
    margin-bottom: 14px;
}

.user-register-form > * {
    grid-column: 3 / span 8;
}

.user-register-form,
.user-login-form,
.user-pass,
.user-pass-reset {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 0 40px;
    width: 100%;
    flex-direction: column;
    color: #1c1c1a;
    background: rgba(255,255,255,0.95);
    border-radius: 15px;
    -webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    padding: 20px;
    margin: 0 auto 40px;
    box-sizing: border-box;
    width: 100%;

    label {
        font-size: 18px;
        font-weight: 700;
        line-height: 24px;
        margin-bottom: 8px;
    }

    h3 {
        padding: 0 0 10px 0;
        border-bottom: 1px solid #2E2E2E;
        font-size: 20px;
        text-transform: uppercase;
        margin-bottom: 24px !important;
    }

    .field-group-div {
        align-items: flex-start;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        padding-top: 0;

        h3 {
            width: 100%;
        }

        div {
            margin-top: 0 !important;
        }
    }

    .form-wrapper {
        width: 100%;
    }

    .form-item-select-user-role {
        width: 100%;
    }

    .field--name-field-newsletter {
        padding-left: 0;
    }

    .group-user-info,
    .group-address,
    .group-about-user,
    .group-identifier {
        padding-left: 0;
        padding-right: 0;
    }

    .group-left-block,
    .group-right-block,
    .group-login,
    .group-about-user {
        padding-left: 0 !important;
    }

    .user-register-tof,
    #user-profile-form .form-actions.form-wrapper,
    #user-register-form .form-actions.form-wrapper,
    #user-register-form--2 .form-actions.form-wrapper #edit-simplenews,
    .field-group-div.group-user-info {
        width: 100%;
    }

    .form-required:after {
        color: #328734;
        content: "*";
        position: absolute;
    }

    .group-left-block,
    .group-login {
        padding-left: 0 !important;
    }

    .group-right-block,
    .group-about-user {
        padding-right: 0 !important;
    }

    .group-left-block,
    .group-right-block,
    .group-login,
    .group-about-user {
        width: 50%;
        box-sizing: border-box;
        padding: 20px 10px;
    }

    .js-form-type-checkbox {
        input {
            margin: 0;
            opacity: 0;
            padding: 0;
            position: absolute;
        }
        label {
            cursor: pointer;
            display: inline;
            font-weight: normal;
            margin: 0;
            padding: 0;
            position: relative;
        }

        input:checked + label:before {
            content: "\2713";
        }

        label:before {
            content: "\A0";
            cursor: pointer;
            background: #ebebeb;
            width: 20px;
            height: 20px;
            display: inline-block;
            margin: 0 10px 0 0;
            color: #000;
            font-weight: bold;
            text-align: center;
            border-radius: 5px;
            -webkit-border-radius: 5px;
            -moz-border-radius: 5px;
        }
    }

    summary {
        display: none;
    }

    input[type="number"] {
        -moz-appearance: textfield;
    }

    input[type="number"]::-webkit-outer-spin-button,
    input[type="number"]::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    input[type="text"],
    select,
    input[type="tel"],
    input[type="email"],
    input[type="number"],
    input[type="password"] {
        height: 36px;
        border: 1px solid #DCDDDE;
        background: #F6F7F8;
        border-radius: 5px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        width: 100%;
        padding: 0 0 0 10px;
        margin: 0 0 16px 0;
        box-sizing: border-box;
        outline: none;
        min-height: 48px;
        scroll-margin-top: 150px;
        &.error {
            border: 2px solid red;
        }
    }

    input[type="text"]::placeholder,
    select::placeholder,
    input[type="tel"]::placeholder,
    input[type="email"]::placeholder,
    input[type="number"]::placeholder,
    input[type="password"]::placeholder {
        color: #4F5051;
    }

    #edit-account {
        .js-form-type-email {
            display: block !important;
        }
    }

    .description {
        display: none;
    }

    .user-register-tof {
        margin: 15px auto;

        p:not(:last-of-type) {
            margin-bottom: 15px;
        }
    }

    .form-item-select-user-role {
        margin-bottom: 30px;
    }

    .password-strength {
        display: flex;
        flex-direction: column-reverse;
        margin-bottom: 20px;
    }

    .form-item--error-message {
        color: red;
        margin-top: -5px;
        margin-bottom: 30px;

        em {
            margin: 0 3px;
        }
    }

    .field--name-field-phone,
    .field--name-field-user-school {
        margin-bottom: 0 !important;
    }

    .form-item--error-message:before {
        display: none;
    }

    .required-fields.field-group-html-element.group-wrapper.field-group-div {
        flex-direction: row;
    }

    .description {
        margin-bottom: 10px;
    }
}

@media only screen and (max-width: 1023px) {
    .user-login-form > *,
    .user-pass > * {
        grid-column: 2 / span 10;
    }

    .user-register-form > *,
    .user-pass-reset > * {
        grid-column: 1 / span 12;
    }
}

@media only screen and (max-width: 767px) {
    .user-register-form,
    .user-login-form,
    .user-pass,
    .user-pass-reset {
        gap: 0 16px;
    }


    .user-register-form {
        .group-left-block,
        .group-right-block,
        .group-login,
        .group-about-user {
            padding: 10px;
            width: 100%;
        }

        .form-item-select-user-role {
            margin-bottom: 0;
        }
    }

    .user-login-form > *,
    .user-pass > *,
    .user-register-form > *,
    .user-pass-reset > * {
        grid-column: 1 / span 12;
    }

    .user-login-form,
    .user-pass,
    .user-register-form {
        h3 {
            margin-top: 20px;
        }
    }
}

.group-user-info,
.group-address,
.form-item-select-user-role,
#edit-language.form-wrapper,
.required-fields.field-group-html-element.group-wrapper.field-group-div {
    display: flex;
    flex-direction: column;
    margin: 0 auto 30px;
    position: relative;
    max-width: 82.5rem;

    h3 {
        padding: 0 0 10px 0;
        font-size: 20px;
        text-transform: uppercase;
        margin-bottom: 0;
    }

    input[type="text"],
    select,
    input[type="tel"],
    input[type="email"],
    input[type="number"],
    input[type="password"] {
        height: 36px;
        border: 1px solid #DCDDDE;
        background: #F6F7F8;
        border-radius: 5px;
        -webkit-border-radius: 5px;
        -moz-border-radius: 5px;
        width: 100%;
        padding: 0 0 0 10px;
        margin: 0 0 16px 0;
        box-sizing: border-box;
        outline: none;
        min-height: 48px;

        &.error {
             border: 2px solid red;
         }
    }

    input[type="text"]::placeholder,
    select::placeholder,
    input[type="tel"]::placeholder,
    input[type="email"]::placeholder,
    input[type="number"]::placeholder,
    input[type="password"]::placeholder {
        color: #4F5051;
    }
}

.group-address {
    div {
        font-weight: 700;
    }

    #field-user-address-0-address-ajax-wrapper{
        margin-top: 0 !important;
    }

    #edit-field-user-address-0-address-country-code {
        display: none !important;
    }
}

.group-address ~ div,
.group-address ~ a {
    display: block;
    width: 100%;
    margin-top: 20px;
    margin: 0 auto;
    position: relative;
    max-width: 82.5rem;
}

.group-address ~ div {
    font-weight: 700;
}

.group-address ~ a {
    font-weight: 400;
    margin-bottom: 30px;
}

.field--name-field-newsletter,
.field--name-field-status-confirmation {
    .form-item {
        display: flex !important;
        flex-wrap: nowrap;

        input {
            margin-right: 5px;
        }
    }
}

.user-register-form .form-required:after { content: '';}
