/* =========================================================
   INFRASTRUCTURE SECTION
========================================================= */

.kv-infrastructure-section {

    position: relative;

    width: 100%;

    padding: 90px 0 75px;

    overflow: hidden;

    background: #ffffff;

}


/* =========================================================
   HEADING
========================================================= */

.kv-infrastructure-heading {

    text-align: center;

    margin-bottom: 55px;

}


.kv-infrastructure-heading span {

    position: relative;

    display: inline-block;

    color: #232A76;

    font-size: 14px;

    font-weight: 700;

    letter-spacing: 2px;

    text-transform: uppercase;

    margin-bottom: 12px;

}


/* Left line */

.kv-infrastructure-heading span::before {

    content: "";

    position: absolute;

    width: 45px;

    height: 2px;

    background: #232A76;

    top: 50%;

    right: calc(100% + 18px);

}


/* Right line */

.kv-infrastructure-heading span::after {

    content: "";

    position: absolute;

    width: 45px;

    height: 2px;

    background: #232A76;

    top: 50%;

    left: calc(100% + 18px);

}


.kv-infrastructure-heading h3 {

    margin: 10px 0 0;

    padding: 0;

    color: #172b4d;

    font-size: 34px;

    font-weight: 700;

    line-height: 1.3;

}


/* =========================================================
   SLIDER WRAPPER
========================================================= */

.kv-infrastructure-wrapper {

    width: 100%;

    overflow: hidden;

    position: relative;

}


/* =========================================================
   MOVING TRACK
========================================================= */

.kv-infrastructure-track {

    display: flex;

    flex-wrap: nowrap;

    align-items: stretch;

    gap: 30px;

    width: max-content;

    padding: 10px 0 25px;

    will-change: transform;

}


/* =========================================================
   CARD ITEM
========================================================= */

.kv-infrastructure-item {

    flex: 0 0 390px;

    width: 390px;

}


/* =========================================================
   CARD
========================================================= */

.kv-infrastructure-card {

    position: relative;

    width: 100%;

    overflow: hidden;

    background: #ffffff;

    border: 1px solid #e5eaf1;

    border-radius: 16px;

    box-shadow:
        0 10px 35px rgba(15, 45, 80, 0.12);

    transition:
        transform 0.45s ease,
        box-shadow 0.45s ease;

}


/* =========================================================
   CARD HOVER
========================================================= */

.kv-infrastructure-card:hover {

    transform:
        translateY(-12px)
        perspective(800px)
        rotateX(2deg);

    box-shadow:
        0 25px 60px rgba(35, 42, 118, 0.22);

}


/* =========================================================
   IMAGE
========================================================= */

.kv-infrastructure-image {

    position: relative;

    width: 100%;

    height: 300px;

    overflow: hidden;

    background: #eef4fa;

}


.kv-infrastructure-image::after {

    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            135deg,
            rgba(35, 42, 118, 0.15),
            transparent 50%
        );

    opacity: 0;

    transition: opacity 0.45s ease;

}


.kv-infrastructure-card:hover
.kv-infrastructure-image::after {

    opacity: 1;

}


.kv-infrastructure-image img {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform 0.7s ease;

}


.kv-infrastructure-card:hover
.kv-infrastructure-image img {

    transform: scale(1.08);

}


/* =========================================================
   INFORMATION
========================================================= */

.kv-infrastructure-info {

    position: relative;

    padding: 22px 25px 25px;

    background: #ffffff;

}


/* Animated blue line */

.kv-infrastructure-info::before {

    content: "";

    position: absolute;

    top: 0;

    left: 0;

    width: 0;

    height: 3px;

    background: #232A76;

    transition:
        width 0.45s ease;

}


.kv-infrastructure-card:hover
.kv-infrastructure-info::before {

    width: 100%;

}


/* =========================================================
   TITLE
========================================================= */

.kv-infrastructure-info h4 {

    margin: 0 0 12px;

    padding: 0;

    color: #172b4d;

    font-size: 19px;

    font-weight: 600;

    line-height: 1.4;

}


/* =========================================================
   READ MORE
========================================================= */

.kv-infrastructure-info a {

    display: inline-flex;

    align-items: center;

    gap: 8px;

    color: #232A76;

    font-size: 14px;

    font-weight: 600;

    text-decoration: none;

    transition:
        color 0.3s ease;

}


.kv-infrastructure-info a span {

    display: inline-block;

    font-size: 20px;

    line-height: 1;

    transition:
        transform 0.3s ease;

}


.kv-infrastructure-info a:hover {

    color: #2378d9;

}


.kv-infrastructure-info a:hover span {

    transform: translateX(6px);

}


/* =========================================================
   DESKTOP
========================================================= */

@media (min-width: 1200px) {

    .kv-infrastructure-item {

        flex-basis: 390px;

        width: 390px;

    }

}


/* =========================================================
   LAPTOP
========================================================= */

@media (max-width: 1199px) {

    .kv-infrastructure-section {

        padding-top: 80px;

    }


    .kv-infrastructure-item {

        flex-basis: 350px;

        width: 350px;

    }


    .kv-infrastructure-image {

        height: 280px;

    }


    .kv-infrastructure-track {

        gap: 25px;

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {

    .kv-infrastructure-section {

        padding: 70px 0 60px;

    }


    .kv-infrastructure-heading {

        margin-bottom: 40px;

        padding: 0 20px;

    }


    .kv-infrastructure-heading h3 {

        font-size: 28px;

    }


    .kv-infrastructure-item {

        flex-basis: 320px;

        width: 320px;

    }


    .kv-infrastructure-image {

        height: 250px;

    }


    .kv-infrastructure-track {

        gap: 20px;

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .kv-infrastructure-section {

        padding: 55px 0 45px;

    }


    .kv-infrastructure-heading {

        margin-bottom: 35px;

    }


    .kv-infrastructure-heading span {

        font-size: 12px;

        letter-spacing: 1.5px;

    }


    .kv-infrastructure-heading
    span::before,

    .kv-infrastructure-heading
    span::after {

        display: none;

    }


    .kv-infrastructure-heading h3 {

        font-size: 23px;

        line-height: 1.4;

    }


    .kv-infrastructure-item {

        flex-basis: 285px;

        width: 285px;

    }


    .kv-infrastructure-image {

        height: 215px;

    }


    .kv-infrastructure-info {

        padding: 18px 20px 20px;

    }


    .kv-infrastructure-info h4 {

        font-size: 17px;

    }


    .kv-infrastructure-track {

        gap: 16px;

    }

}


/* =========================================================
   SMALL MOBILE
========================================================= */

@media (max-width: 480px) {

    .kv-infrastructure-item {

        flex-basis: 260px;

        width: 260px;

    }


    .kv-infrastructure-image {

        height: 195px;

    }


    .kv-infrastructure-heading h3 {

        font-size: 21px;

    }

}