/* ===== RESPONSIVE HEADER CSS ===== */
/* Supports all device sizes from 320px to 4K */

/* ===== EXTRA SMALL DEVICES (320px - 379px) ===== */
@media (max-width: 379px) {
    header {
        overflow-x: hidden;
    }

    header .flex.items-center.gap-2 {
        gap: 0.5rem;
    }

    header h1 {
        font-size: 0.875rem;
        line-height: 1.2;
    }

    header p {
        font-size: 0.625rem;
    }

    button#mobileMenuToggle {
        padding: 0.5rem;
    }

    button#mobileMenuToggle i {
        font-size: 1rem;
    }

    header .w-10 {
        width: 2.5rem;
        height: 2.5rem;
    }
}

/* ===== SMALL PHONES (380px - 479px) ===== */
@media (min-width: 380px) and (max-width: 479px) {
    header .flex.items-center.gap-2 {
        gap: 0.625rem;
    }

    header h1 {
        font-size: 1rem;
    }

    header p {
        font-size: 0.75rem;
    }

    header .w-10.xs\:w-12 {
        width: 3rem;
        height: 3rem;
    }

    header .px-2.xs\:px-3 {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    header .px-3.xs\:px-4 {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    header .py-2.xs\:py-2\.5 {
        padding-top: 0.625rem;
        padding-bottom: 0.625rem;
    }

    header .text-xs.xs\:text-xs {
        font-size: 0.75rem;
    }

    header .text-sm.xs\:text-base {
        font-size: 1rem;
    }

    #mobileMenu {
        width: 16rem;
    }

    #mobileMenu .p-3.xs\:p-4 {
        padding: 1rem;
    }

    #mobileMenu h1 {
        font-size: 1rem;
    }

    #mobileMenu p {
        font-size: 0.75rem;
    }

    #mobileMenu .w-10.xs\:w-12 {
        width: 3rem;
        height: 3rem;
    }
}

/* ===== STANDARD PHONES (480px - 639px) ===== */
@media (min-width: 480px) and (max-width: 639px) {
    header {
        padding: 0.5rem 1rem;
    }

    header h1 {
        font-size: 1.125rem;
    }

    header p {
        font-size: 0.875rem;
    }

    header .w-12.sm\:w-14 {
        width: 3.5rem;
        height: 3.5rem;
    }

    header .text-sm.xs\:text-base.sm\:text-xl {
        font-size: 1.25rem;
    }

    #mobileMenu {
        width: 18rem;
    }
}

/* ===== TABLETS & SMALL PAGES (640px - 1023px) ===== */
@media (min-width: 640px) and (max-width: 1023px) {
    header {
        padding: 0.75rem 1.5rem;
    }

    header h1 {
        font-size: 1.5rem;
    }

    header .w-14.sm\:w-14 {
        width: 3.5rem;
        height: 3.5rem;
    }

    header nav:not(.hidden) {
        gap: 1.5rem;
    }

    header .text-sm.xs\:text-base.sm\:text-xl {
        font-size: 1.25rem;
    }
}

/* ===== DESKTOPS (1024px+) ===== */
@media (min-width: 1024px) {
    header {
        padding: 1rem 2rem;
    }

    header h1 {
        font-size: 1.5rem;
    }

    header .text-sm.xs\:text-base.sm\:text-xl.md\:text-2xl {
        font-size: 1.5rem;
    }

    header nav {
        gap: 2rem;
    }

    #mobileMenu {
        display: none !important;
    }

    #mobileMenuToggle {
        display: none !important;
    }
}

/* ===== LARGE DESKTOPS (1440px+) ===== */
@media (min-width: 1440px) {
    header {
        padding: 1.5rem 2rem;
    }

    header .max-w-7xl {
        max-width: 100%;
        padding: 0 4rem;
    }

    header h1 {
        font-size: 1.875rem;
    }

    header nav {
        gap: 2.5rem;
    }
}

/* ===== UTILITY CLASSES ===== */
.line-clamp-1 {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.max-w-\[120px\] {
    max-width: 120px;
}

.max-w-\[90vw\] {
    max-width: 90vw;
}

.max-h-screen {
    max-height: 100vh;
}

.overflow-y-auto {
    overflow-y: auto;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

.min-w-0 {
    min-width: 0;
}

/* ===== ACCESSIBILITY & SMOOTH SCROLLING ===== */
header * {
    transition: all 0.3s ease;
}

@media (prefers-reduced-motion: reduce) {
    header * {
        transition: none;
    }
}

/* ===== PRINT STYLES ===== */
@media print {
    header {
        position: static;
        background: white;
        border: none;
        box-shadow: none;
    }

    #mobileMenu,
    #mobileMenuOverlay {
        display: none !important;
    }
}
