/* Responsive Design Styles */

/* Mobile-first approach */
html {
    font-size: 16px;
}

/* Tablets (768px and up) */
@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
    
    .container {
        max-width: 750px;
    }
}

/* Medium screens (992px and up) */
@media (min-width: 992px) {
    html {
        font-size: 16px;
    }
    
    .container {
        max-width: 970px;
    }
}

/* Large screens (1200px and up) */
@media (min-width: 1200px) {
    html {
        font-size: 16px;
    }
    
    .container {
        max-width: 1170px;
    }
}

/* Extra large screens (1400px and up) */
@media (min-width: 1400px) {
    html {
        font-size: 16px;
    }
    
    .container {
        max-width: 1320px;
    }
}

/* Mobile-specific styles */
@media (max-width: 767px) {
    html {
        font-size: 14px;
    }
    
    body {
        padding: 0;
        margin: 0;
    }
    
    .container {
        padding: 0 15px;
    }
    
    /* Hide elements that are too complex for mobile */
    .desktop-only {
        display: none;
    }
    
    /* Stack columns on mobile */
    .row {
        flex-direction: column;
    }
    
    [class*="col-"] {
        width: 100% !important;
        margin-bottom: 15px;
    }
    
    /* Make tables responsive */
    table {
        font-size: 12px;
    }
    
    table th, table td {
        padding: 8px 4px;
    }
    
    /* Adjust headings for mobile */
    h1 {
        font-size: 24px;
    }
    
    h2 {
        font-size: 20px;
    }
    
    h3 {
        font-size: 18px;
    }
    
    /* Make buttons mobile-friendly */
    button, .btn {
        min-height: 44px;
        padding: 10px 15px;
        font-size: 14px;
    }
    
    /* Adjust forms for mobile */
    input, textarea, select {
        width: 100%;
        max-width: 100%;
        padding: 10px;
        font-size: 14px;
    }
    
    /* Hide mobile menu trigger */
    .mobile-menu-toggle {
        display: block;
    }
    
    nav {
        width: 100%;
    }
    
    /* Adjust modals/dialogs */
    .modal, .dialog {
        width: 90% !important;
        max-width: 95vw !important;
    }
}

/* Small phones (480px and down) */
@media (max-width: 480px) {
    html {
        font-size: 13px;
    }
    
    h1 {
        font-size: 20px;
    }
    
    h2 {
        font-size: 18px;
    }
    
    h3 {
        font-size: 16px;
    }
    
    body {
        line-height: 1.5;
    }
    
    .container {
        padding: 0 10px;
    }
}

/* Landscape orientation */
@media (max-width: 767px) and (orientation: landscape) {
    h1 {
        font-size: 20px;
    }
    
    h2 {
        font-size: 18px;
    }
    
    body {
        padding: 10px 0;
    }
}

/* Print styles */
@media print {
    body {
        background: white;
        color: black;
    }
    
    .no-print, .mobile-menu-toggle, nav {
        display: none;
    }
    
    a {
        text-decoration: underline;
    }
}

/* High DPI/Retina screens */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    /* Adjust for sharper display */
}

/* Touch device styles */
@media (hover: none) and (pointer: coarse) {
    button, .btn, a {
        min-height: 44px;
        min-width: 44px;
        padding: 12px;
    }
    
    input, textarea, select {
        padding: 12px;
        font-size: 16px; /* Prevents zoom on iOS */
    }
}
