:root{
    --salus-red:#e30613;
    --salus-red-dark:#c9000c;
    --salus-ink:#171717;
    --salus-muted:#73767a;
    --salus-line:#ececec;
    --salus-soft:#f6f6f6;
    --salus-white:#ffffff;
    --salus-footer:#111214;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:var(--salus-white);
    color:var(--salus-ink);
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

a{
    color:inherit;
}

.salus-page{
    min-height:48vh;
}

/* Header */
.salus-site-header{
    position:relative;
    z-index:100;
    background:rgba(255,255,255,.96);
    border-bottom:1px solid var(--salus-line);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
}

.salus-site-header .navbar{
    min-height:104px;
    padding:0;
}

.salus-site-header .container{
    gap:1.5rem;
}

.salus-brand{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    padding:0;
    text-decoration:none;
}

.salus-logo{
    display:block;
    width:310px;
    max-width:31vw;
    height:82px;
    object-fit:contain;
}

.salus-logo-fallback{
    display:none;
    flex-direction:column;
    color:var(--salus-red);
    line-height:1;
}

.salus-logo-fallback strong{
    font-size:2rem;
    font-weight:650;
    letter-spacing:.34em;
}

.salus-logo-fallback small{
    margin-top:.45rem;
    padding-left:.1rem;
    color:var(--salus-red);
    font-size:.58rem;
    font-weight:650;
    letter-spacing:.31em;
    text-transform:uppercase;
}

/* CMS V2 Hauptnavigation */
.salus-site-header .cms-v2-main-menu{
    align-items:center;
    gap:.08rem;
    margin-left:auto;
}

.salus-site-header .cms-v2-nav-item{
    position:relative;
}

.salus-site-header .cms-v2-nav-link{
    position:relative;
    padding:.82rem .7rem !important;
    color:#303236;
    font-size:.88rem;
    font-weight:580;
    letter-spacing:.01em;
    text-decoration:none;
    transition:color .18s ease;
}

.salus-site-header .cms-v2-nav-link::after{
    content:"";
    position:absolute;
    left:.7rem;
    right:.7rem;
    bottom:.5rem;
    height:1.5px;
    background:var(--salus-red);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .18s ease;
}

.salus-site-header .cms-v2-nav-link:hover,
.salus-site-header .cms-v2-nav-link:focus,
.salus-site-header .cms-v2-nav-item.cms-v2-active>.cms-v2-nav-link{
    color:var(--salus-red);
}

.salus-site-header .cms-v2-nav-link:hover::after,
.salus-site-header .cms-v2-nav-link:focus::after,
.salus-site-header .cms-v2-nav-item.cms-v2-active>.cms-v2-nav-link::after{
    transform:scaleX(1);
}

.salus-site-header .cms-v2-nav-style-outline,
.salus-site-header .cms-v2-nav-style-primary{
    margin-left:.38rem;
    padding:.62rem .88rem !important;
    border:1px solid var(--salus-red);
    border-radius:10px;
    line-height:1.15;
    transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}

.salus-site-header .cms-v2-nav-style-outline::after,
.salus-site-header .cms-v2-nav-style-primary::after{
    display:none;
}

.salus-site-header .cms-v2-nav-style-outline{
    background:#fff;
    color:var(--salus-red);
}

.salus-site-header .cms-v2-nav-style-outline:hover,
.salus-site-header .cms-v2-nav-style-outline:focus{
    background:rgba(227,6,19,.06);
    color:var(--salus-red);
}

.salus-site-header .cms-v2-nav-style-primary{
    background:var(--salus-red);
    color:#fff;
}

.salus-site-header .cms-v2-nav-style-primary:hover,
.salus-site-header .cms-v2-nav-style-primary:focus,
.salus-site-header .cms-v2-nav-item.cms-v2-active>.cms-v2-nav-style-primary{
    background:var(--salus-red-dark);
    border-color:var(--salus-red-dark);
    color:#fff;
}

.salus-site-header .cms-v2-auth-logout-form{
    margin:0;
}

.salus-site-header .cms-v2-auth-logout-button{
    width:100%;
    border:0;
    background:transparent;
    cursor:pointer;
    color:#74777b;
}

.salus-site-header .cms-v2-auth-logout-button:hover,
.salus-site-header .cms-v2-auth-logout-button:focus{
    color:var(--salus-red);
}

.salus-site-header .cms-v2-submenu{
    position:absolute;
    top:calc(100% - .1rem);
    left:.45rem;
    z-index:120;
    min-width:220px;
    margin:0;
    padding:.55rem;
    list-style:none;
    background:#fff;
    border:1px solid var(--salus-line);
    border-radius:14px;
    box-shadow:0 18px 44px rgba(0,0,0,.09);
    opacity:0;
    visibility:hidden;
    transform:translateY(7px);
    transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}

.salus-site-header .cms-v2-has-submenu:hover>.cms-v2-submenu,
.salus-site-header .cms-v2-has-submenu:focus-within>.cms-v2-submenu{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}

.salus-site-header .cms-v2-submenu-link{
    display:block;
    padding:.68rem .78rem;
    border-radius:9px;
    color:#33363a;
    font-size:.85rem;
    font-weight:520;
    text-decoration:none;
    transition:background .16s ease,color .16s ease;
}

.salus-site-header .cms-v2-submenu-link:hover,
.salus-site-header .cms-v2-submenu-link:focus,
.salus-site-header .cms-v2-submenu-link.cms-v2-active{
    background:var(--salus-soft);
    color:var(--salus-red);
}

.salus-toggler{
    width:46px;
    height:46px;
    padding:0;
    border:1px solid var(--salus-line);
    border-radius:50%;
    box-shadow:none !important;
}

.salus-toggler span{
    display:block;
    width:18px;
    height:1.5px;
    margin:5px auto;
    background:var(--salus-ink);
    transition:transform .2s ease;
}

/* Globaler CMS-Footer-Content bleibt unabhängig vom Menüsystem */
.salus-cms-footer-content:empty{
    display:none;
}

/* Footer */
.salus-footer{
    margin-top:5rem;
    background:var(--salus-footer);
    color:#fff;
}

.salus-footer-main{
    display:grid;
    grid-template-columns:minmax(220px,.8fr) 2.2fr;
    gap:5rem;
    padding:4.6rem 0 3.6rem;
}

.salus-footer-brand{
    max-width:310px;
}

.salus-footer-wordmark{
    color:var(--salus-red);
    font-size:1.85rem;
    font-weight:650;
    letter-spacing:.34em;
    line-height:1;
}

.salus-footer-subline{
    margin-top:.55rem;
    color:#fff;
    font-size:.64rem;
    font-weight:600;
    letter-spacing:.29em;
    text-transform:uppercase;
}

.salus-footer-brand p{
    margin:1.5rem 0 .8rem;
    color:#9b9da0;
    font-size:.9rem;
}

.salus-footer-mail{
    color:#b8babd;
    font-size:.82rem;
    text-decoration:none;
    transition:color .18s ease;
}

.salus-footer-mail:hover,
.salus-footer-mail:focus{
    color:#fff;
}

.salus-footer-navigation{
    min-width:0;
}

.salus-footer .cms-v2-footer-navigation{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:2.5rem;
}

.salus-footer .cms-v2-footer-group{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}

.salus-footer .cms-v2-footer-group-title{
    margin-bottom:1rem;
    color:#777a7e;
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.16em;
    text-transform:uppercase;
}

.salus-footer .cms-v2-footer-group-links{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:.72rem;
}

.salus-footer .cms-v2-footer-group-links a{
    color:#e7e7e7;
    font-size:.88rem;
    text-decoration:none;
    transition:color .18s ease;
}

.salus-footer .cms-v2-footer-group-links a:hover,
.salus-footer .cms-v2-footer-group-links a:focus{
    color:var(--salus-red);
}

.salus-footer-bottom{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:2rem;
    padding:1.4rem 0 1.8rem;
    border-top:1px solid rgba(255,255,255,.09);
    color:#777a7e;
    font-size:.76rem;
}

.salus-footer .cms-v2-footer-menu{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:.35rem 1.2rem;
}

.salus-footer .cms-v2-footer-menu a{
    color:#9a9da0;
    text-decoration:none;
    transition:color .18s ease;
}

.salus-footer .cms-v2-footer-menu a:hover,
.salus-footer .cms-v2-footer-menu a:focus{
    color:#fff;
}

@media (max-width:1199.98px){
    .salus-site-header .navbar{
        min-height:88px;
        padding:.7rem 0;
    }

    .salus-logo{
        width:260px;
        max-width:58vw;
        height:64px;
    }

    .salus-site-header .navbar-collapse{
        padding:1rem 0 .45rem;
    }

    .salus-site-header .cms-v2-main-menu{
        align-items:stretch;
        padding:.35rem 0 .4rem;
        margin-left:0;
    }

    .salus-site-header .cms-v2-nav-link{
        padding:.66rem 0 !important;
        font-size:1rem;
    }

    .salus-site-header .cms-v2-nav-style-outline,
    .salus-site-header .cms-v2-nav-style-primary{
        width:100%;
        margin:.25rem 0;
        padding:.72rem .9rem !important;
        text-align:center;
    }

    .salus-site-header .cms-v2-auth-logout-button{
        text-align:left;
    }

    .salus-site-header .cms-v2-nav-link::after{
        display:none;
    }

    .salus-site-header .cms-v2-submenu{
        position:static;
        min-width:0;
        margin:0;
        padding:.05rem 0 .55rem .85rem;
        border:0;
        border-radius:0;
        box-shadow:none;
        opacity:1;
        visibility:visible;
        transform:none;
        transition:none;
    }

    .salus-site-header .cms-v2-submenu-link{
        padding:.5rem .65rem;
        font-size:.91rem;
    }
}

@media (max-width:767.98px){
    .salus-logo{
        width:220px;
        max-width:62vw;
        height:58px;
    }

    .salus-footer{
        margin-top:3.5rem;
    }

    .salus-footer-main{
        grid-template-columns:1fr;
        gap:2.8rem;
        padding:3.5rem 0 2.8rem;
    }

    .salus-footer .cms-v2-footer-navigation{
        grid-template-columns:1fr 1fr;
        gap:2.2rem 1.5rem;
    }

    .salus-footer-bottom{
        align-items:flex-start;
        flex-direction:column;
        gap:.8rem;
    }

    .salus-footer .cms-v2-footer-menu{
        justify-content:flex-start;
    }
}

@media (max-width:479.98px){
    .salus-logo{
        width:190px;
    }

    .salus-footer .cms-v2-footer-navigation{
        grid-template-columns:1fr;
    }
}


/* Salus Portal */
.salus-auth-section{padding:4.5rem 0 5.5rem;background:#f5f7f8}
.salus-auth-card{max-width:680px;margin:0 auto;padding:2rem;border:1px solid rgba(16,24,32,.08);border-radius:20px;background:#fff;box-shadow:0 18px 55px rgba(16,24,32,.08)}
.salus-auth-card-wide{max-width:900px}
.salus-auth-eyebrow{margin-bottom:.65rem;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#68737d}
.salus-auth-secondary{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(16,24,32,.08);color:#68737d}
.salus-auth-secondary a{font-weight:600;color:#101820}
.salus-code-input{max-width:240px;letter-spacing:.35em;text-align:center;font-weight:700}
.salus-portal-info{height:100%;padding:1.1rem 1.25rem;border:1px solid rgba(16,24,32,.08);border-radius:14px;background:#fafbfb}
.salus-portal-info span{display:block;margin-bottom:.25rem;font-size:.8rem;color:#68737d}
.salus-portal-info strong{display:block;overflow-wrap:anywhere}

.salus-learning-categories{
    display:flex;
    flex-direction:column;
    gap:.9rem;
}

.salus-learning-category{
    overflow:hidden;
    border:1px solid rgba(16,24,32,.09);
    border-radius:16px;
    background:#fff;
    transition:border-color .18s ease,box-shadow .18s ease;
}

.salus-learning-category.is-open{
    border-color:rgba(227,6,19,.18);
    box-shadow:0 12px 30px rgba(16,24,32,.055);
}

.salus-learning-category-toggle{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.25rem;
    width:100%;
    padding:1.15rem 1.25rem;
    border:0;
    background:#fff;
    color:var(--salus-ink);
    text-align:left;
    cursor:pointer;
}

.salus-learning-category-toggle:hover,
.salus-learning-category-toggle:focus-visible{
    background:#fafafa;
    outline:0;
}

.salus-learning-category-title{
    min-width:0;
    font-size:1rem;
    font-weight:680;
}

.salus-learning-category-meta{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    justify-content:flex-end;
    gap:1rem;
    color:#666b70;
    font-size:.8rem;
    white-space:nowrap;
}

.salus-learning-category-meta strong{
    font-weight:650;
}

.salus-learning-category-chevron{
    width:9px;
    height:9px;
    border-right:1.5px solid currentColor;
    border-bottom:1.5px solid currentColor;
    transform:rotate(45deg);
    transition:transform .18s ease;
}

.salus-learning-category.is-open .salus-learning-category-chevron{
    transform:rotate(225deg);
}

.salus-learning-category-body{
    border-top:1px solid rgba(16,24,32,.07);
}

.salus-learning-category-body[hidden]{
    display:none;
}

.salus-learning-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1.5rem;
    padding:1rem 1.25rem;
}

.salus-learning-item+.salus-learning-item{
    border-top:1px solid rgba(16,24,32,.06);
}

.salus-learning-item-copy{
    min-width:0;
}

.salus-learning-item-title{
    font-weight:620;
}

.salus-learning-item-detail{
    margin-top:.22rem;
    color:#73777c;
    font-size:.8rem;
}

.salus-learning-item-status{
    flex:0 0 auto;
}

.salus-learning-status{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:.32rem .62rem;
    border-radius:8px;
    font-size:.72rem;
    font-weight:700;
    line-height:1;
}

.salus-learning-status.is-passed{
    background:#e9f7ef;
    color:#217044;
}

.salus-learning-status.is-started{
    background:#eef4fb;
    color:#315f8d;
}

.salus-learning-status.is-pending{
    border:1px solid #e1e4e7;
    background:#fafafa;
    color:#777b80;
}

.salus-learning-save-status{
    min-height:20px;
    margin-top:.65rem;
    color:#7a7e82;
    font-size:.72rem;
    text-align:right;
}

.salus-learning-save-status.is-error{
    color:var(--salus-red);
}

@media (max-width:767.98px){
    .salus-auth-section{padding:2.5rem 0 3.5rem}
    .salus-auth-card{padding:1.4rem;border-radius:16px}

    .salus-learning-category-toggle{
        align-items:flex-start;
        padding:1rem;
    }

    .salus-learning-category-meta{
        gap:.7rem;
        font-size:.74rem;
    }

    .salus-learning-item{
        align-items:flex-start;
        flex-direction:column;
        gap:.65rem;
        padding:1rem;
    }
}


/* Passwortstaerke */
.salus-password-strength{
    display:grid;
    gap:.45rem;
}

.salus-password-strength-track{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:.35rem;
}

.salus-password-strength-track span{
    height:4px;
    border-radius:999px;
    background:#e7e7e7;
    transition:background .18s ease,transform .18s ease;
}

.salus-password-strength[data-strength="1"] .salus-password-strength-track span.is-active,
.salus-password-strength[data-strength="2"] .salus-password-strength-track span.is-active{
    background:#d9534f;
}

.salus-password-strength[data-strength="3"] .salus-password-strength-track span.is-active{
    background:#d99a00;
}

.salus-password-strength[data-strength="4"] .salus-password-strength-track span.is-active,
.salus-password-strength[data-strength="5"] .salus-password-strength-track span.is-active{
    background:#2f8f5b;
}

.salus-password-strength-track span.is-active{
    transform:scaleY(1.15);
}

.salus-password-strength-label{
    color:var(--salus-muted);
    font-size:.82rem;
    line-height:1.35;
}


.salus-password-requirements{
    display:grid;
    gap:.35rem;
}

.salus-password-requirement{
    display:flex;
    align-items:center;
    gap:.5rem;
    color:var(--salus-muted);
    font-size:.82rem;
    line-height:1.35;
    transition:color .16s ease;
}

.salus-password-requirement span{
    display:inline-grid;
    place-items:center;
    width:1.1rem;
    height:1.1rem;
    flex:0 0 1.1rem;
    border:1px solid #d8dadd;
    border-radius:50%;
    color:transparent;
    font-size:.68rem;
    font-weight:700;
    transition:background .16s ease,border-color .16s ease,color .16s ease;
}

.salus-password-requirement.is-valid{
    color:#26734a;
}

.salus-password-requirement.is-valid span{
    border-color:#2f8f5b;
    background:#2f8f5b;
    color:#fff;
}

.salus-password-match{
    color:var(--salus-muted);
    font-size:.82rem;
    line-height:1.35;
}

.salus-password-match.is-valid{
    color:#26734a;
}

.salus-password-match.is-invalid{
    color:var(--salus-red);
}
