/*
* LEFT / TOP NAVIGATION STYLES
*/

nav {
    grid-column-start: 1;
    grid-column-end: 2;
    grid-row-start: 2;
    grid-row-end: 3;
    width: 100%;
    height: 100%;
}

    nav ul {
        list-style: none;
        margin: 10px;
        padding: 10px;
    }

        nav ul.primary > li {
            color: var(--nav-text-color);
            position: relative;
        }

            /* Main navigation links */
            nav ul.primary > li > a {
                margin: 5px 1px;
                display: block;
                width: 90%;
                padding: 10px 5%;
                text-align: center;
                text-decoration: none;
                font-family: MainframeBB, sans-serif;
                color: var(--nav-text-color);
                border: 1px solid var(--nav-border-color);
                border-radius: 5px;
                background-color: var(--nav-bg-color);
                font-size: 125%;
                max-width: 100%;
                transition: background-color 0.3s, color 0.3s;
                box-sizing: border-box;
                overflow: hidden;
            }

                /* Hover */
                nav ul.primary > li > a:hover {
                    background-color: var(--hover-bg-color);
                    border-color: white;
                    color: var(--hover-text-color);
                }

        /* Submenu links */
        nav ul.primary .sub a {
            background-color: var(--nav-bg-color);
            border: 1px solid var(--nav-border-color);
            border-radius: 5px;
            color: var(--nav-text-color);
            padding: 10px 15px;
            text-decoration: none;
            display: block;
            width: 100%;
            text-align: center;
            transition: background-color 0.3s, color 0.3s;
            box-sizing: border-box;
            overflow: hidden;
        }

            nav ul.primary .sub a:hover {
                background-color: rgba(173, 216, 230, 1);
                border-color: white;
                color: var(--hover-text-color);
            }

    /* Desktop submenu */
    nav li:hover > ul.sub {
        display: block;
        position: absolute;
        left: 100%;
        top: 0;
        margin-top: 0;
        margin-left: -5px;
        z-index: 10;
    }

    nav li > ul.sub {
        display: none;
    }

    nav li:hover li {
        float: none;
    }

/* ===== Tablet / Mobile ===== */
@media (max-width: 1024px) {
    nav {
        grid-column: 1 / -1;
        grid-row: 2 / 3;
        height: auto;
    }

        nav ul {
            margin: 0;
            padding: 0;
        }

            nav ul.primary {
                display: flex;
                flex-wrap: wrap;
                gap: 8px;
                justify-content: center;
                align-items: stretch;
            }

                nav ul.primary > li {
                    flex: 1 1 220px;
                    max-width: 320px;
                }

                    nav ul.primary > li > a {
                        width: 100%;
                        margin: 0;
                        padding: 12px 10px;
                        font-size: 1.05rem;
                    }

        nav li:hover > ul.sub {
            position: static;
            display: block;
            margin: 8px 0 0 0;
        }

        nav li > ul.sub {
            display: none;
        }

        nav li:hover > ul.sub {
            display: block;
        }
}

@media (max-width: 768px) {
    nav ul.primary {
        flex-direction: column;
        gap: 8px;
    }

        nav ul.primary > li {
            flex: 1 1 auto;
            max-width: none;
            width: 100%;
        }

            nav ul.primary > li > a {
                width: 100%;
                font-size: 1rem;
                padding: 12px;
            }
}

@media (max-width: 480px) {
    nav ul.primary > li > a {
        font-size: 0.95rem;
        padding: 11px;
    }
}
