/**
 * SystemDR Theme - Mobile Responsive Styles
 * Comprehensive responsive design for all pages
 */

/* ===================================
   GLOBAL CONTAINER & LAYOUT
   =================================== */

.container {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 40px;
}

@media (max-width: 1024px) {
    .container {
        padding: 0 24px !important;
    }
}

@media (max-width: 768px) {
    .container {
        padding: 0 20px !important;
    }
}

@media (max-width: 480px) {
    .container {
        padding: 0 16px !important;
    }
}

/* ===================================
   HEADER & NAVIGATION
   =================================== */
/* NOTE: Header and navigation styles have been moved to navbar.css
   to ensure proper caching and avoid conflicts. 
   
   Body padding-top has been removed to allow content to remain in
   its natural position. The navbar uses sticky positioning on mobile
   which doesn't require body padding adjustments. */

/* ===================================
   TYPOGRAPHY - RESPONSIVE
   =================================== */

/* Hero Headings */
h1, .hero-title {
    font-size: clamp(28px, 5vw, 48px);
    line-height: 1.2;
}

h2 {
    font-size: clamp(24px, 4vw, 36px);
    line-height: 1.3;
}

h3 {
    font-size: clamp(20px, 3vw, 28px);
    line-height: 1.4;
}

h4 {
    font-size: clamp(18px, 2.5vw, 22px);
    line-height: 1.4;
}

/* Body Text */
p, li {
    font-size: clamp(14px, 2vw, 16px);
    line-height: 1.6;
}

@media (max-width: 768px) {
    .hero-subtitle {
        font-size: 16px !important;
    }
}

/* ===================================
   BUTTONS - RESPONSIVE
   =================================== */

.btn {
    padding: 12px 24px;
    font-size: 15px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.3s ease;
}

.btn-large {
    padding: 14px 28px;
    font-size: 16px;
}

@media (max-width: 768px) {
    .btn {
        padding: 10px 20px;
        font-size: 14px;
    }
    
    .btn-large {
        padding: 12px 24px;
        font-size: 15px;
    }
}

@media (max-width: 480px) {
    .btn {
        width: 100%;
    }
}

/* ===================================
   GRID LAYOUTS - RESPONSIVE
   =================================== */

/* Generic Grid Containers */
[style*="grid-template-columns"] {
    display: grid;
}

@media (max-width: 1200px) {
    [style*="grid-template-columns: repeat(4"] {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (max-width: 900px) {
    [style*="grid-template-columns: repeat(3"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    
    [style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 640px) {
    [style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }
}

/* ===================================
   HERO SECTIONS - RESPONSIVE
   =================================== */

section[class*="hero"],
section[class*="-hero"] {
    padding: 0px 0 !important;
}

@media (max-width: 768px) {
    section[class*="hero"],
    section[class*="-hero"] {
        padding: 40px 0 !important;
    }
}

@media (max-width: 480px) {
    section[class*="hero"],
    section[class*="-hero"] {
        padding: 32px 0 !important;
    }
}

/* Hero Search Bar */
.hero-search form {
    display: flex;
    gap: 8px;
}

@media (max-width: 768px) {
    .hero-search form {
        flex-direction: column !important;
        gap: 12px !important;
        padding: 12px !important;
        border-radius: 16px !important;
    }
    
    .hero-search input {
        padding: 12px 16px !important;
    }
    
    .hero-search button {
        border-radius: 12px !important;
        width: 100% !important;
    }
}

/* Hero Actions */
.hero-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

@media (max-width: 640px) {
    .hero-actions {
        flex-direction: column;
        gap: 12px;
    }
    
    .hero-actions .btn {
        width: 100%;
    }
}

/* ===================================
   CONTACT PAGE - RESPONSIVE
   =================================== */

.contact-content > div > div {
    display: grid;
}

@media (max-width: 900px) {
    .contact-content [style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
        gap: 48px !important;
    }
}

@media (max-width: 768px) {
    .contact-hero h1 {
        font-size: 32px !important;
    }
    
    .contact-hero p {
        font-size: 16px !important;
    }
    
    .contact-form-section,
    .contact-info-section {
        padding: 0 !important;
    }
}

/* ===================================
   PRICING PAGE - RESPONSIVE
   =================================== */

.pricing-plans [style*="grid-template-columns"] {
    display: grid;
}

@media (max-width: 1024px) {
    .pricing-plans [style*="grid-template-columns"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .pricing-plans [style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
    
    .pricing-card {
        transform: scale(1) !important;
        max-width: 100%;
    }
    
    .pricing-hero h1 {
        font-size: 32px !important;
    }
    
    .pricing-hero p {
        font-size: 16px !important;
    }
}

/* FAQ Items */
@media (max-width: 768px) {
    .faq-question {
        padding: 16px 20px !important;
        font-size: 15px !important;
    }
    
    .faq-answer > div {
        padding: 0 20px 16px 20px !important;
    }
}

/* ===================================
   SERVICES PAGE - RESPONSIVE
   =================================== */

@media (max-width: 1024px) {
    .services-header h1 {
        font-size: 36px !important;
    }
    
    .service-card {
        max-width: 500px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .services-header {
        padding: 60px 0 !important;
    }
    
    .services-header h1 {
        font-size: 32px !important;
    }
    
    .services-header p {
        font-size: 16px !important;
    }
    
    #contact form [style*="grid-template-columns: 1fr 1fr"] {
        grid-template-columns: 1fr !important;
    }
}

/* ===================================
   FRONT PAGE - RESPONSIVE
   =================================== */

/* Course Slider */
.course-slider {
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.course-slide {
    scroll-snap-align: start;
}

/* Hero Courses Slider */
.hero-courses-track {
    align-items: stretch !important;
}

.hero-course-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

/* Non-logged-in User Slider (index.php) */
.courses-slider-track {
    align-items: stretch !important;
}

.slider-course-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

@media (max-width: 1024px) {
    .course-slide {
        min-width: 320px !important;
    }
}

@media (max-width: 768px) {
    #prevSlide,
    #nextSlide {
        display: none;
    }
    
    .course-slider {
        gap: 20px !important;
    }
    
    /* Remove fixed width for hero-course-card on mobile - let front-page.php handle it */
    /* .hero-course-card width is now handled in front-page.php with proper responsive rules */
    
    .slider-course-card {
        min-width: 280px !important;
        max-width: 280px !important;
        width: 280px !important;
    }
}

/* Featured Course */
.featured-course-home > div > div {
    display: grid;
}

@media (max-width: 1024px) {
    .featured-course-home [style*="grid-template-columns: 45% 55%"] {
        grid-template-columns: 1fr !important;
        max-height: none !important;
        min-height: auto !important;
    }
    
    .featured-course-home > div > div > div:first-child {
        min-height: 300px;
        max-height: 300px;
    }
    
    .featured-course-home > div > div > div:last-child {
        padding: 32px 24px !important;
    }
}

/* E-Books Grid */
.ebooks-section [style*="grid-template-columns"] {
    display: grid;
}

@media (max-width: 1024px) {
    .ebooks-section [style*="grid-template-columns"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 640px) {
    .ebooks-section [style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }
}

/* Build and Scale Section */
@media (max-width: 1024px) {
    .build-scale-section [style*="grid-template-columns: repeat(auto-fit"],
    .build-scale-section [style*="grid-template-columns: repeat(3"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .build-scale-section [style*="grid-template-columns: repeat(auto-fit"],
    .build-scale-section [style*="grid-template-columns: repeat(3"],
    .build-scale-section [style*="grid-template-columns: repeat(2"] {
        grid-template-columns: 1fr !important;
    }
    
    .build-scale-section .build-scale-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 24px !important;
        max-width: 100% !important;
        margin: 0 auto !important;
    }
    
    .build-scale-section .container {
        padding: 0 20px !important;
    }
    
    .skill-card {
        padding: 24px !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ===================================
   ARCHIVE PAGES - RESPONSIVE
   =================================== */

/* Featured Course Card */
.featured-course-card {
    display: grid;
}

@media (max-width: 1024px) {
    .featured-course-card {
        grid-template-columns: 1fr !important;
        max-height: none !important;
    }
    
    .featured-course-card > div:first-child {
        min-height: 300px;
    }
    
    .featured-course-card > div:last-child {
        padding: 32px 24px !important;
    }
}

@media (max-width: 768px) {
    .featured-course-card > div:last-child {
        padding: 24px 20px !important;
    }
    
    .featured-course-card h3 {
        font-size: 24px !important;
    }
}

/* Archive Layout: Sidebar + Content */
@media (max-width: 1024px) {
    .courses-main-section [style*="grid-template-columns: 280px"] {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    
    .filters-sidebar {
        position: sticky;
        top: 80px;
        background: var(--background-elevated, #fafbfc);
        padding: 20px;
        border-radius: 12px;
        border: 1px solid var(--border-color, #e2e8f0);
    }
}

@media (max-width: 768px) {
    .filters-sidebar {
        position: static;
        margin-bottom: 24px;
    }
}

/* Course Tabs */
.course-tabs > div {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; /* Firefox */
}

.course-tabs > div::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

@media (max-width: 768px) {
    .course-tabs {
        margin-bottom: 32px !important;
    }
    
    .course-tabs > div {
        gap: 16px !important;
        padding-bottom: 8px;
    }
    
    .archive-tab {
        font-size: 14px !important;
        white-space: nowrap;
        padding: 12px 4px !important;
        min-width: fit-content;
    }
}

/* Course Grid */
.courses-grid {
    display: grid;
    align-items: stretch;
}

.courses-grid .course-card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}

@media (max-width: 1200px) {
    .courses-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 768px) {
    .courses-grid {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
}

/* ===================================
   SINGLE COURSE PAGE - RESPONSIVE
   =================================== */

/* Course Content Grid */
.course-content-grid {
    display: grid;
}

@media (max-width: 1200px) {
    .course-content-grid {
        grid-template-columns: minmax(0, 1fr) 340px !important;
        gap: 32px !important;
    }
}

@media (max-width: 1024px) {
    .course-content-grid {
        grid-template-columns: minmax(0, 1fr) 320px !important;
        gap: 24px !important;
    }
}

@media (max-width: 900px) {
    .course-content-grid {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    
    .course-sidebar {
        position: static !important;
        max-width: 100%;
        margin: 32px auto 0;
    }
}

/* ===================================
   SINGLE EBOOK PAGE - RESPONSIVE
   =================================== */

.ebook-header-layout {
    display: grid;
}

@media (max-width: 1024px) {
    .ebook-header-layout {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
        padding: 0 24px !important;
    }
    
    .ebook-book-cover {
        max-width: 300px;
        margin: 0 auto;
    }
}

@media (max-width: 768px) {
    .ebook-header-layout {
        padding: 0 20px !important;
    }
    
    .ebook-header-compact {
        padding: 40px 0 !important;
    }
    
    .action-btn {
        font-size: 14px !important;
        padding: 12px 16px !important;
    }
}

/* ===================================
   SINGLE NEWSLETTER PAGE - RESPONSIVE
   =================================== */

.newsletter-layout {
    display: grid;
}

@media (max-width: 1024px) {
    .newsletter-layout {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    
    .newsletter-sidebar {
        position: static !important;
        padding: 24px !important;
    }
}

@media (max-width: 768px) {
    .newsletter-main {
        padding: 32px 24px !important;
    }
}

/* ===================================
   FOOTER - RESPONSIVE
   =================================== */

.footer-content {
    display: grid;
}

@media (max-width: 768px) {
    .footer-content {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 32px !important;
    }
}

@media (max-width: 640px) {
    .footer-content {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
    
    .site-footer {
        padding: 40px 0 0 !important;
    }
    
    .footer-section h3 {
        font-size: 14px !important;
    }
    
    .footer-bottom {
        padding: 24px 0 !important;
    }
}

/* ===================================
   DASHBOARD PAGE - RESPONSIVE
   =================================== */

@media (max-width: 1024px) {
    .dashboard-stats [style*="grid-template-columns"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 640px) {
    .dashboard-stats [style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
    }
}

/* ===================================
   FORMS - RESPONSIVE
   =================================== */

form input[type="text"],
form input[type="email"],
form input[type="password"],
form textarea,
form select {
    width: 100%;
}

@media (max-width: 768px) {
    form input,
    form textarea,
    form select {
        font-size: 16px !important; /* Prevents zoom on iOS */
    }
}

/* ===================================
   TABLES - RESPONSIVE
   =================================== */

@media (max-width: 768px) {
    table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

/* ===================================
   IMAGES - RESPONSIVE
   =================================== */

img {
    max-width: 100%;
    height: auto;
}

/* ===================================
   UTILITY CLASSES
   =================================== */

.mobile-only {
    display: none !important;
}

.desktop-only {
    display: block !important;
}

@media (max-width: 768px) {
    .mobile-only {
        display: block !important;
    }
    
    .desktop-only {
        display: none !important;
    }
}

/* Hide elements on mobile */
@media (max-width: 768px) {
    .hide-mobile {
        display: none !important;
    }
}

/* Show only on mobile */
@media (min-width: 769px) {
    .show-mobile {
        display: none !important;
    }
}

/* ===================================
   SPACING UTILITIES - RESPONSIVE
   =================================== */

@media (max-width: 768px) {
    section {
        padding: 40px 0 !important;
    }
    
    [style*="padding: 80px"] {
        padding: 40px 20px !important;
    }
    
    [style*="padding: 60px"] {
        padding: 32px 20px !important;
    }
    
    [style*="padding: 48px"] {
        padding: 24px 20px !important;
    }
}

/* ===================================
   OVERLAY & MODAL - RESPONSIVE
   =================================== */

@media (max-width: 768px) {
    .modal,
    .overlay {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }
}

/* ===================================
   COURSE CARDS - RESPONSIVE
   =================================== */

.course-card {
    transition: all 0.3s ease;
}

@media (max-width: 768px) {
    .course-card {
        max-width: 100%;
        display: flex !important;
        flex-direction: column !important;
        height: 100% !important;
    }
    
    .course-image-container {
        height: 180px !important;
        min-height: 180px !important;
        max-height: 180px !important;
    }
    
    .course-content {
        padding: 16px !important;
        display: flex !important;
        flex-direction: column !important;
        flex-grow: 1 !important;
    }
    
    .course-title {
        font-size: 16px !important;
    }
    
    .course-actions {
        margin-top: auto !important;
    }
}

/* ===================================
   SMOOTH SCROLLING
   =================================== */

html {
    scroll-behavior: smooth;
}

/* ===================================
   TOUCH TARGETS
   =================================== */

@media (max-width: 768px) {
    a, button, input[type="submit"], input[type="button"] {
        min-height: 44px; /* iOS recommendation */
        min-width: 44px;
    }
}

/* ===================================
   PREVENT HORIZONTAL SCROLL
   =================================== */

body {
    overflow-x: hidden;
}

/* ===================================
   RESPONSIVE IFRAME (Videos)
   =================================== */

.video-container {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 */
    height: 0;
    overflow: hidden;
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Make all embedded videos responsive */
iframe[src*="youtube.com"],
iframe[src*="vimeo.com"],
iframe[src*="dailymotion.com"] {
    max-width: 100%;
    height: auto;
}

/* Responsive video wrapper for embedded content */
@media (max-width: 768px) {
    iframe {
        max-width: 100%;
    }
    
    /* Ensure video containers maintain aspect ratio */
    [style*="aspect-ratio"] {
        aspect-ratio: 16 / 9 !important;
        height: auto !important;
    }
}

/* ===================================
   PRINT STYLES
   =================================== */

@media print {
    .site-header,
    .site-footer,
    .course-sidebar,
    .filters-sidebar,
    button,
    .btn {
        display: none !important;
    }
    
    body {
        font-size: 12pt;
    }
}








