/*
 * Mobile Layout Fix - Prevent Cut-off and Overflow Issues
 * Fix elements being cut off or overflowing on mobile screens
 */

/* Fundamental overflow prevention */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
}

/* Prevent all elements from overflowing */
* {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Container fixes to prevent cut-off */
.container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 15px !important;
    padding-right: 15px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Fix sections that might be too wide */
section {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

/* Mobile-specific fixes */
@media screen and (max-width: 768px) {
    /* Fix header from being cut off */
    .header {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }
    
    .navbar {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 15px !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
    
    .logo {
        flex-shrink: 0 !important;
        max-width: 70% !important;
    }
    
    .nav-toggle {
        flex-shrink: 0 !important;
        width: 44px !important;
        height: 44px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    
    /* Fix hero section from being cut */
    .premium-hero {
        width: 100% !important;
        max-width: 100% !important;
        padding: 60px 0 40px 0 !important;
        overflow: hidden !important;
    }
    
    .premium-hero-container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 15px !important;
        margin: 0 auto !important;
    }
    
    .premium-hero-flex {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }
    
    .premium-hero-content {
        width: 100% !important;
        max-width: 100% !important;
        text-align: center !important;
        padding: 0 10px !important;
    }
    
    /* Fix text from being cut */
    .premium-hero-title {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 1.7rem !important;
        line-height: 1.3 !important;
        margin-bottom: 1rem !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    .premium-hero-subtitle {
        width: 100% !important;
        max-width: 100% !important;
        font-size: 0.95rem !important;
        line-height: 1.5 !important;
        margin-bottom: 1.5rem !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Fix buttons from being cut */
    .premium-hero-buttons {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        align-items: center !important;
        margin-bottom: 1.5rem !important;
    }
    
    .premium-btn {
        width: 100% !important;
        max-width: 280px !important;
        min-height: 44px !important;
        padding: 12px 20px !important;
        font-size: 1rem !important;
        border-radius: 6px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }
    
    /* Fix contact buttons */
    .premium-contact-buttons {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        align-items: center !important;
        margin-bottom: 1.5rem !important;
    }
    
    .premium-contact-btn {
        width: 100% !important;
        max-width: 260px !important;
        min-height: 44px !important;
        padding: 12px 15px !important;
        font-size: 1rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        border-radius: 6px !important;
        box-sizing: border-box !important;
    }
    
    /* Fix benefits grid */
    .premium-benefits {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
        margin-top: 1.5rem !important;
        padding: 0 10px !important;
    }
    
    .premium-benefit {
        width: 100% !important;
        padding: 12px 8px !important;
        text-align: center !important;
        font-size: 0.85rem !important;
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }
    
    /* Fix services grid */
    .services-grid {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        padding: 0 15px !important;
    }
    
    .service-card {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 15px !important;
        padding: 20px 15px !important;
        box-sizing: border-box !important;
    }
    
    /* Fix pricing table */
    .pricing-table {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 20px !important;
        padding: 0 15px !important;
    }
    
    .pricing-card {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 15px !important;
        padding: 20px 15px !important;
        box-sizing: border-box !important;
    }
    
    /* Fix gallery */
    .gallery-grid {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        padding: 0 15px !important;
    }
    
    .gallery-item {
        width: 100% !important;
        height: 180px !important;
        overflow: hidden !important;
        border-radius: 8px !important;
    }
    
    .gallery-item img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }
    
    /* Fix contact section */
    .contact-grid {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 25px !important;
        padding: 0 15px !important;
    }
    
    .contact-form, .contact-info {
        width: 100% !important;
        max-width: 100% !important;
        padding: 20px 15px !important;
        box-sizing: border-box !important;
    }
    
    /* Fix form elements */
    .form-group {
        width: 100% !important;
        margin-bottom: 15px !important;
    }
    
    .form-group input,
    .form-group textarea,
    .form-group select {
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px 15px !important;
        font-size: 16px !important;
        border-radius: 5px !important;
        border: 1px solid #ddd !important;
        box-sizing: border-box !important;
    }
    
    .btn-submit {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 44px !important;
        padding: 14px !important;
        font-size: 1rem !important;
        box-sizing: border-box !important;
    }
    
    /* Fix footer */
    .footer-content {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 25px !important;
        padding: 0 15px !important;
    }
    
    .footer-section {
        width: 100% !important;
        max-width: 100% !important;
        text-align: center !important;
        margin-bottom: 20px !important;
    }
    
    /* Fix images and media */
    img, video, iframe {
        max-width: 100% !important;
        height: auto !important;
    }
    
    /* Fix tables on mobile */
    table {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        display: block !important;
        white-space: nowrap !important;
    }
    
    /* Fix breadcrumb */
    .breadcrumb-container {
        width: 100% !important;
        padding: 8px 0 !important;
        overflow: hidden !important;
    }
    
    .breadcrumb {
        width: 100% !important;
        font-size: 0.8rem !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}

/* Small mobile devices - extra tight */
@media screen and (max-width: 480px) {
    .container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    
    .premium-hero-content {
        padding: 0 5px !important;
    }
    
    .premium-hero-title {
        font-size: 1.5rem !important;
    }
    
    .premium-hero-subtitle {
        font-size: 0.9rem !important;
    }
    
    .premium-benefits {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    
    .gallery-grid {
        grid-template-columns: 1fr !important;
        gap: 6px !important;
    }
    
    .premium-btn, .premium-contact-btn {
        font-size: 0.95rem !important;
        padding: 12px 15px !important;
    }
}

/* Force no horizontal scroll */
@media screen and (max-width: 768px) {
    html {
        overflow-x: hidden !important;
    }
    
    body {
        overflow-x: hidden !important;
        position: relative !important;
    }
    
    /* Hide any elements that might cause horizontal scroll */
    .swiper-button-next,
    .swiper-button-prev {
        display: none !important;
    }
    
    /* Ensure slider doesn't overflow */
    .swiper-container,
    .gallery-slider {
        width: 100% !important;
        max-width: 100% !important;
        overflow: hidden !important;
    }
    
    .swiper-slide {
        width: 100% !important;
        max-width: 100% !important;
    }
}