.landing {
    background-attachment: fixed;
    background-position: right center;
    background-repeat: no-repeat;
    background-size: contain;

    overflow: auto;
    padding-right: 45%;

    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
}

.landing--login {
    background-image: url(/img/sign-in.png);
}

.landing--reset-password {
    background-image: url(/img/reset-password.png);
}

.landing--sign-up {
    background-image: url(/img/sign-up.png);
}

.landing > * {
    flex-shrink: 0;
    margin: 0 auto;
    width: 50%;
}

.landing header {
    padding: 5rem 0;
}

.landing--sign-up header {
    padding-bottom: 0;
}

.landing header img {
    max-height: 100%;
    max-width: 100%;
}

.landing main {
    background-color: #fff;
    flex-grow: 1;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.landing main .container {
    max-width: 80%;
}

.landing__form a {
    color: #cd98c3;
}

.landing__form .form__caption--important {
    font-weight: bold;
}

.landing__form .btn-primary,
.landing__form .btn-primary:focus,
.landing__form .btn-primary:active:hover,
.landing__form .btn-primary.disabled:hover,
.landing__form .btn-primary[disabled]:hover {
    background-color: #65d4fb;
    border-color: #65d4fb;
    outline-color: #65d4fb;
}

.landing__form .btn,
.landing__form .form-control {
    border-radius: 0;
    height: auto;
    padding: .75em 1.25em;
}

.landing__form .btn[type="submit"]::after {
    content: '\27F6';
    float: right;
    font-size: 1.25em;
    font-weight: bold;
    height: 1em;
    margin-top: -.125em;
}

.landing__form .form__footer {
    margin-top: 8em;
    text-align: center;
}

.landing__form .form__captcha {
    min-height: 93px;
}
.landing__form .form__captcha .g-recaptcha > * {
    margin: 0 auto;
}

.landing--sign-up .landing__form .form__footer {
    margin-top: 1em;
}

.landing--sign-up .form-group.required .control-label::after {
    content: '*';
    color: #fd3038;
    font-weight: bold;
    margin-left: .25em;
}

.landing__form .form__captcha--sign-up .help-block:not(.help-block-error) {
    float: right;
    margin-bottom: 5px;
    margin-top: 0;
}
.landing__form .form__captcha--sign-up .help-block:not(.help-block-error)::after {
    content: '';
    clear: both;
    display: block;
}

.landing__form .form__captcha--sign-up .form__captcha-refresh {
    display: block;
}
.landing__form .form__captcha--sign-up .form__captcha-refresh.disabled {
    text-decoration: none;
}
.landing__form .form__captcha--sign-up .form__captcha-refresh.loading::after {
    content: '';
    display: block;
    height: 3px;
    width: 100%;
    animation: refreshing .5s infinite;
}
@keyframes refreshing {
    0% {
        background-image: linear-gradient(90deg, #fff 0, #00f 0, #00f 40%, #fff 40%);
    }
    12.5% {
        background-image: linear-gradient(90deg, #fff 15%, #00f 15%, #00f 55%, #fff 55%);
    }
    25% {
        background-image: linear-gradient(90deg, #fff 30%, #00f 30%, #00f 70%, #fff 70%);
    }
    37.5% {
        background-image: linear-gradient(90deg, #fff 45%, #00f 45%, #00f 85%, #fff 85%);
    }
    50% {
        background-image: linear-gradient(90deg, #fff 60%, #00f 60%, #00f 100%, #fff 100%);
    }
    62.5% {
        background-image: linear-gradient(90deg, #fff 45%, #00f 45%, #00f 85%, #fff 85%);
    }
    75% {
        background-image: linear-gradient(90deg, #fff 30%, #00f 30%, #00f 70%, #fff 70%);
    }
    87.5% {
        background-image: linear-gradient(90deg, #fff 15%, #00f 15%, #00f 55%, #fff 55%);
    }
    100% {
        background-image: linear-gradient(90deg, #fff 0, #00f 0, #00f 40%, #fff 40%);
    }
}

.landing__form .form__captcha--sign-up .form__captcha-image {
    text-align: center;
}
.landing__form .form__captcha--sign-up .form__captcha-image img {
    max-width: 100%;
}
