@charset "UTF-8";*,*:before,*:after {
    box-sizing: border-box;
    -webkit-tap-highlight-color: rgba(0,0,0,0)
}

@keyframes floating {
    0% { transform: translateY(10); }
    50% { transform: translateY(-10px); }
    100% { transform: translateY(10); }
}

*:before,*:after {
    -webkit-touch-callout: none;
    user-select: none
}

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

html {
    font-size: 62.5%
}

body {
    line-height: 1
}

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

blockquote,q {
    margin: 0;
    quotes: none
}

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

a,input,button,select,textarea {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    text-decoration: none;
    appearance: none
}

input,select,textarea {
    outline: none
}

a {
    vertical-align: baseline;
    margin: 0;
    padding: 0;
    font-size: 100%;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

button {
    padding: 0;
    font-family: inherit;
    font-size: inherit;
    text-transform: inherit;
    color: inherit;
    background: inherit;
    border: inherit;
    outline: none;
    cursor: pointer;
    touch-action: manipulation
}

button:focus-visible {
    outline: auto
}

ins {
    text-decoration: none;
    color: #000;
    background-color: #ff9
}

mark {
    font-style: italic;
    font-weight: 700;
    color: #000;
    background-color: #ff9
}

del {
    text-decoration: line-through
}

dfn[title] {
    border-bottom: 1px dotted;
    cursor: help
}

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

hr {
    display: block;
    height: 1px;
    padding: 0;
    border: none
}

input,select {
    vertical-align: middle
}

@font-face {
    font-family: Poppins;
    font-style: normal;
    font-weight: 800;
    font-display: swap;
    src: url(/files/Poppins-ExtraBold.woff2) format("woff2"),url(/files/Poppins-ExtraBold.woff) format("woff")
}

@font-face {
    font-family: Poppins;
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(/files/Poppins-Bold.woff2) format("woff2"),url(/files/Poppins-Bold.woff) format("woff")
}

@font-face {
    font-family: Poppins;
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(/files/Poppins-SemiBold.woff2) format("woff2"),url(/files/Poppins-SemiBold.woff) format("woff")
}

@font-face {
    font-family: Poppins;
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/files/Poppins-Medium.woff2) format("woff2"),url(/files/Poppins-Medium.woff) format("woff")
}

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(/files/Roboto-Bold.woff2) format("woff2"),url(/files/Roboto-Bold.woff) format("woff")
}

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(/files/Roboto-Medium.woff2) format("woff2"),url(/files/Roboto-Medium.woff) format("woff")
}

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(/files/Roboto-Regular.woff2) format("woff2"),url(/files/Roboto-Regular.woff) format("woff")
}

@font-face {
    font-family: Roboto;
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(/files/Roboto-Italic.woff2) format("woff2"),url(/files/Roboto-Italic.woff) format("woff")
}

a:focus,button:focus {
    outline-offset: .5rem;
    outline-color: #5a14e6
}

.device a:focus,.is-usingMouse a:focus,.device button:focus,.is-usingMouse button:focus {
    outline: none!important
}

.no-outline {
    outline: none!important
}

.sr-only:not(:focus),.visually-hidden {
    overflow: hidden!important;
    position: absolute!important;
    width: 1px!important;
    height: 1px!important;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0)
}

.no-js .js-only {
    display: none!important
}

.reduced-motion .rm,.reduced-motion .rm:before,.reduced-motion .rm:after {
    transition: none!important
}

.preload * {
    transition: none!important
}

[id] {
    scroll-margin-top: var(--navH)
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    color: inherit;
}

.skipLink {
    display: flex;
    align-items: center;
    position: fixed;
    top: 1rem;
    left: 50%;
    z-index: 1001;
    height: 4rem;
    padding: 0 1.5rem;
    font-size: 1.6rem;
    font-weight: 700;
    color: #1a191a;
    background: #fff;
    border-radius: 1rem;
    pointer-events: all;
    transform: translate(-50%,-5rem);
    transition: transform .4s cubic-bezier(.215,.61,.355,1)
}

.skipLink:focus {
    transform: translate(-50%)
}

.no-select,.is-dragging * {
    -webkit-touch-callout: none;
    user-select: none
}

.scrolling *,.untouchable {
    pointer-events: none!important
}

.unzoomable {
    touch-action: manipulation
}

.no-tr,.is-resizing .no-rtr {
    transition: none!important
}

.hidden {
    display: none!important
}

.oh {
    overflow: hidden
}

.cp {
    clip-path: inset(0)
}

.ov {
    overflow: visible
}

.of,.db {
    display: block
}

.dib {
    display: inline-block
}

.dfc {
    display: flex;
    flex-direction: column
}

.pr,.down,.up {
    position: relative
}

.up {
    z-index: 1
}

.down {
    z-index: -1
}

.bf {
    order: -1
}

.af {
    order: 1
}

.actr {
    display: flex;
    justify-content: center;
    align-items: center
}

.fit,.of,.oc {
    width: 100%;
    height: 100%
}

.oc {
    object-fit: contain
}

.of,.ofc {
    object-fit: cover
}

.fill {
    position: absolute;
    inset: 0
}

.c-cc {
    color: currentColor
}

.f-cc {
    fill: currentColor
}

.s-cc {
    stroke: currentColor
}

.bg-cc {
    background: currentColor
}

.wct {
    will-change: transform
}

.to {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis
}

.bg-white {
    background: #fff
}

.ctn {
    padding-right: var(--m);
    padding-left: var(--m)
}

.row {
    display: flex;
    column-gap: var(--gut);
    flex-direction: column
}

@media only screen and (min-width: 744px) {
    .row {
        flex-flow:row wrap
    }

    .row--vc {
        align-items: center
    }
}

@media only screen and (min-width: 1113px) {
    .col-12 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 12 - var(--gut))
    }

    .col-12 .col-12,.col-12 .col-11,.col-12 .col-10,.col-12 .col-9,.col-12 .col-8,.col-12 .col-7,.col-12 .col-6,.col-12 .col-5,.col-12 .col-4,.col-12 .col-3,.col-12 .col-2,.col-12 .col-1 {
        --amount-col: 12
    }

    .mr-12 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }

    .ml-12 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }

    .pr-12 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }

    .pl-12 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }
}

@media only screen and (min-width: 1113px) {
    .col-11 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 11 - var(--gut))
    }

    .col-11 .col-11,.col-11 .col-10,.col-11 .col-9,.col-11 .col-8,.col-11 .col-7,.col-11 .col-6,.col-11 .col-5,.col-11 .col-4,.col-11 .col-3,.col-11 .col-2,.col-11 .col-1 {
        --amount-col: 11
    }

    .mr-11 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }

    .ml-11 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }

    .pr-11 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }

    .pl-11 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }
}

@media only screen and (min-width: 1113px) {
    .col-10 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 10 - var(--gut))
    }

    .col-10 .col-10,.col-10 .col-9,.col-10 .col-8,.col-10 .col-7,.col-10 .col-6,.col-10 .col-5,.col-10 .col-4,.col-10 .col-3,.col-10 .col-2,.col-10 .col-1 {
        --amount-col: 10
    }

    .mr-10 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }

    .ml-10 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }

    .pr-10 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }

    .pl-10 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }
}

@media only screen and (min-width: 1113px) {
    .col-9 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 9 - var(--gut))
    }

    .col-9 .col-9,.col-9 .col-8,.col-9 .col-7,.col-9 .col-6,.col-9 .col-5,.col-9 .col-4,.col-9 .col-3,.col-9 .col-2,.col-9 .col-1 {
        --amount-col: 9
    }

    .mr-9 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }

    .ml-9 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }

    .pr-9 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }

    .pl-9 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }
}

@media only screen and (min-width: 1113px) {
    .col-8 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 8 - var(--gut))
    }

    .col-8 .col-8,.col-8 .col-7,.col-8 .col-6,.col-8 .col-5,.col-8 .col-4,.col-8 .col-3,.col-8 .col-2,.col-8 .col-1 {
        --amount-col: 8
    }

    .mr-8 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }

    .ml-8 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }

    .pr-8 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }

    .pl-8 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }
}

@media only screen and (min-width: 1113px) {
    .col-7 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 7 - var(--gut))
    }

    .col-7 .col-7,.col-7 .col-6,.col-7 .col-5,.col-7 .col-4,.col-7 .col-3,.col-7 .col-2,.col-7 .col-1 {
        --amount-col: 7
    }

    .mr-7 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }

    .ml-7 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }

    .pr-7 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }

    .pl-7 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }
}

@media only screen and (min-width: 1113px) {
    .col-6 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 6 - var(--gut))
    }

    .col-6 .col-6,.col-6 .col-5,.col-6 .col-4,.col-6 .col-3,.col-6 .col-2,.col-6 .col-1 {
        --amount-col: 6
    }

    .mr-6 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }

    .ml-6 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }

    .pr-6 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }

    .pl-6 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }
}

@media only screen and (min-width: 1113px) {
    .col-5 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 5 - var(--gut))
    }

    .col-5 .col-5,.col-5 .col-4,.col-5 .col-3,.col-5 .col-2,.col-5 .col-1 {
        --amount-col: 5
    }

    .mr-5 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }

    .ml-5 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }

    .pr-5 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }

    .pl-5 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }
}

@media only screen and (min-width: 1113px) {
    .col-4 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 4 - var(--gut))
    }

    .col-4 .col-4,.col-4 .col-3,.col-4 .col-2,.col-4 .col-1 {
        --amount-col: 4
    }

    .mr-4 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .ml-4 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .pr-4 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .pl-4 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }
}

@media only screen and (min-width: 1113px) {
    .col-3 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 3 - var(--gut))
    }

    .col-3 .col-3,.col-3 .col-2,.col-3 .col-1 {
        --amount-col: 3
    }

    .mr-3 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .ml-3 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .pr-3 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .pl-3 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }
}

@media only screen and (min-width: 1113px) {
    .col-2 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 2 - var(--gut))
    }

    .col-2 .col-2,.col-2 .col-1 {
        --amount-col: 2
    }

    .mr-2 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .ml-2 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .pr-2 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .pl-2 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }
}

@media only screen and (min-width: 1113px) {
    .col-1 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 1 - var(--gut))
    }

    .col-1 .col-1 {
        --amount-col: 1
    }

    .mr-1 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .ml-1 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .pr-1 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .pl-1 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-12 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 12 - var(--gut))
    }

    .t-col-12 .t-col-12,.t-col-12 .t-col-11,.t-col-12 .t-col-10,.t-col-12 .t-col-9,.t-col-12 .t-col-8,.t-col-12 .t-col-7,.t-col-12 .t-col-6,.t-col-12 .t-col-5,.t-col-12 .t-col-4,.t-col-12 .t-col-3,.t-col-12 .t-col-2,.t-col-12 .t-col-1 {
        --amount-col: 12
    }

    .t-mr-12 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }

    .t-ml-12 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }

    .t-pr-12 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }

    .t-pl-12 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 12)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-11 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 11 - var(--gut))
    }

    .t-col-11 .t-col-11,.t-col-11 .t-col-10,.t-col-11 .t-col-9,.t-col-11 .t-col-8,.t-col-11 .t-col-7,.t-col-11 .t-col-6,.t-col-11 .t-col-5,.t-col-11 .t-col-4,.t-col-11 .t-col-3,.t-col-11 .t-col-2,.t-col-11 .t-col-1 {
        --amount-col: 11
    }

    .t-mr-11 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }

    .t-ml-11 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }

    .t-pr-11 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }

    .t-pl-11 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 11)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-10 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 10 - var(--gut))
    }

    .t-col-10 .t-col-10,.t-col-10 .t-col-9,.t-col-10 .t-col-8,.t-col-10 .t-col-7,.t-col-10 .t-col-6,.t-col-10 .t-col-5,.t-col-10 .t-col-4,.t-col-10 .t-col-3,.t-col-10 .t-col-2,.t-col-10 .t-col-1 {
        --amount-col: 10
    }

    .t-mr-10 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }

    .t-ml-10 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }

    .t-pr-10 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }

    .t-pl-10 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 10)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-9 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 9 - var(--gut))
    }

    .t-col-9 .t-col-9,.t-col-9 .t-col-8,.t-col-9 .t-col-7,.t-col-9 .t-col-6,.t-col-9 .t-col-5,.t-col-9 .t-col-4,.t-col-9 .t-col-3,.t-col-9 .t-col-2,.t-col-9 .t-col-1 {
        --amount-col: 9
    }

    .t-mr-9 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }

    .t-ml-9 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }

    .t-pr-9 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }

    .t-pl-9 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 9)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-8 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 8 - var(--gut))
    }

    .t-col-8 .t-col-8,.t-col-8 .t-col-7,.t-col-8 .t-col-6,.t-col-8 .t-col-5,.t-col-8 .t-col-4,.t-col-8 .t-col-3,.t-col-8 .t-col-2,.t-col-8 .t-col-1 {
        --amount-col: 8
    }

    .t-mr-8 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }

    .t-ml-8 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }

    .t-pr-8 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }

    .t-pl-8 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 8)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-7 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 7 - var(--gut))
    }

    .t-col-7 .t-col-7,.t-col-7 .t-col-6,.t-col-7 .t-col-5,.t-col-7 .t-col-4,.t-col-7 .t-col-3,.t-col-7 .t-col-2,.t-col-7 .t-col-1 {
        --amount-col: 7
    }

    .t-mr-7 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }

    .t-ml-7 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }

    .t-pr-7 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }

    .t-pl-7 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 7)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-6 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 6 - var(--gut))
    }

    .t-col-6 .t-col-6,.t-col-6 .t-col-5,.t-col-6 .t-col-4,.t-col-6 .t-col-3,.t-col-6 .t-col-2,.t-col-6 .t-col-1 {
        --amount-col: 6
    }

    .t-mr-6 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }

    .t-ml-6 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }

    .t-pr-6 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }

    .t-pl-6 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 6)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-5 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 5 - var(--gut))
    }

    .t-col-5 .t-col-5,.t-col-5 .t-col-4,.t-col-5 .t-col-3,.t-col-5 .t-col-2,.t-col-5 .t-col-1 {
        --amount-col: 5
    }

    .t-mr-5 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }

    .t-ml-5 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }

    .t-pr-5 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }

    .t-pl-5 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 5)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-4 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 4 - var(--gut))
    }

    .t-col-4 .t-col-4,.t-col-4 .t-col-3,.t-col-4 .t-col-2,.t-col-4 .t-col-1 {
        --amount-col: 4
    }

    .t-mr-4 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .t-ml-4 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .t-pr-4 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .t-pl-4 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-3 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 3 - var(--gut))
    }

    .t-col-3 .t-col-3,.t-col-3 .t-col-2,.t-col-3 .t-col-1 {
        --amount-col: 3
    }

    .t-mr-3 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .t-ml-3 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .t-pr-3 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .t-pl-3 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-2 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 2 - var(--gut))
    }

    .t-col-2 .t-col-2,.t-col-2 .t-col-1 {
        --amount-col: 2
    }

    .t-mr-2 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .t-ml-2 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .t-pr-2 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .t-pl-2 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .t-col-1 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 1 - var(--gut))
    }

    .t-col-1 .t-col-1 {
        --amount-col: 1
    }

    .t-mr-1 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .t-ml-1 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .t-pr-1 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .t-pl-1 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }
}

@media only screen and (max-width: 743px) {
    .m-col-4 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 4 - var(--gut))
    }

    .m-col-4 .m-col-4,.m-col-4 .m-col-3,.m-col-4 .m-col-2,.m-col-4 .m-col-1 {
        --amount-col: 4
    }

    .m-mr-4 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .m-ml-4 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .m-pr-4 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }

    .m-pl-4 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 4)
    }
}

@media only screen and (max-width: 743px) {
    .m-col-3 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 3 - var(--gut))
    }

    .m-col-3 .m-col-3,.m-col-3 .m-col-2,.m-col-3 .m-col-1 {
        --amount-col: 3
    }

    .m-mr-3 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .m-ml-3 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .m-pr-3 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }

    .m-pl-3 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 3)
    }
}

@media only screen and (max-width: 743px) {
    .m-col-2 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 2 - var(--gut))
    }

    .m-col-2 .m-col-2,.m-col-2 .m-col-1 {
        --amount-col: 2
    }

    .m-mr-2 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .m-ml-2 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .m-pr-2 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }

    .m-pl-2 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 2)
    }
}

@media only screen and (max-width: 743px) {
    .m-col-1 {
        width:calc(((100% + var(--gut)) / var(--amount-col)) * 1 - var(--gut))
    }

    .m-col-1 .m-col-1 {
        --amount-col: 1
    }

    .m-mr-1 {
        margin-right: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .m-ml-1 {
        margin-left: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .m-pr-1 {
        box-sizing: content-box;
        padding-right: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }

    .m-pl-1 {
        box-sizing: content-box;
        padding-left: calc(((100% + var(--gut)) / var(--amount-col)) * 1)
    }
}

@media only screen and (min-width: 744px) {
    .m-only {
        display:none!important
    }
}

@media only screen and (min-width: 961px) {
    .tp-only {
        display:none!important
    }
}

@media only screen and (max-width: 960px) {
    .d-only,.t-hidden {
        display:none!important
    }

    .t-100 {
        width: 100%
    }
}

@media only screen and (max-width: 743px) {
    .m-hidden {
        display:none!important
    }

    .m-100 {
        width: 100%
    }
}

.vph {
    height: 100vh
}

#grid-ctn {
    position: fixed;
    inset: 0;
    z-index: 3101;
    opacity: .2;
    pointer-events: none
}

#gridWrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--gut);
    width: 100%;
    height: 100%;
    transform-origin: center top;
    transform: scaleY(0);
    transition: transform .4s cubic-bezier(.645,.045,.355,1)
}

.grid-visible #gridWrapper {
    transform: scaleY(1)
}

.gridCol {
    float: left;
    height: 100vh;
    background: #f00
}

.gutSizer {
    position: absolute;
    width: var(--gut)
}

.colSizer {
    position: absolute;
    width: var(--colw);
    height: 100vh
}

:root {
    --vh: 1vh;
    --vw: 1vw;
    --vpW: 100vw;
    --vpH: 100vh;
    --navH: 9.2rem;
    --accentColor: #5a14e6;
    --navH-sticky: 0;
    --txtColor: #454545;
    --m: 8.97vw;
    --gut: 5.1282051282vw;
    --colw: calc(((100% + var(--gut)) / var(--amount-col)) - var(--gut));
    --amount-col: 4
}

@media only screen and (min-width: 744px) {
    :root {
        --m: 8.97vw;
        --gut: 2.6041666667vw;
        --amount-col: 12;
        --navH: 15rem;
        --navH-sticky: 9rem
    }
}

@media only screen and (min-width: 1113px) {
    :root {
        --m: 12.7vw;
        --gut: min(1.563vw, 2.681rem);
        --amount-col: 12
    }
}

@media only screen and (min-width: 1717px) {
    :root {
        --m:calc((100vw - 1280px)/2)
    }
}

::selection {
    color: #fff;
    background: #311095
}

::-moz-selection {
    color: #fff;
    background: #311095
}

img::selection {
    background: #311095
}

img::-moz-selection {
    background: #311095
}

html {
    scroll-behavior: initial;
    width: 100%;
    min-height: 100%
}

body {
    counter-reset: section;
    overflow-x: hidden;
    overflow-y: scroll;
    width: 100%;
    min-height: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    font-family: Roboto,sans-serif;
    font-style: normal;
    font-size: 1.7rem;
    line-height: 1.7;
    color: var(--txtColor)
}

#content {
    min-height: var(--vpH, 100vh)
}

.router {
    position: relative;
    width: 100%
}

.view {
    position: relative;
    min-height: var(--vpH, 100vh)
}

.title {
    font-family: Poppins,sans-serif;
    font-size: 1.8rem
}

@media only screen and (min-width: 744px) {
    .title {
        font-size:2.34375vw
    }

    .title--xs {
        font-size: 1.8rem
    }
}

@media only screen and (min-width: 1113px) {
    .title {
        font-size:min(1.458vw,2.503rem)
    }

    .title--xs {
        font-size: 1.8rem
    }

    .title--s {
        font-size: min(1.615vw,2.771rem)
    }

    .title--m {
        font-size: min(1.875vw,3.218rem)
    }

    .title--l {
        font-size: min(2.188vw,3.754rem)
    }

    .title--xl {
        font-size: min(3.177vw,5.452rem)
    }
}

p+p {
    margin-top: 1em
}

.fw-reg {
    font-weight: 400
}

.fw-med {
    font-weight: 500
}

.fw-semi {
    font-weight: 600
}

.fw-bold {
    font-weight: 700
}

.fw-xbold {
    font-weight: 800
}

.ta-c {
    text-align: center
}

.tt-u {
    text-transform: uppercase
}

.f-poppin {
    font-family: Poppins,sans-serif
}

.f-roboto {
    font-family: Roboto,sans-serif
}

.c-violet {
    color: #5a14e6
}

.c-cerise {
    color: #d9408c
}

.c-blue {
    color: #360d9b
}

.c-bright {
    color: #fff
}

.c-thunder {
    color: #1a191a
}

.c-port {
    color: #241940
}

.c-tundora {
    color: #454545
}

.btn--default {
    display: table;
    font-weight: 600;
    color: #fff;
    border-radius: 50rem;
    padding: 10px 20px;
}

.bg--primary {
    background-color: #5914e6;
    color: #fff;
}

.bg--secondary {
    background: #241940;
    color: #fff;
}

.btn--primary {
    background: #311095;
}

.btn--secondary {
    background: #241940;
}

.btn,.tag,.roundBtn,.btnArrow {
    display: inline-flex!important;
    justify-content: center;
    align-items: center;
    position: relative;
    /*height: var(--size);*/
    padding: 10px calc(var(--size) / 2)!important;
    text-align: center;
    font-family: Poppins,sans-serif;
    font-size: clamp(1.8rem,1.094vw,1.877rem);
    font-weight: 600;
    user-select: none;
    border: none;
    border-radius: 50rem;
    cursor: pointer
}

.btn,.tag {
    --size: clamp(5rem, 3.906vw, 6.703rem);
    color: #fff!important;
    transition: color .3s!important;
}

.btn:before,.tag:before {
    content: "";
    position: absolute;
    background-color: #5a14e6;
    border-radius: calc(var(--size) / 2);
    inset: 0;
    transition: background .3s ease-in-out,transform .4s cubic-bezier(.23,1,.32,1)
}

.btn[disabled],[disabled].tag {
    opacity: .4;
    pointer-events: none
}

@media (hover: hover) {
    .btn:hover:before,.tag:hover:before,.btn:focus-within:before,.tag:focus-within:before {
        background-color:#360d9b;
        transform: scale(.97,.95)
    }
}

.btn:focus,
.btn.focus,
.btn:active,
.btn.active {
    border-radius: 50rem;
    outline: none;
    box-shadow: none;
}

.keyboard-nav .btn:focus:before,.keyboard-nav .tag:focus:before {
    background-color: #360d9b;
    transform: scale(.97,.95)
}

.btn--s {
    --size: 5rem;
    font-size: 1.8rem!important;
}

.btn--bright {
    color: #fff!important;
}

@media only screen and (min-width: 743px) {
    .btn--bright {
        color: #241940!important;
    }
}

.btn--bright:before {
    background-color: #fff
}

@media (hover: hover) {
    .btn--bright:hover:before,.btn--bright:focus-within:before {
        background-color:#f5f2fd
    }
}

.keyboard-nav .btn--bright:focus:before {
    background-color: #f5f2fd
}

.btn--blue:before {
    background-color: #360d9b
}

@media (hover: hover) {
    .btn--blue:hover:before,.btn--blue:focus-within:before {
        background-color:#241940
    }
}

.keyboard-nav .btn--blue:focus:before {
    background-color: #241940
}

.btn__label {
    position: relative;
    z-index: 1
}

.btnArrow {
    --size: 8.2rem;
    padding-right: 20px;
    color: #360d9b;
    background-color: #fff
}

@media only screen and (min-width: 743px) {
    .btnArrow {
        padding: 20px calc(var(--size) / 2)!important;
        padding-right: calc(var(--size) / 2 + 10.6rem)!important;
    }
}

@media (hover: hover) {
    .btnArrow:hover .btnArrow__arrow,.btnArrow:focus-within .btnArrow__arrow {
        clip-path:inset(0 round calc(var(--subsize) / 2))
    }

    .btnArrow:hover .btnArrow__arrowIcon,.btnArrow:focus-within .btnArrow__arrowIcon {
        transform: translate3d(-2rem,-50%,0) scale(.9)
    }

    .btnArrow:hover .btnArrow__arrowLabel,.btnArrow:hover .btnArrow__label,.btnArrow:focus-within .btnArrow__arrowLabel,.btnArrow:focus-within .btnArrow__label {
        transform: translate3d(2rem,0,0)
    }
}

.keyboard-nav .btnArrow:focus .btnArrow__arrow {
    clip-path: inset(0 round calc(var(--subsize) / 2))
}

.keyboard-nav .btnArrow:focus .btnArrow__arrowIcon {
    transform: translate3d(-2rem,-50%,0) scale(.9)
}

.keyboard-nav .btnArrow:focus .btnArrow__arrowLabel,.keyboard-nav .btnArrow:focus .btnArrow__label {
    transform: translate3d(2rem,0,0)
}

@media only screen and (max-width: 743px) {
    .btnArrow {
        --size: 5rem;
        padding-right: calc(var(--size) * 1.5);
        padding-left: calc(var(--size) * .4);
        font-size: 1.4rem
    }
}

.btnArrow__label {
    position: relative;
    z-index: 1
}

.btnArrow__arrowIcon,.btnArrow__label,.btnArrow__arrowLabel {
    transition: transform .5s cubic-bezier(.645,.045,.355,1)
}

.btnArrow__arrow {
    --subsize: calc(var(--size) - 2px);
    padding-right: calc(var(--size) / 2 + 10.2rem);
    padding-left: calc(var(--size) / 2);
    color: #fff;
    background-color: #5a14e6;
    border-radius: calc(var(--subsize) / 2);
    clip-path: inset(0 0 0 calc(100% - 11rem) round calc(var(--subsize) / 2));
    transition: clip-path .5s cubic-bezier(.645,.045,.355,1);
    inset: 2px
}

@media only screen and (max-width: 743px) {
    .btnArrow__arrow {
        padding-right:calc(var(--size) * 1.5 - 4px);
        clip-path: inset(0 0 0 calc(100% - var(--size) * 1.2) round calc(var(--subsize) / 2))
    }
}

.btnArrow__arrowIcon {
    position: absolute;
    top: 50%;
    right: 3.8rem;
    width: 3.6rem!important;
    height: 35px!important;
    transform: translate3d(0,-50%,0);
    stroke: #fff!important;
}

@media only screen and (max-width: 743px) {
    .btnArrow__arrowIcon {
        right:2.2rem;
        width: 1.8rem
    }
}

.roundBtn {
    --size: clamp(5rem, 3.906vw, 6.703rem)
}

.roundBtn:before {
    content: "";
    position: absolute;
    background-color: #311095;
    border-radius: calc(var(--size) / 2);
    inset: 0;
    transition: background .3s ease-in-out,transform .4s cubic-bezier(.23,1,.32,1)
}

.roundBtn .icon {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40%;
    height: 40%;
    transform: translate(-50%,-50%)
}

@media (hover: hover) {
    .roundBtn:hover:before,.roundBtn:focus-within:before {
        transform:scale(.95)
    }
}

.keyboard-nav .roundBtn:focus:before {
    transform: scale(.95)
}

.header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1001;
    width: 100vw;
    height: var(--navH);
    color: #fff;
    pointer-events: none;
    background: #5a14e6;
    transition: height .8s;
}

.header.is-sticky {
    transition: height 1s;
}

@media only screen and (min-width: 1000px) {
    .header {
        padding-left: 100px;
        padding-right: 100px;
    }

    .header.is-sticky {
        height: var(--navH-sticky);
        transition: height 1s;
    }
}

.header.is-sticky .header__logo {
    width: 15rem;
    transition: width .8s;
}

body:not(.menu-open) .header:after {
    opacity: 0;
    transition-delay: .2s
}

.header__wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    display: grid;
    grid-template-columns:1fr auto 1fr;
}

.header__scrollAreaCtn {
    --sclY: calc(150 / var(--rawVph, 1000));
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    height: 100vh
}

.header.is-sticky .header__scrollAreaCtn:before {
    height: var(--navH-sticky);
    transition: all .8s;
}

.header__scrollAreaCtn:before {
    height: var(--navH);
    transition: all .8s;
    content: "";
    position: absolute;
    background-color: var(--headerColor);
    inset: 0
}

body:not(.menu-open) .header.is-sticky .header__scrollAreaCtn:before {
    transition: all .8s;
    height: var(--navH-sticky);
}

.menu-open .header.is-sticky .header__scrollAreaCtn:before {
    transition: all .8s;
    height: 100vh;
}

.menu-open .header__scrollAreaCtn:before {
    --sclY: calc(1 + (150 / var(--rawVph)) * var(--navOffset, 0));
    background-color: #241940;
    transition-delay: 0s,0s;
    height: 100%;
    transition: all .8s;
}

@media only screen and (min-width: 744px) {
    .header__scrollAreaCtn:before {
        transform-origin:top center;
        translate: 0 calc((var(--navH) - var(--navH-sticky)) * -1 * var(--navOffset, 0px)) 0;
        scale: 1 var(--sclY);
        transition: all .8s cubic-bezier(.645,.045,.355,1),background-color .6s .4s
    }
}

.header.is-sticky .header__scrollAreaCtn:after {
    transition: all .8s;
    height: var(--navH-sticky);
}

.header__scrollAreaCtn:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: var(--navH);
    background: linear-gradient(0deg,rgba(36,25,64,0),rgba(36,25,64,.2) 30%,rgba(36,25,64,.95) 60%,#241940);
    pointer-events: none;
    transition: all .8s
}

body:not(.menu-open) .header__scrollAreaCtn:after {
    opacity: 0
}

@media only screen and (max-width: 743px) {
    .header__scrollAreaCtn {
        --sclY: 1
    }

    .header__scrollAreaCtn:before {
        will-change: transform;
        transform: translate3d(0,calc(-100% + var(--navH)),0);
        transition: transform .8s cubic-bezier(.645,.045,.355,1),background-color .6s .4s
    }

    .menu-open .header__scrollAreaCtn:before {
        transform: translateZ(0)!important
    }
}

.header__scrollarea {
    display: flex;
    flex-direction: column;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    position: fixed;
    padding: min(14.844vw,25.472rem) var(--m) min(7.813vw,13.406rem);
    pointer-events: all;
    transition: visibility 0s 0s;
    inset: 0
}

.is-resizing .header__scrollarea {
    transition: none
}

body:not(.menu-open) .header__scrollarea {
    visibility: hidden;
    pointer-events: none;
    transition-delay: .8s
}

@media only screen and (min-width: 744px) and (max-width: 960px) {
    .header__scrollarea {
        padding-inline:var(--m)
    }
}

@media only screen and (max-width: 743px) {
    .header__scrollarea {
        padding-inline:17.4358974359vw
    }
}

.header__title {
    position: relative;
    z-index: 1000;
    pointer-events: all;
    margin: 0;
}

@media only screen and (min-width: 744px) {
    .header__title {
        transform:translate3d(-1rem,calc((var(--navH) - var(--navH-sticky)) * -.5 * var(--navOffset, 0px)),0) scale(calc(1 - .2 * var(--navOffset)))
    }
}

.header__logo {
    display: block;
    width: clamp(22rem,9.115vw,15.641rem);
    height: auto;
    transition: width .8s;
}

@media only screen and (max-width: 743px) {
    .header__logo {
        width:10rem
    }
}

.header__langNav {
    z-index: 1;
    pointer-events: all
}

@media only screen and (min-width: 744px) {
    .header__langNav {
        transform:translate3d(0,calc((var(--navH) - var(--navH-sticky)) * -.5 * var(--navOffset, 0px)),0)
    }
}

.header__contactBtn {
    font-weight: 500!important;
    pointer-events: all;
    transition: visibility 0s,opacity .5s .3s!important;
    display: none!important;
}

.menu-open .header__contactBtn {
    visibility: hidden!important;
    opacity: 0;
    transition-delay: .7s,0s
}

@media only screen and (min-width: 1000px) {
    .header__contactBtn {
        transform:translate3d(0,calc((var(--navH) - var(--navH-sticky)) * -.5 * var(--navOffset, 0px)),0);
        display: flex!important;
    }
}

.header__sn {
    margin: 0 auto;
    color: #fff
}

.header__sn .snItem:before {
    background-color: transparent;
    border-color: #fff
}

.header__nav {
    margin-bottom: auto
}

@media only screen and (min-width: 744px) {
    .header__nav {
        padding-left:min(6.563vw,11.261rem)
    }
}

.nav {
    position: relative;
    z-index: 1001;
    gap: 10%;
    align-items: end;
    display: flex;
    align-items: end;
}
@media only screen and (min-width: 744px) {
    .nav {
        flex-direction: row;
    }
}
.nav__list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    list-style: none;
    padding-left: 0;
}
.nav__list_2 .nav__item {
    font-weight: 300;
    font-size: clamp(1.8rem,1.719vw,2rem);
}
.nav__list_2 .nav__item:not(:first-child) {
    margin-top: 25px;
}
@media only screen and (max-width: 960px) {
    .nav__list {
        flex-direction:column;
        justify-content: center;
        align-items: flex-start;
        padding: 4rem 0;
        text-align: center
    }
}

@media only screen and (min-width: 961px) {
    .nav__list {
        position:relative;
    }
}

.nav__item {
    font-family: Poppins,sans-serif;
    font-size: clamp(1.8rem,1.719vw,2.949rem);
    font-weight: 500;
    line-height: 1.4
}

.nav__item:not(:first-child) {
    margin-top: clamp(3rem,2.5vw,4.29rem)
}

.nav__item span {
    position: relative;
    color: #fff;
}

.nav__item span:before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: .2rem;
    background-color: currentColor;
    transform-origin: left;
    transform: scaleX(0);
    transition: transform .5s cubic-bezier(.645,.045,.355,1)
}

@media (hover: hover) {
    .nav__item:hover,.nav__item:focus-within {
        color:var(--themeColor)
    }

    .nav__item:hover span:before,.nav__item:focus-within span:before {
        transform: scaleX(1)
    }
}

.keyboard-nav .nav__item:focus {
    color: var(--themeColor)
}

.keyboard-nav .nav__item:focus span:before {
    transform: scaleX(1)
}

.nav__item.is-current span:before {
    transform: scaleX(1)
}

.header__sn,.nav__item,.nav__itemCta {
    --stg: (var(--i) / var(--totalItems) ) * .3s;
    will-change: transform;
    transform: translateZ(0);
    transition: transform .85s cubic-bezier(.645,.045,.355,1),opacity .6s;
    transition-delay: calc(var(--stg) + .03s),calc(var(--stg) + .35s)
}

body:not(.menu-open) .header__sn,body:not(.menu-open) .nav__item,body:not(.menu-open) .nav__itemCta {
    --stg: (1 - (var(--i) / var(--totalItems) )) * .2s;
    opacity: 0;
    transform: translate3d(0,-200%,0);
    transition-duration: .3s,.3s;
    transition-delay: calc(var(--stg)),calc(var(--stg));
    transition-timing-function: cubic-bezier(.55,.055,.675,.19),linear
}

@media only screen and (min-width: 744px) {
    .nav__itemCta {
        position:sticky;
        bottom: -8rem;
        margin-left: auto;
        white-space: nowrap;
        transform: translateZ(0);
        transition: opacity .5s calc(var(--stg) + .5s)!important
    }

    body:not(.menu-open) .nav__itemCta {
        transform: translateZ(0);
        transition-duration: .3s!important;
        transition-delay: 0s!important
    }
}

@media only screen and (max-width: 743px) {
    .nav__itemCta {
        margin-top:clamp(3rem,2.5vw,4.29rem);
        text-transform: uppercase
    }

    .nav__itemCta .btnArrow__arrow {
        display: none
    }
}

.nav__itemCtaBtn {
    font-size: 1.9rem
}

@media only screen and (min-width: 1024px) {
    .nav__itemCtaBtn {
        min-width:min(18.073vw,31.013rem)
    }
}

.header__nav_button {
    gap: 20px;
    justify-self: end;
}

.menuBtn {
    z-index: 1002;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 6rem;
    height: 6rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    pointer-events: all;
    transform: translate3d(0,calc((var(--navH) - var(--navH-sticky)) * -.5 * var(--navOffset, 0px)),0)
}

.menuBtn__circle {
    overflow: visible;
    stroke-width: clamp(.2rem,.26vw,.447rem);
    opacity: .2;
    transform: rotate(-90deg);
    transition: transform .8s cubic-bezier(.645,.045,.355,1),stroke-dashoffset .8s cubic-bezier(.645,.045,.355,1);
    stroke-dasharray: 100 100;
    stroke-dashoffset: 100
}

.menu-open .menuBtn__circle {
    transform: rotate(90deg);
    stroke-dashoffset: 0
}

.is-resizing .menuBtn__circle {
    transition: none!important
}

@media only screen and (max-width: 743px) {
    .menuBtn__circle {
        stroke-width:.3rem
    }
}

.menuBtn__icon {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: clamp(2rem,2.292vw,3.933rem);
    height: clamp(1.8rem,1.875vw,3.218rem);
    will-change: transform;
    transition: transform .8s cubic-bezier(.215,.61,.355,1) .4s
}

.menu-open .menuBtn__icon {
    transform: scale(.7);
    transition-duration: 1.2s;
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    transition-delay: 0s
}

.is-resizing .menuBtn__icon {
    transition: none!important
}

@media only screen and (max-width: 743px) {
    .menuBtn__icon {
        top:calc(50% - 1.1rem);
        left: calc(50% - 1.3rem);
        width: 2.6rem;
        height: 2.2rem
    }
}

.menuBtn__bar {
    width: 100%;
    height: min(.26vw,.447rem);
    background: currentColor;
    will-change: transform;
    border-radius: 50rem;
    transform: translateZ(0);
    transition: transform .8s cubic-bezier(.215,.61,.355,1)
}

.is-resizing .menuBtn__bar {
    transition: none!important
}

.menu-open .menuBtn__bar:nth-child(1) {
    transform: translate3d(0,clamp(.78rem,.781vw,1.341rem),0) scaleX(1) rotate(45deg)
}

.menu-open .menuBtn__bar:nth-child(2) {
    transform: translateZ(0) scaleX(0)
}

.menu-open .menuBtn__bar:nth-child(3) {
    transform: translate3d(0,clamp(-1.341rem,-.781vw,-.78rem),0) scaleX(1) rotate(-45deg)
}

@media only screen and (max-width: 743px) {
    .menuBtn__bar {
        height:.3rem
    }

    .menu-open .menuBtn__bar:nth-child(1) {
        transform: translate3d(0,.95rem,0) scaleX(1) rotate(45deg)
    }

    .menu-open .menuBtn__bar:nth-child(2) {
        transform: translateZ(0) scaleX(0)
    }

    .menu-open .menuBtn__bar:nth-child(3) {
        transform: translate3d(0,-.95rem,0) scaleX(1) rotate(-45deg)
    }
}

.block_newsletter {
    display: flex;
    justify-content: center;
    margin: auto;
    border-bottom: 1px solid lightgrey;
    padding-bottom: 50px;
    margin-bottom: 50px;
}
.block_newsletter form input {
    color: #fff;
}
.block_newsletter .newsletter_header {
    max-width: 500px;
}
.block_newsletter .newsletter_header + form .nlForm__wrapper {
    border-radius: 50rem!important;
    overflow: hidden;
}
.block_newsletter form input::placeholder {
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    opacity: 1;
}
.block_newsletter .btn:before,
.block_newsletter .tag:before {
    background-color: #fff!important;
}
.block_newsletter .btn:hover:before,
.block_newsletter .tag:hover:before {
    background-color: #fff;
}
.block_newsletter .btn__label {
    color: #000;
}
.block_newsletter .nlForm__input {
    background-color: #5914e6;
    height: 100%;
    width: 100%;
}
.block_newsletter .newsletter_form {
    justify-content: center;
    display: flex;
    flex-direction: column;
}
.block_newsletter .newsletter_header,
.block_newsletter .newsletter_fieldset {
    width: 100%;
    padding-right: 0;
}
.block_newsletter .newsletter_form button {
    color: #fff;
    overflow: hidden;
}
@media only screen and (min-width: 743px) {
    .block_newsletter .newsletter_header,
    .block_newsletter .newsletter_fieldset {
        width: 50%;
    }
    .block_newsletter form {
        max-width: calc((100% / 10) * 3);
    }
    .block_newsletter .newsletter_form {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: space-between;
    }
}

@media only screen and (max-width: 743px) {
    .block_newsletter .newsletter_form button {
        padding: 13px !important;
        width: 46px;
    }
}

.block_newsletter .newsletter_form svg, .block_newsletter .newsletter_form svg.nlForm__submitIcon {
    z-index: 1;
    width: 1.5rem!important;
    height: 1.5rem !important;
    margin-left: 5px;
    transform: rotate(-45deg);
    stroke: #5914e6;
}

.langSwitch {
    font-size: 1.8rem;
    font-weight: 600;
    text-transform: uppercase
}

.langSwitch abbr {
    text-decoration: none!important;
}

.langSwitch abbr[title], .langSwitch abbr[data-original-title] {
    cursor: pointer!important;
}

.langSwitch__current {
    flex-direction: column;
    position: relative;
    width: 5.4rem;
    height: 4rem
}

.langSwitch__current .icon {
    flex-shrink: 0;
    stroke: #fff;
}

.langSwitch__current abbr {
    cursor: default!important;
}

.langSwitch__linkLabel {
    line-height: 1;
    border: none
}

.langSwitch__list {
    position: absolute;
    top: 100%;
    left: 0;
    list-style: none;
    width: 100%;
    padding-top: .8rem;
    font-weight: 500;
    color: var(--txtColor);
    border-radius: 1rem;
    box-shadow: 0 1rem 5rem #00000026;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0,-.5rem,0);
    transition: opacity .3s,transform .4s cubic-bezier(.23,1,.32,1)
}

.langSwitch:focus-within .langSwitch__list,.langSwitch:hover .langSwitch__list {
    opacity: 1;
    pointer-events: all;
    transform: translateZ(0);
    transition-delay: 0s
}

.langSwitch__item {
    background-color: #fff
}

.langSwitch__item:first-child {
    border-radius: 1rem 1rem 0 0
}

.langSwitch__item:last-child {
    border-radius: 0 0 1rem 1rem
}

.langSwitch__item:not(:first-child) {
    margin-top: -.4rem
}

.langSwitch__list--mock .langSwitch__item {
    background-color: #5a14e6
}

.langSwitch__link {
    position: relative;
    padding: .4rem 1rem;
    cursor: pointer;
}

.langSwitch__link abbr {
    cursor: pointer;
}

.langSwitch__link:before {
    content: "";
    position: absolute;
    background-color: #5a14e6;
    border-radius: .8rem;
    opacity: 0;
    inset: .4rem;
    transform: scale(.85);
    transition: transform .3s cubic-bezier(.215,.61,.355,1),opacity .3s
}

@media (hover: hover) {
    .langSwitch__link:hover:before,.langSwitch__link:focus-within:before {
        opacity:.15;
        transform: scale(1) translateZ(0)
    }
}

.keyboard-nav .langSwitch__link:focus:before {
    opacity: .15;
    transform: scale(1) translateZ(0)
}

.footer {
    position: relative;
    padding-top: 100px;
    padding-bottom: 18vw;
    font-family: Poppins,sans-serif;
    font-size: clamp(1.4rem,1.146vw,1.966rem);
    font-weight: 500;
    background-color: #ECECEC;
}
.footer ul,
.footer ol {
    list-style: none;
}
.footer .wrapper_columns {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-direction: column;
    flex-wrap: wrap;
    margin-bottom: 50px;
}
.footer .bg_wave {
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #fff;
    top: 0;
    left: 0;
    z-index: 0;
}
@media screen and (min-width: 768px) {
    .footer .wrapper_columns {
        flex-direction: row;
        margin-bottom: 0;
    }
}
.footer .container {
    position: relative;
    z-index: 2;
}
.footer a:not(.snList a) {
    position: relative;
    transition: color .6s
}
.footer a:not(.snList a):before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: .1em;
    background-color: currentColor;
    transform-origin: left;
    transform: scaleX(0) translateZ(0);
    transition: transform .4s cubic-bezier(.215,.61,.355,1)
}

@media (hover: hover) {
    .footer a:not(.snList a):hover,.footer a:not(.snList a):focus-within {
        color:#311095
    }

    .footer a:not(.snList a):hover:before,.footer a:not(.snList a):focus-within:before {
        transform: scaleX(1) translateZ(0)
    }
}

.keyboard-nav .footer a:not(.snList a):focus {
    color: #311095
}

.keyboard-nav .footer a:not(.snList a):focus:before {
    transform: scaleX(1) translateZ(0)
}

.footer__inner {
    padding-bottom: min(6.771vw,11.619rem)
}

@media only screen and (max-width: 743px) {
    .footer__inner {
        flex-flow:row-reverse wrap
    }
}

@media only screen and (min-width: 1113px) {
    .footer__sn {
        position:absolute;
        bottom: 1rem;
        left: 0
    }
}

@media only screen and (max-width: 1112px) {
    .footer__sn {
        margin-top:4rem
    }
}

@media only screen and (max-width: 743px) {
    .footer__sn {
        margin-top:1.6rem
    }
}

html:not(.mobile) .footer__sn .snItem:not(:focus-within,:hover) {
    color: var(--txtColor)!important
}

html:not(.mobile) .footer__sn .snItem:not(:focus-within,:hover):before {
    background-color: transparent;
    transform: translateZ(0)
}

html:not(.mobile) .footer__sn .snItem:not(:focus-within,:hover) .snItem__icon {
    fill: currentColor
}
.footer__label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 20px;
    margin-top: 25px;
}
.footer .wrapper_footer__silicon {
    position: absolute;
    z-index: 1;
    left: 0;
    bottom: 0;
    overflow: hidden;
    height: 17vw;
}
.footer .footer__silicon {
    font-size: 20.7vw;
    color: #5914e6;
    font-weight: 700;
    line-height: 1;
}
.footer .footer__silicon span {
    color: transparent;
    -webkit-text-stroke: 3px #5914e6;
}
@media only screen and (min-width: 744px) {
    .footer__bookend {
        font-size: 1.2rem;
        font-weight: 400;
        margin-top: 50px;
    }
    .footer__info {
        width: calc((100% / 10) * 3);
    }
    .footer__info:last-child {
        margin-left: calc((100% / 10) - 40px);
    }
    .footer__logo {
        position:absolute;
        bottom: calc(100% + 6rem);
        width: clamp(18rem,16.25vw,27.885rem);
        height: auto
    }
    .footer .footer__silicon span {
        -webkit-text-stroke: 7px #5914e6;
    }
}
.footer__legalsEl a {
    text-decoration: underline!important;
}
.footer__legalsEl a::before {
    content: none;
}
@media only screen and (min-width: 1113px) {
    .footer__logo {
        left:-1rem
    }
}
@media only screen and (max-width: 743px) {
    .footer__logo {
        width:44.6153846154vw;
        margin: 0 auto 6.7rem
    }
}
.info__title {
    position: relative;
    margin-bottom: 2rem;
    font-size: 1.09em;
    font-weight: 700
}

@media only screen and (max-width: 743px) {
    .info__title {
        margin-bottom:1rem;
        font-size: 1.8rem
    }
}

.info__mail {
    display: inline-block;
    margin-top: 1em
}
.info__address {
    line-height: 1.18
}
.footer__navTitle {
    margin-bottom: 5rem
}
@media only screen and (max-width: 1112px) {
    .footer__navTitle {
        margin-bottom:2rem
    }
}
@media only screen and (max-width: 743px) {
    .footer__navTitle {
        margin-bottom:1rem
    }
}

.footer__navEl {
    font-weight: 300;
}

.footer__navEl:not(:last-child) {
    margin-bottom: 12px;
}

.footer__navEl:not(:first-child) {
    margin-top: .5rem
}

.nl {
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0
}

@media only screen and (max-width: 743px) {
    .nl {
        bottom:calc(100% - 6rem)
    }
}

@media only screen and (min-width: 744px) {
    .nl {
        transform:translateY(50%)
    }
}

.nl__inner {
    padding-top: 3.6rem;
    padding-bottom: 4.5rem;
    border-radius: 1.6rem
}

@media only screen and (max-width: 743px) {
    .nl__inner {
        padding-top:2rem;
        padding-bottom: 2.2rem
    }
}

@media only screen and (max-width: 743px) {
    .nl__header {
        margin-bottom:2rem;
        text-align: center
    }
}

.nl__title {
    margin-bottom: 2rem
}

@media only screen and (max-width: 743px) {
    .nl__title {
        margin-bottom:1.2rem;
        font-weight: 700
    }
}

@media only screen and (max-width: 1112px) {
    .nlForm {
        padding-right:6.26%;
        padding-left: 6.26%
    }
}

@media only screen and (min-width: 1113px) {
    .nlForm__fieldset {
        padding-right:6.26%
    }
}

.nlForm__wrapper {
    --height: 7rem;
    height: var(--height);
    background-color: #fff;
    border-radius: calc(var(--height) / 2)
}

.nlForm__wrapper:before {
    content: "";
    position: absolute;
    border: .3rem solid #5a14e6;
    border-radius: calc(var(--height) / 2);
    opacity: 0;
    pointer-events: none;
    transform: scale(1.03);
    transition: transform .4s cubic-bezier(.215,.61,.355,1),opacity .3s;
    inset: .325rem
}

.nlForm__wrapper:focus-within:before {
    opacity: .3;
    transform: translateZ(0)
}

@media only screen and (max-width: 743px) {
    .nlForm__wrapper {
        --height: 5rem;
        width: 90%;
        margin: 0 auto
    }
}

.nlForm__input {
    padding-right: calc(31.85% + 2rem);
    padding-left: 2.8rem;
    font-size: 1.6rem;
    font-weight: 400;
    color: var(--txtColor);
    background-color: transparent;
    border: 0;
    border-radius: 50rem;
}

.nlForm__submit {
    position: absolute;
    top: 50%;
    right: 1rem;
    font-size: 1.4rem;
    font-weight: 400;
    transform: translateY(-50%)
}

.nlForm__submit:hover .nlForm__submitIcon {
    animation: move 1s ease infinite;
}

.nlForm__submitIcon {
    position: absolute;
    left: 25%;
    bottom: 33%;
}

@keyframes move {
    0% {
        bottom: -1rem;
        left: -1rem;
    }

    100% {
        bottom: 100%;
        left: 100%;
    }
}

@media only screen and (max-width: 743px) {
    .nlForm__submit {
        right:.2rem;

        height: calc(100% - .4rem)
    }

    .block_newsletter .nlForm__submit .btn__label {
        display: none!important;
    }
}

@media only screen and (max-width: 960px) {
    .m-rst {
        width:inherit;
        height: inherit;
        margin: 0;
        padding: 0;
        font-size: inherit;
        font-weight: inherit;
        line-height: inherit;
        text-transform: inherit;
        color: inherit;
        background: inherit;
        font-weight: 600;
    }
}

.snList {
    display: flex
}

.snItem {
    --size: clamp(3rem, 2.083vw, 3.575rem);
    display: flex;
    flex-shrink: 0;
    justify-content: center;
    align-items: center;
    position: relative;
    width: var(--size);
    height: var(--size);
    padding: calc(var(--size) * .2);
    border-radius: calc(var(--size) / 2);
    transition: color .4s
}

.snItem:not(:last-child) {
    margin-right: min(1.042vw,1.788rem)
}

.snItem:before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: currentColor;
    border: .1rem solid currentColor;
    border-radius: calc(var(--size) / 2);
    transform: scale(1.2) translateZ(0);
    transition: background-color .4s,transform .5s cubic-bezier(.23,1,.32,1)
}

@media only screen and (max-width: 743px) {
    .snItem:not(:last-child) {
        margin-right:1.7rem
    }
}

.snItem__icon {
    overflow: visible;
    fill: #fff;
    transform: translateZ(0);
    transition: fill .3s
}

.bullets {
    --dimension: 40rem;
    --colorBg: #fff;
    display: flex;
    justify-content: space-evenly;
    position: relative;
    background-color: currentColor
}

.bullets--v {
    flex-direction: column;
    width: .2rem;
    height: var(--dimension)
}

.bullets--v .bullets__el {
    margin-left: -1.9rem
}

.bullets--h {
    width: var(--dimension);
    height: .2rem
}

.bullets--h .bullets__el {
    margin-top: -1.9rem
}

@media only screen and (max-width: 743px) {
    .bullets {
        --dimension: 12rem
    }

    .bullets--v .bullets__el {
        margin-left: -1.4rem
    }

    .bullets--h .bullets__el {
        margin-top: -1.4rem
    }
}

.bullets__el {
    --bulletSize: 2.4rem;
    position: relative;
    width: 4rem;
    height: 4rem;
    background: transparent;
    border: 0
}

.bullets__el:before {
    content: "";
    position: absolute;
    top: calc(50% - var(--bulletSize) / 2);
    left: calc(50% - var(--bulletSize) / 2);
    width: var(--bulletSize);
    height: var(--bulletSize);
    background-color: currentColor;
    border: .2rem solid currentColor;
    border-radius: calc(var(--bulletSize) / 2);
    transition: transform .5s cubic-bezier(.215,.61,.355,1),background-color .3s cubic-bezier(.215,.61,.355,1)
}

html:not(.mobile) .bullets__el:not(:hover,.is-current):before {
    background-color: var(--colorBg);
    transform: scale(.75)
}

@media only screen and (max-width: 743px) {
    .bullets__el {
        width:3rem;
        height: 3rem
    }

    .bullets__el:before {
        top: calc(50% - .4rem);
        left: calc(50% - .4rem);
        width: .8rem;
        height: .8rem
    }
}

.tile {
    aspect-ratio: 1.45;
    position: relative;
    color: #fff
}

.tile:before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 2rem;
    box-shadow: 0 4rem 5rem #0000001a
}

@media only screen and (max-width: 743px) {
    .tile {
        font-size:1.2rem
    }
}

.tile__inner {
    display: flex;
    justify-content: flex-end;
    height: 100%;
    padding: 1rem 2rem 10%;
    text-align: center
}

.tile__title {
    margin-bottom: 2rem
}

@media only screen and (max-width: 743px) {
    .tile__title {
        margin-bottom:1rem
    }
}

.tile__fig {
    overflow: hidden;
    background-color: #000;
    border-radius: 2rem
}

.tile__asset {
    opacity: .2
}

.tag {
    color: #360d9b
}

.tag:before {
    z-index: -1;
    background-color: #fff;
    border: .1rem solid #360d9b
}

@media (hover: hover) {
    .tag:hover,.tag:focus-within {
        color:#fff
    }
}

.keyboard-nav .tag:focus {
    color: #fff
}

.tag.is-selected {
    color: #fff
}

.tag.is-selected:before {
    background-color: #360d9b
}

.tag__icon {
    flex-shrink: 0;
    width: 1.4rem;
    margin-right: -1rem;
    margin-left: 2rem;
    will-change: transform;
    transform: translateZ(0);
    transition: transform .5s cubic-bezier(.215,.61,.355,1)
}

.is-selected .tag__icon {
    transform: translateZ(0) rotate(135deg) scale(1.2)
}

.counterTitle {
    display: block;
    position: relative;
    margin-left: 4rem;
    font-family: Poppins,sans-serif;
    font-size: 1.4rem;
    font-weight: 300;
    text-transform: uppercase
}

.counterTitle:before {
    content: counter(section,decimal-leading-zero);
    counter-increment: section;
    position: absolute;
    top: 50%;
    right: calc(100% + 10rem);
    font-size: 2rem;
    font-weight: 600;
    color: #311095;
    transform: translateY(-50%)
}

.counterTitle:after {
    content: "";
    position: absolute;
    top: 50%;
    right: calc(100% + 1rem);
    width: 8rem;
    height: .1rem;
    background-color: currentColor;
    opacity: .3
}

.counterTitle.is-reverted {
    margin-right: 4rem;
    margin-left: inherit;
    text-align: right
}

.counterTitle.is-reverted:before {
    right: inherit;
    left: calc(100% + 10rem)
}

.counterTitle.is-reverted:after {
    right: inherit;
    left: calc(100% + 1rem)
}

@media only screen and (max-width: 1112px) {
    .counterTitle:after {
        width:6rem
    }

    .counterTitle:before {
        right: calc(100% + 8rem);
        text-align: right
    }

    .counterTitle.is-reverted:before {
        left: calc(100% + 8rem)
    }
}

@media only screen and (max-width: 743px) {
    .counterTitle {
        margin-inline:0;
        padding-left: 5.5rem
    }

    .counterTitle:before {
        right: 100%
    }

    .counterTitle:after {
        left: 1rem;
        width: 3.6rem
    }

    .counterTitle.is-reverted {
        margin-right: 0;
        padding-right: 5.5rem;
        padding-left: 0
    }

    .counterTitle.is-reverted:before {
        left: 100%
    }

    .counterTitle.is-reverted:after {
        right: 1rem;
        left: auto;
        width: 3.6rem
    }
}

.cardArticle {
    position: relative;
    z-index: 1
}

.cardArticle:before {
    content: "";
    position: absolute;
    z-index: -1;
    background-color: #fff;
    border-radius: 3.5rem;
    inset: -3rem;
    box-shadow: 0 1rem 4rem #0000001a;
    opacity: 0;
    transform: scale(.95);
    transition: transform .4s cubic-bezier(.215,.61,.355,1),opacity .2s
}

@media (hover: hover) {
    .cardArticle:hover:before,.cardArticle:focus-within:before {
        transform:scale(1)
    }

    .cardArticle:hover .cardArticle__asset,.cardArticle:focus-within .cardArticle__asset {
        opacity: .7;
        transform: scale(1.05)
    }

    .cardArticle:hover .cardArticle__title,.cardArticle:focus-within .cardArticle__title {
        color: #311095
    }
}

.keyboard-nav .cardArticle:focus:before {
    transform: scale(1)
}

.keyboard-nav .cardArticle:focus .cardArticle__asset {
    opacity: .7;
    transform: scale(1.05)
}

.keyboard-nav .cardArticle:focus .cardArticle__title {
    color: #311095
}

.cardArticle__inner,.cardArticle {
    display: flex;
    flex-direction: column;
    font-size: 1.6rem;
    line-height: 1.25
}

.cardArticle__fig {
    order: -1;
    overflow: hidden;
    position: relative;
    margin-bottom: 3.8rem;
    border-radius: 1rem;
    clip-path: inset(0 round 1rem)
}

.cardArticle__fig:before {
    content: "";
    display: block;
    width: 100%;
    padding-top: 72.9%;
    background-color: #311095
}

.cardArticle__asset {
    z-index: 1;
    transition: transform .3s cubic-bezier(.215,.61,.355,1),opacity .3s
}

.cardArticle__title {
    margin-bottom: 3rem;
    line-height: 1.38;
    transition: color .3s cubic-bezier(.215,.61,.355,1)
}

.cardArticle__cta {
    display: inline-block;
    margin-top: 2rem;
    font-weight: 700
}

.cardArticle__meta,.articleIntro__meta {
    order: -1;
    margin-bottom: 2rem;
    font-family: Poppins,sans-serif;
    font-weight: 400;
    color: #64607d
}

.cardArticle__cat,.articleIntro__cat {
    display: inline-block;
    margin-left: 2rem
}

.blockquote {
    font-family: Poppins,sans-serif;
    font-weight: 400;
    line-height: 1.33
}

@media only screen and (min-width: 744px) {
    .blockquote {
        font-size:2rem
    }
}

@media only screen and (max-width: 743px) {
    .blockquote__assetCtn {
        margin-bottom:4.8rem
    }
}

.blockquote__citation {
    margin-bottom: 3rem
}

.blockquote__citation:before {
    content: "\ab\a0"
}

.blockquote__citation:after {
    content: "\a0\bb"
}

.blockquote__author {
    font-family: Roboto,sans-serif;
    font-weight: 500
}

.blockquote__author p {
    margin-top: .5rem
}

@media only screen and (min-width: 744px) {
    .blockquote__author p {
        font-size:.66em
    }
}

@media only screen and (max-width: 743px) {
    .blockquote__author {
        font-weight:700
    }

    .blockquote__author p {
        font-weight: 500
    }
}

.blockquote__recommendation {
    display: flex;
    margin-bottom: 3.3rem;
    color: #311095
}

.blockquote__recommendation svg {
    display: block;
    width: 4rem;
    height: auto
}

.blockquote__recommendation svg:not(:first-child) {
    margin-left: 1rem
}

@media only screen and (max-width: 743px) {
    .blockquote__recommendation {
        margin-bottom:2.4rem;
        justify-content: center
    }

    .blockquote__recommendation svg {
        width: 1.5rem
    }

    .blockquote__recommendation svg:not(:first-child) {
        margin-left: .4rem
    }
}

.appsBadge {
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
    padding: 14% 6% 11.37% calc(6rem + 28.75%);
    font-family: Poppins,sans-serif;
    font-size: clamp(1.4rem,1.198vw,2.056rem);
    font-weight: 500;
    line-height: 1.5
}

.appsBadge strong {
    font-size: 1.47em
}

.appsBadge:after {
    content: "";
    position: absolute;
    z-index: -1;
    background-color: #fff;
    border-radius: clamp(5rem,5.208vw,8.938rem) clamp(.4rem,.417vw,.715rem);
    inset: 0;
    box-shadow: 0 5rem 7.6rem #0000001a
}

@media only screen and (max-width: 743px) {
    .appsBadge {
        width:39.7435897436vw;
        padding: 1.8rem 10.62% 1.4rem 18.75%;
        font-size: 1rem
    }

    .appsBadge:after {
        border-radius: 10rem .8rem
    }
}

@media only screen and (min-width: 744px) {
    .appsBadge {
        margin-left:-6rem
    }
}

.appsBadge__icon {
    position: absolute;
    top: 28.75%;
    left: 6rem;
    width: 20%;
    height: auto
}

@media only screen and (max-width: 743px) {
    .appsBadge__icon {
        top:30.4%;
        left: 14%
    }
}

.appCard {
    display: flex;
    align-items: center;
    position: relative;
    height: 100%;
    font-family: Poppins,sans-serif;
    color: #311095
}

@media only screen and (max-width: 743px) {
    .appCard {
        flex-direction:column;
        font-size: 1.3rem
    }
}

@media only screen and (min-width: 744px) {
    .appCard {
        padding-left:50%
    }
}

@media only screen and (min-width: 744px) {
    .appCard__fig,.appCard__bg {
        position:absolute;
        top: 50%;
        left: 10%;
        width: 29.94%;
        transform: translateY(-50%)
    }
}

@media only screen and (max-width: 743px) {
    .appCard__bg {
        order:-1;
        width: 60%;
        margin-bottom: 1.3rem
    }
}

@media only screen and (max-width: 743px) {
    .appCard__fig {
        position:absolute;
        top: 3rem;
        left: 50%;
        width: 60%;
        transform: translate(-50%,-50%)
    }
}

.appCard__icon {
    width: 43.4%
}

.appCardDetailed {
    --dimension: clamp(32rem, 27.083vw, 46.475rem);
    display: flex;
    flex-direction: column;
    position: relative;
    z-index: 1;
    height: var(--dimension);
    padding: clamp(4rem,4.323vw,7.418rem) 14.68% clamp(4rem,8.333vw,14.3rem)
}

.appCardDetailed:before {
    content: "";
    position: absolute;
    z-index: -1;
    background-color: #f9f9ff;
    border-radius: 2rem;
    box-shadow: 0 5rem 7.6rem #0000001a;
    inset: 0
}

.appCardDetailed__title {
    margin-bottom: min(1.302vw,2.234rem);
    line-height: 1.11;
    transform: translate3d(0,calc(var(--dimension) * .13),0);
    transition: transform .4s cubic-bezier(.215,.61,.355,1) .02s
}

.is-expanded .appCardDetailed__title {
    transform: translateZ(0)
}

.appCardDetailed__content {
    font-size: clamp(1.4rem,.938vw,1.609rem);
    line-height: 1.33;
    opacity: 0;
    will-change: transform;
    transform: translate3d(0,50%,0);
    transition: transform .4s cubic-bezier(.215,.61,.355,1),opacity .3s
}

.is-expanded .appCardDetailed__content {
    opacity: 1;
    transform: translateZ(0)
}

.appCardDetailed__fig {
    position: relative;
    width: 34.86%;
    margin: 0 auto min(2.448vw,4.201rem);
    transform: translate3d(0,calc(var(--dimension) * .08),0) scale(1.5);
    transition: transform .6s cubic-bezier(.215,.61,.355,1) .06s
}

.appCardDetailed__fig:before {
    content: "";
    display: block;
    padding-top: 100%
}

.is-expanded .appCardDetailed__fig {
    transform: translateZ(0)
}

.appCardDetailed__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 43.4%;
    transform: translate(-50%,-50%)
}

.appCardDetailed__bg {
    color: #311095
}

.appCardDetailed__link {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    padding: 3.6rem 4.8rem
}

.appCardDetailed__btn {
    --size: clamp(3rem, 3.438vw, 5.899rem);
    width: 6rem;
    height: 4rem
}

.appCardDetailed__btn line:first-child {
    transition: transform .5s cubic-bezier(.215,.61,.355,1)
}

.is-expanded .appCardDetailed__btn line:first-child {
    transform: scaleY(0)
}

.appCardDetailed__line {
    position: absolute;
    top: calc(50% - .15rem);
    left: calc(50% - 1.2rem);
    width: 2.4rem;
    height: .3rem;
    background-color: #311095;
    will-change: transform,opacity;
    transition: transform .5s cubic-bezier(.645,.045,.355,1),opacity .4s
}

.appCardDetailed__line:first-child {
    transform: translateZ(0) rotate(90deg)
}

.is-expanded .appCardDetailed__line {
    transform: translateZ(0) rotate(180deg)
}

.is-expanded .appCardDetailed__line:last-child {
    opacity: .5
}

.input {
    display: block;
    width: 100%;
    height: 100%;
    padding: 2rem 3rem 2rem 2.5rem;
    font-family: Poppins,sans-serif;
    font-size: 1.8rem;
    line-height: 1;
    color: var(--txtColor);
    background-color: #fff;
    border: .1rem solid #360d9b;
    border-radius: 10rem
}

.is-usingKeyboard .input:focus {
    outline: .2rem solid #5a14e6;
    outline-offset: .5rem
}

.input::placeholder {
    font-family: inherit;
    color: #d0d0d0
}

@media only screen and (min-width: 744px) {
    .input::placeholder {
        font-weight:600;
        text-transform: uppercase
    }
}

.input--textarea {
    min-height: 19rem;
    resize: vertical;
    border-radius: 4.4rem
}

.input--dropdown {
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMC4zMjkiIGhlaWdodD0iMTEuNjIyIiB2aWV3Qm94PSIwIDAgMjAuMzI5IDExLjYyMiI+CiAgPHBhdGggaWQ9Ikljb25faW9uaWMtaW9zLWFycm93LWJhY2siIGRhdGEtbmFtZT0iSWNvbiBpb25pYy1pb3MtYXJyb3ctYmFjayIgZD0iTTMuNSwxMC4xNjIsMTEuMiwyLjQ3NkExLjQ1MywxLjQ1MywwLDAsMCw5LjEzOC40MjRMLjQyMyw5LjEzM2ExLjQ1LDEuNDUsMCwwLDAtLjA0MiwyTDkuMTMyLDE5LjlhMS40NTMsMS40NTMsMCwxLDAsMi4wNTgtMi4wNTJaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDExLjYyMikgcm90YXRlKC05MCkiIGZpbGw9IiMyNDE5NDAiLz4KPC9zdmc+Cg==);
    background-repeat: no-repeat;
    background-size: 1.4rem;
    background-position: calc(100% - 2rem) center
}

@media only screen and (max-width: 743px) {
    .input {
        padding-top:1.5rem;
        padding-bottom: 1.5rem;
        padding-left: 3rem
    }
}

.brick__inner {
    padding-top: 2.3rem;
    padding-bottom: 3.1rem;
    flex-flow: row
}

.brick__content p+p {
    margin-top: 0
}

.brick__actions,.brick__tags {
    display: flex;
    align-items: center;
    gap: 2rem 1rem
}

.brick__tags {
    flex-wrap: wrap
}

@media only screen and (max-width: 743px) {
    .brick__infos {
        font-size:1.4rem
    }
}

.brick__actions {
    justify-content: flex-end
}

.brick__btn:before {
    background-color: transparent
}

@media (hover: hover) {
    .brick__btn:hover:before,.brick__btn:focus-within:before {
        background-color:#360d9b1a
    }
}

.keyboard-nav .brick__btn:focus:before {
    background-color: #360d9b1a
}

.docCard {
    text-align: center;
    color: var(--txtColor);
    background-color: #fff;
    border-radius: 2rem;
    box-shadow: 0 4rem 5rem #0000001a
}

.docCard__inner {
    padding: 4.5rem 2rem 2rem
}

.docCard__title {
    display: inline-block;
    margin-bottom: 2.3rem
}

.docCard__content {
    margin-bottom: min(2.083vw,3.575rem)
}

.docCard__content p+p {
    margin-top: 0
}

.docCard__ctas {
    display: flex;
    justify-content: center
}

.docCard__btn {
    flex-shrink: 0
}

.docCard__btn:before {
    background-color: #360d9b
}

.docCard__btn:not(:last-child) {
    margin-right: 1.7rem
}

.assetCtn {
    position: relative
}

.assetCtn:before {
    content: "";
    display: block;
    width: 100%;
    padding-top: 113.34%;
    background-color: #360d9b;
    border-radius: min(4.271vw,7.329rem)
}

.assetCtn:after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: max(-2.76vw,-4.737rem) min(3.229vw,5.541rem) max(-1.771vw,-3.039rem) max(-2.76vw,-4.737rem);
    background-color: #311095;
    border-radius: min(4.271vw,7.329rem)
}

@media only screen and (max-width: 743px) {
    .assetCtn {
        margin-bottom:4.8rem
    }

    .assetCtn:after {
        inset: -2rem 2.4rem -1.2rem -1.9rem;
        border-radius: 8.1rem
    }

    .assetCtn:before {
        padding-top: 100%;
        border-radius: 8.4rem
    }
}

.assetCtn__media {
    z-index: 1;
    border-radius: min(4.271vw,7.329rem)
}

@media only screen and (max-width: 743px) {
    .assetCtn__media {
        border-radius:8.2rem
    }
}

.section__title {
    margin-bottom: clamp(4rem,4.01vw,6.882rem)
}

.slider {
    position: relative
}

.slider__wrapper {
    display: flex;
    flex-flow: row nowrap;
    column-gap: 0
}

.slider__wrapper:not(.is-dragging .slider__wrapper) {
    transition: height .7s cubic-bezier(.645,.045,.355,1),transform .7s cubic-bezier(.645,.045,.355,1)
}

@media only screen and (max-width: 960px) {
    .slider__wrapper:not(.is-dragging .slider__wrapper) {
        transition-duration:.4s
    }
}

.is-translating .slider__wrapper {
    transition-timing-function: cubic-bezier(.215,.61,.355,1),cubic-bezier(.215,.61,.355,1)!important
}

.safari:not(.iOS) .slider__wrapper {
    transition-property: transform!important
}

.slider__slide {
    flex-shrink: 0;
    margin-right: var(--gut);
    opacity: calc(1 - var(--progress) * 1.2);
    transform: translate3d(calc(max(0,var(--progress))*90%),0,0) scale(clamp(0,(1 - var(--progress)) * .2 + .8,1))
}

.slider__slide:not(.is-visible) {
    pointer-events: none
}

.slider__slide:not(.is-dragging .slider__slide),.is-translating .slider__slide {
    transition: transform .7s cubic-bezier(.215,.61,.355,1),opacity .8s cubic-bezier(.215,.61,.355,1)
}

@media only screen and (max-width: 960px) {
    .slider__slide:not(.is-dragging .slider__slide),.is-translating .slider__slide {
        transition-duration:.4s,.4s
    }
}

.hero {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: var(--navH);
    padding-bottom: 13rem
}

.intro {
    padding-top: calc(var(--navH) + 12.3rem)
}

@media only screen and (max-width: 743px) {
    .intro {
        padding-top:calc(var(--navH) + 9rem)
    }
}

@media only screen and (min-width: 744px) {
    .simple__inner.is-reverted {
        flex-direction:row-reverse;
        text-align: right
    }
}

.simple__title {
    margin-bottom: 4.7rem;
    line-height: 1.35
}

@media only screen and (max-width: 743px) {
    .simple__title {
        margin-bottom:3rem
    }
}

.simple__cta {
    align-self: flex-start;
    margin-top: 4.7rem;
    padding-inline:var(--size)}

.is-reverted .simple__cta {
    align-self: flex-end
}

.simple__content {
    color: #555
}

.simple__content strong {
    font-weight: 700
}

.simple__content a {
    font-weight: 700;
    transition: color .3s
}

@media (hover: hover) {
    .simple__content a:hover,.simple__content a:focus-within {
        color:#311095
    }
}

.keyboard-nav .simple__content a:focus {
    color: #311095
}

@media only screen and (max-width: 743px) {
    .simple__fig {
        order:-1;
        margin-bottom: 6rem
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .simple__asset {
        width:150%;
        margin-left: -15%
    }

    .is-reverted .simple__asset {
        margin-left: -30%
    }
}

@media only screen and (min-width: 744px) {
    .simple__asset {
        width:120%;
        height: 120%;
        margin-left: -10%
    }

    .is-reverted .simple__asset {
        margin-left: -20%
    }
}

.simple__ctas {
    display: flex
}

@media only screen and (min-width: 744px) {
    .simple__ctas {
        justify-content:flex-end;
        margin-top: min(4.167vw,7.15rem)
    }

    .simple__ctas .btn,.simple__ctas .tag {
        min-width: 21.1rem
    }

    .simple__ctas .btn:not(:last-child),.simple__ctas .tag:not(:last-child) {
        margin-right: 4rem
    }
}

@media only screen and (max-width: 743px) {
    .simple__ctas {
        flex-direction:column;
        align-items: flex-start;
        margin-top: 4rem
    }

    .simple__ctas .btn:not(:last-child),.simple__ctas .tag:not(:last-child) {
        margin-bottom: 1rem
    }
}

.centered__title {
    margin-bottom: 5.3rem;
    line-height: 1.35
}

@media only screen and (max-width: 743px) {
    .centered__title {
        margin-bottom:2.9rem
    }
}

.centered__inner:not(:last-child) {
    margin-bottom: 8rem
}

@media only screen and (max-width: 743px) {
    .centered__inner:not(:last-child) {
        margin-bottom:2.4rem
    }
}

.centered__content {
    font-size: clamp(1.8rem,1.25vw,2.145rem);
    line-height: 1.45
}

.coloredCta {
    position: relative;
    padding-top: 7.1rem;
    padding-bottom: 6.1rem;
    color: #fff;
    background: #311095;
    border-radius: 2rem
}

.coloredCta:before {
    content: "";
    position: absolute;
    background: url(/files/bg_cta.jpg) no-repeat center;
    background-size: cover;
    border-radius: inherit;
    opacity: .4;
    inset: 0
}

@media only screen and (max-width: 743px) {
    .coloredCta {
        padding-top:2.6rem;
        padding-bottom: 2.4rem
    }
}

@media only screen and (max-width: 743px) {
    .coloredCta__inner {
        padding-right:11.81%;
        padding-left: 11.81%
    }
}

.coloredCta__title {
    margin-bottom: 6rem;
    line-height: 1.45
}

@media only screen and (max-width: 1112px) {
    .coloredCta__title {
        margin-bottom:3rem
    }
}

@media only screen and (min-width: 1113px) {
    .latestNews__list {
        --gut: min(5.208vw, 8.938rem)
    }
}

.latestNews__btn {
    margin: 7.1rem auto 0
}

@media only screen and (max-width: 743px) {
    .latestNews__btn {
        margin-top:3.4rem
    }
}

@media only screen and (max-width: 743px) {
    .latestNews__listEl,.relatedArticles__listEl {
        margin-bottom:4rem
    }
}

.testimonials__title {
    margin-bottom: 3.1rem
}

@media only screen and (max-width: 743px) {
    .testimonials__title,.testimonials__content {
        text-align:center
    }
}

.testimonials__slider {
    margin-top: 11.2rem
}

@media only screen and (max-width: 743px) {
    .testimonials__slider {
        margin-top:3.6rem
    }
}

.testimonials__wrapper {
    column-gap: 0;
    flex-flow: row nowrap
}

.testimonials:not(.is-dragging) .testimonials__wrapper {
    transition: height .7s cubic-bezier(.645,.045,.355,1),transform .7s cubic-bezier(.645,.045,.355,1)
}

@media only screen and (max-width: 960px) {
    .testimonials:not(.is-dragging) .testimonials__wrapper {
        transition-duration:.4s
    }
}

.is-translating .testimonials__wrapper {
    transition-timing-function: cubic-bezier(.215,.61,.355,1),cubic-bezier(.215,.61,.355,1)!important
}

.safari:not(.iOS) .testimonials__wrapper {
    transition-property: transform!important
}

.testimonials__slide {
    flex-shrink: 0;
    opacity: calc(1 - var(--progress) * 1.2);
    transform: translate3d(calc(max(0,var(--progress))*90%),0,0) scale(clamp(0,(1 - var(--progress)) * .2 + .8,1))
}

.testimonials__slide:not(.is-visible) {
    pointer-events: none
}

.testimonials__slide .blockquote__inner {
    will-change: transform;
    transform-origin: left;
    transform: translate3d(calc(max(0,var(--progress))*-60%),0,0) scale(clamp(0,(1 - var(--progress)) * .2 + .8,1))
}

.testimonials__slide .blockquote__assetCtn:before,.testimonials__slide .blockquote__asset {
    transform: translate3d(calc(max(0,var(--progress))*-15%),0,0) scale(clamp(0,(1 - var(--progress)) * .3 + .7,1))
}

.testimonials__slide .blockquote__asset {
    opacity: calc(1 - var(--progress) * 1.5)
}

.testimonials__slide .blockquote__assetCtn:after {
    transform: translate3d(calc(max(0,var(--progress))*-10%),0,0) scale(clamp(0,(1 - var(--progress)) * .3 + .7,1))
}

.testimonials:not(.is-dragging) .testimonials__slide {
    transition: transform .7s cubic-bezier(.215,.61,.355,1),opacity .8s cubic-bezier(.215,.61,.355,1)
}

.testimonials:not(.is-dragging) .testimonials__slide .blockquote__asset,.testimonials:not(.is-dragging) .testimonials__slide .blockquote__assetCtn:before,.testimonials:not(.is-dragging) .testimonials__slide .blockquote__assetCtn:after,.testimonials:not(.is-dragging) .testimonials__slide .blockquote__inner {
    transition: transform .7s cubic-bezier(.215,.61,.355,1),opacity .8s cubic-bezier(.215,.61,.355,1)
}

@media only screen and (max-width: 960px) {
    .testimonials:not(.is-dragging) .testimonials__slide {
        transition-duration:.4s,.4s
    }
}

.is-translating .testimonials__slide {
    transition-timing-function: cubic-bezier(.215,.61,.355,1),cubic-bezier(.215,.61,.355,1)!important
}

.is-translating .testimonials__slide .blockquote__asset,.is-translating .testimonials__slide .blockquote__assetCtn:before,.is-translating .testimonials__slide .blockquote__assetCtn:after,.is-translating .testimonials__slide .blockquote__inner {
    transition-timing-function: cubic-bezier(.215,.61,.355,1),cubic-bezier(.215,.61,.355,1)!important
}

@media only screen and (max-width: 1112px) {
    .testimonials__slide {
        margin-right:calc(var(--gut) * 2)
    }
}

@media only screen and (max-width: 743px) {
    .testimonials__slide {
        padding-right:16.33%;
        padding-left: 16.33%
    }

    .testimonials__slide .blockquote__inner {
        transform: none
    }

    .testimonials__slide .blockquote__assetCtn:after,.testimonials__slide .blockquote__assetCtn:before,.testimonials__slide .blockquote__asset {
        transform: translateZ(0) scale(clamp(0,(1 - var(--progress)) * .3 + .7,1))
    }
}

.testimonials__bullets {
    margin: min(9.375vw,16.088rem) auto 0
}

.appSlider__wrapper {
    column-gap: 0;
    height: 100%;
    flex-flow: row nowrap
}

.testimonials:not(.is-dragging) .appSlider__wrapper {
    transition: height .7s cubic-bezier(.645,.045,.355,1),transform .7s cubic-bezier(.645,.045,.355,1)
}

@media only screen and (max-width: 960px) {
    .testimonials:not(.is-dragging) .appSlider__wrapper {
        transition-duration:.4s
    }
}

.is-translating .appSlider__wrapper {
    transition-timing-function: cubic-bezier(.215,.61,.355,1),cubic-bezier(.215,.61,.355,1)!important
}

.safari:not(.iOS) .appSlider__wrapper {
    transition-property: transform!important
}

.appSlider__slide {
    flex-shrink: 0;
    height: 100%;
    opacity: calc(1 - var(--progress) * 1.2);
    transform: translate3d(calc(max(0,var(--progress))*90%),0,0) scale(clamp(0,(1 - var(--progress)) * .2 + .8,1))
}

.appSlider__slide:not(.is-visible) {
    pointer-events: none
}

.appSlider:not(.is-dragging) .appSlider__slide,.is-translating .appSlider__slide {
    transition: transform .7s cubic-bezier(.215,.61,.355,1),opacity .8s cubic-bezier(.215,.61,.355,1)
}

@media only screen and (max-width: 960px) {
    .appSlider:not(.is-dragging) .appSlider__slide,.is-translating .appSlider__slide {
        transition-duration:.4s,.4s
    }
}

@media only screen and (max-width: 743px) {
    .appSlider__slide {
        width:10rem;
        margin-right: var(--gut)
    }
}

.appSlider__bullets {
    margin: min(1.875vw,3.218rem) auto 0
}

@media only screen and (max-width: 1112px) {
    .appSlider__bullets {
        margin-top:5rem
    }
}

@media only screen and (max-width: 743px) {
    .appSlider__bullets {
        margin-top:3.5rem
    }
}

.appSlider__btn {
    margin: min(4.167vw,7.15rem) auto 0
}

@media only screen and (max-width: 1112px) {
    .appSlider__btn {
        margin-top:6rem
    }
}

@media only screen and (max-width: 743px) {
    .appsSlider__badge {
        display:flex;
        justify-content: center;
        align-items: center;
        margin-bottom: 4rem
    }
}

.productIntro {
    padding-bottom: 20rem
}

.productIntro:before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 50%;
    background-color: #311095;
    border-top-left-radius: min(13.281vw,22.791rem)
}

@media only screen and (max-width: 743px) {
    .productIntro {
        padding-top:calc(10rem + var(--navH));
        padding-bottom: 3rem
    }
}

@media only screen and (min-width: 744px) {
    .productIntro {
        padding-top:calc(var(--navH) + 5rem)
    }
}

.productIntro__title {
    margin-bottom: 1.5rem
}

.productIntro__desc strong {
    font-size: clamp(1.8rem,1.875vw,3.218rem);
    font-weight: 600
}

.productIntro__cta {
    margin-top: 6rem
}

.productIntro__cta:before {
    background-color: #360d9b
}

@media (hover: hover) {
    .productIntro__ctas .btn:last-child:hover:before,.productIntro__ctas .tag:last-child:hover:before,.productIntro__ctas .btn:last-child:focus-within:before,.productIntro__ctas .tag:last-child:focus-within:before {
        background-color:#241940
    }
}

.keyboard-nav .productIntro__ctas .btn:last-child:focus:before,.keyboard-nav .productIntro__ctas .tag:last-child:focus:before {
    background-color: #241940
}

@media only screen and (min-width: 744px) {
    .productIntro__ctas .btn,.productIntro__ctas .tag {
        position:absolute;
        bottom: 13rem;
        min-width: 20rem
    }

    .productIntro__ctas .btn:first-child,.productIntro__ctas .tag:first-child {
        right: calc(50% + 1.5rem)
    }

    .productIntro__ctas .btn:first-child:before,.productIntro__ctas .tag:first-child:before {
        background-color: #311095
    }

    .productIntro__ctas .btn:last-child,.productIntro__ctas .tag:last-child {
        left: calc(50% + 1.5rem)
    }
}

@media only screen and (min-width: 744px) and (max-width: 1112px) {
    .productIntro__ctas .btn,.productIntro__ctas .tag {
        bottom:6rem
    }
}

@media only screen and (max-width: 743px) {
    .productIntro__ctas {
        display:flex;
        flex-direction: column;
        align-items: flex-start;
        margin-top: 3rem
    }

    .productIntro__ctas .btn,.productIntro__ctas .tag {
        background-color: #241940
    }

    .productIntro__ctas .btn:not(:last-child),.productIntro__ctas .tag:not(:last-child) {
        margin-bottom: 1rem
    }
}

.solutionSlider {
    position: relative
}

@media only screen and (min-width: 744px) {
    .solutionSlider {
        overflow:hidden;
        margin: max(-4.167vw,-7.15rem);
        padding: min(4.167vw,7.15rem)
    }

    .solutionSlider:before,.solutionSlider:after {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        z-index: 1;
        width: min(4.167vw,7.15rem);
        background: linear-gradient(90deg,hsl(0,0%,100%),hsla(0,0%,100%,.97087) 14.29%,hsla(0,0%,100%,.9103) 25.32%,hsla(0,0%,100%,.82477) 33.77%,hsla(0,0%,100%,.72074) 40.26%,hsla(0,0%,100%,.6047) 45.45%,hsla(0,0%,100%,.48313) 50%,hsla(0,0%,100%,.36249) 54.55%,hsla(0,0%,100%,.24926) 59.74%,hsla(0,0%,100%,.14992) 66.23%,hsla(0,0%,100%,.07095) 74.68%,hsla(0,0%,100%,.01882) 85.71%,hsla(0,0%,100%,0));
        pointer-events: none
    }

    .solutionSlider:before {
        left: -1px
    }

    .solutionSlider:after {
        right: -1px;
        transform: scaleX(-1)
    }
}

@media only screen and (max-width: 743px) {
    .solutionSlider {
        margin-top:6rem
    }
}

.solutionSlider__wrapper {
    --gut: 6.45%;
    column-gap: 0;
    flex-flow: row nowrap
}

.solutionSlider__slide {
    flex-shrink: 0;
    margin-right: var(--gut)
}

.solutionSlider__bullets {
    margin: 14rem auto 0
}

@media only screen and (max-width: 1112px) {
    .solutionSlider__bullets {
        margin-top:8rem
    }
}

@media only screen and (max-width: 743px) {
    .solutionSlider__bullets {
        margin-top:5.5rem
    }
}

.bg-bright {
    background: #fff
}

.bg-violet {
    background: #5a14e6;
    color: #fff
}

.bg-violet ::selection {
    background: #360d9b
}

.bg-violet ::-moz-selection {
    background: #360d9b
}

.bg-blue {
    background: #360d9b;
    color: #fff
}

.bg-blue ::selection {
    background: #5a14e6
}

.bg-blue ::-moz-selection {
    background: #5a14e6
}

@media only screen and (max-width: 743px) {
    [data-v=home] .header:not(.is-sticky) .header__scrollAreaCtn:before {
        transform:translate3d(0,-100%,0)
    }
}

.homeHero {
    max-height: 108rem
}

@media only screen and (min-width: 1113px) {
    .homeHero {
        min-height:80rem
    }
}

.heroSlider {
    width: 100%
}

.heroSlider:after {
    content: "";
    position: absolute;
    right: 50%;
    bottom: 0;
    left: 0;
    height: 7.1rem;
    background-color: #fff
}
}

.heroSlider__wrapper {
    transition-property: height;
    transition-duration: .8s!important;
    transition-timing-function: cubic-bezier(.645,.045,.355,1)
}

.heroSlide {
    bottom: auto;
    padding-top: calc(10rem + var(--navH));
    padding-bottom: 17.6rem;
    transition: visibility 0s 0s
}

.heroSlide:not(.is-current) {
    visibility: hidden;
    transition-delay: 1s
}

@media only screen and (min-width: 744px) {
    .heroSlide {
        padding-top:calc(5rem + var(--navH));
        padding-bottom: 8.8rem
    }
}

@media only screen and (min-width: 1113px) {
    .heroSlide {
        padding-top:calc(10rem + var(--navH));
        padding-bottom: 18.8rem
    }
}

@media only screen and (max-width: 743px) {
    .heroSlide {
        overflow:hidden
    }
}

.heroSlide__title {
    margin-bottom: 3rem;
    color: #fff;
}

.heroSlide__cta {
    margin-top: clamp(3rem,3.125vw,5.363rem)
}

.heroSlider__bullets {
    --colorBg: #5a14e6;
    --dimension: 46%;
    position: absolute;
    top: calc(50% - var(--dimension) / 2);
    left: var(--m)
}

@media only screen and (max-width: 1112px) {
    .heroSlider__bullets {
        left:calc(var(--m) * .53)
    }
}

.heroSlider__scrolldown {
    position: absolute;
    bottom: 3rem;
    left: var(--m);
    z-index: 1;
    color: var(--txtColor)
}

.heroSlider__scrolldown svg {
    width: auto;
    height: 7.7rem
}

.heroSlide__visual {
    display: flex;
    justify-content: center
}

@media only screen and (max-width: 743px) {
    .heroSlide__visual {
        position:absolute!important;
        top: 12rem;
        left: 25%;
        width: 100%;
        opacity: .5;
        transform: translate3d(-29%,0,0)
    }
}

.heroSlide__asset {
    flex-shrink: 0;
    object-fit: contain;
    max-width: 100%;
    max-height: 100%
}

.heroSlide__title,.heroSlider__content,.heroSlide__cta,.heroSlide__asset {
    transition: transform .7s cubic-bezier(.645,.045,.355,1),opacity .4s!important;
    transition-delay: calc(var(--stg) * .1s + .2s),calc(var(--stg) * .1s + .3s)!important;
}

.heroSlider__slide {
    justify-content: center;
    align-items: center;
}

@media only screen and (min-width: 768px) {
    .heroSlider__slide {
        height: calc(100% - 8.8rem);
    }
}

.heroSlider__slide:not(.is-current) .heroSlide__title,.heroSlider__slide:not(.is-current) .heroSlider__content,.heroSlider__slide:not(.is-current) .heroSlide__cta,.heroSlider__slide:not(.is-current) .heroSlide__asset {
    opacity: 0;
    transform: translate3d(0,-10rem,0)
}

.is-current~.heroSlider__slide .heroSlide__title,.is-current~.heroSlider__slide .heroSlider__content,.is-current~.heroSlider__slide .heroSlide__cta,.is-current~.heroSlider__slide .heroSlide__asset {
    transform: translate3d(0,10rem,0)
}

.aboutIntro__title {
    margin-bottom: 5.7rem;
    line-height: 1.5
}

.aboutIntro__btn {
    margin-top: 7rem
}

.aboutIntro__asset {
    margin-top: 5rem
}

@media only screen and (min-width: 744px) {
    .aboutIntro__asset {
        width:120%;
        margin-top: -5%
    }
}

.who__title {
    margin-bottom: clamp(3rem,2.917vw,5.005rem)
}

.who__content strong {
    font-weight: 700
}

@media only screen and (min-width: 744px) {
    .who__content {
        column-gap:10rem;
        font-size: 1.8rem;
        line-height: 1.3
    }
}

.who__contentCol:last-child {
    margin-top: 5rem
}

@media only screen and (max-width: 743px) {
    .who__contentCol {
        margin-top:1em
    }
}

.who__btn {
    margin-top: 4rem
}

.referencesSlider__slide {
    column-gap: 0;
    flex-shrink: 0;
}

.referencesSlider__fig {
    inset: 0;
    padding: 2rem;
    background-color: #fff;
    border-radius: 2rem;
    box-shadow: 0 4rem 5rem #0000001a
}

.referencesSlider__bullets {
    margin: 7rem auto 0
}

.why__title {
    margin-bottom: clamp(4rem,5.052vw,8.669rem)
}

.why__fig {
    overflow: hidden;
    position: relative;
    border-radius: 8rem
}

.why__fig:before {
    content: "";
    display: block;
    width: 100%;
    padding-top: 68.43%
}

@media only screen and (max-width: 743px) {
    .why__fig {
        margin-top:3rem
    }
}

/*! purgecss start ignore */
@media only screen and (min-width: 744px) {
    [data-v=product]:not(.menu-open) .header:not(.is-sticky) .header__scrollAreaCtn:before {
        --sclY: 0
    }
}

@media only screen and (max-width: 743px) {
    [data-v=product] .header:not(.is-sticky) .header__scrollAreaCtn:before {
        transform:translate3d(0,-100%,0)
    }
}

/*! purgecss end ignore */
.productSlider {
    display: flex;
    flex-direction: column
}

.productSlider .appCardDetailed {
    --dimension: clamp(32rem, 30.312vw, 52.016rem)
}

@media only screen and (max-width: 743px) {
    .productSlider {
        margin-top:4rem
    }
}

.productSlider__slide {
    margin-right: calc(var(--gut) + var(--colw))
}

@media only screen and (min-width: 1113px) {
    .productSlider__slide {
        width:min(22.292vw,38.253rem)
    }
}

.productSlider__bullets {
    margin-top: 5.7rem;
    margin-left: auto
}

@media only screen and (max-width: 1112px) {
    .productSlider__bullets {
        --dimension: 20rem
    }
}

@media only screen and (max-width: 743px) {
    .productSlider__bullets {
        margin-right:auto
    }
}

.apps__listEl {
    margin-bottom: 3rem
}

.siliconCompatibility__bullets {
    margin: min(8.333vw,14.3rem) auto 0
}

.siliconCompatibility__demoRequest {
    overflow: hidden;
    margin-right: calc(var(--m) * -1);
    margin-left: calc(var(--m) * -1);
    transition: height .8s cubic-bezier(.645,.045,.355,1)
}

.siliconCompatibility__demoRequest.is-hidden {
    transition-timing-function: cubic-bezier(.215,.61,.355,1);
    height: 0!important
}

.siliconCompatibility__demoRequest .simple__inner {
    padding: min(10.417vw,17.875rem) var(--m) min(2.604vw,4.469rem)
}

.siliconCompatibility__checkmark {
    width: min(3.646vw,6.256rem);
    margin: 0 auto min(2.604vw,4.469rem);
    color: #5a14e6
}

@media only screen and (max-width: 743px) {
    .siliconCompatibility__assetCtn {
        margin-top:6rem
    }
}

.newsIntro__title {
    margin-bottom: min(5.573vw,9.563rem)
}

.newsWall {
    background-color: #fff
}

.newsWall .cardArticle__fig:before {
    padding-top: 45.5%
}

.newsWall__list {
    --gut: min(5.573vw, 9.563rem)
}

.newsWall__el {
    margin-bottom: min(4.167vw,7.15rem)
}

@media only screen and (max-width: 743px) {
    .newsWall__el {
        margin-bottom:6rem
    }
}

.newsWall__bookend {
    margin-top: 7rem
}

@media only screen and (max-width: 743px) {
    .newsWall__bookend {
        margin-top:2rem;
        margin-bottom: 7rem
    }
}

.articleIntro__title {
    margin-bottom: 3rem
}

.articleIntro__meta {
    order: 0;
    margin-bottom: 2rem
}

.articleIntro__fig {
    position: relative;
    margin-top: 6rem
}

.articleIntro__fig:before {
    content: "";
    display: block;
    width: 100%;
    padding-top: 40%
}

.articleIntro__back {
    align-self: flex-start;
    margin-bottom: 3rem
}

.articleIntro__back:before {
    content: "\2190";
    margin-right: .3em
}

.articleIntro__back span {
    display: inline-block;
    position: relative
}

.articleIntro__back span:before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: .2rem;
    background-color: currentColor;
    transform-origin: left;
    transform: scaleX(0);
    transition: transform .4s cubic-bezier(.215,.61,.355,1),background-color .3s
}

@media (hover: hover) {
    .articleIntro__back:hover span:before,.articleIntro__back:focus-within span:before {
        background-color:#311095;
        transform: scaleX(1)
    }
}

.keyboard-nav .articleIntro__back:focus span:before {
    background-color: #311095;
    transform: scaleX(1)
}

.txt a:not(.btn):not(.tag) {
    text-decoration: underline;
    text-underline-offset: .3rem;
    transition: color .4s
}

@media (hover: hover) {
    .txt a:not(.btn):not(.tag):hover,.txt a:not(.btn):not(.tag):focus-within {
        color:#5a14e6
    }
}

.keyboard-nav .txt a:not(.btn):not(.tag):focus {
    color: #5a14e6
}

.txt img {
    width: 100%;
    height: auto
}

.txt ol:not(:first-child),.txt ul:not(:first-child) {
    margin-top: 3rem
}

.txt ol:not(:last-child),.txt ul:not(:last-child) {
    margin-bottom: 3rem
}

.txt li {
    position: relative;
    padding-left: 3rem
}

.txt li:before {
    content: "";
    position: absolute
}

.txt ul li:before {
    top: .6em;
    left: 0;
    width: .6rem;
    height: .6rem;
    background-color: #311095;
    border-radius: 50%
}

.txt ol {
    counter-reset: ol
}

.txt ol li:before {
    content: counter(ol) ".";
    counter-increment: ol;
    top: 0;
    left: 0;
    font-size: .7em;
    line-height: 2.15em;
    color: #311095
}

.txt strong {
    font-weight: 600
}

.txt h2 {
    font-size: 4rem;
    font-weight: 700;
    line-height: 1.3
}

.txt h2:not(:last-child) {
    margin-bottom: 5rem
}

.txt h2:not(:first-child) {
    margin-top: 7rem
}

.txt h3 {
    font-size: 3rem;
    font-weight: 700
}

.txt h3:not(:last-child) {
    margin-bottom: 4rem
}

.txt h3:not(:first-child) {
    margin-top: 7rem
}

@media only screen and (max-width: 743px) {
    .txt h2 {
        font-size:3rem
    }

    .txt h2:not(:last-child) {
        margin-bottom: 3rem
    }

    .txt h2:not(:first-child) {
        margin-top: 5rem
    }

    .txt h3 {
        font-size: 2.4rem
    }

    .txt h3:not(:last-child) {
        margin-bottom: 2rem
    }

    .txt h3:not(:first-child) {
        margin-top: 4rem
    }
}

.relatedArticles {
    margin-top: 7rem;
    padding-top: 7rem;
    border-top: .1rem solid #f5f2fd
}

@media only screen and (min-width: 1113px) {
    .relatedArticles__list {
        --gut: 9rem
    }
}

.locatorList {
    padding-top: calc(7rem + var(--navH))
}

@media only screen and (min-width: 744px) {
    .locatorList {
        padding-top:calc(15.74vh + var(--navH))
    }
}

.locatorList__title {
    line-height: 1.5;
    margin: auto;
}

.locatorList__searchBar {
    margin-top: 3rem
}

.locatorList__inner {
    position: sticky;
    top: var(--navH-sticky);
    z-index: 1;
    padding: 3rem;
    background-color: #ffffffe6;
    backdrop-filter: blur(10px)
}

@media only screen and (max-width: 743px) {
    .locatorList__inner {
        top:var(--navH);
        padding-top: 2rem;
        padding-bottom: 1rem
    }
}

.locatorList__listEl {
    position: relative;
    padding-top: 2.5rem;
    padding-bottom: 2.5rem
}

.locatorList__listEl a {
    transition: color .3s
}

@media (hover: hover) {
    .locatorList__listEl a:hover,.locatorList__listEl a:focus-within {
        color:#311095
    }
}

.keyboard-nav .locatorList__listEl a:focus {
    color: #311095
}

.locatorList__listEl:not(:last-child):before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: currentColor
}

@media only screen and (min-width: 1113px) {
    .locatorList__listEl {
        padding:2.5rem 3.6rem 4.5rem 2.7rem
    }
}

.location {
    position: relative;
    font-family: Poppins,sans-serif;
    font-size: 2rem
}

.location:after {
    content: attr(data-distance);
    position: absolute;
    top: 2.5rem;
    right: 3.6rem;
    font-family: Poppins,sans-serif;
    font-size: clamp(1.6rem,1.25vw,2.145rem);
    font-weight: 400;
    color: #8e8e8e
}

@media only screen and (max-width: 1112px) {
    .location {
        font-size:1.6rem
    }
}

.location__title {
    font-size: 2.4rem
}

@media only screen and (max-width: 1112px) {
    .location__title {
        font-size:1.6rem
    }
}

.location__address {
    margin-bottom: 1em
}

@media only screen and (max-width: 743px) {
    .locatorMap {
        position:relative;
        order: -1;
        margin-top: var(--navH);
        margin-bottom: 8rem;
        padding-top: 70%
    }
}

.locatorMap__map {
    background-color: #f9f9ff
}

@media only screen and (min-width: 744px) {
    .locatorMap__map {
        position:sticky;
        top: var(--navH-sticky);
        width: calc(100% + var(--m));
        height: calc(100vh - var(--navH-sticky));
        margin-top: var(--navH-sticky)
    }
}

@media only screen and (max-width: 743px) {
    .locatorMap__map {
        position:absolute;
        inset: 0;
        width: calc(100% + var(--m) * 2);
        margin-left: calc(var(--m) * -1)
    }
}

.contactIntro {
    margin-bottom: 4.5rem
}

@media only screen and (max-width: 743px) {
    .contactIntro {
        text-align:center
    }
}

.contactIntro__title {
    margin-bottom: 2rem
}

@media only screen and (min-width: 744px) {
    .contactForm__form {
        padding:4.4rem 5.4rem 4rem 3.3rem;
        background-color: #f5f2fd;
        border-radius: 5.5rem
    }
}

.contactForm__input {
    width: calc(50% - var(--gut) / 2)
}

@media only screen and (max-width: 743px) {
    .contactForm__input {
        width:100%
    }
}

.contactForm__input,.contactForm__dropdown {
    margin-bottom: 2rem
}

.contactForm__dropdown,.contactForm__textArea {
    width: 100%
}

.contactForm__submit {
    width: 48.28%;
    margin: 3.2rem 0 0 auto
}

@media only screen and (max-width: 743px) {
    .contactForm__submit {
        margin-right:auto
    }
}

.contactForm__figMedia {
    width: 160%;
    border-radius: 5.5rem
}

.docsIntro {
    color: #fff
}

.docsIntro:before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0 0 8rem 0;
    background: #360d9b
}

.docsIntro__title {
    margin-bottom: min(7.604vw,13.049rem)
}

.docsIntro__grid {
    row-gap: var(--gut)
}

@media only screen and (min-width: 1113px) {
    .docsIntro__grid {
        --gut: min(4.688vw, 8.044rem)
    }
}

.docsIntro__S {
    position: absolute;
    right: calc(var(--m) + min(4.688vw,8.044rem));
    bottom: clamp(20rem,8.958vw,15.373rem);
    width: clamp(20rem,13.854vw,23.774rem);
    transform: rotate(20deg)
}

input[type=search]::ms-clear {
    display: none
}

input[type=search]::ms-reveal {
    display: none
}

input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration {
    display: none
}

.docsList {
    padding-top: clamp(5rem,8.333vw,14.3rem)
}

.docsList__title {
    margin-bottom: 6rem;
    line-height: 1.5
}

.docsList__input {
    margin-bottom: 7.8rem
}

.docsList__input .input::placeholder {
    font-weight: 400;
    text-transform: none
}

@media only screen and (min-width: 744px) {
    .docsList__input .input {
        padding-left:9rem
    }
}

.docsList__submit {
    position: absolute;
    top: calc(50% - 3rem);
    right: 6rem;
    width: 6rem;
    height: 6rem;
    padding: 1.5rem
}

@media only screen and (max-width: 743px) {
    .docsList__submit {
        right:1rem
    }
}

.docsList__el {
    position: relative
}

.docsList__el:nth-child(odd):before {
    content: "";
    position: absolute;
    inset: 0 max(-6.5rem,var(--m) * -1);
    z-index: -1;
    background-color: #f5f2fd
}

@media only screen and (min-width: 744px) {
    .docsList__el:nth-child(odd):before {
        border-radius:1.6rem
    }
}

@media only screen and (min-width: 744px) {
    .docsList__el {
        margin-top:1rem;
        margin-bottom: 1rem
    }
}

.docsList__stack {
    margin-top: min(3.802vw,6.524rem)
}

.navbar-light {
    display: none;
}

.btn.btn-primary {
    background-color: var(--primary) !important;
    color: var(--white) !important;
    white-space: nowrap !important;
    --icon-stroke: currentColor;
    --icon-fill-bg: var(--primary) !important;
}

.footer-col-left p {
    display: none;
}

@media only screen and (max-width: 743px) {
    .btn:before {
        background-color:#311095 !important ;
    }
}

#page-404 .btn:before,
#page-404 .tag:before,
#page-login .btn:before,
#page-login .tag:before {
    content: none;
}

#page-404 {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}


.page__ioi-universe .block_join {
    background-color: #5111d0;
    border-bottom: solid 25px #311095;
}

.page__ioi-universe .block_join_container {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding-top: 30px;
    padding-bottom: 30px;
    gap: 40px;
    flex-wrap: wrap;
}

@media only screen and (min-width: 576px) {
    .page__ioi-universe .block_join_container {
        flex-direction: row;
        gap: 10%;
    }
}

.page__ioi-universe .mid_text_group {
    display: flex;
    justify-content: space-around;
}

.page__ioi-universe .docCard__title {
    margin: 1rem 0 2.3rem 0;
}

/* bottom page */
.page__ioi-universe .all_categories {
    display: flex;
    justify-content: center;
    margin: auto;
    max-width: 1000px;
    margin: 50px auto 0;
    gap: 20px;
    flex-wrap: wrap;
}

.page__ioi-universe .title_categories {
    display: flex;
    justify-content: center;
}

.page__ioi-universe .categories_card {
    display: flex;
    justify-content: space-between;
    background: #fff;
    border-radius: 10px;
    padding: 5px 5px 5px 10px;
    margin-bottom: 10px;
    align-items: center;
}

.page__ioi-universe .DwVw {
    display: flex;
    gap: 5px;
}

.page__ioi-universe .categories_card_content {
    align-items: center;
    border: 1px solid #dfd7f7;
    padding: 5px;
    border-radius: 10px;
    display: flex;
    gap: 5px;
}

.page__ioi-universe .categories_card_content .card_link {
    background: #f0ebff;
    padding: 5px 10px;
    border-radius: 10px;
    display: flex;
    gap: 10px;
    width: 35px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    transition : ease 1s;
}

.page__ioi-universe .categories_card_content .card_link:hover {
    opacity: .6;
    transition : ease 1s;
}

.page__ioi-universe .txtPl {
    font-size: 15px;
    line-height: 1.3;
}

.page__ioi-universe .icon {
    width: 15px;
    height: 15px;
}

.page__ioi-universe .InCat {
    padding: 20px;
    background-color: #f0ebff;
    min-width: 0;
    width: 100%;
    border-radius: 15px;
}

.page__ioi-universe .icon--eye {
    stroke: transparent;
    fill: #311095;
}

.page__ioi-universe .icon--dl {
    stroke: #311095;
}

/*mobile*/
@media only screen and (min-width: 768px) {
    .page__ioi-universe .InCat {
        width: calc(50% - 20px);
    }
}

.page__ioi-universe .img_forum,
.page__ioi-universe .img_wiki {
    max-width: 150px;
    max-height: 80px;
    cursor: pointer;
}

@media only screen and (min-width: 470px) {
    .page__ioi-universe .img_forum,
    .page__ioi-universe .img_wiki {
        max-width: 200px;
    }
}

.block_fullvideo {
    margin-top: -110px;
    max-width: 1000px;
    padding-right: 15px;
    padding-left: 15px;
    width: 100%;
    margin-right: auto;
    margin-left: auto;
}

.block_fullvideo .video-container {
    width: 100%;
    border-radius: 30px;
    height: 0;
    padding-bottom: 56.25%;
    margin: 0 auto;
    -webkit-box-shadow : 4px -8px 14px 4px rgba(0, 0, 0, 0.17);
    box-shadow: 4px -8px 14px 4px rgba(0, 0, 0, 0.17);
    position: relative;
    overflow: hidden;
}

.block_fullvideo .video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.fixed-btn {
    display: flex;
    position: fixed;
    z-index: 100;
    top: 50%;
    right: 0;
    width: 60px;
    padding-top: 50px;
    border-radius: 20px 0 0 20px;
    padding-left: 5px;
    background-color: #241940;
    transform: translateY(-50%);
    color: #ffffff;
    text-decoration: none;
    flex-direction: column;
    align-items: center;
    transition: ease .8s;
}

.fixed-btn:hover {
    color: #fff;
    background-color: #350d9b;
    transition: ease .8s;
}

.fixed-btn .logo {
    height: 80px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    transform: rotate(270deg);
    aspect-ratio: 1.77777778;
}

.fixed-btn .text {
    padding-top: 20px;
    padding-bottom: 45px;
    padding-left: 5px;
    transform: rotate(180deg);
    font-size: 16px;
    font-weight: bold;
    writing-mode: vertical-rl;
}

div[data-doctype="ioi Site News"] .page-content-wrapper > .container {
    max-width: initial;
    padding: 0;
}

.web-body .container-head-b .head-banner {
    padding: 150px 25px 125px 21px;
}

button.discard-btn.btn.btn-default.btn-sm {
    opacity: 0;
    visibility: hidden;
}

#CybotCookiebotDialog input[type="checkbox"] {
    width: 100%!important
}