.form {
    .no-error {
        input {
            background: url("../images/icon-check.svg") no-repeat right center;
        }
    }
    .has-error {
        input {
            color: #d95353;
            border-bottom-color: #d95353;
            /* active state */
            &:focus~label,
            &:valid~label {
                bottom: 54px;
                font-size: 13px;
            }
        }
        .form__input__button,
        label {
            bottom: 35px;
        }
        .error-msg {
            display: block;
            opacity: 0.8;
            text-align: right;
            color: #d95353;
            font-size: 12px;
            line-height: 19px;
            font-weight: 600;
            letter-spacing: 0.18px;
        }
    }
    &__title {
        padding-top: 30px;
        color: #50575c;
        font-size: 28px;
        font-weight: 400;
        text-align: center;
        letter-spacing: 0.35px;
        line-height: 38px;
    }
    &__description {
        opacity: 0.7;
        color: #50575c;
        text-align: center;
        font-size: 12px;
        font-weight: 700;
        line-height: 15px;
        text-transform: uppercase;
        margin: 14px 0 64px;
        letter-spacing: 1px;
        a {
            color: $main-blue;
            text-decoration: none;
        }
    }
    &__input {
        position: relative;
        margin-bottom: 40px;
        &__main-title {
            color: #50575c;
            text-align: left;
            margin: 0 0 24px 0;
            font-size: 18px;
            line-height: 24px;
            font-weight: 500;
            letter-spacing: 0.23px;
        }
        /* BOTTOM BARS ================================= */
        &__bar {
            position: relative;
            display: block;
            width: 100%;
            &:after,
            &:before {
                content: '';
                height: 2px;
                width: 0;
                bottom: 0;
                position: absolute;
                background: $main-blue;
                transition: 0.2s ease all;
                -moz-transition: 0.2s ease all;
                -webkit-transition: 0.2s ease all;
            }
            &:before {
                left: 50%;
            }
            &:after {
                right: 50%;
            }
        }
        &__button {
            position: absolute;
            right: 0;
            bottom: 16px;
            text-align: center;
            cursor: pointer;
            &--small {
                width: 135px;
                height: 24px;
                border-radius: 15px;
                line-height: 24px;
                font-size: 13px;
                letter-spacing: 0.3px;
            }
            &--gray {
                background-color: #dfdfdf;
                color: #50575c;
            }
            &--white {
                border: 1px solid #c9c9c9;
                color: #777777;
            }
        }
        /* LABEL ======================================= */
        label {
            color: #a2a2a2;
            font-size: 15px;
            font-weight: 600;
            position: absolute;
            pointer-events: none;
            left: 0;
            bottom: 14px;
            transition: 0.2s ease all;
            -moz-transition: 0.2s ease all;
            -webkit-transition: 0.2s ease all;
        }
        /* INPUT ======================================= */
        input {
            font-size: 15px;
            padding: 10px 10px 15px 0;
            display: block;
            width: 100%;
            border: none;
            border-bottom: 2px solid #ddd;
            color: $main-blue;
            &:focus {
                outline: none;
            }
            /* active state */
            &:focus~label,
            &:valid~label {
                bottom: 45px;
                font-size: 13px;
            }
            &:focus~.form__input__bar:after,
            &:focus~.form__input__bar:before {
                width: 50%;
            }
        }
        &--not-required {
            input {
                &:valid~label {
                    bottom: 12px;
                }
                &:focus~label {
                    bottom: 45px;
                    font-size: 13px;
                }
            }
        }
    }
    &__hint {
        display: flex;
        justify-content: left;
        align-items: center;
        margin-top: 20px;
        margin-bottom: 40px;
        padding-left: 1px;
        &__image {
            height: 28px;
            width: 36px;
            background: url("../images/icon-info.svg") no-repeat left;
            background-size: 24px;
        }
        &__description {
            color: #50575c;
            opacity: 0.8;
            font-size: 12px;
            font-weight: 600;
            line-height: 14px;
            max-width: 600px;
        }
    }
    &__submit {
        &--login {
            padding: 53px 0;
        }
        &--register {
            padding: 0 0 53px;
        }
    }
}

.form .has-error input:focus~label,
.form .has-error input:valid~label {
    bottom: 64px !important;
    font-size: 13px;
}

.user-form {
    margin-top: 45px;
    margin-bottom: 16px;
}

.user-form .has-error input:focus~label,
.user-form2 .has-error input:valid~label {
    bottom: 65px;
}