/* 
 * Dalcart Mobile Responsive Fix - Critical Overrides
 * Fixes overlapping elements, broken navigation, and content issues on mobile
 * Load this LAST to override all conflicting styles
 */

/* ==================== MOBILE BREAKPOINTS ==================== */
/* Mobile: 320px - 768px */
/* Tablet: 769px - 1024px */
/* Desktop: 1025px+ */

/* ==================== BASE MOBILE RESET ==================== */
@media (max-width: 768px) {
    /* Prevent horizontal overflow */
    html, body {
        overflow-x: hidden !important;
        width: 100% !important;
        max-width: 100vw !important;
    }
    
    * {
        box-sizing: border-box !important;
    }
    
    /* Fix viewport issues */
    body {
        margin: 0 !important;
        padding: 0 !important;
        position: relative !important;
    }
}

/* ==================== HEADER & NAVIGATION FIX ==================== */
@media (max-width: 768px) {
    /* Header container */
    header {
        position: relative !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 1rem 0.5rem !important;
        overflow: visible !important;
    }
    
    /* Navigation */
    nav {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0.5rem !important;
        gap: 0.5rem !important;
        overflow: visible !important;
    }
    
    nav ul {
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        list-style: none !important;
        gap: 0.5rem !important;
    }
    
    nav li {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    nav a,
    .nav-link {
        display: block !important;
        width: 100% !important;
        padding: 0.75rem 1rem !important;
        text-align: center !important;
        border-radius: 4px !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
    
    /* Show nav toggle on mobile */
    .nav-toggle {
        display: block !important;
    }
    
    /* Hide nav by default on mobile */
    .header-nav {
        display: none !important;
        position: absolute !important;
        top: 100% !important;
        left: 0 !important;
        right: 0 !important;
        background: #1a2633 !important;
        padding: 1rem !important;
        box-shadow: 0 4px 10px rgba(0,0,0,0.2) !important;
    }
    
    .header-nav.active {
        display: block !important;
    }
    
    /* Brand/Logo */
    .branding,
    .brand,
    .logo-container {
        width: 100% !important;
        text-align: center !important;
        margin-bottom: 1rem !important;
    }
    
    .hero-logo,
    .logo {
        max-width: 200px !important;
        height: auto !important;
        margin: 0 auto !important;
    }
}

/* ==================== SIDEBAR FIX ==================== */
@media (max-width: 768px) {
    .sidebar {
        position: fixed !important;
        top: 0 !important;
        left: -100% !important; /* Hidden by default */
        width: 80% !important;
        max-width: 300px !important;
        height: 100vh !important;
        z-index: 10000 !important;
        transition: left 0.3s ease-in-out !important;
        overflow-y: auto !important;
    }
    
    .sidebar.active,
    .sidebar.open {
        left: 0 !important;
    }
    
    /* Navigation toggle button */
    .nav-toggle {
        display: none !important;
        background: none !important;
        border: none !important;
        cursor: pointer !important;
        padding: 10px !important;
        z-index: 1001 !important;
    }
    
    .hamburger {
        display: block !important;
        width: 25px !important;
        height: 3px !important;
        background: #fff !important;
        position: relative !important;
        transition: background 0.3s ease !important;
    }
    
    .hamburger::before,
    .hamburger::after {
        content: '' !important;
        display: block !important;
        width: 25px !important;
        height: 3px !important;
        background: #fff !important;
        position: absolute !important;
        transition: all 0.3s ease !important;
    }
    
    .hamburger::before {
        top: -8px !important;
    }
    
    .hamburger::after {
        top: 8px !important;
    }
    
    .nav-toggle.active .hamburger {
        background: transparent !important;
    }
    
    .nav-toggle.active .hamburger::before {
        transform: rotate(45deg) !important;
        top: 0 !important;
    }
    
    .nav-toggle.active .hamburger::after {
        transform: rotate(-45deg) !important;
        top: 0 !important;
    }
    
    /* Overlay when sidebar is open */
    .sidebar-overlay {
        display: none !important;
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: rgba(0, 0, 0, 0.5) !important;
        z-index: 9999 !important;
    }
    
    .sidebar.active + .sidebar-overlay,
    .sidebar.open + .sidebar-overlay {
        display: block !important;
    }
}

/* ==================== MAIN CONTENT FIX ==================== */
@media (max-width: 768px) {
    main,
    .main,
    .main-content,
    .content {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 1rem !important;
        position: relative !important;
        overflow-x: hidden !important;
    }
    
    .main-content-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
    }
    
    /* Container */
    .container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 1rem !important;
    }
}

/* ==================== HERO SECTION FIX ==================== */
@media (max-width: 768px) {
    .hero {
        width: 100% !important;
        max-width: 100% !important;
        margin: 1rem auto !important;
        padding: 1rem !important;
        text-align: center !important;
    }
    
    .hero h1 {
        font-size: 1.75rem !important;
        line-height: 1.3 !important;
        margin-bottom: 0.75rem !important;
    }
    
    .hero p {
        font-size: 1rem !important;
        line-height: 1.5 !important;
    }
    
    .hero-logo {
        max-width: 200px !important;
        margin: 0 auto 1rem auto !important;
    }
}

/* ==================== GRID & FLEX FIXES ==================== */
@media (max-width: 768px) {
    /* Convert grids to single column */
    .grid,
    .manufacturers-list,
    .product-grid,
    .card-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
        width: 100% !important;
    }
    
    /* Cards */
    .card,
    .manufacturer,
    .product-card {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 1rem 0 !important;
    }
    
    /* Flex containers */
    .flex-row {
        flex-direction: column !important;
        gap: 1rem !important;
    }
    
    .flex-col {
        width: 100% !important;
    }
}

/* ==================== TABLES FIX ==================== */
@media (max-width: 768px) {
    table {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
    
    thead {
        display: none !important; /* Hide headers on mobile */
    }
    
    tbody {
        display: block !important;
        width: 100% !important;
    }
    
    tr {
        display: block !important;
        margin-bottom: 1rem !important;
        border: 1px solid #e0e0e0 !important;
        border-radius: 4px !important;
        padding: 0.5rem !important;
    }
    
    td {
        display: block !important;
        text-align: left !important;
        padding: 0.5rem !important;
        border: none !important;
    }
    
    /* Show data labels */
    td:before {
        content: attr(data-label) !important;
        font-weight: bold !important;
        display: inline-block !important;
        width: 120px !important;
        margin-right: 0.5rem !important;
    }
}

/* ==================== FORMS FIX ==================== */
@media (max-width: 768px) {
    form {
        width: 100% !important;
        max-width: 100% !important;
    }
    
    input,
    textarea,
    select,
    button {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 16px !important; /* Prevent zoom on iOS */
    }
    
    label {
        display: block !important;
        width: 100% !important;
        margin-bottom: 0.25rem !important;
    }
    
    .form-group {
        width: 100% !important;
        margin-bottom: 1rem !important;
    }
    
    .form-row {
        flex-direction: column !important;
    }
}

/* ==================== BUTTONS FIX ==================== */
@media (max-width: 768px) {
    button,
    .btn,
    input[type="submit"],
    input[type="button"] {
        width: 100% !important;
        padding: 0.875rem 1rem !important;
        font-size: 1rem !important;
        margin-bottom: 0.5rem !important;
        min-height: 44px !important; /* Touch target size */
    }
    
    .btn-group {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.5rem !important;
    }
}

/* ==================== CHATBOX FIX ==================== */
@media (max-width: 768px) {
    #kimberley-chatbox,
    .chatbox,
    .chat-widget {
        position: fixed !important;
        bottom: 0 !important;
        right: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: 60vh !important;
        border-radius: 0 !important;
        z-index: 9997 !important;
    }
    
    .chatbox.minimized {
        height: 50px !important;
        bottom: 0 !important;
    }
    
    .chat-messages {
        max-height: 40vh !important;
    }
}

/* ==================== TICKER FIX ==================== */
@media (max-width: 768px) {
    #dalcart-footer-ticker,
    .ticker,
    .news-ticker {
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        height: 32px !important;
        font-size: 12px !important;
        z-index: 9998 !important;
    }
    
    #ticker-scroll-content {
        animation-duration: 35s !important;
    }
}

/* ==================== MODALS & POPUPS FIX ==================== */
@media (max-width: 768px) {
    .modal,
    .popup,
    .dialog {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        border-radius: 0 !important;
        overflow-y: auto !important;
    }
    
    .modal-content {
        width: 100% !important;
        padding: 1rem !important;
    }
}

/* ==================== IMAGES FIX ==================== */
@media (max-width: 768px) {
    img {
        max-width: 100% !important;
        height: auto !important;
    }
    
    .responsive-img {
        width: 100% !important;
        height: auto !important;
    }
}

/* ==================== TEXT FIXES ==================== */
@media (max-width: 768px) {
    h1 {
        font-size: 1.75rem !important;
        line-height: 1.3 !important;
    }
    
    h2 {
        font-size: 1.5rem !important;
        line-height: 1.3 !important;
    }
    
    h3 {
        font-size: 1.25rem !important;
        line-height: 1.4 !important;
    }
    
    h4, h5, h6 {
        font-size: 1.1rem !important;
        line-height: 1.4 !important;
    }
    
    p {
        font-size: 1rem !important;
        line-height: 1.6 !important;
    }
    
    /* Prevent text overflow */
    * {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
}

/* ==================== SPACING FIXES ==================== */
@media (max-width: 768px) {
    section {
        padding: 1.5rem 1rem !important;
        margin-bottom: 1rem !important;
    }
    
    .content-section {
        margin-bottom: 1.5rem !important;
    }
}

/* ==================== Z-INDEX HIERARCHY ==================== */
@media (max-width: 768px) {
    /* Ensure proper stacking order */
    .sidebar { z-index: 10000 !important; }
    .sidebar-toggle { z-index: 10001 !important; }
    .sidebar-overlay { z-index: 9999 !important; }
    #dalcart-footer-ticker { z-index: 9998 !important; }
    #kimberley-chatbox { z-index: 9997 !important; }
    .modal { z-index: 9996 !important; }
    header { z-index: 1000 !important; }
    nav { z-index: 999 !important; }
}

/* ==================== LANDSCAPE ORIENTATION ==================== */
@media (max-width: 768px) and (orientation: landscape) {
    .hero {
        padding: 0.5rem !important;
    }
    
    .hero h1 {
        font-size: 1.5rem !important;
    }
    
    nav ul {
        flex-direction: row !important;
        flex-wrap: wrap !important;
    }
    
    nav li {
        width: auto !important;
        flex: 1 1 45% !important;
    }
}

/* ==================== VERY SMALL SCREENS (< 480px) ==================== */
@media (max-width: 480px) {
    body {
        font-size: 14px !important;
    }
    
    h1 {
        font-size: 1.5rem !important;
    }
    
    h2 {
        font-size: 1.3rem !important;
    }
    
    main,
    .main {
        padding: 0.75rem !important;
    }
    
    .card,
    .manufacturer {
        padding: 1rem !important;
    }
    
    button,
    .btn {
        padding: 0.75rem 0.5rem !important;
        font-size: 0.9rem !important;
    }
}

/* ==================== ACCESSIBILITY - TOUCH TARGETS ==================== */
@media (max-width: 768px) {
    /* Ensure all interactive elements are at least 44x44px */
    a,
    button,
    input[type="submit"],
    input[type="button"],
    select {
        min-height: 44px !important;
        min-width: 44px !important;
        padding: 0.75rem !important;
    }
    
    /* Increase tap area for small icons */
    .icon,
    .btn-icon {
        padding: 12px !important;
    }
}

/* ==================== PRINT FIXES ==================== */
@media print {
    .sidebar,
    .sidebar-toggle,
    #kimberley-chatbox,
    #dalcart-footer-ticker,
    nav {
        display: none !important;
    }
    
    main {
        width: 100% !important;
        max-width: 100% !important;
    }
}
