body {
    overflow-y: scroll;
}

body::after {
    content: "4.4.0";
    position: fixed;
    bottom: 10px;
    right: 12px;
    color: #a8a8a8;
    font-size: 0.9em;
}

* {
    transition-duration: 0.5s;
}


/*
###############################################
################### GENERAL ###################
###############################################
 */

.form-instruction {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
    color: #004687;
    font-size: 1.1em;
    width: 95%;
}

.form-input-field-wrapper {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
    min-width: 427px;
}

.form-input-field {
    height: 2.5em;
    width: 100%;
    border-radius: 5px;
    border: none;
    padding-left: 2.5%;
    padding-right: 2.5%;
    font-size: 1.1em;
    outline: none;
    color: #004687;
    box-sizing: border-box;
}

.form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
    justify-content: flex-start;
    align-items: center;
    margin-top: 1.8em;
}

.form-option {
    margin-top: 0.8em;
    margin-bottom: 0.8em;
}

.form-button-primary {
    background-color: #ffe45a;
    color: #00468d;
    font-weight: 530;
    border-radius: 12px;
    padding: 10px 20px;
    text-align: center;
    border: none;
    font-size: 16px;
    cursor: pointer;
}





/*
################################################
################### TEMPLATE ###################
################################################
 */

.template {
    margin: 0 0 0 0;
}

.template-container {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: stretch;
    align-content: stretch;
}

/* HEADER */
.header {
    display: block;
    max-height: 395px;
    flex: 0 0 clamp(260px, 37vh, 395px);
    align-self: auto;
    background-image: url("../img/background-header.jpg");
    background-size: cover;
    background-position-x: right;
    background-position-y: center;
    position: relative;
}

/* HEADER - LOGO */
.header-logo {
    position: absolute;
    top: 1.6em;
    left: 3.5em;
    display: flex;
}

.header-logo-link {
    display: inline-block;
}

.header-logo-link-image {
    background-image: url("../img/logo.png");
    background-size: 100%;
    background-repeat: no-repeat;
    height: 2.5em;
    width: 11em;
}

/* HEADER - LOCALE */
.header-locale {
    display: inline-block;
    margin-top: 0.5em;
    z-index: 1;
}

.header-locale-dropdown {
    width: 3em;
    display: flex;
    align-items: center;
    flex-direction: column;
}

.header-locale-dropdown ul {
    display: none;
}

.header-locale-dropdown:hover ul {
    display: flex;
}

.header-locale-dropdown-selected {
    text-decoration: none;
    font-weight: bold;
    color: #082136;
    margin-bottom: 0.4em;
}

.header-locale-dropdown-list {
    background-color: white;
    list-style-type: none;
    padding-left: 0;
    padding-top: 0.6em;
    padding-bottom: 0.6em;
    width: 3em;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 0;
    margin-bottom: 0;
    border-radius: 5px;
}

.header-locale-dropdown-item {}

.header-locale-dropdown-item a {
    text-decoration: none;
    font-weight: bold;
    color: #082136;
}

.header-locale-dropdown-item:hover a {
    color: #86b9df;
}

/* HEADER - TITLE */
.header-title {
    position: absolute;
    left: 3.5em;
    top: 43.5%;
}

.header-title-first {
    font-size: 3em;
    font-weight: 530;
    color: #082136;
}

.header-title-second {
    font-size: 16px;
    color: #082136;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
}


.header-title-second::before {
    content: "";
    display: inline-block;
    width: 40px;
    height: 4px;
    background-color: #082136;
    margin-right: 16px;
    vertical-align: middle;
}


/* FORM */
.content {
    display: block;
    flex: 1 1 auto;
    padding: 6em 6em 4em;
}

.content-container {
    background-color: white;
    display: flex;
    align-items: center;
}

/* for login */
.content-form {
    margin-left: 15%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: #ecf4fb; 
    width: 100%;
    max-width: 660px;
    padding: 20px;
    border-radius: 10px;
    box-sizing: border-box;
}

.content-space {
    margin-left: 22%;
}

.content-form a {
/*    text-decoration: underline;*/
}

/* FORM - TITLE */
.content-title {
    font-size: 20px;
    font-weight: 530;
    line-height: 24px;
    color: #00468d;
    padding: 10px 24px;
    font-family: "TheSans", Arial, sans-serif;
}


.content-title--info {
    color: #004687;
    font-weight: bold;
    font-size: 1.4em;
    display: inline-block;
}

/* FORM - MESSAGES */
.content-feedback {
    margin-top: 1.5em;
    margin-bottom: 1.5em;
}

.content-feedback-alert {
    border-radius: 5px;
    display: flex;
    align-items: center;
    padding-top: 0;
    padding-bottom: 0;
    padding-left: 0;
}

.content-feedback-alert-success {
    font-size: 1.1em;
    color: #004687;
}
.content-feedback-alert-error {
    font-size: 1.1em;
    color: #c40c1e;
}
.content-feedback-alert-warning {
    font-size: 1.1em;
    color: #004687;
}
.content-feedback-alert-info {
    font-size: 1.1em;
    color: #004687;
}

/* LINKS */
.footer {
    display: flex;
    flex: 0 0 4em;
    align-items: center;
    background-color: white;
    padding: 0.3em 6em 0;
}

.footer-container {
    background-color: #c4def2;
    width: 100%;
    border-radius: 20px;
    padding: 1.5em 2em;
    box-sizing: border-box;
}

.footer-links {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    width: 100%;
}

/* LINKS - LINK */
.footer-link {
    text-decoration: none;
    color: #082136;
    font-size: 16px;
    font-weight: 500;
    margin: 0 0.5em;
}


/* Nur der erste Link bleibt links */
.footer-link:first-child {
    margin-right: auto;
}


/* Die restlichen drei rücken nach rechts */
.footer-link:nth-child(2),
.footer-link:nth-child(3),
.footer-link:nth-child(4) {
    margin-left: 0;
}


.footer-link:hover {
    text-decoration: underline;
}





/*
###############################################
#################### LOGIN ####################
###############################################
 */

.nm-login-form-options-label {
    font-size: 1.1em;
    color: #004687;
    user-select: none;
}

.nm-login-form-options-input {}



/* CUSTOM CHECKBOX */
.nm-login-form-options-checkbox-container {
    display: block;
    position: relative;
    padding-left: 1.5em;
    cursor: pointer;
    font-size: 1.1em;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.nm-login-form-options-checkbox-container input {
    position: absolute;
    opacity: 0;
    display: none;
    cursor: pointer;
}

.nm-login-form-options-checkbox-container:hover input ~ .nm-login-form-options-checkbox-checkmark {
    background-color: #fff;
}

.nm-login-form-options-checkbox-container input:checked ~ .nm-login-form-options-checkbox-checkmark {
    background-color: #fff;
}

.nm-login-form-options-checkbox-container input:checked ~ .nm-login-form-options-checkbox-checkmark:after {
    display: block;
}

.nm-login-form-options-checkbox-container .nm-login-form-options-checkbox-checkmark:after {
    left: 6px;
    top: 2px;
    width: 5px;
    height: 10px;
    border: solid #004687;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg);
}

.nm-login-form-options-checkbox-input {

}

.nm-login-form-options-checkbox-checkmark {
    position: absolute;
    top: 0.1em;
    left: 0;
    height: 1em;
    width: 1em;
    background-color: #fff;
    border-radius: 5px;
}

.nm-login-form-options-checkbox-checkmark:after {
    content: "";
    position: absolute;
    display: none;
}
/* CUSTOM CHECKBOX END*/



.nm-login-form-options-reset {
    position: relative;
}

.nm-login-form-options-link {
    background-color: #00468d;
    color: #fcfdfe;
    font-weight: 530;
    border-radius: 12px;
    padding: 10px 20px;
    text-align: center;
    text-decoration: none;
    font-size: 16px;
    display: inline-block;
}

.nm-login-form-options-link:hover {
/*    text-decoration: underline;*/
}


.form-button-primary:hover,
.nm-login-form-options-link:hover {
    opacity: 0.9;
}




/*
###############################################
#################### RESET ####################
###############################################
 */

.nm-reset-form-actions-back-wrapper {}

.nm-reset-form-actions-back-span {}

.nm-reset-form-actions-back-link {
    text-decoration: none;
    font-size: 1.1em;
    color: #004687;
    user-select: none;
}

.nm-reset-form-actions-back-link:hover {
    text-decoration: underline;
}

/* ---------------------------------------------
   Password-Checker: Basis-Layout
   --------------------------------------------- */
#password-check-list {
  list-style: none;
  margin: 1em 0;
  padding: 0;
  font-size: 0.95em;
}
#password-check-list li {
  margin: 0.4em 0;
  display: flex;
  align-items: center;
}

/* ---------------------------------------------
   Icons per CSS-Pseudoelement
   --------------------------------------------- */
#password-check-list li::before {
  display: inline-block;
  width: 1.2em;
  text-align: center;
  margin-right: 0.4em;
}
#password-check-list li.invalid::before {
  content: "❌";
  color: #c40c1e;
}
#password-check-list li.valid::before {
  content: "✅";
  color: #228B22;
}

/* ---------------------------------------------
   Farben
   --------------------------------------------- */
#password-check-list li.invalid {
  color: #c40c1e;
}
#password-check-list li.valid {
  color: #228B22;
}

/* ---------------------------------------------
   Success-Message
   --------------------------------------------- */
#password-success-message {
  position: relative;
  padding-left: 1.6em; 
  display: none;
  margin-top: 0.8em;
  color: #228B22;
  font-weight: bold;
}
#password-success-message::before {
  content: "✅";
  position: absolute;
  left: 0;
  top: 0;
  line-height: 1;
  font-size: 1em;
}

/* ---------------------------------------------
   Responsive
   --------------------------------------------- */
@media (max-width: 600px) {
  #password-check-list,
  #password-success-message {
    font-size: 0.9em;
  }
}




/*
################################################
#################### UPDATE ####################
################################################
 */





/*
################################################
################# VERIFY EMAIL #################
################################################
 */

.nm-verify-email-link {
    text-decoration: underline;
    color: #004687;
    user-select: none;
}

.nm-verify-email-link:hover {
    text-decoration: underline;
}



/*
###############################################
#################### ERROR ####################
###############################################
 */

.nm-error-title {
    color: #004687;
    font-weight: bold;
    font-size: 5em;
    display: inline-block;
}

.nm-error-message {
    color: #004687;
    font-weight: bold;
    font-size: 3em;
    display: inline-block;
}

.nm-error-back {
    text-decoration: none;
    font-size: 1.1em;
    color: #004687;
    user-select: none;
}

.nm-error-back:hover {
    text-decoration: underline;
}





/*
##############################################
#################### INFO ####################
##############################################
 */

.nm-info-form-instruction {
    margin-top: 1.5em;
    color: #004687;
    font-size: 1.1em;
}

.nm-info-form-link {
    text-decoration: none;
    font-size: 1.1em;
    color: #004687;
    user-select: none;
}

.nm-info-form-link:hover {
    text-decoration: underline;
}





/*
###############################################
#################### MEDIA ####################
###############################################
 */

@media (max-width: 1300px) {
    .header {
        flex: 0 0 clamp(205px, 33vw, 32vh);
        background-position-x: right 40%;
    }

    .header-title {
        left: 10%;
    }

    .header-title-first {
        font-size: 2.5em;
    }

    .header-title-second {
        color: #333;
        font-size: 2em;
    }

    .header-logo {
        position: absolute;
        left: 10%;
    }

    .footer {
        padding-left: 2.1rem;
        padding-right: 2.1rem;
    }
}

@media (max-width: 800px) {
    .header {
        background-position-x: left;
    }

    .nm-login-header-title {
        display: none;
    }

    .footer-container {
        width: 100%;
        margin-left: 0;
    }

    .footer-links {
        justify-content: space-around;
    }

    .content {
        padding: 0;
    }

    .content-form {
        width: 560px;
        margin-left: 0;
        border-radius: 0;
        background-color: transparent;
    }

    .form-input-field {
        border: 1px solid #86b9df;
    }

    .content-space {
        margin-left: 10%;
    }

    .nm-error-title {
        font-size: 3em;
    }

    .nm-error-message {
        font-size: 2em;
    }
}

@media (max-width: 600px) {
    .header {
        flex: 0 0 clamp(160px, 33vw, 32vh);
    }

    .nm-login-header-locale {
        margin-top: 0.3em;
    }

    .header-title, .header-logo {
        left: 2.1rem;
    }

    .header-title-first {
        font-size: 1.8em;
    }

    .header-title-second {
        font-size: 1.2em;
        font-weight: normal;
    }

    .header-logo-link-image {
        height: 30px;
        width: 130px;
    }

    .header-locale {
        margin-top: 0.25em;
    }

    .nm-login-form-icon {
        display: none;
    }

    .nm-login-form-content {
        padding-left: 1.0em;
        padding-right: 1.0em;
    }

    .nm-login-links-wrapper {
        flex-direction: column;
    }

    .footer-link {
        margin-bottom: 0.5em;
    }

    .nm-error-title {
        font-size: 2em;
    }

    .nm-error-message {
        font-size: 1.5em;
    }

    .content-title {
        font-size: 1.8em;
    }
}

@font-face {
    font-family: "TheSans";
    src: url("../fonts/TheSansC4s.woff2") format("woff2");
    font-weight: normal;
    font-style: normal;
}

html * {
    font-family: TheSans, Arial, sans-serif;
}
