/** * Responsive Design Styles * * Media queries and responsive adjustments * @package ROI_Theme * @since 1.0.0 */ /* Extra small devices (phones, less than 576px) */ @media (max-width: 575.98px) { :root { --bs-gutter-x: 1rem; } body { font-size: 14px; } h1 { font-size: 24px; } h2 { font-size: 20px; } h3 { font-size: 18px; } .container-fluid { padding: 0 10px; } /* Navigation adjustments */ .navbar { padding: 0.5rem 0; } .navbar-brand { font-size: 18px; } /* Content area */ main { padding: 0.5rem; } /* Sidebar */ .sidebar { margin-top: 2rem; } /* Tables become scrollable */ table { font-size: 12px; margin-bottom: 1rem; overflow-x: auto; } .table-responsive { margin-bottom: 1rem; } /* Buttons */ .btn { padding: 0.375rem 0.75rem; font-size: 14px; } .btn-lg { padding: 0.5rem 1rem; font-size: 16px; } /* Cards */ .card { margin-bottom: 1rem; } /* Forms */ .form-group { margin-bottom: 1rem; } .form-control { padding: 0.375rem 0.75rem; font-size: 16px; } /* Modals */ .modal-dialog { margin: 0.5rem; } .modal-content { border-radius: 4px; } /* Images */ img { max-width: 100%; height: auto; } /* Lists */ ul, ol { padding-left: 1.5rem; } /* Spacing utilities */ .mt-1, .my-1 { margin-top: 0.25rem !important; } .mb-1, .my-1 { margin-bottom: 0.25rem !important; } .p-1 { padding: 0.25rem !important; } } /* Small devices (landscape phones, 576px and up) */ @media (min-width: 576px) { body { font-size: 14px; } h1 { font-size: 28px; } h2 { font-size: 22px; } h3 { font-size: 18px; } } /* Medium devices (tablets, 768px and up) */ @media (min-width: 768px) { body { font-size: 15px; } h1 { font-size: 32px; } h2 { font-size: 26px; } h3 { font-size: 20px; } /* Two column layout for medium screens */ .row-md-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; } /* Navigation */ .navbar { padding: 1rem 0; } /* Sidebar */ .main-content { display: grid; grid-template-columns: 1fr 300px; gap: 2rem; } .main-content.no-sidebar { grid-template-columns: 1fr; } } /* Large devices (desktops, 992px and up) */ @media (min-width: 992px) { body { font-size: 16px; } h1 { font-size: 36px; } h2 { font-size: 28px; } h3 { font-size: 22px; } /* Three column layout for large screens */ .row-lg-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; } /* Main content with sidebars */ .main-content { display: grid; grid-template-columns: 1fr 300px; gap: 2rem; } .main-content.with-left-sidebar { grid-template-columns: 250px 1fr 300px; } .content-wrapper { max-width: 1200px; margin: 0 auto; } } /* Extra large devices (large desktops, 1200px and up) */ @media (min-width: 1200px) { body { font-size: 16px; } h1 { font-size: 40px; } h2 { font-size: 32px; } h3 { font-size: 24px; } .container { max-width: 1140px; } .container-lg { max-width: 1280px; } .container-xl { max-width: 1400px; } } /* XXL devices (1400px and up) */ @media (min-width: 1400px) { .container { max-width: 1320px; } .container-xl { max-width: 1500px; } .container-xxl { max-width: 1700px; } } /* Landscape orientation adjustments */ @media (orientation: landscape) and (max-height: 500px) { header { padding: 0.5rem 0; } main { padding: 0.5rem 0; } .btn { padding: 0.25rem 0.5rem; font-size: 12px; } } /* High DPI displays */ @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } } /* Touch devices */ @media (hover: none) and (pointer: coarse) { button, .btn, a { min-height: 44px; min-width: 44px; } input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; } } /* Reduced motion preferences */ @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } } /* Dark mode support */ @media (prefers-color-scheme: dark) { :root { color-scheme: dark; } body { background-color: #1a1a1a; color: #e0e0e0; } a { color: #64b5f6; } a:visited { color: #ba68c8; } code, pre { background-color: #2d2d2d; color: #e0e0e0; } }