body{
    position: relative;
}
.hero{
	height: 360px;
	min-height: auto;
	justify-content: flex-end;
	padding: 0 0 94px 0;
	background-position: left center;
}

.hero h1{
	padding-top: 30px;
	padding-bottom: 0;
}

/*main text*/

.main-text{
	background-color: #001A5E;
	padding: 60px 0;
    color: var(--White, #FFF);
    font-family: 'Aspekta-300';
    font-size: 26px;
    font-style: normal;
    font-weight: 300;
    line-height: 132%;
}

.main-text strong, .main-text b{
    font-family: 'Aspekta-500';
    font-weight: 500;
}

/*infographics*/

.infographics{
    padding: 60px 0 0;
}

.infographics .infographics-subtitle{
    color: var(--Royal, #2E69B3);
    font-family: 'Aspekta-750';
    font-size: 16px;
    font-style: normal;
    font-weight: 750;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 30px;
}

.infographics .infographics-text{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-350';
    font-size: 22px;
    font-style: normal;
    font-weight: 350;
    line-height: 130%;
    margin-bottom: 30px;
}

.infographics .infographics-image img{
    max-width: 100%;
}

/*thesis*/

.thesis{
    margin-bottom: 0;
}

.thesis > .content-wrapper{
    position: relative;
    z-index: 5;
    background-color: #fff;
}

.main-term{
    position: relative; 
    top: 60px;
    border: 2px solid var(--Dark-Blue, #001856);
    background: var(--White, #FFF);
    padding: 60px 33px 65px;
}

.term-subtitle{
    color: var(--Royal, #2E69B3);
    font-family: 'Aspekta-750';
    font-size: 16px;
    font-style: normal;
    font-weight: 750;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 14px;
}

.term-title h2{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-750';
    font-size: 26px;
    font-style: normal;
    font-weight: 750;
    line-height: 130%;
    margin-bottom: 30px;
}

.term-title h3{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-650';
    font-size: 26px;
    font-style: normal;
    font-weight: 650;
    line-height: 130%;
    margin-bottom: 22px;
}

.term-text{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-350';
    font-size: 16px;
    font-style: normal;
    font-weight: 350;
    line-height: normal;
}

.additional-terms{  
    background: var(--Sky, #CCE3EC);  
    padding: 103px 0 65px;
    position: relative; 
}

.additional-terms .content-wrapper{
    display: flex;
    flex-direction: column;
    gap: 50px;    
}

/*cards block*/

.cards-block .content-wrapper{
    padding: 0;
}


.cards-block-container{
    background-color: #001A5E;
    margin-bottom: 60px;
    padding: 40px 33px 46px;
}

.cards-block-subtitle{
    color: var(--Royal, #CCE3EC);
    font-family: 'Aspekta-750';
    font-size: 16px;
    font-style: normal;
    font-weight: 750;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.cards-block-text{
    color: var(--White, #FFF);
    font-family: 'Aspekta-350';
    font-size: 26px;
    font-style: normal;
    font-weight: 350;
    line-height: 132%;
    margin-bottom: 40px;
}

.block-cards{
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.card-item{
    background-color: rgb(255, 255, 255, 0.12);
    padding: 34px 26px;
    display: flex;
    flex-direction: column;
    gap: 28px;
    height: 280px;
}

.card-item .card-icon{
    width: 59px;
    height: 59px;
}

.card-item .card-icon img{
    width: 100%;
    height: 100%;
}

.card-subtitle{
    color: var(--Sky, #CCE3EC);
    font-family: 'Aspekta-750';
    font-size: 16px;
    font-style: normal;
    font-weight: 750;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 18px;
}

.card-title{
    color: var(--White, #FFF);
    font-family: 'Aspekta-350';
    font-size: 26px;
    font-style: normal;
    font-weight: 350;
    line-height: 130%;
}

.swiper-pagination{
    position: initial;
}

.swiper-pagination-bullet{
    background-color: #fff!important;
    opacity: 0.3
}

.swiper-pagination-bullet-active {
    opacity: 1
}

/*2 column block*/

.columns-block{
    margin-bottom:60px;
}

.columns-block-subtitle{
    color: var(--Sky, #2E69B3);
    font-family: 'Aspekta-750';
    font-size: 16px;
    font-style: normal;
    font-weight: 750;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.columns-block-row{
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.left-column{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-350';
    font-size: 26px;
    font-style: normal;
    font-weight: 350;
    line-height: 132%; 
}

.right-column{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-350';
    font-size: 16px;
    font-style: normal;
    font-weight: 350;
    line-height: normal;
}

/*quote*/

.quote{
    margin-bottom: 60px;
}

.quote .text-container{
    margin: 51px 0;
    border-top: 1px #001856 solid;  
    padding-top: 49px;  
}

.quote-text{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-700';
    font-size: 26px;
    font-style: normal;
    font-weight: 700;
    line-height: 132%;
    position: relative;
}

.quote-text:before{
    content: '"';
    position: absolute;
    left: -14px;
}

.quote-author{
    color: var(--Dark-Blue, #001856);
    font-family: 'Aspekta-500';
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    margin-top: 40px;
}

/*approach*/

/* Fade animations */
@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.fade-out {
    animation: fadeOut 0.2s ease-out forwards;
}

.fade-in {
    animation: fadeIn 0.3s ease-in forwards;
}

.approach{
    background-image: url('../images/roica-approach-bg.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center top;
    padding: 53px 0 62px;
}

.approach-subtitle{
    color: var(--Royal, #CCE3EC);
    font-family: 'Aspekta-750';
    font-size: 18px;
    font-style: normal;
    font-weight: 750;
    line-height: normal;
    text-transform: uppercase;
    margin-bottom: 26px;
}

.approach-text{
    color: var(--White, #FFF);
    font-family: 'Aspekta-350';
    font-size: 26px;
    font-style: normal;
    font-weight: 350;
    line-height: 132%;
    margin-bottom: 46px;
}

.approach-phases{
    display: flex;
    flex-direction: column;
    gap: 65px;
}

.phase{
    border-top: 1px #fff solid;
    padding-top: 21px;
    transition: opacity 0.3s ease;
}

.phase-name{
    color: var(--White, #FFF);
    font-family: 'Aspekta-550';
    font-size: 22px;
    font-style: normal;
    font-weight: 550;
    line-height: normal;
    margin-bottom: 43px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 20px;
}

.phase-name span{
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 36px;
    border: 1px solid var(--White, #FFF);
}

.phase-title h2{
    color: var(--White, #FFF);
    font-family: 'Aspekta-550';
    font-size: 26px;
    font-style: normal;
    font-weight: 550;
    line-height: 130%;
    margin-bottom: 30px;
}

.phase-text{
    color: var(--White, #FFF);
    font-family: 'Aspekta-350';
    font-size: 16px;
    font-style: normal;
    font-weight: 350;
    line-height: normal;
}

.desktop-phase-text{
    display: none;
    min-height: 300px;
    overflow: hidden;
}

.desktop-phase-text .phase-content {
    opacity: 1;
}

body.fixed-bottom{
    overflow-y: hidden;
}

@media (min-width: 768px) {
	.hero{
		padding: 0 0 110px 0;
		height: 464px;
	}

    /*main text*/

    .main-text{
        padding: 73px 0;
        font-size: 32px;
    }

    /* infographics*/

    .infographics{
        padding: 73px 0 0;
    }

    .infographics .infographics-subtitle{
        font-size: 18px;
        margin-bottom: 30px;
    }

    .infographics .infographics-text{
        font-size: 26px;
        margin-bottom: 40px;
    }

    /*thesis*/

    .thesis{
        margin-bottom: 72px;
    }

    .main-term{
        border: 2px solid var(--Dark-Blue, #001856);
        background: var(--White, #FFF);
        padding: 65px 76px 75px;
    }

    .term-subtitle{
        font-size: 18px;
        margin-bottom: 16px;
    }

    .term-title h2{
        font-size: 32px;
        margin-bottom: 36px;
    }

    .term-title h3{
        font-size: 26px;
        margin-bottom: 28px;
    }


    /*cards block*/

    .cards-block .content-wrapper{
        padding: 0 55px;
    }

    .cards-block-container{
        margin-bottom: 80px;
        padding: 70px 62px 67px;
    }

    .cards-block-subtitle{
        font-size: 18px;
        margin-bottom: 22px;
    }

    .cards-block-text{
        font-size: 32px;
        margin-bottom: 46px;
    }

    .card-item{
        padding: 40px 28px 38px;
    }

    .card-subtitle{
        font-size: 18px;
        margin-bottom: 12px;
    }

    .card-title{
        font-size: 30px;
    }

    /*2 column block*/

    .columns-block{
        margin-bottom:80px;
    }

    .columns-block-subtitle{
        font-size: 18px;
        margin-bottom: 26px;
    }

    .left-column{
        font-size: 32px;
    }

    .right-column{
        font-size: 16px;
    }

    /*quote*/
    .quote .text-container{
        margin: 73px 0; 
        padding-top: 41px;  
    }

    .quote-text{
        font-size: 26px;
    }

    .quote-text:before{
        left: -14px;
    }

    .quote-author{
        font-size: 16px;
        margin-top: 22px;
    }

    /*approach*/

    .approach{
        padding: 96px 0;
    }

    .approach-subtitle{
        font-size: 20px;
    }

    .approach-text{
        font-size: 32px;
        margin-bottom: 60px;
    }

    .phase-text{
        font-size: 18px;
    }

}

@media (min-width: 1024px) {
	.hero{
		height: 584px;
	}

	.hero h1{
		padding-bottom: 0;
	}

    /*main text*/

    .main-text{
        padding: 121px 0;
        font-size: 42px;
    }

    /*infographics*/

    .infographics{
        padding: 100px 0 0;
    }

    .infographics .infographics-subtitle{
        font-size: 20px;
        margin-bottom: 40px;
    }

    .infographics .infographics-text{
        font-size: 30px;
        margin-bottom: 46px;
    }

    /*thesis*/

    .thesis{
        margin-top: 9px;
        margin-bottom: 72px;
    }

    .term-subtitle{
        font-size: 20px;
        margin-bottom: 18px;
    }

    .term-text{
        font-size: 20px;
    }

    .main-term{
        top: 88px;
        padding: 65px 76px 75px;
    }

    .term-title h2{
        font-size: 42px;
        margin-bottom: 40px;
    }

    .term-title h3{
        font-size: 30px;
        margin-bottom: 40px;
    }
    
    .additional-terms{
        padding: 154px 0 95px;        
    }

    .additional-terms .content-wrapper{
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 112px;    
    }

    /*cards block*/
    
    .cards-block-container{
        margin-bottom: 104px;
        padding: 60px 55px 65px;
    }

    .cards-block-subtitle{
        font-size: 20px;
        margin-bottom: 28px;
    }

    .cards-block-text{
        font-size: 42px;
        margin-bottom: 69px;
    }

    .block-cards .swiper-wrapper{
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 32px;
    }

    .card-item{
        padding: 49px 32px 43px;
    }

    .card-subtitle{
        font-size: 20px;
        margin-bottom: 12px;
    }

    .swiper-wrapper{
        transform: none;
    }

    .swiper-wrapper .card-item{
        width: 100%!important;
        height: auto;
    }
    
     .swiper-pagination{
        display: none;
    }

    /*2 column block*/
    .columns-block-subtitle{
        font-size: 20px;
        margin-bottom: 30px;
    }

    .columns-block-row{
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 34px;
    }

    .right-column{
        font-size: 20px;
    }

    .left-column{
        font-size: 42px;
    }

    /*quote*/
    
    .quote .text-container{
        margin: 89px 0; 
        padding-top: 41px;  
    }

    .quote-text{
        font-size: 30px;
    }

    .quote-text:before{
        left: -16px;
    }

    .quote-author{
        font-size: 20px;
        margin-top: 25px;
    }

    /*approach*/
    
    .approach{
        padding: 96px 0 111px;
    }

    .approach.fixed{
        position: fixed;
        bottom: 0;
        z-index: 99;   
        width: 100%;
    }

    .approach-text{
        font-size: 42px;
        margin-bottom: 85px;
        max-width: 1080px;
    }

    .phase{
        padding-top: 22px;
        cursor: pointer;
        opacity: 0.4;
    }

    .phase.active {
        opacity: 1;
    }

    .phase-name{
        font-size: 30px;
        gap: 17px;
        margin-bottom: 0;
    }

    .phase-name span{        
        width: 45px;
        height: 45px;
        border-radius: 45px;
    }

    .phase-title h2 {
        font-size: 30px;
        margin-bottom: 32px;
    }

    .phase-text{
        font-size: 20px;
    }

    .desktop-phase-text{
        display: block;
        max-width: 661px;
        height: 342px;
    }

    .phases-container{
        display: grid;
        grid-template-columns: 3fr 5fr;
        gap: 73px;        
    }

    .approach-phases{
        width: 426px;
        gap: 30px;
    }

    .approach-phases .phase-content{
        display: none;
    } 

}

@media (min-width: 1240px) {
    footer.hidden{
        display: none;
    }
}