/*
 * ============================================================
 * SERVICE PAGES - MOBILE FIX
 * Dedicated mobile stylesheet for all service subpages
 * Fixes: horizontal overflow, animation transform glitches,
 * 2-column grids, and hero section layout issues.
 * ============================================================
 */

/* === RESET HORIZONTAL OVERFLOW === */
html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
}

* {
    box-sizing: border-box !important;
}

/* === FIX SCROLL-REVEAL ANIMATIONS ON MOBILE
   (they freeze mid-animation causing transform glitches) === */
@media (max-width: 992px) {
    .scroll-reveal,
    .header-content.scroll-reveal,
    .section.page-header-modern,
    [class*="scroll-reveal"] {
        opacity: 1 !important;
        transform: none !important;
        visibility: visible !important;
    }

    /* Fix the page-header transform */
    .page-header-modern {
        transform: none !important;
    }
}

/* === FULL MOBILE LAYOUT FIXES (max-width: 768px) === */
@media (max-width: 768px) {

    /* Container - prevent overflow */
    .container {
        max-width: 100% !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        overflow: visible !important;
    }

    /* Page Header */
    .page-header-modern {
        padding: 100px 16px 40px !important;
        min-height: auto !important;
        text-align: center !important;
        transform: none !important;
    }

    .header-content {
        padding: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        transform: none !important;
        opacity: 1 !important;
    }

    .page-header-modern h1 {
        font-size: 1.875rem !important;
        line-height: 1.2 !important;
        word-break: break-word !important;
        margin-bottom: 1rem !important;
    }

    .page-header-modern p {
        font-size: 1rem !important;
        line-height: 1.6 !important;
    }

    .page-badge {
        font-size: 0.8rem !important;
        padding: 0.5rem 1rem !important;
        word-break: break-word !important;
    }

    /* Service Layout - stack sidebar below content */
    .service-layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 2rem !important;
        width: 100% !important;
    }

    .service-main,
    .service-sidebar {
        width: 100% !important;
        min-width: 0 !important;
    }

    .service-sidebar {
        position: static !important;
    }

    /* Content Blocks */
    .content-block {
        padding: 1.25rem !important;
        margin-bottom: 1.25rem !important;
        border-radius: 12px !important;
        overflow: visible !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .service-main h2 {
        font-size: 1.4rem !important;
        display: block !important;
        word-break: break-word !important;
    }

    .service-main h2 i {
        display: inline-block !important;
        margin-right: 0.5rem !important;
        font-size: 1.2rem !important;
    }

    .service-main p {
        font-size: 0.95rem !important;
        line-height: 1.7 !important;
        word-break: break-word !important;
    }

    /* Service Subsections */
    .service-subsection {
        padding: 1rem !important;
        margin: 1.25rem 0 !important;
        width: 100% !important;
        overflow: visible !important;
    }

    .service-subsection h3 {
        font-size: 1.1rem !important;
        word-break: break-word !important;
    }

    /* Feature List - FORCE SINGLE COLUMN */
    .feature-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.75rem !important;
        width: 100% !important;
    }

    .feature-list li {
        display: flex !important;
        align-items: flex-start !important;
        gap: 0.75rem !important;
        padding: 0.875rem !important;
        font-size: 0.9rem !important;
        width: 100% !important;
        min-width: 0 !important;
        word-break: break-word !important;
        white-space: normal !important;
    }

    .feature-list li i {
        flex-shrink: 0 !important;
        margin-top: 3px !important;
    }

    .feature-list li strong {
        display: block !important;
        word-break: break-word !important;
    }

    /* Process Steps */
    .process-steps {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
    }

    .process-item {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: 1rem !important;
        padding: 1rem !important;
        width: 100% !important;
    }

    .process-number {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        font-size: 1.1rem !important;
        border-radius: 10px !important;
    }

    .process-content h3 {
        font-size: 1rem !important;
        word-break: break-word !important;
    }

    .process-content p {
        font-size: 0.9rem !important;
    }

    /* Benefits Grid - FORCE SINGLE COLUMN */
    .benefits-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
        width: 100% !important;
    }

    .benefit-item {
        padding: 1.5rem 1rem !important;
        width: 100% !important;
    }

    .benefit-item i {
        font-size: 2.5rem !important;
        margin-bottom: 1rem !important;
    }

    .benefit-item h3 {
        font-size: 1.1rem !important;
    }

    .benefit-item p {
        font-size: 0.9rem !important;
    }

    /* Sidebar Cards */
    .sidebar-card {
        padding: 1.25rem !important;
        width: 100% !important;
        border-radius: 16px !important;
    }

    .sidebar-card h3 {
        font-size: 1.25rem !important;
    }

    /* FAQ Section */
    .service-faq-section {
        padding: 40px 0 !important;
    }

    .faq-item-simple {
        padding: 1.25rem !important;
    }

    .faq-item-simple h4 {
        font-size: 1rem !important;
        word-break: break-word !important;
    }

    /* CTA Section */
    .service-cta {
        padding: 40px 16px !important;
        text-align: center !important;
    }

    .cta-content h2 {
        font-size: 1.5rem !important;
        word-break: break-word !important;
    }

    .cta-buttons {
        flex-direction: column !important;
        gap: 1rem !important;
        align-items: center !important;
    }

    .btn-primary.btn-large,
    .btn-secondary.btn-large {
        width: 100% !important;
        max-width: 320px !important;
        justify-content: center !important;
        text-align: center !important;
        font-size: 0.95rem !important;
        padding: 0.875rem 1.5rem !important;
    }

    /* Compliance Table */
    .compliance-table-wrapper {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        margin: 1rem 0 !important;
        border-radius: 8px !important;
    }

    .compliance-table {
        min-width: 480px !important;
        font-size: 0.85rem !important;
    }

    .compliance-table th,
    .compliance-table td {
        padding: 0.75rem 0.875rem !important;
        white-space: nowrap !important;
    }

    /* Sidebar Links */
    .sidebar-links a {
        font-size: 0.9rem !important;
        padding: 0.875rem !important;
    }

    /* Sidebar Form */
    .sidebar-form input,
    .sidebar-form select,
    .sidebar-form textarea {
        font-size: 0.95rem !important;
        padding: 0.75rem !important;
    }
}

/* === EXTRA SMALL PHONES (max-width: 400px) === */
@media (max-width: 400px) {
    .page-header-modern h1 {
        font-size: 1.5rem !important;
    }

    .content-block {
        padding: 1rem !important;
    }

    .feature-list li {
        padding: 0.75rem !important;
        font-size: 0.85rem !important;
    }

    .service-subsection h3 {
        font-size: 1rem !important;
    }
}
