body{
    font-family: "Work Sans", sans-serif;
    overflow-x: hidden;
}

.content .container>*{
    max-width: 100vw;
}

body h2{
    font-weight: 400;
    font-size: 30px;
    line-height: 1.1;
    margin-bottom: 40px;
    text-align: center;
    color: #414042;
}

.container-fluid > div{
    padding: 60px 0px;
}

.container-fluid > div:last-child{
    padding-top: 0px;
}

/* Stepper */
.steps{
    background-color: rgb(250, 249, 247);
    position: relative;
}

.steps .title{
    font-size: 30px;
    line-height: 1.1;
    margin-bottom: 40px;
    text-align: center;
}

/* Stepper slide (1,2,3,4,5)*/
.step-container{
    display: flex;
    justify-content: center;
    position: relative;
}

.step-item{
    color: #b8b2b2;
    width: 130px;
    height: 80px;
    cursor: pointer;
    
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
}

.step-number{
    width: 50px;
    height: 50px;
    border-radius: 50%;
    border: 0.8px solid #b8b2b2;
    margin-bottom: 10px;
    box-sizing: border-box;
    line-height: 50px;
    font-size: 18px;

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

.step-name{
    font-size: 14px;
}

/* Line between step */
.step-item::before{
    position: absolute;
    content: "";
    border-bottom: 0.8px solid #b8b2b2;
    width: calc(100% - 50px);
    top: 25px;
    left: -40px;
}

.step-item:first-child::before{
    content: none;
}

/* Completed Steps + Animation */
.steps .completed{
    animation: fadeToPinkStep 0.5s forwards ease-in-out;
}

.completed .step-number{
    animation: fadeToPinkNumber 0.5s forwards ease-in-out;
}

.completed::before{
    animation: fadeToPinkBorder 0.5s forwards ease-in-out;
}

.steps .reverse{
    animation: fadeToPinkStep 0.5s reverse ease-in-out;
    -webkit-animation: fadeToPinkStep 0.5s reverse;
}

.reverse .step-number{
    animation: fadeToPinkNumber 0.5s reverse ease-in-out;
    -webkit-animation: fadeToPinkNumber 0.5s reverse;
}

.reverse::before{
    animation: fadeToPinkBorder 0.5s reverse ease-in-out;
    -webkit-animation: fadeToPinkBorder 0.5s reverse;
}
@keyframes fadeToPinkStep {
    0%{
        border-color: #b8b2b2;
        color: #b8b2b2;
    }

    100%{
        border-color: #ec9a9a;
        color: #ec9a9a;
    }
}

@keyframes fadeToPinkBorder {
    0%{
        border-color: #b8b2b2;
    }

    100%{
        border-color: #ec9a9a;
    }
}

@keyframes fadeToPinkNumber{
    0%{
        background-color: transparent;
        border-color: #b8b2b2;
        color: #b8b2b2;
    }

    100%{
        background-color: #ec9a9a;
        border-color: #ec9a9a;
        color: white;
    }
}

/* Steps Content */
.step-content{
    display: none;
    animation: fadeIn 0.3s ease-in-out;
}

.step-content h3{
    font-size: 24px;
    margin: 20px 0 10px;
    color: #414042;
    line-height: 1.1;
    font-weight: 400;
}

.step-content p{
    font-size: 16px;
    margin: 0 0 40px;
    color: #414042;
}

@keyframes fadeIn {
    from {opacity: 0;}
    to {opacity: 1;}
}

/* Button Register Now */
.button-register a{
    text-transform: uppercase;
    text-decoration: none;
    background-color: #ec9a9a;
    font-size: 16px;
    padding: 10px 20px;
    color: white;
    border-radius: 4px;
}

.button-register a:hover{
    background-color: #e56767;
    transition: 0.0.5s;
    transition-timing-function: ease-out;
}

/* Progress Bar */
.content-progress-bar{
    border: 0.8px solid #b8b2b2;
    height: 40px;
    border-radius: 50px;
    margin-bottom: 40px;
    position: relative;
    
    display: flex;
    flex-direction: row;
}

.step-progress-bar{
    display: none;
    position: absolute;
    height: 100%;
    
    align-content: center;
    justify-content: center;
    text-align: center;
    
    color: white;
    padding: 0px 20px;
    font-size: 14px;
    border-radius: 50px;
    animation: fadeIn 0.3s ease-in-out;
}

.current-progress{
    display: block;
}

.step-01{
    align-self: start;
    padding-left: 20px;
    justify-content: left;
    
    color: #b8b2b2;
}

.step-02{
    background-color: #f3bcbc;
    left: 0;
    width: 30%;
    
    z-index: 3;
}

.step-03{
    background-color: #ec9a9a;
    left: 0;
    width: 40%;
    position: relative;
    
    z-index: 3;
}

.step-04{
    background-color: #d16262;
    width: 40%;
    position: relative;
    
    z-index: 2;
    
    margin-left: -40px;
    padding-left: 40px;
}

.step-05{
    margin-left: -40px;
    padding-left: 40px;
    background-color: #ab2828;
    z-index: 1;
    width: calc(20% + 80px + 2px);
    
    position: relative;
}

/* Steps Images */
.steps-image{
    display: none;
}

.active-content{
    display: block;
}

/* Project Categories */
.categories > div {
    max-width: 780px;
}

.category-nav{
    display: flex;
    justify-content: center;
}

.project-category-tabs{
    border: 0.8px solid #b8b2b2;
    height: 44px;
    border-radius: 50px;
    color:#414042;
    
    padding: 2px;
    text-align: center;
    
    flex-direction: row;
    width: max-content;
    
    margin-bottom: 40px;
}

.project-category-tabs li{
    color: #545454;
    font-size: 12px;
    padding: 10px 15px;
    text-transform: uppercase;
    transition: ease-in-out 0.1s;
    
    display: inline-block;
    cursor: pointer;
}

.project-category-tabs .active,
.project-category-tabs li:hover{
    background-color: #79b5b3;
    border-radius: 50px;
    color:white;
}

.category-content{
    margin-bottom: 40px;
}

.category-content > div {
    justify-content: space-around;
    display: none;
}

.project-category-image{
    border-radius: 10px;
    position: relative;
    width: 100%;
    overflow: hidden;
}

.project-category-image img{
    object-fit: fill;
    max-width: 100%;
}

.project-category-overlay{
    position: absolute;
    left: 20px;
    bottom: 20px;
    color: white;
}

.project-category-name{
    font-size: 24px;
}

.project-category-loc{
    font-size: 14px;
}

.custom-gap .col{
    flex: 0 1 calc(50% - 15px);
    display: flex;
    justify-content: space-between;
    flex-direction: column;
}

.custom-gap{
    display: flex;
    flex-wrap: wrap;
}

.active-category {
    display: flex !important;
}

.fade-in{
    animation: fadeIn 0.25s ease-in-out;
}

.fade-out{
    animation: fadeOut 0.25s ease-in-out;
}

@keyframes fadeOut {
    from {opacity: 1;}
    to {opacity: 0;}
}

/* Button See All */
.project-category-see-all{
    display: flex;
    justify-content: center;
}

.project-category-see-all a{
    text-transform: uppercase;
    text-decoration: none;
    background-color: #79b5b3;
    font-size: 16px;
    padding: 5px 40px;
    color: white;
    border-radius: 4px;
}

.project-category-see-all a:hover{
    background-color: #57918f;
    transition: 0.0.5s;
    transition-timing-function: ease-out;
}

/* Why Nestudio */
.content-col{
    padding: 0;
}

.why-item{
    margin: 0 40px;
    width: calc(100% / 3 - 90px);
    text-align: center;
    list-style-type: none;
}

.why-item img{
    width: 150px;
}

.why-item h3{
    font-size: 16px;
    margin-top: 20px;
    margin-bottom: 10px;
    font-weight: 700;
}

.why-item p{
    font-size: 12px;
    margin-bottom: 40px;
}

/* Our Projects */
.projects-content li{
    text-align: center;
    margin-bottom: 10px;
}

.projects-content ul{
    margin-bottom: 10px;
    list-style-type: none;
}

.our-projects-see-all{
    text-align: center;
    min-height: 40px;

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

.our-projects-see-all a{
    text-decoration: none;
    text-transform: uppercase;
    background-color: #548ab6;
    color: white;
    border-radius: 2px;
    font-family: Montserrat, sans-serif;
    font-weight: 600;
    line-height: 26px;
    padding: 6px 12px;

    transition: all 0.5s;
}

.our-projects-see-all a:hover{
    background-color: #639dcc;
}

/* Responsive */
@media (max-width: 768px){
    body h2{
        font-size: 20px;
        margin: 20px;
        margin-top: 0px;
    }

    .step-item::before{
        content: none;
    }

    .step-item{
        width:auto;
        margin: 0 5px;
    }

    .step-name{
        display: none;
    }

    .step-content{
        text-align: center;
    }

    .button-register a{
        padding: 10px calc(50% - 61px);
    }

    .categories > div {
        width: 100%;
    }

    .custom-gap{
        gap: 0;
    }

    .project-category-image{
        width: 100vw;
        text-align: center;
        margin-bottom: 10px;
    }

    .project-category-overlay{
        padding-left: calc(50vw - 485px / 2);
        text-align: left;
    }

    .why-nestudio{
        padding: 40px 0 !important
    }

    .why-item{
        width: 100%;
    }

    .step-03{
        width: 30%;
    }
    
    .step-04{
        width: 50%;
    }
}