a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display: block
}

body {
    line-height: 1
}

ol, ul {
    list-style: none
}

blockquote, q {
    quotes: none
}

blockquote:after, blockquote:before, q:after, q:before {
    content: '';
    content: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

.h-1 {
    min-height: 10vh
}

.h-2 {
    min-height: 20vh
}

.h-3 {
    min-height: 30vh
}

.h-4 {
    min-height: 40vh
}

.h-5 {
    min-height: 50vh
}

.h-6 {
    min-height: 60vh
}

.h-7 {
    min-height: 70vh
}

.h-8 {
    min-height: 80vh
}

.h-9 {
    min-height: 90vh
}

.h-10 {
    min-height: 100vh
}

.mt-1 {
    margin-top: 1rem
}

.pt-1 {
    padding-top: 1rem
}

.mt-2 {
    margin-top: 2rem
}

.pt-2 {
    padding-top: 2rem
}

.mt-3 {
    margin-top: 3rem
}

.pt-3 {
    padding-top: 3rem
}

.mt-4 {
    margin-top: 4rem
}

.pt-4 {
    padding-top: 4rem
}

.mt-5 {
    margin-top: 5rem
}

.pt-5 {
    padding-top: 5rem
}

.mt-6 {
    margin-top: 6rem
}

.pt-6 {
    padding-top: 6rem
}

.mt-7 {
    margin-top: 7rem
}

.pt-7 {
    padding-top: 7rem
}

.mt-8 {
    margin-top: 8rem
}

.pt-8 {
    padding-top: 8rem
}

.mt-9 {
    margin-top: 9rem
}

.pt-9 {
    padding-top: 9rem
}

.mt-10 {
    margin-top: 10rem
}

.pt-10 {
    padding-top: 10rem
}

.mt-11 {
    margin-top: 11rem
}

.pt-11 {
    padding-top: 11rem
}

.mt-12 {
    margin-top: 12rem
}

.pt-12 {
    padding-top: 12rem
}

.mb-1 {
    margin-bottom: 1rem
}

.pb-1 {
    padding-bottom: 1rem
}

.mb-2 {
    margin-bottom: 2rem
}

.pb-2 {
    padding-bottom: 2rem
}

.mb-3 {
    margin-bottom: 3rem
}

.pb-3 {
    padding-bottom: 3rem
}

.mb-4 {
    margin-bottom: 4rem
}

.pb-4 {
    padding-bottom: 4rem
}

.mb-5 {
    margin-bottom: 5rem
}

.pb-5 {
    padding-bottom: 5rem
}

.mb-6 {
    margin-bottom: 6rem
}

.pb-6 {
    padding-bottom: 6rem
}

.mb-7 {
    margin-bottom: 7rem
}

.pb-7 {
    padding-bottom: 7rem
}

.mb-8 {
    margin-bottom: 8rem
}

.pb-8 {
    padding-bottom: 8rem
}

.mb-9 {
    margin-bottom: 9rem
}

.pb-9 {
    padding-bottom: 9rem
}

.mb-10 {
    margin-bottom: 10rem
}

.pb-10 {
    padding-bottom: 10rem
}

.mb-11 {
    margin-bottom: 11rem
}

.pb-11 {
    padding-bottom: 11rem
}

.mb-12 {
    margin-bottom: 12rem
}

.pb-12 {
    padding-bottom: 12rem
}

.ml-1 {
    margin-left: 1rem
}

.pl-1 {
    padding-left: 1rem
}

.ml-2 {
    margin-left: 2rem
}

.pl-2 {
    padding-left: 2rem
}

.ml-3 {
    margin-left: 3rem
}

.pl-3 {
    padding-left: 3rem
}

.ml-4 {
    margin-left: 4rem
}

.pl-4 {
    padding-left: 4rem
}

.ml-5 {
    margin-left: 5rem
}

.pl-5 {
    padding-left: 5rem
}

.ml-6 {
    margin-left: 6rem
}

.pl-6 {
    padding-left: 6rem
}

.ml-7 {
    margin-left: 7rem
}

.pl-7 {
    padding-left: 7rem
}

.ml-8 {
    margin-left: 8rem
}

.pl-8 {
    padding-left: 8rem
}

.ml-9 {
    margin-left: 9rem
}

.pl-9 {
    padding-left: 9rem
}

.ml-10 {
    margin-left: 10rem
}

.pl-10 {
    padding-left: 10rem
}

.ml-11 {
    margin-left: 11rem
}

.pl-11 {
    padding-left: 11rem
}

.ml-12 {
    margin-left: 12rem
}

.pl-12 {
    padding-left: 12rem
}

.mr-1 {
    margin-right: 1rem
}

.pr-1 {
    padding-right: 1rem
}

.mr-2 {
    margin-right: 2rem
}

.pr-2 {
    padding-right: 2rem
}

.mr-3 {
    margin-right: 3rem
}

.pr-3 {
    padding-right: 3rem
}

.mr-4 {
    margin-right: 4rem
}

.pr-4 {
    padding-right: 4rem
}

.mr-5 {
    margin-right: 5rem
}

.pr-5 {
    padding-right: 5rem
}

.mr-6 {
    margin-right: 6rem
}

.pr-6 {
    padding-right: 6rem
}

.mr-7 {
    margin-right: 7rem
}

.pr-7 {
    padding-right: 7rem
}

.mr-8 {
    margin-right: 8rem
}

.pr-8 {
    padding-right: 8rem
}

.mr-9 {
    margin-right: 9rem
}

.pr-9 {
    padding-right: 9rem
}

.mr-10 {
    margin-right: 10rem
}

.pr-10 {
    padding-right: 10rem
}

.mr-11 {
    margin-right: 11rem
}

.pr-11 {
    padding-right: 11rem
}

.mr-12 {
    margin-right: 12rem
}

.pr-12 {
    padding-right: 12rem
}

.ma-1 {
    margin: 1rem
}

.my-1 {
    margin-top: 1rem;
    margin-bottom: 1rem
}

.pa-1 {
    padding: 1rem
}

@media (max-width: 1024px) {
    .pa-1 {
        padding: .5rem
    }
}

.px-1 {
    padding-left: 1rem;
    padding-right: 1rem
}

@media (max-width: 1024px) {
    .px-1 {
        padding: .5rem
    }
}

.py-1 {
    padding-top: 1rem;
    padding-bottom: 1rem
}

.ma-2 {
    margin: 2rem
}

.my-2 {
    margin-top: 2rem;
    margin-bottom: 2rem
}

.pa-2 {
    padding: 2rem
}

@media (max-width: 1024px) {
    .pa-2 {
        padding: 1rem
    }
}

.px-2 {
    padding-left: 2rem;
    padding-right: 2rem
}

@media (max-width: 1024px) {
    .px-2 {
        padding: 1rem
    }
}

.py-2 {
    padding-top: 2rem;
    padding-bottom: 2rem
}

.ma-3 {
    margin: 3rem
}

.my-3 {
    margin-top: 3rem;
    margin-bottom: 3rem
}

.pa-3 {
    padding: 3rem
}

@media (max-width: 1024px) {
    .pa-3 {
        padding: 1.5rem
    }
}

.px-3 {
    padding-left: 3rem;
    padding-right: 3rem
}

@media (max-width: 1024px) {
    .px-3 {
        padding: 1.5rem
    }
}

.py-3 {
    padding-top: 3rem;
    padding-bottom: 3rem
}

.ma-4 {
    margin: 4rem
}

.my-4 {
    margin-top: 4rem;
    margin-bottom: 4rem
}

.pa-4 {
    padding: 4rem
}

@media (max-width: 1024px) {
    .pa-4 {
        padding: 2rem
    }
}

.px-4 {
    padding-left: 4rem;
    padding-right: 4rem
}

@media (max-width: 1024px) {
    .px-4 {
        padding: 2rem
    }
}

.py-4 {
    padding-top: 4rem;
    padding-bottom: 4rem
}

.ma-5 {
    margin: 5rem
}

.my-5 {
    margin-top: 5rem;
    margin-bottom: 5rem
}

.pa-5 {
    padding: 5rem
}

@media (max-width: 1024px) {
    .pa-5 {
        padding: 2.5rem
    }
}

.px-5 {
    padding-left: 5rem;
    padding-right: 5rem
}

@media (max-width: 1024px) {
    .px-5 {
        padding: 2.5rem
    }
}

.py-5 {
    padding-top: 5rem;
    padding-bottom: 5rem
}

.ma-6 {
    margin: 6rem
}

.my-6 {
    margin-top: 6rem;
    margin-bottom: 6rem
}

.pa-6 {
    padding: 6rem
}

@media (max-width: 1024px) {
    .pa-6 {
        padding: 3rem
    }
}

.px-6 {
    padding-left: 6rem;
    padding-right: 6rem
}

@media (max-width: 1024px) {
    .px-6 {
        padding: 3rem
    }
}

.py-6 {
    padding-top: 6rem;
    padding-bottom: 6rem
}

.ma-7 {
    margin: 7rem
}

.my-7 {
    margin-top: 7rem;
    margin-bottom: 7rem
}

.pa-7 {
    padding: 7rem
}

@media (max-width: 1024px) {
    .pa-7 {
        padding: 3.5rem
    }
}

.px-7 {
    padding-left: 7rem;
    padding-right: 7rem
}

@media (max-width: 1024px) {
    .px-7 {
        padding: 3.5rem
    }
}

.py-7 {
    padding-top: 7rem;
    padding-bottom: 7rem
}

.ma-8 {
    margin: 8rem
}

.my-8 {
    margin-top: 8rem;
    margin-bottom: 8rem
}

.pa-8 {
    padding: 8rem
}

@media (max-width: 1024px) {
    .pa-8 {
        padding: 4rem
    }
}

.px-8 {
    padding-left: 8rem;
    padding-right: 8rem
}

@media (max-width: 1024px) {
    .px-8 {
        padding: 4rem
    }
}

.py-8 {
    padding-top: 8rem;
    padding-bottom: 8rem
}

.ma-9 {
    margin: 9rem
}

.my-9 {
    margin-top: 9rem;
    margin-bottom: 9rem
}

.pa-9 {
    padding: 9rem
}

@media (max-width: 1024px) {
    .pa-9 {
        padding: 4.5rem
    }
}

.px-9 {
    padding-left: 9rem;
    padding-right: 9rem
}

@media (max-width: 1024px) {
    .px-9 {
        padding: 4.5rem
    }
}

.py-9 {
    padding-top: 9rem;
    padding-bottom: 9rem
}

.ma-10 {
    margin: 10rem
}

.my-10 {
    margin-top: 10rem;
    margin-bottom: 10rem
}

.pa-10 {
    padding: 10rem
}

@media (max-width: 1024px) {
    .pa-10 {
        padding: 5rem
    }
}

.px-10 {
    padding-left: 10rem;
    padding-right: 10rem
}

@media (max-width: 1024px) {
    .px-10 {
        padding: 5rem
    }
}

.py-10 {
    padding-top: 10rem;
    padding-bottom: 10rem
}

.ma-11 {
    margin: 11rem
}

.my-11 {
    margin-top: 11rem;
    margin-bottom: 11rem
}

.pa-11 {
    padding: 11rem
}

@media (max-width: 1024px) {
    .pa-11 {
        padding: 5.5rem
    }
}

.px-11 {
    padding-left: 11rem;
    padding-right: 11rem
}

@media (max-width: 1024px) {
    .px-11 {
        padding: 5.5rem
    }
}

.py-11 {
    padding-top: 11rem;
    padding-bottom: 11rem
}

.ma-12 {
    margin: 12rem
}

.my-12 {
    margin-top: 12rem;
    margin-bottom: 12rem
}

.pa-12 {
    padding: 12rem
}

@media (max-width: 1024px) {
    .pa-12 {
        padding: 6rem
    }
}

.px-12 {
    padding-left: 12rem;
    padding-right: 12rem
}

@media (max-width: 1024px) {
    .px-12 {
        padding: 6rem
    }
}

.py-12 {
    padding-top: 12rem;
    padding-bottom: 12rem
}

.container-sm, .icon-link figure img, .icon-links, .mx-auto, .projects .project img {
    margin-left: auto;
    margin-right: auto
}

@font-face {
    font-family: Manrope;
    font-style: normal;
    font-weight: 300;
    src: url(../fonts/manrope-v4-latin-300.eot);
    src: local(""), url(../fonts/manrope-v4-latin-300.eot?#iefix) format("embedded-opentype"), url(../fonts/manrope-v4-latin-300.woff2) format("woff2"), url(../fonts/manrope-v4-latin-300.woff) format("woff"), url(../fonts/manrope-v4-latin-300.ttf) format("truetype"), url(../fonts/manrope-v4-latin-300.svg#Manrope) format("svg")
}

@font-face {
    font-family: Manrope;
    font-style: normal;
    font-weight: 400;
    src: url(../fonts/manrope-v4-latin-regular.eot);
    src: local(""), url(../fonts/manrope-v4-latin-regular.eot?#iefix) format("embedded-opentype"), url(../fonts/manrope-v4-latin-regular.woff2) format("woff2"), url(../fonts/manrope-v4-latin-regular.woff) format("woff"), url(../fonts/manrope-v4-latin-regular.ttf) format("truetype"), url(../fonts/manrope-v4-latin-regular.svg#Manrope) format("svg")
}

@font-face {
    font-family: Manrope;
    font-style: normal;
    font-weight: 500;
    src: url(../fonts/manrope-v4-latin-500.eot);
    src: local(""), url(../fonts/manrope-v4-latin-500.eot?#iefix) format("embedded-opentype"), url(../fonts/manrope-v4-latin-500.woff2) format("woff2"), url(../fonts/manrope-v4-latin-500.woff) format("woff"), url(../fonts/manrope-v4-latin-500.ttf) format("truetype"), url(../fonts/manrope-v4-latin-500.svg#Manrope) format("svg")
}

@font-face {
    font-family: Manrope;
    font-style: normal;
    font-weight: 600;
    src: url(../fonts/manrope-v4-latin-600.eot);
    src: local(""), url(../fonts/manrope-v4-latin-600.eot?#iefix) format("embedded-opentype"), url(../fonts/manrope-v4-latin-600.woff2) format("woff2"), url(../fonts/manrope-v4-latin-600.woff) format("woff"), url(../fonts/manrope-v4-latin-600.ttf) format("truetype"), url(../fonts/manrope-v4-latin-600.svg#Manrope) format("svg")
}

h1, h2, h3, h4, h5, h6 {
    position: relative;
    line-height: 1.25;
    word-break: break-word
}

p {
    line-height: 1.5625
}

.text {
    word-break: break-all
}

.text-center {
    text-align: center
}

.text-right {
    text-align: right
}

.text-upper, .wpcf7 form input[type=submit] {
    text-transform: uppercase
}

.text-primary {
    color: #00005f
}

.text-white {
    color: #fff
}

.text-dark {
    color: #333
}

em {
    font-style: italic
}

strong {
    font-weight: 700
}

.text-13 {
    font-size: 1.3rem
}

.text-15 {
    font-size: 1.5rem
}

.cookie-consent .inner, .text-16, form input[type=email], form input[type=number], form input[type=password], form input[type=search], form input[type=tel], form input[type=text], form label, form select, form textarea {
    font-size: 1.6rem
}

.text-17 {
    font-size: 1.7rem
}

.projects .project, .text-18, header.site-header ul.menu li a, main ol, main p, main ul {
    font-size: 1.8rem
}

.hero .view-more, .projects .project .status, .text-20 {
    font-size: 2rem
}

.text-21 {
    font-size: 2.1rem
}

.text-22 {
    font-size: 2.2rem
}

.text-23 {
    font-size: 2.3rem
}

.text-24, main h3 {
    font-size: 2.4rem
}

.text-25 {
    font-size: 2.5rem
}

.text-27 {
    font-size: 2.7rem
}

.text-28, form button, form input[type=submit] {
    font-size: 2.8rem
}

.text-29 {
    font-size: 2.9rem
}

.text-30 {
    font-size: 3rem
}

.text-35 {
    font-size: 3.5rem
}

@media (max-width: 1024px) {
    .text-35 {
        font-size: 2.5rem
    }
}

@media (max-width: 767px) {
    .text-35 {
        font-size: 1.94444rem
    }
}

.text-40, main h1, main h2 {
    font-size: 4rem
}

@media (max-width: 1024px) {
    .text-40, main h1, main h2 {
        font-size: 2.85714rem
    }
}

@media (max-width: 767px) {
    .text-40, main h1, main h2 {
        font-size: 2.22222rem
    }
}

.text-45 {
    font-size: 4.5rem
}

@media (max-width: 1024px) {
    .text-45 {
        font-size: 3.21429rem
    }
}

@media (max-width: 767px) {
    .text-45 {
        font-size: 2.5rem
    }
}

.text-50, main h1 {
    font-size: 5rem
}

@media (max-width: 1024px) {
    .text-50, main h1 {
        font-size: 3.57143rem
    }
}

@media (max-width: 767px) {
    .text-50, main h1 {
        font-size: 2.77778rem
    }
}

.icon-link strong, .text-60 {
    font-size: 6rem
}

@media (max-width: 1024px) {
    .icon-link strong, .text-60 {
        font-size: 4.28571rem
    }
}

@media (max-width: 767px) {
    .icon-link strong, .text-60 {
        font-size: 3.33333rem
    }
}

.text-70 {
    font-size: 7rem
}

@media (max-width: 1024px) {
    .text-70 {
        font-size: 5rem
    }
}

@media (max-width: 767px) {
    .text-70 {
        font-size: 3.88889rem
    }
}

.text-80 {
    font-size: 8rem
}

@media (max-width: 1024px) {
    .text-80 {
        font-size: 5.71429rem
    }
}

@media (max-width: 767px) {
    .text-80 {
        font-size: 4.44444rem
    }
}

.font-thin {
    font-weight: 100
}

.font-light {
    font-weight: 300
}

.font-medium {
    font-weight: 500
}

.font-semibold {
    font-weight: 600
}

.font-bold {
    font-weight: 700
}

.container {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
    position: relative
}

@media (max-width: 1500px) {
    .container {
        padding-left: 65px;
        padding-right: 65px
    }
}

@media (max-width: 1024px) {
    .container {
        margin-right: 20px;
        margin-left: 20px;
        padding: 0
    }
}

.container-md {
    max-width: 1000px
}

.container-sm {
    max-width: 700px
}

.grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr;
    grid-template-columns:1fr
}

.grid.gap-1 {
    grid-gap: 1rem
}

@media (max-width: 767px) {
    .grid.gap-1 {
        grid-gap: .5rem
    }
}

.grid.gap-2 {
    grid-gap: 2rem
}

@media (max-width: 767px) {
    .grid.gap-2 {
        grid-gap: 1rem
    }
}

.grid.gap-3 {
    grid-gap: 3rem
}

@media (max-width: 767px) {
    .grid.gap-3 {
        grid-gap: 1.5rem
    }
}

.grid.gap-4 {
    grid-gap: 4rem
}

@media (max-width: 767px) {
    .grid.gap-4 {
        grid-gap: 2rem
    }
}

.grid.gap-5 {
    grid-gap: 5rem
}

@media (max-width: 767px) {
    .grid.gap-5 {
        grid-gap: 2.5rem
    }
}

.grid.gap-6 {
    grid-gap: 6rem
}

@media (max-width: 767px) {
    .grid.gap-6 {
        grid-gap: 3rem
    }
}

.grid.gap-7 {
    grid-gap: 7rem
}

@media (max-width: 767px) {
    .grid.gap-7 {
        grid-gap: 3.5rem
    }
}

.grid.gap-8 {
    grid-gap: 8rem
}

@media (max-width: 767px) {
    .grid.gap-8 {
        grid-gap: 4rem
    }
}

.grid.gap-9 {
    grid-gap: 9rem
}

@media (max-width: 767px) {
    .grid.gap-9 {
        grid-gap: 4.5rem
    }
}

.grid.gap-10 {
    grid-gap: 10rem
}

@media (max-width: 767px) {
    .grid.gap-10 {
        grid-gap: 5rem
    }
}

.grid.gap-11 {
    grid-gap: 11rem
}

@media (max-width: 767px) {
    .grid.gap-11 {
        grid-gap: 5.5rem
    }
}

.grid.gap-12 {
    grid-gap: 12rem
}

@media (max-width: 767px) {
    .grid.gap-12 {
        grid-gap: 6rem
    }
}

@media (min-width: 600px) {
    .grid-xs-1 {
        -ms-grid-columns: 1fr 20px 1fr [1];
        grid-template-columns:repeat(1, 1fr)
    }

    .grid-xs-2 {
        -ms-grid-columns: 1fr 20px 1fr [2];
        grid-template-columns:repeat(2, 1fr)
    }

    .grid-xs-3 {
        -ms-grid-columns: 1fr 20px 1fr [3];
        grid-template-columns:repeat(3, 1fr)
    }

    .grid-xs-4 {
        -ms-grid-columns: 1fr 20px 1fr [4];
        grid-template-columns:repeat(4, 1fr)
    }

    .grid-xs-5 {
        -ms-grid-columns: 1fr 20px 1fr [5];
        grid-template-columns:repeat(5, 1fr)
    }

    .grid-xs-6 {
        -ms-grid-columns: 1fr 20px 1fr [6];
        grid-template-columns:repeat(6, 1fr)
    }

    .grid-xs-7 {
        -ms-grid-columns: 1fr 20px 1fr [7];
        grid-template-columns:repeat(7, 1fr)
    }

    .grid-xs-8 {
        -ms-grid-columns: 1fr 20px 1fr [8];
        grid-template-columns:repeat(8, 1fr)
    }

    .grid-xs-9 {
        -ms-grid-columns: 1fr 20px 1fr [9];
        grid-template-columns:repeat(9, 1fr)
    }

    .grid-xs-10 {
        -ms-grid-columns: 1fr 20px 1fr [10];
        grid-template-columns:repeat(10, 1fr)
    }

    .grid-xs-11 {
        -ms-grid-columns: 1fr 20px 1fr [11];
        grid-template-columns:repeat(11, 1fr)
    }

    .grid-xs-12 {
        -ms-grid-columns: 1fr 20px 1fr [12];
        grid-template-columns:repeat(12, 1fr)
    }
}

@media (min-width: 1024px) {
    .grid-sm-1 {
        -ms-grid-columns: 1fr 20px 1fr [1];
        grid-template-columns:repeat(1, 1fr)
    }

    .grid-sm-2 {
        -ms-grid-columns: 1fr 20px 1fr [2];
        grid-template-columns:repeat(2, 1fr)
    }

    .grid-sm-3 {
        -ms-grid-columns: 1fr 20px 1fr [3];
        grid-template-columns:repeat(3, 1fr)
    }

    .grid-sm-4 {
        -ms-grid-columns: 1fr 20px 1fr [4];
        grid-template-columns:repeat(4, 1fr)
    }

    .grid-sm-5 {
        -ms-grid-columns: 1fr 20px 1fr [5];
        grid-template-columns:repeat(5, 1fr)
    }

    .grid-sm-6 {
        -ms-grid-columns: 1fr 20px 1fr [6];
        grid-template-columns:repeat(6, 1fr)
    }

    .grid-sm-7 {
        -ms-grid-columns: 1fr 20px 1fr [7];
        grid-template-columns:repeat(7, 1fr)
    }

    .grid-sm-8 {
        -ms-grid-columns: 1fr 20px 1fr [8];
        grid-template-columns:repeat(8, 1fr)
    }

    .grid-sm-9 {
        -ms-grid-columns: 1fr 20px 1fr [9];
        grid-template-columns:repeat(9, 1fr)
    }

    .grid-sm-10 {
        -ms-grid-columns: 1fr 20px 1fr [10];
        grid-template-columns:repeat(10, 1fr)
    }

    .grid-sm-11 {
        -ms-grid-columns: 1fr 20px 1fr [11];
        grid-template-columns:repeat(11, 1fr)
    }

    .grid-sm-12 {
        -ms-grid-columns: 1fr 20px 1fr [12];
        grid-template-columns:repeat(12, 1fr)
    }

    .grid-sm-1_2 {
        -ms-grid-columns: 1fr 2fr;
        grid-template-columns:1fr 2fr
    }
}

@media (min-width: 1280px) {
    .grid-md-1 {
        -ms-grid-columns: 1fr 20px 1fr [1];
        grid-template-columns:repeat(1, 1fr)
    }

    .grid-md-2 {
        -ms-grid-columns: 1fr 20px 1fr [2];
        grid-template-columns:repeat(2, 1fr)
    }

    .grid-md-3 {
        -ms-grid-columns: 1fr 20px 1fr [3];
        grid-template-columns:repeat(3, 1fr)
    }

    .grid-md-4 {
        -ms-grid-columns: 1fr 20px 1fr [4];
        grid-template-columns:repeat(4, 1fr)
    }

    .grid-md-5 {
        -ms-grid-columns: 1fr 20px 1fr [5];
        grid-template-columns:repeat(5, 1fr)
    }

    .grid-md-6 {
        -ms-grid-columns: 1fr 20px 1fr [6];
        grid-template-columns:repeat(6, 1fr)
    }

    .grid-md-7 {
        -ms-grid-columns: 1fr 20px 1fr [7];
        grid-template-columns:repeat(7, 1fr)
    }

    .grid-md-8 {
        -ms-grid-columns: 1fr 20px 1fr [8];
        grid-template-columns:repeat(8, 1fr)
    }

    .grid-md-9 {
        -ms-grid-columns: 1fr 20px 1fr [9];
        grid-template-columns:repeat(9, 1fr)
    }

    .grid-md-10 {
        -ms-grid-columns: 1fr 20px 1fr [10];
        grid-template-columns:repeat(10, 1fr)
    }

    .grid-md-11 {
        -ms-grid-columns: 1fr 20px 1fr [11];
        grid-template-columns:repeat(11, 1fr)
    }

    .grid-md-12 {
        -ms-grid-columns: 1fr 20px 1fr [12];
        grid-template-columns:repeat(12, 1fr)
    }
}

@media (min-width: 1600px) {
    .grid-lg-1 {
        -ms-grid-columns: 1fr 20px 1fr [1];
        grid-template-columns:repeat(1, 1fr)
    }

    .grid-lg-2 {
        -ms-grid-columns: 1fr 20px 1fr [2];
        grid-template-columns:repeat(2, 1fr)
    }

    .grid-lg-3 {
        -ms-grid-columns: 1fr 20px 1fr [3];
        grid-template-columns:repeat(3, 1fr)
    }

    .grid-lg-4 {
        -ms-grid-columns: 1fr 20px 1fr [4];
        grid-template-columns:repeat(4, 1fr)
    }

    .grid-lg-5 {
        -ms-grid-columns: 1fr 20px 1fr [5];
        grid-template-columns:repeat(5, 1fr)
    }

    .grid-lg-6 {
        -ms-grid-columns: 1fr 20px 1fr [6];
        grid-template-columns:repeat(6, 1fr)
    }

    .grid-lg-7 {
        -ms-grid-columns: 1fr 20px 1fr [7];
        grid-template-columns:repeat(7, 1fr)
    }

    .grid-lg-8 {
        -ms-grid-columns: 1fr 20px 1fr [8];
        grid-template-columns:repeat(8, 1fr)
    }

    .grid-lg-9 {
        -ms-grid-columns: 1fr 20px 1fr [9];
        grid-template-columns:repeat(9, 1fr)
    }

    .grid-lg-10 {
        -ms-grid-columns: 1fr 20px 1fr [10];
        grid-template-columns:repeat(10, 1fr)
    }

    .grid-lg-11 {
        -ms-grid-columns: 1fr 20px 1fr [11];
        grid-template-columns:repeat(11, 1fr)
    }

    .grid-lg-12 {
        -ms-grid-columns: 1fr 20px 1fr [12];
        grid-template-columns:repeat(12, 1fr)
    }
}

.align-center {
    align-items: center
}

html {
    width: 100%;
    height: 100%;
    font-size: 62.5%;
    scroll-behavior: smooth
}

body {
    font-size: 1.4rem;
    margin: 0;
    padding: 0;
    height: 100%;
    font-family: Manrope
}

* {
    box-sizing: border-box;
    outline: 0
}

.preload * {
    -webkit-transition: none !important;
    -moz-transition: none !important;
    -ms-transition: none !important;
    -o-transition: none !important
}

a {
    text-decoration: none;
    color: #0000e6
}

img {
    display: block;
    max-width: 100%;
    height: auto
}

.bg-primary {
    background: #00005f
}

.bg-white {
    background: #fff
}

.bg-dark {
    background: #333
}

.bg-dark h1, .bg-dark h2, .bg-dark h3, .bg-dark h4, .bg-dark p, .bg-primary h1, .bg-primary h2, .bg-primary h3, .bg-primary h4, .bg-primary p {
    color: #fff
}

main.project {
    padding-top: 100px
}

@media (min-width: 1025px) {
    main.project {
        padding-top: 200px
    }
}

main .about h2, main .about h3, main .about h4, main .about h5, main .about h6, main .about ol, main .about p, main .about ul, main .page-content h2, main .page-content h3, main .page-content h4, main .page-content h5, main .page-content h6, main .page-content ol, main .page-content p, main .page-content ul {
    margin-bottom: 20px;
    line-height: 1.5
}

main h1, main h2 {
    max-width: 800px
}

main h3 {
    font-weight: 600
}

main ol, main p, main ul {
    line-height: 1.5
}

.hero {
    color: #fff
}

.hero .view-more {
    position: absolute;
    bottom: 60px;
    left: 0;
    right: 0;
    margin: auto;
    text-align: center;
    color: #fff
}

.hero .view-more img {
    width: 50px;
    margin: auto;
    transition: .25s all ease-in-out
}

.hero .view-more:hover img {
    transform: translateY(5px)
}

.hero .splide__pagination {
    bottom: 50px;
    left: 60px
}

.hero .splide__pagination li {
    margin: 6px
}

.parallax .lazyBg {
    height: 70vh
}

.parallax .parallax__content {
    background: rgba(0, 0, 0, .3);
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #fff
}

.lazyBg {
    position: relative;
    opacity: .75;
    transition: .2s opacity ease-in;
    background: #00005f
}

.lazyBg.visible {
    opacity: 1
}

.lazyBg.bg-fixed {
    background-attachment: fixed !important
}

.lazyBg > img {
    height: 1px;
    position: absolute
}

.projects .project {
    position: relative;
    text-align: center;
    padding-bottom: 40px;
    margin-bottom: 20px;
    box-shadow: 24px 24px 24px rgba(0, 0, 0, .15)
}

.projects .project .status {
    position: absolute;
    background: #00005f;
    color: #fff;
    text-align: center;
    left: 40px;
    right: 40px;
    margin: auto;
    padding: 10px;
    text-transform: uppercase;
    z-index: 5
}

.projects .project a {
    display: block;
    color: #00005f;
    font-weight: 600;
    position: absolute;
    bottom: 40px;
    left: 0;
    right: 0
}

.projects .project figure.main-image {
    overflow: hidden;
    height: 1px;
    padding-bottom: 60%
}

.projects .project img {
    transition: .25s all ease-in
}

.projects .project .logo img {
    height: 120px;
    width: auto
}

.projects .project:hover {
    box-shadow: 24px 24px 24px rgba(0, 0, 0, .25)
}

.projects .project:hover figure.main-image img {
    transform: scale(1.05)
}

.icon-links {
    max-width: 1000px
}

.icon-link {
    text-align: center;
    padding: 40px;
    color: #000
}

.icon-link strong {
    display: inline-block;
    margin-bottom: 12px;
    color: #80858a
}

.contact > .grid {
    grid-template-columns:2fr 1fr;
    grid-gap: 10%
}

@media (max-width: 768px) {
    .contact > .grid {
        grid-template-columns:1fr
    }
}

@media (min-width: 1024px) {
    .gallery-grid {
        margin-left: -30px;
        margin-right: -30px
    }
}

.gallery-grid__item {
    width: 46%;
    padding: 2%
}

@media (max-width: 1024px) {
    .gallery-grid__item {
        width: 86%
    }
}

main a span {
    display: inline-block;
    transition: .25s all ease-in
}

main a:hover span {
    transform: translateX(8px)
}

header.site-header {
    padding: 20px
}

header.site-header ul.languages {
    margin-right: 20px
}

header.site-header ul.languages li a {
    color: #333;
    text-transform: uppercase
}

header.site-header ul.menu li a {
    display: inline-block;
    color: #333;
    text-align: center
}

header.site-header ul.menu li.current-menu-item a, header.site-header ul.menu li:hover a {
    color: #000;
    font-weight: 600
}

header.site-header ul.menu li.pll-parent-menu-item {
    position: relative
}

header.site-header ul.menu li.pll-parent-menu-item > a {
    background: #00005f;
    color: #fff;
    padding: 6px
}

header.site-header .logo {
    display: block;
    width: 20%
}

header.site-header .logo svg {
    width: 100%;
    height: auto
}

header.site-header .logo svg .st0 {
    fill: #00005f
}

header.site-header.scroll {
    background: rgba(255, 255, 255, .95);
    padding: 8px 20px;
    z-index: 20
}

header.site-header.scroll svg {
    width: 100%;
    height: auto
}

header.site-header.scroll svg .st0 {
    fill: #00005f
}

@media (min-width: 1025px) {
    header.site-header {
        position: fixed;
        width: calc(100% - 80px);
        background: #fff;
        z-index: 10;
        top: 0;
        left: 40px;
        overflow: hidden;
        transition: .4s all ease-in;
        display: flex;
        justify-content: space-between;
        align-items: center
    }

    header.site-header ul.menu {
        display: flex;
        align-items: center
    }

    header.site-header ul.menu li {
        padding: 20px
    }

    header.site-header .menuTrigger {
        display: none
    }
}

@media (max-width: 1024px) {
    header.site-header {
        position: fixed;
        width: 100%;
        height: 60px;
        z-index: 20;
        top: 0;
        left: 0;
        background: #fff;
        transition: .25s all ease-in;
        padding: 20px
    }

    header.site-header ul.languages {
        display: none
    }

    header.site-header .menuTrigger {
        position: absolute;
        top: 30px;
        right: 20px;
        z-index: 20;
        height: 30px;
        margin: 0 auto;
        width: 30px;
        cursor: pointer
    }

    header.site-header .menuTrigger .inner {
        background: #00005f;
        box-shadow: 0 -10px #00005f, 0 10px #00005f;
        height: 2px;
        margin: -3px auto;
        position: relative;
        top: 0;
        width: 36px;
        transition: .25s all ease-in
    }

    header.site-header .menuTrigger .inner:after, header.site-header .menuTrigger .inner:before {
        content: '';
        position: absolute;
        height: 1px;
        width: 0;
        opacity: 0;
        transition: .25s opacity ease-in
    }

    header.site-header .logo {
        display: block;
        position: absolute;
        top: 0;
        left: 15px;
        z-index: 10;
        overflow: hidden;
        text-align: center;
        width: 75%;
        max-width: 300px
    }

    header.site-header .logo img, header.site-header .logo svg {
        height: auto;
        width: 80%;
        margin: 0
    }

    header.site-header .logo a, header.site-header .logo img, header.site-header .logo svg {
        display: block
    }

    header.site-header nav {
        position: fixed;
        width: 100%;
        height: 100%;
        background: #fff;
        z-index: 10;
        top: 0;
        left: 0;
        display: block;
        transform: translateX(100%);
        overflow-y: auto;
        transition: .4s all ease-in;
        padding-top: 125px
    }

    header.site-header nav ul.menu {
        padding: 20px
    }

    header.site-header nav ul.menu li {
        width: 100%;
        position: relative;
        text-align: center
    }

    header.site-header nav ul.menu li a {
        color: #333;
        font-size: 2.5rem;
        line-height: 1.5;
        padding-bottom: 20px
    }

    header.site-header.is-open .menuTrigger .inner {
        background: 0 0 !important;
        box-shadow: none !important
    }

    header.site-header.is-open .menuTrigger .inner:after, header.site-header.is-open .menuTrigger .inner:before {
        width: 100%;
        background: #00005f;
        top: 0;
        left: 0;
        opacity: 1
    }

    header.site-header.is-open .menuTrigger .inner:before {
        transform: rotate(45deg)
    }

    header.site-header.is-open .menuTrigger .inner:after {
        transform: rotate(-45deg)
    }

    header.site-header.is-open nav {
        transform: none
    }
}

#up {
    display: none
}

main.landing {
    background: #060061;
    color: #fff;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center
}

main.landing a {
    color: #fff;
    font-size: 1.8rem;
    transition: .3s all ease-in-out
}

main.landing a:hover {
    transform: translateY(-2px)
}

main.landing h1, main.landing h2, main.landing h3 {
    font-weight: 300
}

main.landing h3 {
    max-width: 600px
}

main.landing svg {
    display: block;
    max-width: 300px;
    height: auto;
    margin: 40px auto
}

@media (max-width: 600px) {
    main.landing svg.picto {
        margin: 20px auto;
        width: 120px
    }
}

.cookie-consent {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 20;
    background: #00005f;
    color: #fff;
    width: 100%;
    padding: 10px 20px
}

.cookie-consent .inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    letter-spacing: .4px
}

.cookie-consent .inner a {
    color: #fff;
    text-decoration: underline
}

.cookie-consent .inner button {
    background: #fff;
    border: none;
    color: #00005f;
    font-weight: 700;
    cursor: pointer;
    padding: 6px 16px;
    max-width: 120px
}

@media (max-width: 768px) {
    .cookie-consent .inner p {
        text-align: center
    }

    .cookie-consent .inner button {
        margin: 10px auto
    }
}

form input[type=email], form input[type=number], form input[type=password], form input[type=search], form input[type=tel], form input[type=text], form select, form textarea {
    font-family: Manrope;
    width: 100%;
    transition: .25s all ease-in;
    background: #fff;
    box-shadow: none;
    border: none;
    border-bottom: 1px solid #ccc;
    position: relative;
    color: #333;
    padding: 10px 0;
    border-radius: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    margin-bottom: 30px
}

form ::placeholder {
    color: #00005f;
    opacity: 1
}

form :-ms-input-placeholder {
    color: #00005f
}

form ::-ms-input-placeholder {
    color: #00005f
}

form button, form input[type=submit] {
    border: none;
    position: relative;
    display: inline-block;
    background: 0 0;
    box-shadow: none
}

form span.required {
    color: #4caf50
}

.wpcf7 form {
    padding: 60px 0
}

.wpcf7 form .wpcf7-response-output {
    border-color: #00005f !important;
    padding: 10px
}

.wpcf7 form .ajax-loader {
    position: absolute;
    left: 0
}

.wpcf7 form input[type=submit] {
    border: 1px solid green;
    border-radius: 30px;
    padding: 20px 40px 20px 30px
}

@media (min-width: 1024px) {
    .wpcf7 form input[type=submit] {
        border-radius: 3vw;
        padding: 1vw 5vw;
        font-size: 2.2rem
    }
}

@media (max-width: 767px) {
    .wpcf7 form input[type=submit] {
        width: 100%
    }
}

.btn-wrap {
    position: relative
}

.btn-wrap:after {
    content: '';
    position: absolute;
    right: 4vw;
    top: calc(50% - 5px);
    border-left: 1px solid #333;
    border-top: 1px solid #333;
    width: 8px;
    height: 8px;
    transform: rotate(135deg);
    transition: .25s all ease-in
}

@media (max-width: 767px) {
    .btn-wrap:after {
        right: 22px
    }
}

.btn-wrap:hover {
    cursor: pointer
}

.btn-wrap:hover:after {
    right: 3vw;
    width: 12px;
    height: 12px;
    top: calc(50% - 8px)
}
