@charset "UTF-8";

#nav {
    position: relative;
    font-family: var(--site-font-brand);
}

#nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-nav-toggle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 4.4rem;
    padding: 0.55em 1em 0.55em 20px;
    border: 0;
    background: var(--site-brand-green);
    color: #fff;
    font: inherit;
    font-size: 1.4em;
    font-weight: 700;
    line-height: 1.4;
    text-align: left;
    cursor: pointer;
}

.main-nav-toggle__icon {
    font-size: 1.45em;
    line-height: 1;
}

.main-nav {
    display: none;
    width: 100%;
}

.main-nav.is-open {
    display: block;
}

.main-nav-item,
.nav-subitem {
    position: relative;
}

.main-nav-link-row,
.nav-subitem-row {
    display: flex;
    align-items: center;
}

#nav a {
    color: var(--site-brand-green);
    text-decoration: none;
}

#nav .main-nav-link {
    flex: 1 1 auto;
    display: block;
    padding: 10px 8px 10px 20px;
    font-size: 1.4em;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.015em;
    text-transform: uppercase;
}

.nav-toggle {
    flex: 0 0 auto;
    min-width: 4.4rem;
    min-height: 4.4rem;
    padding: 0.25rem 0.55rem;
    border: 0;
    background: transparent;
    color: var(--site-brand-orange-ui);
    font: inherit;
    font-size: 1.3em;
    cursor: pointer;
}

.nav-toggle > span {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 0.55rem solid transparent;
    border-right: 0.55rem solid transparent;
    border-top: 0.7rem solid currentColor;
    font-size: 0;
    line-height: 0;
    transition: transform 0.16s ease;
}

.nav-toggle[aria-expanded="true"] > span {
    transform: rotate(180deg);
}

#nav a:focus-visible,
#nav button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

.nav-submenu {
    display: none;
    background: var(--site-surface-warm);
}

.nav-submenu.is-open {
    display: block;
}

.nav-group {
    padding: 0.75rem 0;
}

.nav-group + .nav-group,
.nav-target-groups {
    margin-top: 0.35rem;
}

.nav-group-title {
    margin: 0;
    padding: 0.6rem 20px 0.35rem;
    color: var(--site-text);
    font-size: 1.3em;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.nav-group--ms > .nav-group-title {
    color: var(--site-brand-green);
}

.nav-group--ds > .nav-group-title {
    color: var(--site-brand-orange-ui);
}

.nav-level a {
    flex: 1 1 auto;
    color: #1c5c8e!important;
    display: block;
    padding: 0.6rem 0.9rem 0.6rem 20px;
    font-size: 1.4em;
    font-weight: 600;
    line-height: 1.4;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
}

.nav-level--2 a {
    padding-left: 36px;
}

.nav-level--3 a,
.nav-level--4 a,
.nav-level--5 a {
    padding-left: 52px;
}

.nav-subitem > .nav-submenu {
    margin: 0 0 0.35rem 20px;
    border-left: 2px solid rgba(var(--site-brand-green-rgb), 0.16);
}

#nav a:hover,
#nav .is-active > .main-nav-link-row > a,
#nav .nav-subitem.is-active > .nav-subitem-row > a {
    text-decoration: underline;
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.22em;
}

@media (min-width: 48em) {
    .main-nav-toggle {
        display: none;
    }

    .main-nav,
    .main-nav.is-open {
        display: flex;
        flex-direction: row;
        justify-content: flex-end;
        align-items: flex-start;
        gap: 0.45rem;
    }

    .main-nav-item {
        text-align: center;
    }

    .main-nav-link-row {
        display: inline-flex;
        align-items: center;
        white-space: nowrap;
    }

    #nav .main-nav-link {
        padding: 9px 6px 9px 10px;
        color: var(--site-brand-green);
        font-size: 1.3em;
        white-space: nowrap;
    }

    .main-nav-link-row > .nav-toggle {
        position: relative;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 2.2rem;
        width: 2.2rem;
        min-height: 2.2rem;
        padding: 0.35rem 0.4rem 0.35rem 0.15rem;
        margin-left: 0.05rem;
        margin-right: 0.1rem;
        color: var(--site-brand-orange-ui);
    }


    .main-nav-link-row > .nav-toggle::before {
        content: "";
        position: absolute;
        inset: -0.45rem -0.35rem;
    }

    .main-nav-link-row > .nav-toggle > span {
        border-left-width: 0.42rem;
        border-right-width: 0.42rem;
        border-top-width: 0.55rem;
    }

    .main-nav-item > .nav-submenu {
        position: absolute;
        top: calc(100% + 0.45rem);
        right: 0;
        z-index: 300;
        width: max-content;
        min-width: 24em;
        max-width: min(52em, 92vw);
        padding: 0.85rem 0.85rem 1rem;
        border: 1px solid rgba(var(--site-brand-green-rgb), 0.11);
        border-radius: 12px;
        box-shadow: rgba(var(--site-brand-green-rgb), 0.12) 0 8px 24px;
        text-align: left;
    }

    .nav-target-groups--two {
        display: grid;
        grid-template-columns: minmax(15em, 1fr) minmax(15em, 1fr);
        column-gap: 2.4rem;
    }

    .nav-target-groups--two > .nav-group + .nav-group {
        margin-top: 0;
        border: 0;
    }

    .nav-subitem > .nav-submenu {
        position: static;
        width: auto;
        min-width: 0;
        max-width: none;
        margin-left: 1rem;
        border-radius: 0;
        box-shadow: none;
    }
}

@media (max-width: 47.99em) {
    #nav .main-nav-link,
    .nav-level a {
        text-align: left;
    }

    .main-nav-item + .main-nav-item {
        border-top: 1px solid rgba(var(--site-brand-green-rgb), 0.12);
    }

    .nav-submenu {
        padding-bottom: 0.5rem;
    }

    .main-nav.is-open {
        background: var(--site-surface-warm);
        border-bottom: 1px solid rgba(var(--site-brand-green-rgb), 0.14);
    }
}

/* =========================================================
   Redesign 2026 — fáze 2H: responzivní navigace
   Desktopová řádka potřebuje více prostoru než původní breakpoint 48em.
   Pod 1050 px se proto používá ovládání MENU.
   ========================================================= */

@media (min-width: 1051px) {
    .main-nav-toggle {
        display: none;
    }

    .main-nav,
    .main-nav.is-open {
        display: flex;
        flex-direction: row;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 0.45rem;
    }
}

@media (max-width: 1050px) {
    .main-nav-toggle {
        display: inline-flex;
        width: auto;
        min-width: 10rem;
        min-height: 4.4rem;
        margin-left: auto;
        padding: 0.55em 1em;
        border-radius: 8px;
    }

    .main-nav,
    .main-nav.is-open {
        width: 100%;
    }

    .main-nav {
        display: none;
    }

    .main-nav.is-open {
        display: block;
        margin-top: 0.8rem;
        background: var(--site-surface-warm);
        border: 1px solid rgba(var(--site-brand-green-rgb), 0.12);
        border-radius: 10px;
        overflow: hidden;
    }

    #nav .main-nav-link,
    .nav-level a {
        text-align: left;
    }

    .main-nav-item + .main-nav-item {
        border-top: 1px solid rgba(var(--site-brand-green-rgb), 0.12);
    }

    .nav-submenu {
        padding-bottom: 0.5rem;
    }
}
