.vj24-v2-header { box-shadow: 0 3px 8px rgba(11, 43, 72, 0.10); }
.vj24-header-auth { display:flex; flex-direction:column; gap:.45rem; }
.vj24-header-auth__button { cursor:pointer; border:0; border-radius:.2rem; background:#1d70b7; padding:.7rem 1.05rem; font:inherit; font-weight:700; color:#fff; }
.vj24-header-auth__button:hover { background:#165b96; }
.vj24-language-switch {
    position: relative;
    margin-top: 0.5rem;
}

.vj24-language-switch summary {
    display: flex;
    min-height: 44px;
    cursor: pointer;
    list-style: none;
    align-items: center;
    gap: 0.55rem;
    border: 1px solid #cdd9e6;
    border-radius: 0.75rem;
    background: #fff;
    padding: 0.5rem 0.8rem;
    color: #17324f;
    box-shadow: 0 2px 7px rgba(11, 43, 72, 0.06);
    transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.vj24-language-switch summary::-webkit-details-marker {
    display: none;
}

.vj24-language-switch summary:hover {
    border-color: #aebfd1;
    background: #fbfdff;
}

.vj24-language-switch summary:focus-visible {
    outline: 2px solid #1976d2;
    outline-offset: 2px;
}

.vj24-language-switch summary::after {
    content: "";
    width: 0.5rem;
    height: 0.5rem;
    margin-left: 0.15rem;
    border-right: 2px solid #17324f;
    border-bottom: 2px solid #17324f;
    transform: translateY(-2px) rotate(45deg);
    transition: transform 160ms ease;
}

.vj24-language-switch[open] summary::after {
    transform: translateY(2px) rotate(225deg);
}

.vj24-language-switch__globe {
    display: inline-flex;
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    align-items: center;
    justify-content: center;
    color: #17324f;
}

.vj24-language-switch__globe svg {
    width: 22px;
    height: 22px;
}

.vj24-language-switch__flag {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 999px;
    object-fit: cover;
    box-shadow: 0 0 0 1px rgba(15, 41, 66, 0.08);
}

.vj24-language-switch__code {
    min-width: 1.8rem;
    font-size: 0.96rem;
    font-weight: 750;
    letter-spacing: 0.02em;
}

.vj24-language-switch__menu {
    position: relative;
    display: grid;
    margin-top: 0.2rem;
    overflow: hidden;
    border: 1px solid #d4dee9;
    border-radius: 0.85rem;
    background: #fff;
    padding: 0.4rem;
    box-shadow: 0 16px 38px rgba(11, 43, 72, 0.16);
}

.vj24-language-switch__menu::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: 10px;
}

.vj24-language-switch__item {
    display: grid;
    min-height: 44px;
    grid-template-columns: 26px 1fr 20px;
    align-items: center;
    gap: 0.7rem;
    border-radius: 0.6rem;
    padding: 0.45rem 0.65rem;
    font-weight: 600;
    color: #17324f;
    text-decoration: none;
    transition: background 140ms ease, color 140ms ease;
}

.vj24-language-switch__item:hover,
.vj24-language-switch__item:focus-visible {
    background: #eef6ff;
    color: #1268bd;
}

.vj24-language-switch__item:focus-visible {
    outline: 2px solid #1976d2;
    outline-offset: -2px;
}

.vj24-language-switch__item.is-active {
    background: #eef6ff;
    color: #17324f;
}

.vj24-language-switch__item .vj24-language-switch__flag {
    width: 26px;
    height: 26px;
}

.vj24-language-switch__label {
    white-space: nowrap;
}

.vj24-language-switch__check {
    display: inline-flex;
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    color: #1976d2;
}

.vj24-language-switch__check svg {
    width: 20px;
    height: 20px;
}

.vj24-auth-modal { position:fixed; inset:0; z-index:1000; display:none; align-items:flex-start; justify-content:center; padding:94px 1rem 1rem; }
.vj24-auth-modal.is-open { display:flex; }
.vj24-auth-modal__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.5); }
.vj24-auth-modal__dialog { position:relative; z-index:1; display:flex; width:min(600px,100%); height:min(740px,calc(100vh - 110px)); flex-direction:column; overflow:hidden; border-radius:.35rem; background:#fff; padding:3.6rem 3.7rem 3.2rem; box-shadow:0 10px 28px rgba(0,0,0,.28); }
.vj24-auth-modal__close { position:absolute; top:.8rem; right:.9rem; display:inline-flex; width:2rem; height:2rem; cursor:pointer; align-items:center; justify-content:center; border:0; background:transparent; font-size:1.8rem; line-height:1; color:#687583; }
.vj24-auth-modal__tabs { display:grid; grid-template-columns:1fr 1fr; margin-bottom:1.85rem; border-bottom:3px solid #ddd; }
.vj24-auth-modal__tab { position:relative; cursor:pointer; border:0; background:transparent; padding:.75rem .4rem 1rem; font:inherit; font-weight:700; text-transform:uppercase; color:#1d70b7; }
.vj24-auth-modal__tab::after { content:""; position:absolute; right:0; bottom:-3px; left:0; height:3px; background:transparent; }
.vj24-auth-modal__tab.is-active::after { background:#1d70b7; }
.vj24-auth-modal__panel { display:none; min-height:0; flex:1 1 auto; overflow-y:auto; padding-right:.3rem; }
.vj24-auth-modal__panel.is-active { display:block; }
.vj24-auth-modal .form-group { margin-bottom:1rem; }
.vj24-auth-modal input[type="text"], .vj24-auth-modal input[type="email"], .vj24-auth-modal input[type="password"], .vj24-auth-modal select { box-sizing:border-box; width:100%; min-height:52px; border:1px solid #d0dbe8; border-radius:0; background:#f8fbff; padding:.8rem 1rem; font:inherit; color:#34495e; }
.vj24-auth-modal input:focus, .vj24-auth-modal select:focus { outline:none; border-color:#1d70b7; box-shadow:0 0 0 2px rgba(29,112,183,.1); }
.vj24-auth-modal__password-wrap { position:relative; margin-top:.8rem; }
.vj24-auth-modal__password-toggle { position:absolute; top:50%; right:.9rem; transform:translateY(-50%); cursor:pointer; border:0; background:transparent; color:#758397; }
.vj24-auth-modal .row { display:flex; flex-wrap:wrap; gap:.8rem; }
.vj24-auth-modal .col-md-12 { width:100%; }
.vj24-auth-modal .col-md-9 { flex:1 1 68%; }
.vj24-auth-modal .col-md-6 { flex:1 1 calc(50% - .4rem); }
.vj24-auth-modal .col-md-4 { flex:1 1 31%; }
.vj24-auth-modal .col-md-3 { flex:1 1 22%; }
.vj24-auth-modal .col-md-2 { flex:0 0 92px; }
.vj24-auth-modal .form-check { display:flex; align-items:flex-start; gap:.5rem; margin-bottom:.45rem; }
.vj24-auth-modal input[type="checkbox"], .vj24-auth-modal input[type="radio"] { width:auto; min-height:0; margin-top:.22rem; }
.vj24-auth-modal .form-check-label, .vj24-auth-modal .form-check-label a { color:#66717d; }
.vj24-auth-modal .form-check-label a { text-decoration:underline; }
.vj24-auth-modal .invalid-feedback { display:block; margin:.45rem 0 .8rem; font-size:.88rem; color:#b42318; }
.vj24-auth-modal .is-invalid { border-color:#d92d20; }
.vj24-auth-modal__login-options { display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; margin:1.75rem 0 2.2rem; color:#737c86; }
.vj24-auth-modal__remember { display:inline-flex; align-items:center; gap:.45rem; }
.vj24-auth-modal__forgot { color:#737c86; text-decoration:none; }
.vj24-auth-modal__forgot:hover { color:#1d70b7; }
.vj24-auth-modal__submit, .vj24-auth-modal .btn-primary { display:inline-flex; min-width:240px; min-height:54px; cursor:pointer; align-items:center; justify-content:center; border:0; border-radius:0; background:#1d70b7; padding:.75rem 1.5rem; font:inherit; font-weight:700; text-transform:uppercase; color:#fff; }
.vj24-auth-modal__submit:hover, .vj24-auth-modal .btn-primary:hover { background:#165b96; }
.vj24-auth-modal .text-center { text-align:center; }
body.vj24-auth-modal-open { overflow:hidden; }
@media (min-width:1024px) { .vj24-header-auth { flex-direction:row; gap:.45rem; margin-left:.7rem; padding-left:.9rem; border-left:1px solid #1d70b7; } .vj24-language-switch { margin-top:0; margin-left:.45rem; } .vj24-language-switch__menu { position:absolute; top:calc(100% + .35rem); right:0; width:132px; margin-top:0; } }
@media (max-width:767px) { .vj24-auth-modal { padding:82px .75rem .75rem; } .vj24-auth-modal__dialog { height:calc(100vh - 92px); padding:3rem 1.25rem 1.5rem; } .vj24-auth-modal .row { display:block; } .vj24-auth-modal .col-md-12, .vj24-auth-modal .col-md-9, .vj24-auth-modal .col-md-6, .vj24-auth-modal .col-md-4, .vj24-auth-modal .col-md-3, .vj24-auth-modal .col-md-2 { width:100%; margin-bottom:.65rem; } .vj24-header-auth__button, .vj24-auth-modal__submit, .vj24-auth-modal .btn-primary { width:100%; min-width:0; } }

/* VJ24-0101: Responsive Top-Navigation */
.vj24-mobile-menu-button {
    cursor: pointer;
    transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
}

.vj24-mobile-menu-button:hover {
    border-color: #aec0d2;
    background: #f7faff;
}

.vj24-mobile-menu-button:focus-visible {
    outline: 2px solid #1976d2;
    outline-offset: 2px;
}

@media (max-width: 1023px) {
    .vj24-v2-navigation {
        position: absolute !important;
        top: 100% !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-height: calc(100vh - 80px);
        overflow-y: auto;
        gap: 0 !important;
        border-right: 0 !important;
        border-left: 0 !important;
        border-radius: 0 !important;
        padding: 0.6rem 1rem 1rem !important;
        box-shadow: 0 14px 28px rgba(11, 43, 72, 0.12) !important;
    }

    .vj24-v2-navigation__link {
        display: flex;
        min-height: 48px;
        width: 100%;
        align-items: center;
        border-radius: 0.65rem !important;
        padding: 0.7rem 0.8rem !important;
        font-size: 0.98rem;
        line-height: 1.25;
        transition: background-color 140ms ease, color 140ms ease;
    }

    .vj24-v2-navigation__link:hover,
    .vj24-v2-navigation__link:focus-visible {
        background: #f1f6fb;
        color: #1268bd;
    }

    .vj24-v2-navigation__link:focus-visible {
        outline: 2px solid #1976d2;
        outline-offset: -2px;
    }

    .vj24-header-auth {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 0.55rem;
        margin-top: 0.55rem;
        padding-top: 0.8rem;
        border-top: 1px solid #e3e9ef;
    }

    .vj24-header-auth__button {
        min-height: 44px;
        width: 100%;
        border-radius: 0.45rem;
        padding: 0.65rem 0.75rem;
        font-size: 0.92rem;
        transition: background-color 140ms ease, box-shadow 140ms ease;
    }

    .vj24-header-auth__button:hover {
        box-shadow: 0 4px 10px rgba(29, 112, 183, 0.14);
    }

    .vj24-header-auth__button:focus-visible {
        outline: 2px solid #1976d2;
        outline-offset: 2px;
    }

    .vj24-language-switch {
        width: 100%;
        margin-top: 0.75rem;
        padding-top: 0.8rem;
        border-top: 1px solid #e3e9ef;
    }

    .vj24-language-switch summary {
        width: 100%;
        min-height: 46px;
        justify-content: flex-start;
        box-sizing: border-box;
    }

    .vj24-language-switch summary::after {
        margin-left: auto;
    }

    .vj24-language-switch__menu {
        position: static !important;
        width: 100% !important;
        margin-top: 0.35rem !important;
        box-sizing: border-box;
        box-shadow: 0 8px 20px rgba(11, 43, 72, 0.10);
    }
}

@media (max-width: 560px) {
    .vj24-v2-navigation {
        padding-right: 0.75rem !important;
        padding-left: 0.75rem !important;
    }

    .vj24-header-auth {
        grid-template-columns: 1fr;
    }

    .vj24-header-auth__button {
        min-height: 46px;
    }
}

/* VJ24-0102: Dezente Menüanimationen */
@keyframes vj24-nav-enter {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes vj24-language-enter {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 1023px) {
    .vj24-v2-navigation:not(.hidden) {
        animation: vj24-nav-enter 175ms ease-out both;
        transform-origin: top center;
    }
}

.vj24-language-switch[open] .vj24-language-switch__menu {
    animation: vj24-language-enter 140ms ease-out both;
    transform-origin: top right;
}

@media (prefers-reduced-motion: reduce) {
    .vj24-v2-navigation:not(.hidden),
    .vj24-language-switch[open] .vj24-language-switch__menu {
        animation: none;
    }
}



/* VJ24-0112: Language-Selector und Topnavigation an öffentliche Unterseiten angleichen. */
.vj24-language-switch {
    font-family: Arial, Helvetica, sans-serif;
}

.vj24-language-switch summary {
    min-height: 44px;
    gap: 8px;
    border: 1px solid #cdd9e6;
    border-radius: 12px;
    background: #fff;
    padding: 8px 12px;
    color: #17324f;
    box-shadow: 0 2px 7px rgba(11, 43, 72, .06);
}

.vj24-language-switch summary:hover,
.vj24-language-switch[open] summary {
    border-color: #aebfd1;
    background: #fbfdff;
}

.vj24-language-switch summary::after {
    width: 8px;
    height: 8px;
    margin-left: 2px;
}

.vj24-language-switch__code {
    min-width: 28px;
    font-size: 14px;
    line-height: 20px;
    font-weight: 700;
    letter-spacing: .02em;
}

.vj24-language-switch__menu {
    border: 1px solid #d4dee9;
    border-radius: 14px;
    padding: 6px;
    box-shadow: 0 16px 38px rgba(11, 43, 72, .16);
}

.vj24-language-switch__item {
    min-height: 44px;
    grid-template-columns: 26px minmax(0, 1fr) 20px;
    gap: 10px;
    border-radius: 10px;
    padding: 7px 9px;
    color: #17324f;
    font-size: 14px;
    font-weight: 600;
    line-height: 20px;
}

.vj24-language-switch__item:hover,
.vj24-language-switch__item:focus-visible,
.vj24-language-switch__item.is-active {
    background: #eef6ff;
    color: #1268bd;
}

@media (min-width: 1024px) {
    .vj24-v2-header__inner {
        min-height: 80px;
        padding-top: 0;
        padding-bottom: 0;
    }

    .vj24-v2-header__logo {
        width: auto;
        height: 44px;
        max-height: 44px;
    }

    .vj24-v2-navigation {
        gap: 0 !important;
        align-items: center;
    }

    .vj24-v2-navigation__link {
        min-height: 44px;
        margin: 0 2px;
        padding: 12px 12px !important;
        border-radius: 10px !important;
        font-size: 15px;
        font-weight: 700;
        line-height: 20px;
    }

    .vj24-header-auth {
        gap: 4px;
        margin-left: 12px;
        padding-left: 16px;
        border-left: 1px solid #1d70b7;
    }

    .vj24-header-auth__button {
        min-height: 44px;
        padding: 12px 16px;
        border-radius: 9px;
        font-size: 15px;
        font-weight: 700;
        line-height: 20px;
    }

    .vj24-language-switch {
        margin-top: 0;
        margin-left: 9px;
    }

    .vj24-language-switch__menu {
        position: absolute;
        top: calc(100% + 6px);
        right: 0;
        width: 164px;
        margin-top: 0;
    }
}

@media (max-width: 1023px) {
    .vj24-language-switch summary {
        min-height: 44px;
        padding: 8px 10px;
    }
}
