/* ============================================
   NAVBAR STYLES
   Responsive navbar with search bar
   ============================================ */

/* ========================================
   NAVBAR SEARCH BAR
   ======================================== */

.navbar-search-form {
    flex: 1;
    max-width: 400px;
    margin: 0 2rem;
}

.navbar-search-container {
    position: relative;
}

.navbar-search-input {
    width: 100%;
    padding: 0.5rem 2.5rem 0.5rem 1rem;
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    font-size: 0.95rem;
    transition: border-color 0.3s, background-color 0.3s;
    background: white;
    color: #334155;
}

.navbar-search-input:focus {
    border-color: #667eea;
    outline: none;
    background: white;
}

.navbar-search-input::placeholder {
    color: #94a3b8;
}

.navbar-search-button {
    position: absolute;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: #667eea;
    font-size: 1.2rem;
    cursor: pointer;
    padding: 0.25rem;
    transition: transform 0.2s;
}

.navbar-search-button:hover {
    transform: translateY(-50%) scale(1.1);
}

.navbar-search-button:active {
    transform: translateY(-50%) scale(0.95);
}

/* ========================================
   DARK MODE - NAVBAR SEARCH
   ======================================== */

[data-theme="dark"] .navbar-search-input {
    background: var(--color-bg-tertiary);
    border-color: var(--color-border-primary);
    color: var(--color-text-primary);
}

[data-theme="dark"] .navbar-search-input:focus {
    border-color: var(--color-primary);
    background: var(--color-bg-secondary);
}

[data-theme="dark"] .navbar-search-input::placeholder {
    color: var(--color-text-tertiary);
}

[data-theme="dark"] .navbar-search-button {
    color: var(--color-primary);
}

/* ========================================
   RESPONSIVE - TABLET (768px and below)
   ======================================== */

@media (max-width: 768px) {
    .navbar-search-form {
        order: 3; /* Move search below nav menu */
        width: 100%;
        max-width: 100%;
        margin: 0.5rem 0 0 0;
    }

    .navbar-search-input {
        font-size: 0.9rem;
        padding: 0.6rem 2.5rem 0.6rem 1rem;
    }

    /* Make nav-container wrap properly */
    .nav-container {
        flex-wrap: wrap;
    }

    /* Logo stays on left, hamburger on right */
    .logo {
        order: 1;
        flex: 1;
    }

    .mobile-menu-toggle {
        order: 2;
    }

    /* Nav menu takes full width when open */
    .nav-menu {
        order: 4;
        width: 100%;
    }
}

/* ========================================
   RESPONSIVE - MOBILE (480px and below)
   ======================================== */

@media (max-width: 480px) {
    .navbar-search-form {
        margin: 0.75rem 0 0 0;
    }

    .navbar-search-input {
        font-size: 0.85rem;
        padding: 0.5rem 2rem 0.5rem 0.75rem;
    }

    .navbar-search-button {
        font-size: 1rem;
        right: 0.25rem;
    }
}

/* ========================================
   IMPROVED NAVBAR MOBILE MENU
   ======================================== */

@media (max-width: 768px) {
    /* Ensure proper stacking order */
    .navbar {
        position: sticky;
        top: 0;
        z-index: 1000;
    }

    /* Container flexbox layout for mobile */
    .nav-container {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 0;
    }

    /* Top row: Logo and Hamburger */
    .logo {
        flex: 1 1 auto;
    }

    .mobile-menu-toggle {
        flex: 0 0 auto;
    }

    /* Second row: Search bar (always visible) */
    .navbar-search-form {
        flex: 1 1 100%;
        order: 3;
    }

    /* Third row: Nav menu (toggleable) */
    .nav-menu {
        flex: 1 1 100%;
        order: 4;
        flex-direction: column;
        gap: 0;
        margin-top: 0.5rem;
    }

    .nav-link {
        width: 100%;
        text-align: center;
        padding: 0.75rem 1rem;
        border-top: 1px solid var(--color-border-primary);
    }

    .nav-link:first-child {
        border-top: none;
    }
}
