:root {
    /* Color Palette */
    --nav-primary: #25455f;
    --nav-accent: #00d4ff;
    --nav-dark: #112233;
    --nav-bg-mobile: #fcfdfe;
    --nav-white: #ffffff;
    
    /* Animation Timings */
    --nav-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --sub-anim: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* --- BASE STYLES --- */
.nav-main :is(a, strong) {
    font-size: 1.25rem;
    line-height: 1.5;
    position: relative;
    display: block;
    transition: color var(--nav-transition);
    color: var(--nav-primary);
    font-weight: 600;
    text-decoration: none; /* Cleaner Look, Unterstreichung nur bei Hover/Active */
}

.nav-main a:is(:hover, :focus),
.nav-main :is(a.trail, strong) {
    color: var(--nav-accent);
}

.nav-main ul {
    width: 100%;
}

/* Submenu Toggles (Plus/Minus Icons) */
.btn-toggle-submenu {
    all: revert;
    position: absolute;
    top: 3px;
    right: 0;
    width: 44px;
    height: 44px;
    border: none;
    background: none !important;
    color: currentColor !important;
    cursor: pointer;
    z-index: 1;
    transition: transform var(--nav-transition);
}

.btn-toggle-submenu:before,
.btn-toggle-submenu:after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: currentColor;
}

.btn-toggle-submenu:before { height: 2px; width: 50%; }
.btn-toggle-submenu:after {
    height: 50%;
    width: 2px;
    transition: height var(--nav-transition);
}

.nav-main li.nav-expanded > .btn-toggle-submenu:after {
    height: 2px; /* Macht aus dem Plus ein Minus */
}

/* --- DESKTOP LAYOUT (>= 64rem) --- */
@media only screen and (min-width: 64rem) {
    .nav-main {
        grid-area: mainbar;
        display: block;
    }

    .nav-main .level_1 {
        display: flex;
        gap: 0 2rem;
        justify-content: flex-end;
        align-items: center;
    }

    .nav-main :is(a:hover, a:focus, a.trail, strong) {
        color: var(--nav-dark);
        text-underline-offset: 0.35em;
        text-decoration: underline var(--nav-accent) 0.125rem;
    }

    /* Sanfter Submenu-Slide */
    .nav-main .level_1 ul {
        display: flex !important; /* Wichtig für Animation */
        flex-direction: column;
        position: absolute;
        top: 100%;
        padding: 15px 0;
        min-width: 270px;
        background: var(--nav-white);
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
        gap: 0.5rem;
        z-index: 2;
        
        /* Animation Properties */
        opacity: 0;
        visibility: hidden;
        transform: translateY(20px);
        transition: opacity 0.3s ease, transform var(--sub-anim), visibility 0.3s;
        pointer-events: none;
    }

    /* Trigger Desktop */
    .nav-main li:hover > ul,
    .nav-main li.nav-expanded > ul,
    .nav-main li.trail > ul {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
        pointer-events: auto;
    }

    /* Level 3 seitlich sliden */
    .nav-main .level_2 ul {
        top: 0;
        left: 100%;
        transform: translateX(20px);
    }

    .nav-main .level_2 li:hover > ul {
        transform: translateX(0);
    }

    .nav-main ul ul li { padding: 0 15px; border: none; }

    .btn-toggle-submenu {
        margin: auto;
        top: 0; bottom: 0; right: 0;
        width: 1em; height: 1em;
    }
}

/* --- MOBILE LAYOUT (< 64rem) --- */
@media only screen and (max-width: 63.999rem) {
    .nav-main {
        position: fixed;
        left: -100%;
        width: 100%;
        background: var(--nav-bg-mobile);
        transition: left 0.3s ease-in-out;
        z-index: 50;
        bottom: 0;
        display: flex;
    }

    .show-nav-mobile .nav-main {
        left: 0;
        overflow-y: auto;
    }

    .nav-main .level_1 {
        flex-direction: column;
        padding: 1.5rem;
    }

    /* Submenu-Slide ohne Zucken via Grid */
    .nav-main ul ul {
        display: grid;
        grid-template-rows: 0fr;
        transition: grid-template-rows var(--nav-transition);
        overflow: hidden;
    }

    .nav-main li.nav-expanded > ul {
        grid-template-rows: 1fr;
    }

    .nav-main ul ul > * { min-height: 0; }

    .nav-main li {
        display: flex;
        flex-direction: column;
        width: 100%;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        position: relative;
    }

    .nav-main li :is(a, strong) { padding: 12px 1.5rem; }
}

/* Mobile Top-Offsets (Sticky Header) */
@media only screen and (max-width: 63.999rem) { .nav-main { top: 13.375rem; } }
@media only screen and (max-width: 39.999rem) { .nav-main { top: 11.375rem; } }
@media only screen and (max-width: 29.999rem) { .nav-main { top: 5.0625rem; } }

/* --- META & SIDEBAR --- */
.nav-meta a, .nav-meta strong {
    color: var(--nav-primary);
    text-decoration: underline transparent 1px;
    transition: all var(--nav-transition);
}

.nav-meta a:hover { color: var(--nav-accent); text-decoration-color: currentColor; }
.nav-meta--footer a { color: var(--nav-white); font-size: 0.875rem; }

.nav-sidebar a, .nav-sidebar strong {
    display: flex;
    align-items: center;
    padding: 1rem 1.5rem;
    background: var(--nav-white);
    border-bottom: 1px solid #f4f5f6;
    color: var(--nav-primary);
    transition: all var(--nav-transition);
}

.nav-sidebar a:after {
    content: "";
    width: 1.5rem; height: 1.5rem;
    margin-left: auto;
    background: transparent url("../../files/oag/theme/src/img/icons/arrow-right--orange.svg") center center no-repeat;
    filter: hue-rotate(160deg) brightness(1.2); /* Orange -> Cyan */
    opacity: 0;
    transition: opacity var(--nav-transition);
}

.nav-sidebar a:hover { color: var(--nav-accent); border-bottom-color: var(--nav-accent); }
.nav-sidebar a:hover:after { opacity: 1; }

.nav-sidebar a.trail, .nav-sidebar strong {
    background: var(--nav-primary);
    color: var(--nav-white);
    text-decoration: underline var(--nav-accent) 2px;
}
