/* Responsive Styles - Complete Mobile/Tablet/Desktop Support */

/* ============================================
   MOBILE MENU SYSTEM
   ============================================ */
.mobile-menu-toggle {
    display: block;
    position: fixed;
    bottom: 1rem;
    right: 1rem;
    z-index: 200;
    background: var(--color-primary, #d4af37);
    color: #0a0a0f;
    border: none;
    border-radius: 50%;
    width: 56px;
    height: 56px;
    font-size: 1.5rem;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(212, 175, 55, 0.4);
    transition: all 0.3s;
}

@media (min-width: 1024px) {
    .mobile-menu-toggle {
        display: none;
    }
}

.mobile-menu-toggle:active {
    transform: scale(0.95);
}

.sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 140;
}

.sidebar-overlay.active {
    display: block;
}

@media (min-width: 1024px) {
    .sidebar-overlay {
        display: none !important;
    }
}

/* ============================================
   RESPONSIVE GRIDS
   ============================================ */
@media (max-width: 600px) {
    .grid-2,
    .grid-3,
    .grid-4 {
        grid-template-columns: 1fr;
    }
    
    .container {
        padding: 0 0.5rem;
    }
    
    .hide-mobile {
        display: none !important;
    }
}

@media (min-width: 768px) {
    .grid-2 {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .hide-tablet {
        display: none !important;
    }
}

@media (min-width: 1024px) {
    .grid-3 {
        grid-template-columns: repeat(3, 1fr);
    }
    
    .grid-4 {
        grid-template-columns: repeat(4, 1fr);
    }
    
    .hide-desktop {
        display: none !important;
    }
}

@media (min-width: 1440px) {
    .container {
        max-width: 1400px;
    }
}

/* ============================================
   RESPONSIVE TYPOGRAPHY
   ============================================ */
@media (max-width: 600px) {
    body {
        font-size: 14px;
    }
    
    h1 { font-size: 1.75rem; }
    h2 { font-size: 1.5rem; }
    h3 { font-size: 1.25rem; }
}

/* ============================================
   RESPONSIVE UTILITIES
   ============================================ */
.mobile-only {
    display: block;
}

@media (min-width: 768px) {
    .mobile-only {
        display: none;
    }
}

.tablet-up {
    display: none;
}

@media (min-width: 768px) {
    .tablet-up {
        display: block;
    }
}

.desktop-only {
    display: none;
}

@media (min-width: 1024px) {
    .desktop-only {
        display: block;
    }
}

/* Touch-friendly tap targets on mobile */
@media (max-width: 1023px) {
    button,
    a,
    .btn {
        min-height: 44px;
        min-width: 44px;
    }
}

/* Prevent horizontal scroll */
body {
    overflow-x: hidden;
}

/* Improve touch interactions */
button,
.btn,
a {
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

button:active,
.btn:active {
    transform: scale(0.98);
}
