/* ============================================
   RESPONSIVE FIXES 2026 - Cross-Device Layout Corrections
   Version: 1.0.0 | Date: 2026-02-04

   This file MUST load LAST to override all other CSS files.
   Fixes:
   1. Fixed pixel widths converted to relative units
   2. Enhanced media queries for proper stacking
   3. Improved font readability on mobile
   4. Grid/Flexbox improvements for fluid layouts
   ============================================ */

/* ============================================
   ROOT VARIABLES - Mobile-First Approach
   ============================================ */
:root {
    --container-padding-mobile: 1rem;
    --container-padding-tablet: 1.5rem;
    --container-padding-desktop: 2rem;
    --min-touch-target: 44px;
    --readable-font-size: 16px;
    --readable-line-height: 1.6;
}

/* ============================================
   SAFARI iOS — POSITION STICKY POLYFILL
   Safari < 15 requires -webkit-sticky prefix.
   Already applied in header-v2-fixed.css for
   .main-header, but repeated here for any
   other sticky elements added in future pages.
   ============================================ */
[class*="sticky"],
.sticky-top,
.position-sticky {
    position: -webkit-sticky;
    position: sticky;
}

/* ============================================
   SAFARI iOS — USER SELECT PREFIX
   ============================================ */
.il-trust-badge,
[class*="no-select"],
[class*="unselectable"] {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* ============================================
   SAFARI iOS — FLEX GAP FALLBACK
   Safari < 14.1 does not support gap in flexbox.
   We use margin-based fallback for critical rows.
   ============================================ */
@supports not (gap: 1rem) {
    .il-hero-stats {
        display: -webkit-box;
        display: -webkit-flex;
        display: flex;
    }
    .il-hero-stats .il-stat + .il-stat {
        margin-left: 3rem;
    }
    .il-trust-logos .il-trust-badge + .il-trust-badge {
        margin-left: 1.25rem;
    }
}

/* ============================================
   SAFARI iOS — BACKDROP FILTER PREFIX
   All backdrop-filter declarations need
   -webkit-backdrop-filter for Safari support.
   ============================================ */
.il-ai-card {
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}

/* ============================================
   SAFARI iOS — SCROLL ANCHORING
   Prevents position jumps when DOM above the
   visible area changes (Blazor async renders).
   ============================================ */
html {
    overflow-anchor: none;
}

/* ============================================
   CRITICAL: Mobile Menu Content Override (NO MEDIA QUERY)
   This MUST be outside any media query to override header-v2-fixed.css
   which sets transform: translateX(100%) globally
   ============================================ */
html body .mobile-menu-panel.open .mobile-menu-content.mobile-menu-content.mobile-menu-content,
html body nav.mobile-menu-panel.open .mobile-menu-content.mobile-menu-content,
.mobile-menu-panel.open .mobile-menu-content.mobile-menu-content.mobile-menu-content {
    position: static !important;
    top: unset !important;
    left: unset !important;
    right: unset !important;
    bottom: unset !important;
    transform: none !important;
    -webkit-transform: none !important;
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 0 !important;
    background: #ffffff !important;
    width: 100% !important;
    max-width: 100% !important;
    will-change: auto !important;
    transition: none !important;
}

/* ============================================
   1. HEADER CONTAINER - Fluid Width Fix
   ============================================ */

/* Remove fixed pixel widths from header grid */
.main-header-container {
    max-width: 100% !important;
    padding-left: var(--container-padding-mobile) !important;
    padding-right: var(--container-padding-mobile) !important;
}

@media (min-width: 768px) {
    .main-header-container {
        padding-left: var(--container-padding-tablet) !important;
        padding-right: var(--container-padding-tablet) !important;
    }
}

@media (min-width: 1024px) {
    .main-header-container {
        max-width: 1400px !important;
        padding-left: var(--container-padding-desktop) !important;
        padding-right: var(--container-padding-desktop) !important;
        margin: 0 auto !important;
    }
}

/* ============================================
   2. SEARCH SECTION - Fluid Width
   ============================================ */

/* Convert fixed 400px to fluid percentage */
.header-search-section {
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
}

@media (min-width: 768px) {
    .header-search-section {
        max-width: 50% !important;
        min-width: 180px !important;
    }
}

@media (min-width: 1024px) {
    .header-search-section {
        max-width: 400px !important;
        min-width: 250px !important;
    }
}

/* ============================================
   3. CATEGORIES DROPDOWN - Responsive Width
   ============================================ */

/* Convert fixed 520px dropdown to responsive */
.categories-menu,
.dropdown-menu.categories-menu {
    width: 95vw !important;
    max-width: 560px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
}

@media (max-width: 768px) {
    .categories-menu,
    .dropdown-menu.categories-menu {
        width: calc(100vw - 2rem) !important;
        max-width: none !important;
        left: 1rem !important;
        right: 1rem !important;
        transform: none !important;
        position: fixed !important;
        top: auto !important;
        bottom: 0 !important;
        border-radius: 1rem 1rem 0 0 !important;
        max-height: 70vh !important;
        overflow-y: auto !important;
    }
}

/* Categories Grid - Responsive columns */
.categories-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
    gap: 0.75rem !important;
    padding: 1rem !important;
}

@media (max-width: 480px) {
    .categories-grid {
        grid-template-columns: 1fr !important;
        gap: 0.5rem !important;
    }
}

/* ============================================
   4. HERO SECTION - Fluid Dimensions
   ============================================ */

/* Convert fixed 400px hero image container to fluid */
.hero-image-container {
    width: min(100%, 400px) !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
}

@media (max-width: 768px) {
    .hero-image-container {
        width: min(80vw, 300px) !important;
        margin: 2rem auto !important;
    }
}

@media (max-width: 480px) {
    .hero-image-container {
        width: min(70vw, 250px) !important;
    }
}

/* Hero Content - Stack on mobile */
.hero-content,
.hero-container {
    width: 100% !important;
    max-width: 100% !important;
}

@media (max-width: 768px) {
    .hero-section .container,
    .hero-section .row {
        flex-direction: column !important;
    }

    .hero-content {
        order: 1 !important;
        text-align: center !important;
        padding: 0 var(--container-padding-mobile) !important;
    }

    .hero-visual {
        order: 2 !important;
        margin-top: 2rem !important;
    }
}

/* ============================================
   5. FOOTER - Responsive Grid
   ============================================ */

/* Convert fixed grid fractions to auto-fit */
.footer-content {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 2rem !important;
}

@media (max-width: 768px) {
    .footer-content {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
        text-align: center !important;
    }

    .footer-brand {
        grid-column: 1 !important;
    }

    .footer-section {
        padding: 0 !important;
    }
}

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

/* ============================================
   6. TYPOGRAPHY - Readable Fonts on Mobile
   ============================================ */

@media (max-width: 768px) {
    /* Ensure minimum readable font size */
    body {
        font-size: var(--readable-font-size) !important;
        line-height: var(--readable-line-height) !important;
    }

    /* Headings - Fluid typography with clamp() */
    h1, .hero-title {
        font-size: clamp(1.5rem, 5vw + 0.5rem, 2.5rem) !important;
        line-height: 1.2 !important;
    }

    h2, .section-title {
        font-size: clamp(1.25rem, 4vw + 0.25rem, 2rem) !important;
        line-height: 1.3 !important;
    }

    h3 {
        font-size: clamp(1.1rem, 3vw + 0.2rem, 1.5rem) !important;
        line-height: 1.3 !important;
    }

    h4, h5, h6 {
        font-size: clamp(1rem, 2.5vw + 0.1rem, 1.25rem) !important;
        line-height: 1.4 !important;
    }

    /* Body text - ensure readability */
    p, li, span, a {
        font-size: max(0.9rem, 14px) !important;
        line-height: 1.6 !important;
    }

    /* Prevent iOS zoom on form inputs */
    input, textarea, select {
        font-size: 16px !important;
    }
}

/* ============================================
   7. CARDS & GRIDS - Stacking on Mobile
   ============================================ */

/* Course cards grid */
.courses-grid,
.course-grid,
[class*="course-cards"] {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 1.5rem !important;
}

@media (max-width: 768px) {
    .courses-grid,
    .course-grid,
    [class*="course-cards"] {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        padding: 0 var(--container-padding-mobile) !important;
    }
}

/* Feature cards grid */
.features-grid,
.steps-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
    gap: 1.5rem !important;
}

@media (max-width: 768px) {
    .features-grid,
    .steps-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }
}

/* Stats grid */
.stats-container,
.hero-stats {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)) !important;
    gap: 1rem !important;
}

@media (max-width: 480px) {
    .stats-container,
    .hero-stats {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.75rem !important;
    }
}

/* ============================================
   8. BUTTONS - Touch-Friendly Sizing
   ============================================ */

@media (max-width: 768px) {
    .btn,
    button,
    a.btn,
    input[type="submit"],
    input[type="button"] {
        min-height: var(--min-touch-target) !important;
        min-width: var(--min-touch-target) !important;
        padding: 0.75rem 1.25rem !important;
        font-size: max(0.875rem, 14px) !important;
    }

    /* Full-width buttons in hero and CTA areas */
    .hero-cta .btn,
    .hero-actions .btn {
        width: 100% !important;
        max-width: 320px !important;
        margin: 0 auto !important;
    }

    /* Auth buttons - compact but touchable */
    .auth-buttons .btn {
        padding: 0.5rem 1rem !important;
        min-width: auto !important;
    }
}

/* ============================================
   9. MODAL & OVERLAY - Full Screen on Mobile
   ============================================ */

@media (max-width: 768px) {
    .modal-dialog {
        margin: 0.5rem !important;
        max-width: calc(100vw - 1rem) !important;
        width: calc(100vw - 1rem) !important;
    }

    .modal-body {
        max-height: calc(100vh - 200px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Full-screen modal option */
    .modal-fullscreen-mobile .modal-dialog {
        margin: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        height: 100% !important;
    }

    .modal-fullscreen-mobile .modal-content {
        border-radius: 0 !important;
        height: 100% !important;
    }
}

/* ============================================
   10. NAVIGATION - Mobile Menu Panel
   CRITICAL FIX v2: Menu bianco senza contenuti
   Using RIGHT positioning (same as header-enhancements.css)
   with TRIPLE class specificity to override all other CSS
   ============================================ */

/* Triple class specificity to override header-enhancements.css */
@media (max-width: 768px) {
    /* Mobile Menu Backdrop - high specificity */
    body .mobile-menu-backdrop.mobile-menu-backdrop.mobile-menu-backdrop {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100vw !important;
        height: 100vh !important;
        background: rgba(0, 0, 0, 0.5) !important;
        z-index: 199998 !important;
        opacity: 1 !important;
        visibility: visible !important;
        display: block !important;
    }

    /* Mobile Menu Panel - SLIDE FROM RIGHT using RIGHT property */
    /* Triple specificity to override header-enhancements.css */
    body nav.mobile-menu-panel.mobile-menu-panel.mobile-menu-panel,
    body .mobile-menu-panel.mobile-menu-panel.mobile-menu-panel {
        position: fixed !important;
        top: 0 !important;
        right: -100% !important;
        left: auto !important;
        width: min(320px, 85vw) !important;
        height: 100vh !important;
        height: 100dvh !important;
        background: #ffffff !important;
        z-index: 199999 !important;
        box-shadow: -4px 0 24px rgba(0, 0, 0, 0.2) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        display: flex !important;
        flex-direction: column !important;
        transform: none !important;
        transition: right 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
        visibility: visible !important;
    }

    /* Menu panel OPEN state - slide in */
    body nav.mobile-menu-panel.mobile-menu-panel.mobile-menu-panel.open,
    body .mobile-menu-panel.mobile-menu-panel.mobile-menu-panel.open {
        right: 0 !important;
        visibility: visible !important;
    }

    /* Mobile Menu Header - force visibility */
    body .mobile-menu-panel .mobile-menu-header.mobile-menu-header,
    body nav.mobile-menu-panel .mobile-menu-header {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 16px 20px !important;
        min-height: 60px !important;
        border-bottom: 1px solid #e5e7eb !important;
        background: #f7f9fa !important;
        flex-shrink: 0 !important;
    }

    body .mobile-menu-panel .mobile-menu-title,
    body nav.mobile-menu-panel .mobile-menu-title {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        color: #1c1d1f !important;
    }

    body .mobile-menu-panel .mobile-menu-close,
    body nav.mobile-menu-panel .mobile-menu-close {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        align-items: center !important;
        justify-content: center !important;
        width: 36px !important;
        height: 36px !important;
        border: none !important;
        border-radius: 50% !important;
        background: #ffffff !important;
        color: #6b7280 !important;
        font-size: 18px !important;
        cursor: pointer !important;
    }

    body .mobile-menu-panel .mobile-menu-close:active {
        background: #e5e7eb !important;
    }

    /* Mobile Menu Content Container - CRITICAL */
    /* MUST override position: fixed and transform from header-clean.css and header-v2-fixed.css */
    /* Using html body for maximum specificity */
    html body .mobile-menu-panel .mobile-menu-content.mobile-menu-content.mobile-menu-content,
    html body nav.mobile-menu-panel .mobile-menu-content.mobile-menu-content,
    html body .mobile-menu-panel .mobile-menu-content,
    .mobile-menu-content.mobile-menu-content.mobile-menu-content {
        position: static !important;
        top: unset !important;
        left: unset !important;
        right: unset !important;
        bottom: unset !important;
        transform: none !important;
        -webkit-transform: none !important;
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-direction: column !important;
        flex: 1 1 auto !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 0 !important;
        background: #ffffff !important;
        width: 100% !important;
        will-change: auto !important;
    }

    /* Mobile Search Form */
    body .mobile-menu-panel .mobile-search-form,
    body nav.mobile-menu-panel .mobile-search-form {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-direction: row !important;
        padding: 16px !important;
        gap: 8px !important;
        background: #ffffff !important;
        border-bottom: 1px solid #f2f3f5 !important;
    }

    body .mobile-menu-panel .mobile-search-input,
    body nav.mobile-menu-panel .mobile-search-input {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex: 1 !important;
        height: 44px !important;
        padding: 0 16px !important;
        border: 1px solid #e5e7eb !important;
        border-radius: 8px !important;
        background: #f7f9fa !important;
        font-size: 16px !important;
        color: #1c1d1f !important;
    }

    body .mobile-menu-panel .mobile-search-input::placeholder {
        color: #9ca3af !important;
    }

    body .mobile-menu-panel .mobile-search-btn,
    body nav.mobile-menu-panel .mobile-search-btn {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        border: none !important;
        border-radius: 8px !important;
        background: #6C3CE1 !important;
        color: #ffffff !important;
        font-size: 16px !important;
        cursor: pointer !important;
    }

    /* Navigation Sections - CRITICAL for visibility */
    body .mobile-menu-panel .mobile-nav-section.mobile-nav-section,
    body nav.mobile-menu-panel .mobile-nav-section {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-direction: column !important;
        padding: 8px 0 !important;
        border-bottom: 1px solid #f2f3f5 !important;
        background: #ffffff !important;
    }

    body .mobile-menu-panel .mobile-nav-section:last-child {
        border-bottom: none !important;
    }

    body .mobile-menu-panel .mobile-nav-section-title.mobile-nav-section-title,
    body nav.mobile-menu-panel .mobile-nav-section-title {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        padding: 12px 20px 8px !important;
        font-size: 11px !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
        color: #6b7280 !important;
        background: #ffffff !important;
    }

    /* Navigation Links - CRITICAL: Text must be visible */
    body .mobile-menu-panel .mobile-nav-link.mobile-nav-link,
    body .mobile-menu-panel a.mobile-nav-link,
    body .mobile-menu-panel button.mobile-nav-link,
    body nav.mobile-menu-panel .mobile-nav-link,
    body nav.mobile-menu-panel a.mobile-nav-link {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 14px !important;
        padding: 14px 20px !important;
        min-height: 48px !important;
        font-size: 15px !important;
        font-weight: 500 !important;
        color: #1c1d1f !important;
        text-decoration: none !important;
        background: #ffffff !important;
        border: none !important;
        cursor: pointer !important;
        width: 100% !important;
        text-align: left !important;
        transition: background 0.15s ease !important;
    }

    body .mobile-menu-panel .mobile-nav-link:hover,
    body .mobile-menu-panel .mobile-nav-link:focus {
        background: #f7f9fa !important;
        color: #6C3CE1 !important;
        text-decoration: none !important;
    }

    body .mobile-menu-panel .mobile-nav-link:active {
        background: #f2f3f5 !important;
    }

    /* Link Icons - ensure visibility */
    body .mobile-menu-panel .mobile-nav-link i,
    body .mobile-menu-panel .mobile-nav-link .fa,
    body .mobile-menu-panel .mobile-nav-link .fas,
    body .mobile-menu-panel .mobile-nav-link .fab,
    body .mobile-menu-panel .mobile-nav-link .far {
        display: inline-flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 20px !important;
        min-width: 20px !important;
        height: 20px !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 16px !important;
        color: #6b7280 !important;
        flex-shrink: 0 !important;
    }

    body .mobile-menu-panel .mobile-nav-link:hover i,
    body .mobile-menu-panel .mobile-nav-link:focus i {
        color: #6C3CE1 !important;
    }

    /* Link Text - CRITICAL for text visibility */
    body .mobile-menu-panel .mobile-nav-link span,
    body nav.mobile-menu-panel .mobile-nav-link span {
        display: inline !important;
        visibility: visible !important;
        opacity: 1 !important;
        color: inherit !important;
        font-size: inherit !important;
    }

    /* Mobile User Section */
    body .mobile-menu-panel .mobile-user-section {
        background: #f7f9fa !important;
    }

    body .mobile-menu-panel .mobile-user-info {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        align-items: center !important;
        gap: 12px !important;
        padding: 16px 20px !important;
        border-bottom: 1px solid #e5e7eb !important;
        background: #f7f9fa !important;
    }

    body .mobile-menu-panel .mobile-user-avatar {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        width: 40px !important;
        height: 40px !important;
        border-radius: 50% !important;
        background: #6C3CE1 !important;
        align-items: center !important;
        justify-content: center !important;
        color: #ffffff !important;
        font-size: 18px !important;
    }

    body .mobile-menu-panel .mobile-user-name {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        color: #1c1d1f !important;
    }

    /* Mobile Auth Section */
    body .mobile-menu-panel .mobile-auth-section.mobile-auth-section,
    body nav.mobile-menu-panel .mobile-auth-section {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        flex-direction: column !important;
        gap: 12px !important;
        padding: 20px !important;
        background: #f7f9fa !important;
    }

    body .mobile-menu-panel .mobile-auth-btn.mobile-auth-btn,
    body .mobile-menu-panel a.mobile-auth-btn {
        display: flex !important;
        visibility: visible !important;
        opacity: 1 !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        padding: 14px 20px !important;
        border-radius: 8px !important;
        font-size: 15px !important;
        font-weight: 600 !important;
        text-decoration: none !important;
        min-height: 48px !important;
        cursor: pointer !important;
    }

    body .mobile-menu-panel .mobile-login-btn.mobile-login-btn {
        background: #ffffff !important;
        border: 2px solid #e5e7eb !important;
        color: #1c1d1f !important;
    }

    body .mobile-menu-panel .mobile-login-btn:hover {
        border-color: #6C3CE1 !important;
        color: #6C3CE1 !important;
    }

    body .mobile-menu-panel .mobile-signup-btn.mobile-signup-btn {
        background: #6C3CE1 !important;
        border: none !important;
        color: #ffffff !important;
    }

    body .mobile-menu-panel .mobile-signup-btn:hover {
        background: #8710d8 !important;
    }

    /* Logout Button */
    body .mobile-menu-panel .mobile-logout-btn {
        color: #dc2626 !important;
    }

    body .mobile-menu-panel .mobile-logout-btn:hover {
        background: #fef2f2 !important;
    }

    body .mobile-menu-panel .mobile-logout-btn i {
        color: #dc2626 !important;
    }
}

/* ============================================
   11. IMAGES - Responsive by Default
   ============================================ */

img,
video,
iframe,
embed,
object {
    max-width: 100% !important;
    height: auto !important;
}

/* Ensure course thumbnails maintain aspect ratio */
.course-image img,
.course-card img,
.card-img-top {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
    object-fit: cover !important;
}

/* ============================================
   12. TABLES - Scrollable on Mobile
   ============================================ */

@media (max-width: 768px) {
    .table-responsive {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    table {
        min-width: 600px !important;
    }

    th, td {
        padding: 0.75rem 0.5rem !important;
        font-size: 0.875rem !important;
    }
}

/* ============================================
   13. FORMS - Full Width on Mobile
   ============================================ */

@media (max-width: 768px) {
    .form-control,
    .form-select,
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="search"],
    input[type="number"],
    textarea {
        width: 100% !important;
        font-size: 16px !important; /* Prevents iOS zoom */
        padding: 0.75rem 1rem !important;
        min-height: var(--min-touch-target) !important;
    }

    .form-group,
    .mb-3 {
        margin-bottom: 1rem !important;
    }

    .form-label {
        font-size: 0.9rem !important;
        font-weight: 600 !important;
        margin-bottom: 0.5rem !important;
    }
}

/* ============================================
   14. SPACING UTILITIES - Mobile Overrides
   ============================================ */

@media (max-width: 768px) {
    /* Reduce excessive padding on mobile */
    .p-5 { padding: 1.5rem !important; }
    .p-4 { padding: 1.25rem !important; }
    .py-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
    .py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
    .px-5 { padding-left: 1rem !important; padding-right: 1rem !important; }
    .px-4 { padding-left: 1rem !important; padding-right: 1rem !important; }

    /* Sections - breathing room */
    section {
        padding-left: var(--container-padding-mobile) !important;
        padding-right: var(--container-padding-mobile) !important;
    }

    .container,
    .container-fluid {
        padding-left: var(--container-padding-mobile) !important;
        padding-right: var(--container-padding-mobile) !important;
    }
}

/* ============================================
   15. PREVENT HORIZONTAL OVERFLOW
   ============================================ */

html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

.main-layout,
.main-content,
.content-container,
main,
section {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

/* Catch any elements causing overflow */
* {
    max-width: 100%;
}

/* Exception for specific elements that need wider */
.table-responsive table,
pre,
code,
.categories-mega-dropdown {
    max-width: none;
}

/* ============================================
   16. ACCESSIBILITY - Touch & Focus
   ============================================ */

@media (max-width: 768px) {
    /* Larger touch targets */
    a, button, [role="button"], [onclick] {
        min-height: var(--min-touch-target);
    }

    /* Remove hover effects on touch devices */
    @media (hover: none) {
        .btn:hover,
        .card:hover,
        .course-card:hover {
            transform: none !important;
            box-shadow: inherit !important;
        }
    }

    /* Active state for touch feedback */
    .btn:active,
    a:active {
        opacity: 0.8 !important;
        transform: scale(0.98) !important;
    }
}

/* Focus visible for keyboard navigation */
:focus-visible {
    outline: 2px solid var(--primary-color, #6C3CE1) !important;
    outline-offset: 2px !important;
}

/* ============================================
   17. LANDSCAPE ORIENTATION FIXES
   ============================================ */

@media (max-width: 900px) and (orientation: landscape) {
    .hero-section {
        min-height: auto !important;
        padding: 3rem 0 !important;
    }

    .modal-body {
        max-height: 60vh !important;
    }

    .mobile-menu-panel {
        width: min(280px, 50vw) !important;
    }
}

/* ============================================
   18. PRINT STYLES
   ============================================ */

@media print {
    .main-header,
    .mobile-menu-toggle,
    .mobile-menu-panel,
    .cookie-wall-overlay,
    .chatbot-container,
    footer {
        display: none !important;
    }

    .main-content {
        padding-top: 0 !important;
    }

    * {
        box-shadow: none !important;
        text-shadow: none !important;
    }
}

/* ============================================
   19. REDUCED MOTION SUPPORT
   ============================================ */

@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;
    }
}

/* ============================================
   20. HIGH CONTRAST MODE
   ============================================ */

@media (prefers-contrast: high) {
    .btn {
        border: 2px solid currentColor !important;
    }

    .card,
    .course-card {
        border: 2px solid currentColor !important;
    }

    a {
        text-decoration: underline !important;
    }
}

/* ============================================
   21. XS BREAKPOINT (< 576px)
   Extra-small phones: Galaxy S8, iPhone SE,
   older Android devices.
   ============================================ */

@media (max-width: 575px) {
    /* Reduce hero padding to xs safe values */
    .il-hero {
        padding: 2.5rem 1rem 2rem !important;
    }

    .il-hero-headline {
        font-size: 1.75rem !important;
        letter-spacing: -0.01em !important;
    }

    .il-hero-subtitle {
        font-size: 0.9375rem !important;
    }

    /* Single column grids on very small screens */
    .il-courses-grid,
    .il-ai-grid,
    .il-testimonials-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    /* Full-width buttons */
    .il-btn-large,
    .il-hero-cta {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 48px !important;
    }

    /* Stat row stacks vertically */
    .il-hero-stats {
        -webkit-flex-direction: column !important;
        flex-direction: column !important;
        gap: 1rem !important;
        align-items: center !important;
    }

    .il-stat-divider {
        display: none !important;
    }

    /* Search form always stacked on xs */
    .il-search-form {
        -webkit-flex-direction: column !important;
        flex-direction: column !important;
        border-radius: 1rem !important;
    }

    .il-search-input {
        border-radius: 1rem 1rem 0 0 !important;
        font-size: 16px !important; /* prevent iOS zoom */
    }

    .il-search-btn {
        border-radius: 0 0 1rem 1rem !important;
        min-height: 48px !important;
    }

    /* Section padding */
    .il-courses,
    .il-ai-features,
    .il-how-it-works,
    .il-testimonials,
    .il-newsletter,
    .il-final-cta {
        padding: 2.5rem 0 !important;
    }

    .il-trust {
        padding: 1.5rem 0 !important;
    }

    /* Container padding */
    .il-container {
        padding: 0 0.875rem !important;
    }

    /* Trust badges wrap tightly */
    .il-trust-logos {
        gap: 0.5rem !important;
    }
    .il-trust-badge {
        font-size: 0.75rem !important;
        padding: 0.3125rem 0.75rem !important;
    }

    /* Newsletter form stacks */
    .il-newsletter-input-group {
        -webkit-flex-direction: column !important;
        flex-direction: column !important;
        border-radius: 1rem !important;
    }
    .il-newsletter-input {
        border-radius: 1rem 1rem 0 0 !important;
        font-size: 16px !important;
    }
    .il-newsletter-btn {
        border-radius: 0 0 1rem 1rem !important;
        min-height: 48px !important;
    }

    /* Header grid collapses to logo + hamburger only */
    .main-header-container {
        grid-template-columns: 1fr auto !important;
        gap: 0 !important;
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }

    /* Footer stacks completely */
    .footer-content {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
    }

    .footer-bottom-content {
        -webkit-flex-direction: column !important;
        flex-direction: column !important;
        gap: 0.75rem !important;
        text-align: center !important;
    }

    .footer-badges {
        -webkit-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
        -webkit-justify-content: center !important;
        justify-content: center !important;
    }
}

/* ============================================
   22. SAFARI iOS — ADDITIONAL FIXES
   ============================================ */

/* Safari ignores overflow:hidden on transformed elements.
   Use clip instead where a containing block is needed. */
.il-course-card,
.il-testimonial-card,
.il-ai-card {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* Disable hover card lift on touch devices to prevent
   the card staying "lifted" after a tap on iOS Safari */
@media (hover: none) and (pointer: coarse) {
    .il-course-card:hover,
    .il-testimonial-card:hover,
    .il-ai-card:hover {
        -webkit-transform: none !important;
        transform: none !important;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04) !important;
    }
}

/* Tap highlight colour — use brand colour at low opacity instead of the
   default blue/gray rectangle that iOS shows on tappable elements */
a,
button,
[role="button"] {
    -webkit-tap-highlight-color: rgba(108, 60, 225, 0.12);
    tap-highlight-color: rgba(108, 60, 225, 0.12);
}

/* Remove tap highlight entirely from non-interactive decorative elements */
.il-hero-glow,
.il-step-connector,
.il-stat-divider {
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
    pointer-events: none;
}

/* ============================================
   23. ANDROID CHROME — ADDITIONAL FIXES
   ============================================ */

/* Android Chrome shows a blue outline on focused inputs by default.
   Replace with brand-coloured outline to match iOS style. */
input:focus,
select:focus,
textarea:focus {
    outline: 2px solid #6C3CE1 !important;
    outline-offset: 0 !important;
}

/* Android Chrome font rendering — match iOS smoothing */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/* Prevent content from being hidden under the Android status bar in
   fullscreen PWA mode (display:standalone) */
@media all and (display-mode: standalone) {
    .main-header {
        padding-top: env(safe-area-inset-top, 0px);
    }
    body {
        padding-top: 0; /* safe area is already handled by header */
    }
}

/* ==============================================
   CORE WEB VITALS FIXES 2026
   INP: Reduce long transition durations on interactive elements to ≤150ms.
   CLS: Reserve space for dynamic content containers.
   ============================================== */

/* INP: Cap transitions on all interactive nav/dropdown elements */
.nav-item, .dropdown-menu, .dropdown-arrow,
.header-categories-dropdown, .categories-dropdown,
.tab, .tab-btn, .filter-btn, .filter-option,
.course-card, .btn, .il-btn {
    transition-duration: 150ms !important;
}

/* INP: Override any 'all' transitions (too expensive) on small interactive elements */
.nav-link, .breadcrumb-item, .badge, .tag {
    transition: color 150ms ease, background-color 150ms ease, border-color 150ms ease !important;
}

/* CLS: Fix image CLS by reserving space before load */
img:not([width]):not([height]) {
    aspect-ratio: auto;
    min-height: 1px;
}

/* CLS: Course card thumbnail container already has height, add aspect-ratio as fallback */
.course-thumbnail {
    aspect-ratio: 2 / 1;
    contain: layout style;
}

/* LCP: Reduce will-change scope to avoid excessive GPU layer promotion */
.course-card:hover .course-thumbnail img {
    will-change: auto;
}

/* INP: Reduce header panel slide animation from 500ms to 200ms */
.header-categories-panel, .mobile-menu-panel,
.sidebar-panel, .drawer, .offcanvas {
    transition-duration: 200ms !important;
}

/* INP: prefers-reduced-motion — respect user system setting */
@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;
    }
}

/* ============================================
   WCAG 4.1.2: FontAwesome icon accessibility
   FA6 CSS webfont doesn't auto-set aria-hidden.
   Marking all .fa-* pseudo-content as hidden
   from AT via speak:never (CSS speech property).
   aria-hidden must still be set on standalone
   icon elements; this is a defense-in-depth fix.
   ============================================ */
.fas::before,
.far::before,
.fab::before,
.fal::before,
.fad::before,
.fa::before,
.fa-solid::before,
.fa-regular::before,
.fa-brands::before {
    speak: never;
}

/* ============================================
   24. MOBILE FRIENDLY LAYOUT OVERRIDES
   ============================================ */

html, body, #app, .main-layout, .page, .learning-layout-root, .learning-space-container {
    min-width: 0 !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

.learning-layout-root {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100vh !important;
    overflow: visible !important;
    background: transparent !important;
}

.learning-space-container,
.learning-main-content,
.content-container,
.course-content,
.video-player-wrapper,
.transcript-panel,
.video-transcript-viewer,
.ll-video-wrapper,
.ll-video-container,
.course-grid,
.courses-grid,
.features-grid,
.steps-grid,
.footer-content,
.section {
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
}

img,
video,
iframe,
embed,
object,
.chart,
.card,
.course-card,
.transcript-segment {
    max-width: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
}

@media (max-width: 1024px) {
    .sidebar,
    .sidebar-left,
    .sidebar-right,
    .learning-sidebar,
    .aside-panel,
    .course-sidebar,
    .desktop-only {
        display: none !important;
    }

    .main-content,
    .learning-main-content,
    .content-container,
    .page,
    section {
        padding-left: var(--container-padding-mobile) !important;
        padding-right: var(--container-padding-mobile) !important;
    }
}

@media (max-width: 768px) {
    .learn-layout,
    .learning-layout-root,
    .learning-space-container,
    .learning-main-content,
    .video-player-wrapper,
    .transcript-panel,
    .video-transcript-viewer,
    .course-grid,
    .courses-grid,
    .features-grid,
    .steps-grid {
        display: block !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .video-player-wrapper {
        height: 40vh !important;
        min-height: 220px !important;
        max-height: 45vh !important;
    }

    .transcript-panel,
    .video-transcript-viewer,
    .transcript-segments {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: hidden !important;
    }

    .content-container,
    .main-content,
    .section,
    .il-container,
    .container,
    .container-fluid {
        padding-left: var(--container-padding-mobile) !important;
        padding-right: var(--container-padding-mobile) !important;
    }

    .course-card,
    .card,
    .hero-content,
    .hero-visual,
    .footer-content {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

@media (max-width: 480px) {
    .video-player-wrapper {
        height: 35vh !important;
        min-height: 180px !important;
    }

    .transcript-segment {
        padding: 0.85rem !important;
    }

    .il-container,
    .container,
    .container-fluid,
    section {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }
}

@media (max-width: 768px) {
    .mobile-menu-panel.open,
    body nav.mobile-menu-panel.mobile-menu-panel.mobile-menu-panel.open {
        right: 0 !important;
        width: min(320px, 100vw) !important;
    }

    .mobile-menu-panel,
    .mobile-menu-backdrop {
        width: 100vw !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
    }
}

/* ============================================
   LOGO PROTECTION — override the img width:100%!important above
   Must be at end of file to win the cascade.
   ============================================ */
.logo-image-premium,
.header-logo-section-premium img,
.logo-link-premium img,
.mobile-logo-link img {
    width: 40px !important;
    height: 40px !important;
    max-width: 40px !important;
    flex-shrink: 0 !important;
    object-fit: contain !important;
}
