/* 1. Every element respects its container width */
*,
*::before,
*::after {
    box-sizing: border-box;
    max-width: 100%;
}

/* 2. Images and media always scale to fit their container */
img,
video,
iframe,
embed,
object {
    max-width: 100%;
    height: auto;
    display: block;
}

/* 3. No horizontal scrollbar caused by overflowing content */
body {
    overflow-x: hidden;
}

/* 4. Sections and outer boxes are fluid by default */
section {
    width: 100%;
}

/* 5. All outer boxes use fluid width so they shrink on small screens */
.info-outer-box,
.features-outer-box,
.slider-outer-box,
.cta-outer-box,
.courses-outer-box,
.testimonials-outer-box {
    width: 90%;
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

/* 6. Tables auto-fit to their container */
table {
    width: 100%;
    border-collapse: collapse;
    overflow-x: auto;
    display: block;
}

/* 7. Fluid typography baseline — relative units scale naturally */
html {
    font-size: clamp(14px, 1.2vw, 16px);
}

/* 8. Force 1-column on main sections for all mobile devices */
@media (max-width: 1024px) {

    .info-container,
    .features-grid,
    .courses-grid,
    .footer-content {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }

    .info-outer-box,
    .features-outer-box,
    .courses-outer-box,
    .testimonials-outer-box {
        width: 100% !important;
        padding: 1.5rem !important;
        margin: 0 !important;
        border-radius: 0 !important;
        /* Edge to edge on mobile looks better */
    }

    .info-section,
    .features-section,
    .courses-section {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }
}