/**
 * Dynamic Menu System Styles
 * Provides styling for header, footer, and mobile navigation menus
 */

/* ====================
   Base Menu Styles
   ==================== */

/* Reset default list styles */
.navbar-nav,
.footer-links,
.mobile-nav {
    list-style: none;
    margin: 0;
    padding: 0;
}

.navbar-nav li,
.footer-links li,
.mobile-nav li {
    position: relative;
}

.navbar-nav a,
.footer-links a,
.mobile-nav a,
.navbar-nav span,
.footer-links span,
.mobile-nav span {
    text-decoration: none;
    display: block;
    transition: all 0.3s ease;
}

/* ====================
   Header Menu (navbar-nav)
   ==================== */

.navbar-nav {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
}

.navbar-nav > li.top_level {
    position: relative;
}

.navbar-nav > li.top_level > a,
.navbar-nav > li.top_level > span {
    padding: 0.75rem 1rem;
    color: #333;
    font-weight: 500;
    cursor: pointer;
}

.navbar-nav > li.top_level > a:hover,
.navbar-nav > li.top_level > span:hover {
    color: #007bff;
}

/* Active menu item */
.navbar-nav > li.top_level.active > a,
.navbar-nav > li.top_level.active > span {
    color: #007bff;
    font-weight: 600;
}

/* Icon spacing */
.navbar-nav i {
    margin-right: 0.5rem;
}

/* Dropdown/Submenu styles */
.navbar-nav .submenu {
    position: absolute;
    top: 100%;
    left: 0;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    border-radius: 4px;
    min-width: 200px;
    padding: 0.5rem 0;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 1000;
}

.navbar-nav .has-children:hover > .submenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.navbar-nav .submenu li {
    width: 100%;
}

.navbar-nav .submenu a,
.navbar-nav .submenu span {
    padding: 0.5rem 1rem;
    color: #555;
    white-space: nowrap;
}

.navbar-nav .submenu a:hover {
    background: #f8f9fa;
    color: #007bff;
}

.navbar-nav .submenu .active > a {
    background: #e7f3ff;
    color: #007bff;
}

/* Nested submenus (level 2+) */
.navbar-nav .submenu .submenu {
    top: 0;
    left: 100%;
    margin-left: 0.5rem;
}

/* ====================
   Footer Menu (footer-links)
   ==================== */

.footer-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 2rem;
}

.footer-links li {
    display: inline-block;
}

.footer-links a,
.footer-links span {
    color: #6c757d;
    font-size: 0.9rem;
    padding: 0.25rem 0;
}

.footer-links a:hover {
    color: #007bff;
}

.footer-links .active > a {
    color: #007bff;
    font-weight: 500;
}

.footer-links i {
    margin-right: 0.35rem;
    font-size: 0.85rem;
}

/* Footer submenu (if needed) */
.footer-links .submenu {
    display: none;
    padding-left: 1rem;
    margin-top: 0.5rem;
}

.footer-links .has-children.active > .submenu {
    display: block;
}

/* ====================
   Mobile Menu (mobile-nav)
   ==================== */

.mobile-nav {
    display: none;
}

.mobile-nav li {
    border-bottom: 1px solid #e9ecef;
}

.mobile-nav a,
.mobile-nav span {
    padding: 1rem;
    color: #333;
    font-weight: 500;
}

.mobile-nav a:active,
.mobile-nav span:active {
    background: #f8f9fa;
}

.mobile-nav .active > a {
    color: #007bff;
    background: #e7f3ff;
}

.mobile-nav i {
    margin-right: 0.75rem;
    width: 20px;
    text-align: center;
}

/* Mobile submenu */
.mobile-nav .submenu {
    background: #f8f9fa;
    padding-left: 1.5rem;
    display: none;
}

.mobile-nav .has-children.active > .submenu,
.mobile-nav .has-children.open > .submenu {
    display: block;
}

.mobile-nav .submenu a {
    padding: 0.75rem 1rem;
    font-weight: 400;
    font-size: 0.95rem;
    color: #555;
}

.mobile-nav .submenu .submenu {
    padding-left: 1rem;
}

/* Mobile menu toggle indicator */
.mobile-nav .has-children > a::after,
.mobile-nav .has-children > span::after {
    content: '\25BC';
    float: right;
    font-size: 0.75rem;
    transition: transform 0.3s ease;
}

.mobile-nav .has-children.open > a::after,
.mobile-nav .has-children.open > span::after {
    transform: rotate(180deg);
}

/* ====================
   Responsive Breakpoints
   ==================== */

/* Tablets and below */
@media (max-width: 991px) {
    .navbar-nav {
        display: none;
    }

    .mobile-nav {
        display: block;
    }
}

/* Small tablets and large phones */
@media (max-width: 768px) {
    .navbar-nav .submenu {
        position: static;
        box-shadow: none;
        transform: none;
        opacity: 1;
        visibility: visible;
        padding-left: 1rem;
        display: none;
        background: #f8f9fa;
    }

    .navbar-nav .has-children.active > .submenu {
        display: block;
    }

    .footer-links {
        flex-direction: column;
        gap: 0.75rem;
    }
}

/* Mobile phones */
@media (max-width: 576px) {
    .mobile-nav a,
    .mobile-nav span {
        padding: 0.85rem 1rem;
        font-size: 0.95rem;
    }

    .mobile-nav .submenu a {
        padding: 0.65rem 1rem;
        font-size: 0.9rem;
    }

    .footer-links {
        font-size: 0.85rem;
    }
}

/* ====================
   Animation and Effects
   ==================== */

/* Smooth transitions */
.navbar-nav li,
.footer-links li,
.mobile-nav li {
    transition: background-color 0.2s ease;
}

/* Submenu arrow animation */
.navbar-nav .has-children > a::after {
    content: '\25BC';
    margin-left: 0.5rem;
    font-size: 0.65rem;
    display: inline-block;
    transition: transform 0.3s ease;
}

.navbar-nav .has-children:hover > a::after {
    transform: rotate(180deg);
}

/* Focus states for accessibility */
.navbar-nav a:focus,
.footer-links a:focus,
.mobile-nav a:focus {
    outline: 2px solid #007bff;
    outline-offset: 2px;
}

/* ====================
   External Link Indicator
   ==================== */

.navbar-nav a[target="_blank"]::after,
.footer-links a[target="_blank"]::after,
.mobile-nav a[target="_blank"]::after {
    content: '\2197';
    margin-left: 0.35rem;
    font-size: 0.75rem;
    opacity: 0.6;
}

/* ====================
   Print Styles
   ==================== */

@media print {
    .mobile-nav {
        display: none !important;
    }

    .navbar-nav .submenu,
    .footer-links .submenu {
        position: static !important;
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}
