@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{
    font-family:'Poppins',sans-serif;
}

/* =========================================================
MILESTONES SECTION
========================================================= */

.milestones-section{

    padding:120px 0;

    background:#f5f5f5;

    overflow:hidden;
}

/* =========================================================
HEADING
========================================================= */

.milestone-heading{

    text-align:center;

    margin-bottom:100px;
}

.milestone-heading h2{

    font-size:52px;

    font-weight:700;

    color:#ff772f;

    margin-bottom:25px;

    line-height:1.3;

    text-transform:uppercase;
}

.milestone-heading p{

    max-width:950px;

    margin:auto;

    font-size:20px;

    line-height:1.8;

    color:#111827;

    font-weight:500;
}

/* =========================================================
TIMELINE
========================================================= */

.timeline{

    position:relative;

    max-width:1200px;

    margin:auto;
}

/* LEFT SOLID */

.timeline::before{

    content:"";

    position:absolute;

    top:0;
    bottom:0;

    left:calc(50% - 6px);

    width:2px;

    background:#221758;

    transform:translateX(-50%);
}

/* CENTER DASHED */

.timeline::after{

    content:"";

    position:absolute;

    top:0;
    bottom:0;

    left:50%;

    width:2px;

    background:repeating-linear-gradient(
        to bottom,
        #221758 0 14px,
        transparent 14px 28px
    );

    transform:translateX(-50%);
}

/* RIGHT SOLID */

.extra-line{

    position:absolute;

    top:0;
    bottom:0;

    left:calc(50% + 6px);

    width:2px;

    background:#221758;

    transform:translateX(-50%);
}

/* =========================================================
ITEM
========================================================= */

.timeline-item{

    position:relative;

    width:50%;

    margin-bottom:80px;
}

.timeline-item.left{

    left:0;

    padding-right:90px;
}

.timeline-item.right{

    left:50%;

    padding-left:90px;
}

/* =========================================================
DOT
========================================================= */

.timeline-dot{

    position:absolute;

    top:50%;

    transform:translateY(-50%);

    width:90px;
    height:90px;

    border-radius:50%;

    background:#fff;

    border:5px solid #ff772f;

    display:flex;
    align-items:center;
    justify-content:center;

    z-index:2;

    box-shadow:0 10px 30px rgba(0,0,0,0.08);
}

.timeline-item.left .timeline-dot{

    right:-45px;
}

.timeline-item.right .timeline-dot{

    left:-45px;
}

.timeline-dot span{

    font-size:28px;

    font-weight:700;

    color:#221758;
}

/* =========================================================
CARD
========================================================= */

.timeline-card{

    background:#ffffff;

    border-radius:15px;

    padding:35px;

    box-shadow:0 15px 40px rgba(0,0,0,0.06);

    transition:0.4s ease;
}

.timeline-card:hover{

    transform:translateY(-6px);
}

.timeline-card p{

    margin:0;

    font-size:17px;

    line-height:2;

    color:#111827;

    font-weight:500;
}

/* =========================================================
TABLET
========================================================= */

@media(max-width:1024px){

    .timeline-item.left{

        padding-right:70px;
    }

    .timeline-item.right{

        padding-left:70px;
    }

    .timeline-dot{

        width:75px;
        height:75px;
    }

    .timeline-dot span{

        font-size:22px;
    }

    .timeline-card{

        padding:28px;
    }

    .timeline-card p{

        font-size:15px;
    }
}

/* =========================================================
MOBILE
========================================================= */

@media(max-width:768px){

    .milestones-section{

        padding:80px 0;
    }

    .milestone-heading{

        margin-bottom:70px;
    }

    .milestone-heading h2{

        font-size:34px;
    }

    .milestone-heading p{

        font-size:16px;
    }

    /* move lines left */

    .timeline::before{

        left:30px;
    }

    .timeline::after{

        left:36px;
    }

    .extra-line{

        left:42px;
    }

    /* items */

    .timeline-item{

        width:100%;

        left:0 !important;

        padding-left:95px !important;

        padding-right:0 !important;

        margin-bottom:50px;
    }

    .timeline-dot{

        left:0 !important;

        right:auto !important;

        width:70px;
        height:70px;
    }

    .timeline-dot span{

        font-size:18px;
    }

    .timeline-card{

        padding:24px;

        border-radius:18px;
    }

    .timeline-card p{

        font-size:15px;

        line-height:1.9;
    }
}

/* =========================================================
SMALL MOBILE
========================================================= */

@media(max-width:480px){

    .timeline-item{

        padding-left:80px !important;
    }

    .timeline-dot{

        width:60px;
        height:60px;
    }

    .timeline-dot span{

        font-size:16px;
    }

    .timeline-card{

        padding:20px;
    }

    .timeline-card p{

        font-size:14px;

        line-height:1.8;
    }

    .milestone-heading h2{

        font-size:28px;
    }

    .milestone-heading p{

        font-size:15px;
    }
}