/* =========================================================
   HOME PAGE
   Stability + Responsive Grid + Overflow Fixes
   ========================================================= */

/* ---------- Global overflow protection ---------- */

html,
body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
}

body {
    overflow-y: auto;
}

.home-page {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: clip;
    overflow-wrap: anywhere;
}

    .home-page *,
    .home-page *::before,
    .home-page *::after {
        box-sizing: border-box;
    }


    /* ---------- Bootstrap containers ---------- */

    .home-page .container,
    .home-page .container-fluid {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }


    /* ---------- Bootstrap rows ---------- */

    .home-page .row {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        --bs-gutter-x: 1.5rem;
        margin-top: 0;
    }

        .home-page .row > * {
            min-width: 0;
        }


    /* ---------- Media ---------- */

    .home-page img,
    .home-page iframe,
    .home-page video,
    .home-page canvas {
        display: block;
        max-width: 100%;
    }


    /* ---------- Text overflow protection ---------- */

    .home-page h1,
    .home-page h2,
    .home-page h3,
    .home-page h4,
    .home-page h5,
    .home-page h6,
    .home-page p,
    .home-page a,
    .home-page span,
    .home-page div {
        overflow-wrap: anywhere;
    }


/* =========================================================
   COURSES GRID
   ========================================================= */

.home-courses-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

    .home-courses-grid > [class*="col-"] {
        min-width: 0;
        display: flex;
    }

    .home-courses-grid .card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        height: 100%;
    }


    /* Course images */

    .home-courses-grid .card-img-top {
        width: 100%;
        max-width: 100%;
        object-fit: cover;
    }


    /* Course body */

    .home-courses-grid .card-body {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .home-courses-grid .card-title {
        min-width: 0;
    }

    .home-courses-grid .card-body .btn {
        margin-top: auto;
    }


/* =========================================================
   PROJECTS GRID
   ========================================================= */

.home-projects-grid {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

    .home-projects-grid > [class*="col-"] {
        min-width: 0;
        display: flex;
    }

    .home-projects-grid .home-project-card {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }


/* =========================================================
   PROJECT CARD
   ========================================================= */

.home-page .home-project-card {
    height: 100%;
    min-width: 0;
    border: 1px solid #e7eaf2;
    border-radius: 22px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

    .home-page .home-project-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 18px 38px rgba(15, 23, 42, 0.10);
        border-color: #c7d2fe;
    }


/* Project icon */

.home-page .home-project-icon {
    width: 100%;
    height: 82px;
    display: grid;
    place-items: center;
    font-size: 30px;
    color: #fff;
    background: linear-gradient( 135deg, #4f46e5, #7c3aed );
}


/* Project content */

.home-page .home-project-card .p-4 {
    min-width: 0;
}

.home-page .home-project-card h5 {
    min-width: 0;
    line-height: 1.8;
}

.home-project-description {
    min-height: 52px;
    line-height: 1.8;
    overflow: hidden;
}


/* Project button */

.home-page .home-project-card .btn {
    max-width: 100%;
    white-space: normal;
}


/* =========================================================
   ABSOLUTE / FLOATING ELEMENTS
   Prevent them from creating horizontal scroll
   ========================================================= */

.home-page .position-absolute {
    max-width: 100%;
}

.home-page figure.position-absolute {
    pointer-events: none;
}

.home-page svg {
    max-width: 100%;
    height: auto;
}


/* =========================================================
   LARGE DECORATIVE SVG
   ========================================================= */

.home-page figure {
    max-width: 100%;
}

    .home-page figure svg {
        width: auto;
        max-width: 100%;
    }


/* =========================================================
   HERO SECTION
   ========================================================= */

.home-page section {
    min-width: 0;
    max-width: 100%;
}

    .home-page section > .container,
    .home-page section > .container-fluid {
        min-width: 0;
    }


/* =========================================================
   BUTTONS / LINKS
   ========================================================= */

.home-page .btn,
.home-page .home-action-pill {
    max-width: 100%;
}

.home-page .btn {
    overflow-wrap: anywhere;
}


/* =========================================================
   SEARCH BOX
   ========================================================= */

.home-page .search-box-home {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

    .home-page .search-box-home .input-group {
        max-width: 100%;
    }

    .home-page .search-box-home input {
        min-width: 0;
        max-width: 100%;
    }


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 575.98px) {

    .home-page {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }

        .home-page .container,
        .home-page .container-fluid {
            width: 100%;
            max-width: 100%;
            padding-left: 16px;
            padding-right: 16px;
        }

        .home-page .row {
            --bs-gutter-x: 1rem;
        }

    /* One card per row */
    .home-courses-grid > [class*="col-"],
    .home-projects-grid > [class*="col-"] {
        width: 100%;
        max-width: 100%;
    }

    .home-project-description {
        min-height: auto;
    }

    .home-page .home-project-card:hover {
        transform: none;
    }

    /* Prevent floating decorations from affecting mobile width */
    .home-page .position-absolute {
        max-width: calc(100% - 20px);
    }

    .home-page .home-career-project-links {
        max-width: 100%;
    }
}


/* =========================================================
   SMALL TABLET
   ========================================================= */

@media (min-width: 576px) and (max-width: 767.98px) {

    .home-courses-grid > .col-sm-6,
    .home-projects-grid > .col-sm-6 {
        width: 50%;
        max-width: 50%;
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (min-width: 768px) and (max-width: 991.98px) {

    .home-courses-grid > .col-sm-6 {
        width: 50%;
        max-width: 50%;
    }

    .home-projects-grid > .col-sm-6 {
        width: 50%;
        max-width: 50%;
    }
}


/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 992px) and (max-width: 1199.98px) {

    .home-courses-grid > .col-lg-4 {
        width: 33.333333%;
        max-width: 33.333333%;
    }

    .home-projects-grid > .col-lg-4 {
        width: 33.333333%;
        max-width: 33.333333%;
    }
}


/* =========================================================
   LARGE DESKTOP
   ========================================================= */

@media (min-width: 1200px) {

    /* 4 courses per row */
    .home-courses-grid > .col-xl-3 {
        width: 25%;
        max-width: 25%;
    }

    /* 3 projects per row */
    .home-projects-grid > .col-lg-4 {
        width: 33.333333%;
        max-width: 33.333333%;
    }
}


/* =========================================================
   EXTRA LARGE DESKTOP
   ========================================================= */

@media (min-width: 1400px) {

    .home-page .container {
        max-width: 1320px;
    }
}


/* =========================================================
   PREVENT HORIZONTAL JUMP / LAYOUT SHIFT
   ========================================================= */

.home-page .card,
.home-page .home-project-card,
.home-page .home-project-icon {
    contain: layout paint;
}


/* =========================================================
   SAFETY FOR LONG PERSIAN / ENGLISH CONTENT
   ========================================================= */

.home-page .text-muted,
.home-page .card-title,
.home-page .home-project-description {
    overflow-wrap: anywhere;
    word-break: normal;
}


/* =========================================================
   DO NOT ALLOW NEGATIVE TRANSFORMED CONTENT TO EXTEND PAGE
   ========================================================= */

.home-page {
    isolation: isolate;
}


/* =========================================================
   FINAL MOBILE OVERFLOW GUARD
   ========================================================= */

@media (max-width: 767.98px) {

    html,
    body {
        overflow-x: hidden !important;
    }

    .home-page {
        overflow-x: clip !important;
    }
}

/* =========================================================
   FINAL VERTICAL SCROLL FIX
   Keep the document itself scrollable on desktop/mobile.
   ========================================================= */

html {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

html body {
    height: auto !important;
    min-height: 100vh !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    position: relative !important;
}

/* Do not let the home page create a nested vertical scroller. */
.home-page {
    height: auto !important;
    min-height: 0 !important;
    overflow-y: visible !important;
}

