
/* --- Mobile Menu Toggle --- */
.menu-toggle {
    display: none;
    font-size: 1.8rem;
    color: #004074;
    cursor: pointer;
    z-index: 1001;
}

@media (max-width: 768px) {
    /* Navbar Mobile */
    .navbar {
        height: 80px;
        padding: 0;
        position: relative; /* Ensure context for absolute elements if needed */
        z-index: 1002; /* Ensure navbar is above menu */
    }
    
    .menu-toggle {
        display: block;
    }

    /* Mobile fixed navbar */
    body { padding-top: 80px; }
    .navbar { position: fixed; top: 0; left: 0; right: 0; }

    /* Remove underline effect on mobile menu */
    .nav-links a::after { display: none; }

    /* Ensure global reveal rule doesn't force menu open after load */
    html.js body.is-ready .nav-links {
        transform: translateY(-10px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }
    html.js body.is-ready .nav-links.active {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
    }

    .nav-links {
        position: absolute; 
        top: 70px; 
        right: 20px; 
        left: auto; 
        width: 200px; 
        height: auto; 
        background-color: #fff; 
        flex-direction: column; 
        justify-content: flex-start; 
        align-items: flex-start; 
        padding: 10px 0; 
        gap: 0; 
        
        /* Default Hidden State */
        transform: translateY(-10px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none; /* Prevent clicks when hidden */
        
        transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
        z-index: 1000;
        box-shadow: 0 10px 30px rgba(0,0,0,0.15); 
        border-radius: 12px;
        display: flex;
    }

    .nav-links.active {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
        pointer-events: auto; /* Enable clicks when visible */
    }

    .nav-links li {
        height: 50px; /* Fixed uniform height */
        width: 100%;
        text-align: left;
        display: flex;
        align-items: center;
    }

    .nav-links a {
        display: flex;
        align-items: center;
        width: 100%;
        height: 100%; /* Fill li */
        font-size: 1rem;
        font-weight: 500;
        padding: 0 25px; /* Horizontal padding only */
        color: #333;
        transition: background-color 0.2s, color 0.2s;
    }

    .nav-links a:hover {
        background-color: #f5f7fa;
        color: #004074;
    }

    .nav-links a.active {
        color: #007149;
        font-weight: 700;
    }

    .nav-logo-img {
        height: 50px;
    }

    /* Hero & Text */
    .hero-title { font-size: 26px; margin-top: 20px; }
    .hero-details p { font-size: 16px; margin: 5px 0; }
    
    /* Countdown */
    .countdown-container { gap: 8px; bottom: -140px; }
    .countdown-box { width: 60px; height: 80px; }
    .countdown-box .number { font-size: 1.5rem; }
    .countdown-box .label { font-size: 0.7rem; }
    
    /* Stats Grid */
    .stats-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    /* Cards Grid */
    .cards-grid {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 0 20px;
    }
    .card {
        height: 350px;
    }

    /* Agenda Page */
    .timeline-item { padding: 20px 15px; }
    .timeline-row-top {
        flex-direction: column;
        gap: 15px;
    }
    .time-row {
        flex-direction: row;
        width: 100%;
        justify-content: flex-start;
        gap: 10px;
    }
    .time-row::before {
        display: none; /* Hide vertical line on mobile if horizontal */
    }
    .time-box {
        width: auto;
        padding: 5px 15px;
        min-width: 70px;
    }
    .speakers-grid { grid-template-columns: 1fr; }
    
    /* Speakers Page */
    .speakers-page-grid { grid-template-columns: 1fr; }
    .speaker-page-card { 
        flex-direction: column; 
        text-align: center; 
        padding: 20px;
    }
    .speaker-page-info { align-items: center; }
    .speaker-country-tag { align-self: center; }
    
    /* Search Section */
    .search-wrapper {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }
    .search-inner-right {
        flex-direction: column;
        width: 100%;
        align-items: stretch;
    }
    .search-label {
        text-align: center;
        margin-bottom: 5px;
    }
    .search-input-container {
        width: 100%;
        max-width: 100%;
    }

    /* Common */
    .gallery-track { height: 250px; }
    .gallery-item { height: 250px; border-right: none; border-bottom: 1px solid white; }
    
    .footer-content { 
        flex-direction: column; 
        align-items: center;
        text-align: center;
        padding: 0 10px;
        gap: 40px;
    }

    .footer-center { 
        width: 100%; 
        justify-content: center;
        padding-left: 0;
        gap: 30px;
        flex-direction: column;
        align-items: center;
    }
    
    .footer-links-col {
        align-items: center;
    }

    .footer-logo-img {
        height: 60px;
        width: auto;
    }
    
    .footer-right {
        justify-content: center;
        width: 100%;
    }
}
