/* colors and variables */
:root {
    --darkBlue: #0c1524;
    --cyan: #1dfff7;
    --yellow: #F4B607;
    --main-text-color: #fff;
    --cta-1-bg: var(--yellow);
    --cta-1-bg-hovered: #070c15;
    --cta-1-color: #000;
    --cta-1-border: #000;
    --cta-1-color-hovered: var(--yellow);
    --cta-2-bg: var(--darkBlue);
    --cta-2-border: #fff;
    --cta-2-color: #fff;
    --cta-2-bg-hovered: #fff;
    --cta-2-border-hovered: #fff;
    --cta-2-color-hovered: var(--darkBlue);
    --cta-2-color-light: #000;
    --cta-2-border-light: #000;
    --main-layout-bg: var(--darkBlue);
    --main-layout-header-bg: var(--darkBlue);
}


html, body {
    width: 100%;
    margin: 0;
    padding: 0;
    font-family: "Sora", sans-serif;
    font-optical-sizing: auto;
    font-weight: 200;
    font-style: normal;
    font-size: 17px;
    line-height: 1.5em;
    color: var(--main-text-color);
}
body {
    overflow-x: hidden;
    box-sizing: border-box;
}


/* ################# FONTS */
@font-face {
    font-family: 'anime_ace_2.0_bbbold';
    src: url('../../fonts/animeace2_bld-webfont.woff2') format('woff2'),
    url('../../fonts/animeace2_bld-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}
@font-face {
    font-family: 'anime_ace_2.0_bbregular';
    src: url('../../fonts/animeace2_reg-webfont.woff2') format('woff2'),
    url('../../fonts/animeace2_reg-webfont.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}



/* ################# SCROLLBARS */
/* width */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}
/* button */
::-webkit-scrollbar-button {
    background: var(--yellow);
}
/* Handle */
::-webkit-scrollbar-thumb {
    background: #2d415f;
}
/* Handle on hover */
::-webkit-scrollbar-thumb:hover {
    background: #2d415f;
}
/* Track */
::-webkit-scrollbar-track {
    background: #0f1e36;
}


/* ################# FLEX */
.flex-wrap {
    flex-wrap: wrap;
}


/* ################# LINKS */
a {
    text-decoration: none;
    transition: all 0.2s ease-in-out 0s;
}


/* ################# HIERARCHICAL TAGS */
h1, h2, h3 {
    margin: 0;
    font-family: "Unbounded", sans-serif;
    font-weight: normal;
}


/* ################# CTAs */
.cta-primary {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--cta-1-bg);
    color: var(--cta-1-color) !important;
    font-size: 1em;
    font-weight: 600;
    padding: .9em 1.7em;
    border-radius: 2em;
    text-decoration: none !important;
    box-shadow: 0 0 2px 2px #000000, 0 0 17px 11px #f4b60733;
    gap: 1em;
    cursor: pointer;
    svg {
        width: 1.2em;
        height: 1.2em;
    }
    &:hover {
        box-shadow: 0 0 2px 2px #000000, 0 0 17px 11px #ffffff24;
        background: var(--cta-1-bg-hovered);
        color: var(--cta-1-color-hovered) !important;
    }
    &.large {
        padding: 1.1em 2em;
        font-size: 1.2em;
        &.min-sm {
            font-size: 1em;
            padding: .4em 1.1em;
        }
    }
    &.very-large {
        padding: 1.3em 2.5em;
        font-size: 1.5em;
    }
}

.cta-container {
    display: flex;
    margin: 1em 0 0 0;
    &.align-right {
        justify-content: flex-end;
    }
}
.cta-secondary {
    position: relative;
    width: auto;
    display: flex;
    gap: 1em;
    align-items: center;
    background: var(--cta-2-bg);
    color: var(--cta-2-color);
    font-size: 1em;
    padding: .8em 1.5em;
    border-radius: 2em;
    text-decoration: none;
    box-shadow: 0 0 1px 1px #ffffff, 0 0 11px 5px #ffffff61;
    font-weight: 500;
    svg {
        width: 1.2em;
        height: 1.2em;
    }
    &:hover {
        background: var(--cta-2-bg-hovered);
        color: var(--cta-2-color-hovered);
    }
}


/* header */
header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 2em 3em;
    position: fixed;
    top: 0;
    left: 0;
    box-sizing: border-box;
    z-index: 2;
    -webkit-transition: all 0.2s ease-in-out 0s;
    transition: all 0.2s ease-in-out 0s;
    &.rel {
        position: relative;
        top: inherit;
        left: inherit;
    }
    .logo-container {
        display: flex;
        width: 20%;
        position: relative;
        z-index: 5;
        svg {
            width: 150px;
        }
    }
    .menu {
        width: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: .6rem 1rem;
        background: #212e43;
        border-radius: 2rem;
        transition: transform 0.6s ease-in-out;
        border: 2px solid #030b18;
        filter: drop-shadow(0 0 80px rgba(0,0,0,0.5));
        &.transparent {
            background: transparent;
            border-color: transparent;
        }
        ul {
            padding: 0;
            list-style: none;
            display: flex;
            justify-content: center;
            gap: 1em;
            margin: 0;
            li {
                position: relative;
                a {
                    color: var(--main-text-color);
                    padding: .4rem 1.1rem;
                    border-radius: 2rem;
                    display: flex;
                    font-size: .9em;
                    font-weight: 500;
                    align-items: center;
                    gap: .5rem;
                    svg {
                        height: 20px;
                        width: 20px;
                        opacity: .5;
                    }
                    &:hover {
                        background: var(--main-text-color);
                        color: var(--darkBlue);
                    }
                    &.selected {
                        background: var(--yellow);
                        color: var(--darkBlue);
                    }
                }
                &.has-sub {
                    &:hover {
                        .for-sub {
                            display: flex;
                        }
                    }
                }
                span.no-link {
                    font-size: .9em;
                    padding: .4rem 1.1rem;
                    border-radius: 2rem;
                    cursor: pointer;
                    display: flex;
                    align-items: center;
                    gap: .5rem;
                    font-weight: 500;
                    transition: all 0.2s ease-in-out 0s;
                    svg {
                        height: 20px;
                        width: 20px;
                        &:nth-child(1) {
                            opacity: .5;
                        }
                    }
                    &:hover {
                        background: var(--main-text-color);
                        color: var(--darkBlue);
                    }
                    &.selected {
                        background: var(--yellow);
                        color: var(--darkBlue);
                    }
                }
                .for-sub {
                    position: absolute;
                    left: 0;
                    z-index: 1000;
                    display: none;
                    padding-top: 1.5em;
                    ul.sub {
                        position: relative;
                        padding: 1em;
                        background: #273348;
                        display: flex;
                        flex-wrap: wrap;
                        border-radius: 1em;
                        gap: 1em;
                        li {
                            width: 100%;
                            a {
                                display: flex;
                                color: var(--main-text-color);
                                background: var(--darkBlue);
                                &:hover {
                                    background: #111e34;
                                }
                            }
                        }
                        .arrow {
                            position: absolute;
                            top: -15px;
                            left: calc(50% - 20px);
                            svg {
                                width: 30px;
                                height: 30px;
                                transform: rotate(-90deg);
                                polygon {
                                    fill: #273348;
                                    stroke: #273348;
                                }
                            }
                        }
                    }
                }
            }
        }
        &.is-hidden {
            transform: translateY(-200%);
        }
    }
    .mob-menu {
        position: fixed;
        z-index: 2;
        width: calc(100% - 3rem);
        background: #2f3440;
        border-radius: 1.5rem;
        top: 1.5rem;
        left: 1.5rem;
        box-shadow: rgb(0 0 0 / 25%) 1px 6px 25px;
        display: none;
        &.on {
            display: block;
        }
        .content {
            width: 100%;
            padding: 3rem 0 1rem 0;
            ul {
                padding: 0;
                list-style: none;
                display: block;
                width: 100%;
                li {
                    display: block;
                    a {
                        display: block;
                        width: calc(100% - 5rem);
                        margin: 0 2.5rem;
                        padding: 1.5rem 0;
                        color: var(--main-text-color);
                        background-image: linear-gradient(to right, rgb(255, 255, 255) 10%, rgba(255, 255, 255, 0) 0%);
                        background-position: center bottom;
                        background-size: 10px 1px;
                        background-repeat: repeat-x;
                        position: relative;
                        font-weight: 600;
                        font-size: 1em;
                        &.sub:after {
                            border-left: 2px solid white;
                            border-top: 2px solid white;
                            width: 10px;
                            content: "";
                            height: 10px;
                            position: absolute;
                            right: 1rem;
                        }
                        &.sub.off:after {
                            transform: rotate(-135deg);
                            top: calc(50% - 10px);

                        }
                        &.sub.on:after {
                            transform: rotate(-315deg);
                            top: calc(50% - 5px);
                        }
                    }
                    .mob-submenu {
                        width: 100%;
                        padding: 0;
                        display: none;
                        ul {
                            list-style: none;
                            width: calc(100% - 2.5rem);
                            padding-left: 2.5rem;
                            overflow: visible;
                            li {
                                display: block;
                                padding: 0;
                                margin: 0 0 .5em 0;
                                a {
                                    display: block;
                                    font-weight: 400;
                                    margin: 0 1.5rem;
                                    width: calc(100% - 3rem);
                                    position: relative;
                                    font-style: italic;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    .actions {
        display: flex;
        justify-content: flex-end;
        width: 20%;
        gap: 1em;
        position: relative;
        z-index: 5;

        .language-dropdown {
            position: relative;
            display: flex;
            align-items: center;
            a {
                display: flex;
                color: #fff;
            }
            .ddown {
                position: absolute;
                right: -3px;
                top: 45px;
                background: #fff;
                border-radius: 8px;
                overflow: hidden;
                box-shadow: 0px 0px 8px 0px #110d25;
                display: none;

                ul {
                    width: 100%;
                    display: flex;
                    flex-wrap: wrap;
                    margin: 0;
                    padding: 0;
                    list-style: none;
                    li {
                        display: flex;
                        width: 100%;
                        a {
                            display: flex;
                            width: 100%;
                            justify-content: flex-end;
                            padding: .3em .2em .3em .6em;
                            align-items: center;
                            gap: .5em;
                            text-decoration: none;
                            color: var(--main-text-color);
                            -webkit-transition: all 0.2s ease-in-out 0s;
                            transition: all 0.2s ease-in-out 0s;
                            svg {
                                width: 40px;
                                height: 30px;
                            }
                            &:hover {
                                background: #000;
                                color: #fff;
                            }
                        }
                    }
                }
            }
            &.on {
                .ddown {
                    display: block;
                }
            }
        }
        .hamburger {
            display: none;
            align-items: center;
            cursor: pointer;
            .ham-cont {
                display: flex;
                flex-direction: column;
                position: relative;
                height: 24px;
                width: 20px;
                .line1 {
                    width: 20px;
                    height: 2px;
                    background-color: rgb(255, 255, 255);
                    margin: 3px 0px;
                    position: relative;
                    transition: all 250ms ease-in 0s;
                }
                .line2 {
                    height: 2px;
                    background-color: rgb(255, 255, 255);
                    margin: 3px 0px;
                    width: 16px;
                    position: relative;
                }
                .line3 {
                    width: 20px;
                    height: 2px;
                    background-color: rgb(255, 255, 255);
                    margin: 3px 0px;
                    position: relative;
                    transition: all 250ms ease-in 0s;
                }
            }
            &.on {
                .ham-cont {
                    .line1 {
                        position: absolute;
                        transform: rotate(45deg);
                        top: 7px;
                    }
                    .line2 {
                        opacity: 0;
                        width: 0px;
                    }
                    .line3 {
                        position: absolute;
                        top: 7px;
                        transform: rotate(-45deg);
                    }
                }
            }
        }
    }
    /* fixed header */
    &.fixed {
        position: fixed;
        z-index: 100;
        background: var(--petrolBlue);
        border-bottom: 2px solid #192942;
    }
    &.bg {
        background: linear-gradient(180deg,rgba(12, 21, 36, 1) 5%, rgba(12, 21, 36, 0) 100%);
        &.light {
            background: linear-gradient(180deg, rgb(255 255 255) 5%, rgba(255, 255, 255, 0) 100%);
            nav.menu {
                background: #d5dae2;
                border-color: #bac4d6;
                a {
                    color: var(--darkBlue);
                    &:hover {
                        background: #e3e8ef;
                    }
                }
                span.no-link {
                    color: var(--darkBlue);
                    &:hover {
                        background: #e3e8ef;
                    }
                }
            }
            .actions {
                .cta-secondary {
                    color: var(--darkBlue);
                    box-shadow: 0 0 2px 2px #0c1524, 0 0 17px 11px #0c152461;
                    background: white;
                }
                .hamburger {
                    .ham-cont {
                        .line1, .line2, .line3 {
                            background: var(--darkBlue);
                        }
                    }
                    &.on {
                        .ham-cont {
                            .line1, .line3 {
                                background: white;
                            }
                        }
                    }
                }
            }
        }
    }
}



footer {
    box-sizing: border-box;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 2em 2em;
    color: var(--main-text-color);
    position: relative;
    z-index: 3;
    .logo-container {
        display: flex;
        width: 100%;
        justify-content: center;
        margin: 0 0 1em 0;
        svg {
            height: 30px;
        }
    }
    .mentions {
        margin: 0 0 1em 0;
        text-align: center;
        span {
            font-size: .9em;
        }
        a {
            color: var(--main-text-color);
            &:hover {
                color: var(--yellow);
                text-decoration: underline;
            }
        }
    }
    .social {
        width: 100%;
        display: flex;
        justify-content: center;
        a {
            display: inline-block;
            width: 40px;
            height: 40px;
            svg {
                width: 100%;
                height: 100%;
            }
        }
    }
    &.for-layout {
        background: var(--main-layout-bg);
    }
}


/* Form */
.main-modal-wrapper {
    width: 100vw;
    height: 100vh;
    position: fixed;
    z-index: 99;
    background: var(--darkBlue);
    opacity: 0;
    top: 0;
    left: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease;
    &.on {
        visibility: visible;
        opacity: .8;
    }
}
#formWrapper {
    display: flex;
    flex-wrap: wrap;
    width: 40vw;
    height: 80vh;
    position: fixed;
    z-index: 100;
    bottom: 0;
    right: -40vw;
    background: #19273d;
    border-radius: 4rem 0 0 0;
    box-shadow: -3px 4px 18px 1px rgb(0 0 0 / 30%);
    transition: right 1s ease;
    &.on {
        right: 0;
    }
    .close {
        position: absolute;
        z-index: 6;
        right: 1rem;
        top: 1rem;
        svg {
            width: 2rem;
            height: 2rem;
            circle {
                stroke: white;
                fill: white;
            }
            path {
                stroke: var(--darkBlue);
            }
        }
    }
    .jc {
        width: 100%;
        display: flex;
        justify-content: center;
        height: 6rem;
        margin-top: -3rem;
        img {
            width: 6rem;
            height: 6rem;
            border-radius: 50%;
            border: 4px solid var(--darkBlue);
        }
    }
    .form-container {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        height: calc(100% - 7rem);
        padding: 2rem;
        align-content: flex-start;
        gap: 2rem;
        .form-header {
            display: flex;
            text-align: center;
        }
    }
    .processing {
        width: 100%;
        height: 100%;
        background: #080d16;
        justify-content: center;
        align-items: center;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 5;
        opacity: .99;
        display: none;
        border-radius: 4rem 0 0 0;
        &.on {
            display: flex;
        }
        .spinner {
            width: 5rem;
            height: 5rem;
            display: none;
            img {
                width: 100%;
                height: 100%;
            }
            &.on {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
            }
        }
        .congrats {
            width: 100%;
            padding: 0 2rem;
            display: none;
            h3 {
                width: 100%;
                text-align: center;
                font-weight: 700;
                font-size: 2rem;
                margin: 0 0 1rem 0;
            }
            p {
                text-align: center;
            }
            &.on {
                display: flex;
                flex-wrap: wrap;
                justify-content: center;
            }
        }
    }
}


/* FORM */
form {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 1.5em;
    .form-block {
        width: 100%;
        position: relative;
        display: flex;
        &.half {
            width: 50%;
            margin: 0;
            z-index: 1;
        }
        label {
            display: none;
        }
        input, select {
            width: 100%;
            background: #fff;
            color: var(--darkBlue);
            border: 0;
            outline: none;
            font-size: 1em;
            font-weight: 500;
            padding: .8em 1.5em;
            box-sizing: border-box;
            font-family: inherit;
            border-radius: 8px;
            -webkit-transition: all 0.2s ease-in-out 0s;
            transition: all 0.2s ease-in-out 0s;
        }
        textarea {
            width: 100%;
            height: 13vh;
            background: #fff;
            color: var(--darkBlue);
            border: 0;
            border-radius: 1em;
            outline: none;
            font-size: 1.1em;
            line-height: 1.5em;
            font-weight: 500;
            padding: .8em 1.5em;
            box-sizing: border-box;
            font-family: inherit;
            resize: none;
            -webkit-transition: all 0.2s ease-in-out 0s;
            transition: all 0.2s ease-in-out 0s;
        }
        .ellipse {
            position: absolute;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            left: calc(50% - 16px);
            top: calc(50% - 16px);
            background: #000;
            z-index: 2;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        &:last-child {
            margin: 0;
            justify-content: flex-end;
        }
    }
}


.grecaptcha-badge {
    right: -500px !important;
}
#cookiescript_badge {
    transform: scale(.7);
    transform-origin: left;
}


/* Responsive */
@media (max-height: 768px) {
    header {
        padding: 1em 2em;
    }
    .cta {
        font-size: 1em;
        &.large {
            font-size: 1.1em;
            padding: 1em 2em;
        }
    }
    #formWrapper {
        height: 100vh;
        .jc {
            height: 4rem;
            margin-top: 1rem;
            img {
                height: 4rem;
                width: 4rem;
            }
        }
        .form-container {
            form {
                .form-block {
                    input, select, textarea {
                        font-size: 1em;
                        padding: .8em 1em;
                    }
                }
            }
        }
    }
}
@media (max-height: 400px) {

}
@media (max-width: 1300px) {
    header {
        .menu {
            ul {
                gap: 1em;
            }
        }
    }
}
@media (max-width: 1199px) {
    body {
        font-size: 15px;
    }
    header {
        padding: 3em 4.5em;
        .logo-container {
            width: auto;
        }
        nav.menu {
            display: none;
        }
        .mob-menu {
            display: none;
        }
        .actions {
            width: auto;
            gap: 2em;
            .hamburger {
                display: flex;
            }
        }
    }
    .cta {
        font-size: 1em;
        &.large {
            font-size: 1.1em;
            padding: 1em 2em;
        }
    }
}
@media (max-width: 991px) {
    #formWrapper {
        width: 80vw;
        right: -80vw;
    }
}
@media (max-width: 768px) {
    header {
        padding: 1.5rem 2.5rem;
        .logo-container {
            width: 90px;
        }
        .actions {
            gap: 1.5rem;
            align-items: center;
            .cta-secondary {
                span {
                    span {
                        display: none;
                    }
                }
            }
            .language-dropdown {
                .trigger {
                    width: 30px;
                    height: 25px;
                }
                .ddown {
                    ul {
                        li {
                            a {
                                svg {
                                    width: 30px;
                                    height: 25px;
                                }
                            }
                        }
                    }
                }
            }
        }
        .mob-menu {
            top: 1rem;
            left: 1rem;
            width: calc(100% - 2rem);
            .content {
                ul {
                    li {
                        a {
                            margin: 0 1.5rem;
                            width: calc(100% - 3rem);
                        }
                    }
                }
            }
        }
    }
    .cta {
        padding: .4em 1.1em;
        span {
            display: none;
            &.important {
                display: flex !important;
            }
        }
    }
    #formWrapper {
        width: 93vw;
        right: -93vw;
        .form-header {
            span {
                &:nth-child(1) {
                    font-size: 1.1em;
                }
                &:nth-child(2) {
                    font-size: .9em;
                    line-height: 1em;
                }
            }
        }
        .form-content {
            padding: 0 1em;
        }
        .form-block input, .form-block textarea {
            font-size: 1em;
            padding: .8em 1em;
        }
        .form-block .cta {
            padding: .7em 1.3em;
            width: 100%;
            justify-content: center;
        }
        .processing .congrats .goodjob {
            div {
                img {
                    width: 50%;
                }
            }
        }
    }
    footer {
        .mentions {
            span {
                display: block;
                width: 100%;
                &.sep {
                    display: none;
                }
            }
        }
    }
}
@media (max-width: 550px) {
    #formWrapper {
        height: 90vh;
        border-radius: 2rem 0 0 0;
        .jc {
            height: 3rem;
            margin-top: .5rem;
            img {
                width: 3rem;
                height: 3rem;
                border: 3px solid var(--darkBlue);
            }
        }
        .form-container {
            padding: 1rem;
            align-content: flex-start;
            .form-header {
                span {
                    font-size: .8rem;
                    line-height: 1.3em;
                }
            }
            form {
                gap: 1em;
                .form-block {
                    input, select, textarea {
                        font-size: .9rem;
                        padding: .6em 1em;
                    }
                }
            }
        }
    }
}