* { 
    margin: 0; 
    padding: 0;
}
@font-face {
    font-family: 'Poppins';
    src: url('../fonts/Poppins-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Poppins';
    src: url('../fonts/Poppins-Bold.ttf') format('truetype');
    font-weight: bold;
    font-style: normal;
}

@font-face {
    font-family: 'Poppins';
    src: url('../fonts/Poppins-Semibold.ttf') format('truetype');
    font-weight: 600; /* Semibold weight */
    font-style: normal;
}
html {
    scroll-behavior: smooth;
}

/* ---------- general */

a { 
    text-decoration: none;
    outline: none; 
    transition: all 0.3s; 
    color: #272D38;
}
a:hover,
a:active {
    color: #8EADD5;
}

.page { 
    width: 77.65vw; 
    max-width: 100%;
    margin: 0 auto; 
}
body {
    background: #fff;
    color: #1E1E1E;
    font-size: 1.1765vw;
    line-height: 120%;
    font-family: 'Poppins', Helvetica, Arial, sans-serif;
    overflow-x: hidden;
    min-height: 100vh;
    position: relative;
}
.btn-wrap {
    margin-top: 2.5vw;
}
.btn {
    display: inline-block;
    justify-content: center;
    align-items: center;
    background: #FF4773;
    padding: 1.2vw 2vw;
    color: #fff;
    font-family: 'Poppins', Helvetica, Arial, sans-serif;
    font-size: 125%;
    text-align: center;
    border: none;
    border-radius: 0.8vw;
    cursor: pointer;
    text-decoration: none !important; 
    margin: 1vw 0;
}
.btn:hover, .btn:active {
    color: #fff;
    background: #301869;
}
h1, h2, h3, h4 {
    color: #301869;
    font-family: 'Poppins', Helvetica, Arial, sans-serif;
    font-weight: 600;
}
h1 {
    font-size: 250%;
    margin-bottom: 1.2vw;
}
h2 {
    font-size: 250%;
    margin-bottom: 0.8vw;
}
h3 {
    font-size: 250%;
    margin-bottom: 0.8vw;
}
h4 {
    font-size: 125%;    
    font-family: 'Poppins', Helvetica, Arial, sans-serif;
    font-weight: bold;    
}
h1, h2, h3, h4 {
    line-height: 120%;
}

/* ---------- flex */

.flex { 
    display: flex; 
    justify-content: space-between; 
}
.flex.column {
    flex-direction: column;
}
.flex.center {
    align-items: center;
    justify-content: center;
}

/* ---------- sections */

.sections {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    gap: 2.7vw;
}
.section {
    position: relative;
    padding: 1.875vw 0;
    flex: 0 0 auto;
    overflow-x: hidden;
    z-index: 5;
}
.section > h3{
    text-align: center;
    margin-bottom: 3vw;    
}
.section .p {
    margin-bottom: 1vw;
}
.section .image {
    display: flex;
    justify-content: center;
    align-items: center;
}
.section .image img {
    width: 35.22vw;
    height: auto;
    image-rendering: optimizeQuality;
}
.section .info {
    flex: 0 0 38vw;
    align-items: flex-start;
    justify-content: center;
}
.section.left-side > .page.flex {
    flex-direction: row;
}
.section.right-side > .page.flex {
    flex-direction: row-reverse;
}
.section.central .info {
    flex: 0 0 36.1979vw;
}
.section.central h2 {
    text-align: center;
}

/* ---------- nav */

.section.topmenu nav {
    display: none;
}
nav {
    flex: 0 0 auto;
}
nav ul {
    height: 100%;
}
nav ul.flex {
    gap: 2.3vw;
    justify-content: flex-end;
    align-items: center;
}
nav li {
    list-style: none;
}
.mobile {
    display: none;
}

nav ul.lang.flex {
    gap: 0.5vw;
    background: #EDEDED;
    border-radius: 0.25vw;
}
nav ul.lang.flex li {
    padding: 0.5vw 1vw;
    border-radius: 0.25vw;
    font-weight: 600;
    transition-duration: 0.4s;
}
nav ul.lang.flex li:hover {
    background: #18181B20;
}
nav ul.lang.flex li.active {
    background: #18181B;
    color: #FFF;
}
nav ul.lang.flex li a {
    display: inline-block;
    font-size: 100%;
    color: #000;
}
nav ul.lang.flex li a .flag{
    width: 1.324vw;
    margin-left: 0.5vw;
}
nav ul.lang.flex li.active a {
    color: #FFF;
}

.logo img {
    height: 2vw;
}

/* PARTNERSHIP */

.section.partnership {
    background: #301869;
    padding-top: 5.5vw;
}
.section.partnership h2 {
    color: #FFF;
}
.section.partnership > .page > .flex {
    width: 100%;
}

/* ----------------------------------- WHY CHOOSE */

.cards {
    gap: 1.25vw;
    margin-top: 3.5vw;
    margin-bottom: 5vw;
    height: 29vw;
}
.cards .card {
    background: #F6F6F6;
    border-radius: 1vw;
    width: 25vw;
    justify-content: flex-start;
    padding: 0vw;
    overflow: hidden;
    margin-right: 2vw;
    height: 29vw;
}
.cards .card-outer:first-child {
    margin-left: 11.175vw;
}
.cards .card h4 {
    text-align: left;
    padding: 1.5vw;
    padding-bottom: 1vw;
}
.cards .card p {
    text-align: left;
    padding: 1.5vw;
    padding-top: 0;
}
.cards .card .image {
    width: 100%;
    height: 16.47vw;
}
.cards .card .image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Opportunities */

.section.opportunities {
    padding: 4vw 0;
}

.section.opportunities .opp-cards {
    margin: 3vw 0;
}
.section.opportunities .opp-cards .opp-card {
    border-left: 0.015vw solid #D4D4D8;
    padding-left: 3vw;
    gap: 2vw;
}

.section.opportunities .opp-cards .opp-card .opp-icon {
    height: 2.64vw;
    object-fit: contain;
    margin-bottom: 1vw;
}

/* ----------------------------------- FOOTER */

.section.footer {
    background: #301869;
    color: #FFF;
    padding: 3vw 0;
}
.section.footer .page.flex{
    justify-content: space-between;
}
.section.footer a {
    color: #fff;
    text-decoration: none;
}
.section.footer h2,
.section.footer h3,
.section.footer h4 {
    color: #fff;
}

.section.footer .readycolab {
    text-align: center;
    flex: 0 0 48vw;
    margin-top: 2vw;
}
.section.footer .readycolab .faces img {
    height: 5vw;
    margin-bottom: 2vw;
}
.section.footer .buttons {
    gap: 1.2vw;
    margin-bottom: 2vw;
    margin-top: 1vw;
    align-items: center;
    justify-content: center;
}
.section.footer .btn {
    background: #644AA2;
    gap: 0.5vw;
}
.section.footer .btn img {
    width: 2vw;
    object-fit: contain;
}
.section.footer .btn:hover {
    background: #C5ADFF26;
}

.section.footer .cloud-left {
    flex: 1 1 20%;
    background: url('../media/cleft.svg') no-repeat left top;
    background-size: contain;
}
.section.footer .cloud-right {
    flex: 1 1 20%;
    background: url('../media/cright.svg') no-repeat right bottom;
    background-size: contain;
}

/* ----------------------------------- RESPONSIVE */

@media screen and (max-aspect-ratio: 1/1) and (max-width: 640px ){

    body {
        font-size: 4.6vw;
    }
    .page {
        width: 80vw; 
    }
    .flex.central {
        align-items: center;
        justify-content: stretch;
        flex-direction: column;
    }
    .flex.central .page.flex{
        flex-direction: column;
    }
    h1 {
        font-size: 190%;        
        margin-bottom: 4vw;
    }
    h2 {
        font-size: 190%;
        margin-bottom: 10vw;
    }
    h1, h2, h3, h4 {
        text-align: center;
        line-height: 120%;
        margin-left: auto;
        margin-right: auto;
    }
    .section {
        padding: 10vw 0;
    }
    .section > .page.flex{
        gap: 9vw;
    }
    .section.left-side > .page.flex,
    .section.right-side > .page.flex {
        flex-direction: column;
    }
    .section .info p {
        text-align: center;
    }
    .section.success .info p {
        font-size: 112.5%;
        text-align: left;
    }
    .section .image img {
        width: 77.57vw;
    }
    .btn {
        padding: 5vw 7vw;
        font-size: 120%;
        border-radius: 2vw;
    }
    .section.hero .btn-wrap {
        text-align: center;
        width: 100%;
        margin-top: 8vw;
        margin-bottom: 6vw;
    }
    .logo img {
        height: 6.3vw;
    }
    
    nav ul.lang.flex {
        gap: 1vw;
        background: #FFF;
        border-radius: 1vw;
    }
    nav ul.lang.flex li {
        padding: 1vw 2.5vw;
        border-radius: 1vw;
    }
    nav ul.lang.flex li a {
        font-size: 120%;
        margin-top: 0.5vw;
    }
    nav ul.lang.flex li a .flag {
        display: none;
    }
    .section.hero {
        padding-top: 0;
    }
    .section.hero > .page.flex {
        flex-direction: column-reverse;
    }
    .section.hero .image img {
        width: 86vw;
    }
    .section.hero {
        padding-bottom: 4vw;
    }
    .section.partnership {
        padding-top: 12vw;
    }
    .cards {
        margin-top: 3.5vw;
        margin-bottom: 5vw;
        height: 120vw;
        padding: 0vw;
    }
    .cards .card-outer {
        width: 85vw;
        padding: 0;
        margin: 0;
        padding-left: 5vw;
        position: relative;
        height: 120vw;
    }
    .cards .card {
        border-radius: 5vw;
        width: 80vw;
        padding: 0vw;
        overflow: hidden;
        margin: 0vw;
        height: 120vw;
        position: absolute;   
        left: 5vw;
    }
    .cards .card-outer:first-child .card {
        left: 10vw;
        right: 0;
    }
    .cards .card-outer:last-child .card {
        left: 0;
        right: 10vw;
    }

    .cards .card .image {
        height: 64vw;
    }
    .cards .card h4 {
        padding: 6vw;
        padding-bottom: 4vw;
        width: calc(100% - 12vw);
        text-align: left;
    }    
    .cards .card p {
        text-align: left;
        padding: 6vw;
        padding-top: 0;
    }

    .section.opportunities h2 {
        text-align: left;
        margin-top: 4vw;
        margin-bottom: 2vw;
    }
    .section.opportunities .opp-cards {
        flex-direction: column;
        gap: 10vw;
    }
    .section.opportunities .opp-cards .opp-card {
        padding-left: 10vw;
        text-align: left;
    }
    .section.opportunities .opp-cards .opp-card p {
        text-align: left;
    }
    .section.opportunities .opp-cards .opp-card h4 {
        text-align: left;
        width: 100%;
        padding-bottom: 4vw;
    }
    .section.opportunities .opp-cards .opp-card .opp-icon {
        height: 10vw;
        margin-bottom: 6vw;
    }

    .section.footer {
        margin-top: 20vw;
        padding: 0;
    }
    .section.footer .flex {
        flex-direction: column;
        margin-bottom: 3vw;
    }
    .section.footer .cloud-left {
        min-height: 28vw;
        background: url(../media/cleftm.svg) no-repeat left top;
        background-size: contain;
    }
    .section.footer .cloud-right {
        min-height: 25vw;
        background: url(../media/crightm.svg) no-repeat right bottom;
        background-size: contain;
    }
    .section.footer h3 {
        font-size: 200%;
        line-height: 120%;
    }
    .section.footer .readycolab .faces img {
        height: 15vw;
        margin-bottom: 5vw;
    }
    .section.footer .buttons {
        margin-top: 4vw;
    }
    .section.footer .btn {
        gap: 3vw;
        flex-direction: row;
        width: 40vw;
        border-radius: 4vw;
    }
    .section.footer .btn img {
        width: 7.8vw;
    }
}