/*
* Prefixed by https://autoprefixer.github.io
* PostCSS: v7.0.29,
* Autoprefixer: v9.7.6
* Browsers: last 4 version
*/

:root {
  /* Colors */
  --c1: #4dffbe;
  --c1_rgba: rgba(77,255,190,1);
  --c1_rgba_0: rgba(77,255,190,0);
  --c1_light: rgba(219,255,243,1);
  --c2: #1e0064;
  --c2_rgba: rgba(30,0,100,1);
  --c2_rgba_03: rgba(30,0,100,.3);
  --c2_rgba_0: rgba(30,0,100,0);
  --c3: var(--c1);
  /* Fonts sizes */
  --fs: .8rem;
  --fm: 1rem;
  --fl: 1.2rem;
  --fxl: 2rem;
  /* Containers and gutters */
  --ww: 100vw;
  --m: 1500px;
  --h: 2.3rem;
  --h2: 4rem;
  --h3: 6rem;
  --h4: 8rem;
  --h6: 12rem;
  --f: 24em;
  --g1: calc(var(--m) / 24);
  --g2: calc(var(--g1) * 2);
  --mxl: calc(var(--m) + var(--g2) * 2);
  /* Columns */
  --col1: calc(var(--m) / 4);
  --col2: calc(var(--m) - var(--col1) - var(--g2));
  /* Units */
  --u: calc((var(--col2) - var(--g1)) / 2);
  --ug3: calc(var(--u) * 3 + var(--g1) * 2);
  /* Items */
  --i: var(--u);
  /* Search transform */
  --tr: 0;
}

.desktop-only { display: block; }
.mobile-only { display: none; }
.desktop-only--ib { display: inline-block; }
.mobile-only--ib { display: none; }
.hidden { opacity: 0; pointer-events: 0; }
#filters_defs { height: 0; width: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; opacity: 0; visibility: hidden; }

* { padding: 0; margin: 0; border: none; outline: none; }
a { color: inherit; text-decoration: none; }

html { font-size: calc(var(--m) / 50); background: var(--c2); color: var(--c2); -webkit-font-smoothing: antialiased; }

html, body { height: 100%; }

body { -webkit-transition: opacity .5s ease; -o-transition: opacity .5s ease; transition: opacity .5s ease; }
body.wait { opacity: 0; -webkit-transition: none; -o-transition: none; transition: none; pointer-events: none; }

/* html, body { height: 100vh; overflow: auto; } */
/* div[data-barba="container"] { position: fixed; top: 0; left: 0; height: 100vh; width: 100vw; max-width: 100%; overflow: auto; } */

.fade-leave-active, .fade-enter-active { -webkit-transition: opacity .5s ease; -o-transition: opacity .5s ease; transition: opacity .5s ease }
.fade-leave, .fade-enter-to { opacity: 1; }
.fade-enter, .fade-leave-to { opacity: 0; }

[data-barba="container"] { font-size: 0; }
/* [data-barba="container"] > * { font-size: 1rem; } */
header, main, footer, .cookies-styles { font-size: 1rem; }

header, main, footer { max-width: 100%; }
header, #search, footer, section.services:not(.col), #home .bkg-light-to-dark, #publication .text-bottom-top { overflow-x: hidden; }

header { position: fixed; top: 0; left: 0; height: var(--h); width: 100%; background: var(--c2); color: #fff; z-index: 100; font-size: .9em; }
header .main-nav { position: absolute; cursor: pointer; }
header #menu_trigger { left: var(--g1); top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); height: 1.5em; width: 1.5em; }
header #menu_trigger svg { stroke-width: 2.25; fill: none; width: 80%; margin: 10%; }
header #home_trigger { top: 50%; left: 50%; height: 1.7em; width: 4em; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
header #home_trigger svg { position: absolute; top: 50%; left: 50%; height: 2em!important; width: auto!important; -webkit-transform: translate(-50%, -50%)!important; -ms-transform: translate(-50%, -50%)!important; transform: translate(-50%, -50%)!important; }
header #home_trigger * { pointer-events: none; -webkit-transition: fill .3s ease; -o-transition: fill .3s ease; transition: fill .3s ease; }
header #search_trigger { height: 1.5em; width: 1.5em; top: 50%; right: calc(3.5em - var(--g1)); -webkit-transform: translate(-100%, -50%); -ms-transform: translate(-100%, -50%); transform: translate(-100%, -50%); }
header #menu_trigger svg *,
header #search_trigger svg * { stroke: #fff; -webkit-transition: stroke .3s ease; -o-transition: stroke .3s ease; transition: stroke .3s ease; }
header #menu_trigger:hover svg *,
header #search_trigger:hover svg * { stroke: var(--c1); }
header nav { height: 100%; width: calc(100vw - var(--g2) - 3.5em); padding-right: 3.5em; margin: auto; text-transform: lowercase; }
header .nav { -webkit-transform: translateY(calc(var(--h) / 2 - 50%)); -ms-transform: translateY(calc(var(--h) / 2 - 50%)); transform: translateY(calc(var(--h) / 2 - 50%)); }
header .nav--left { float: left; }
header .nav--right { float: right; }
header .nav a:not(:last-child) { margin-right: 2em; }
header .nav a { -webkit-transition: color .3s ease; -o-transition: color .3s ease; transition: color .3s ease }
header .nav a.active { color: var(--c1); }
header .nav a:hover { color: var(--c1); }

main { min-height: calc(100vh - var(--h) - var(--f)); padding-top: var(--h); }
main#home, main#search { min-height: calc(100vh - var(--f));  padding-top: 0; }

.bkg-gradient::after { content: ''; display: block; position: fixed; background: -o-radial-gradient(var(--c1), transparent 66%); background: radial-gradient(var(--c1), transparent 66%); opacity: .75; z-index: -1; }
#home.bkg-gradient::after { top: calc(50vh - 30vw); left: -50vw; height: 55vw; width: 75vw; }
#services.bkg-gradient::after { top: calc(100vh - 45vw); right: -50vw; height: 55vw; width: 75vw; }
#publications.bkg-gradient::after { top: calc(60vh - 25vw); left: -43vw; height: 50vw; width: 66vw; }
#faq.bkg-gradient::after { top: calc(66vh - 35vw); left: -40vw; height: 70vw; width: 80vw; }
#about.bkg-gradient::after { top: calc(100vh - 35vw); left: -25vw; height: 50vw; width: 50vw; }
#contact.bkg-gradient::after { top: calc(100vh - 30vw); left: 0vw; height: 70vw; width: 50vw; }

.container { position: relative; width: var(--m); margin: auto; }
.container { font-size: 0; }
.container > * { font-size: 1rem; }
.container--xl { width: var(--mxl); }
section > .container--xl:first-child { margin-bottom: var(--h); }
section > .container--xl:last-child { margin-top: var(--h); }

.col { position: relative; display: inline-block; padding: var(--h3) 0; }
.col--left { position: -webkit-sticky; position: sticky; vertical-align: top; top: var(--h); width: var(--col1); margin-right: var(--g2); padding-top: calc(var(--h3) - .6em); }
.col--right { width: var(--col2); }
.col--right-lonely { margin-left: calc(var(--col1) + var(--g2))}
.col--height { min-height: calc(100vh - var(--h6) + .6rem); }
.col--flex { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }
.col--flex { padding-bottom: var(--h2); }
.col--flex > * { margin-bottom: var(--g1); }
.col--relative { position: relative; top: 0; }

.col--left h1 { font-size: 2.25em; text-transform: lowercase; }

.col--left p,
.content--main article p { position: relative; padding-left: 1em; font-size: .8em; }
.col--left p::before,
.content--main article p::before { content: ''; position: absolute; top: .5em; left: 0; height: calc(100% - 1em); width: 2px; background: var(--c1); }

.col--left > * + * { margin-top: .8rem; }

.content {  }
.content a { text-decoration: underline; }
.content ul { padding-left: var(--h3); list-style: none; }
.content ul li::before { content: "\2022"; color: var(--c3); font-weight: bold; display: inline-block; width: 1em; margin-left: -1em; }
.content a:hover { color: var(--c3); }
.content span.spacer { display: block; height: calc(var(--h) * 1.5); }
.content figure * { width: 100%; margin: .5em 0 0em 0; }
.content figure iframe { height: calc(var(--col2) / 1.77); }
.content figure figcaption { font-size: .8em; font-style: italic; text-align: center; margin-bottom: .5rem; }

.content--default h2 { font-family: "Muli", sans-serif; font-size: 1em; margin-bottom: .5em; font-weight: 700; }
.content--default svg.hr { display: block; width: 8em; margin: calc(var(--h) * 1.5) auto; }

.content--main h2 { margin-bottom: 1em; }
.content--main p + p { margin-top: 1em; }
.content--main article + article > h2 { margin-top: var(--h3); }

.section-link { display: inline-block; color: var(--c1); }
.section-link span { display: table; overflow: hidden; padding-bottom: 1px; overflow: hidden; }
.section-link em { display: inline-block; position: relative; font-style: normal; }
.section-link em::after { content: ''; display: block; position: absolute; left: 50%; height: 1px; width: 50vw; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); background: var(--c1); -webkit-transition: width .5s ease; -o-transition: width .5s ease; transition: width .5s ease; }
.section-link:hover em::after { width: calc(100% - .2em); -webkit-transition: width .3s ease; -o-transition: width .3s ease; transition: width .3s ease; }

.subtexts { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
.subtexts--title { margin-bottom: 1em; }
.subtexts--wrapper { display: -webkit-box; display: -ms-flexbox; display: flex; }
.subtexts .subtext { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; position: relative; width: calc(100% / 3 - 4em); padding: .5em 2em; font-size: .8em; }
.subtexts .subtext::before { content: ''; display: block; position: absolute; left: 0; top: 0; height: 100%; width: 2px; background: var(--c1); }

.section-title * { font-size: 1.8rem; text-transform: lowercase; }

#home_animation { position: relative; }
#home_animation article { position: relative; height: 100vh; }
#home_animation article div { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; position: absolute; top: 50%; left: 0; right: 0; width: 30vw; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); margin: auto; opacity: 1; -webkit-transition: opacity .4s ease; -o-transition: opacity .4s ease; transition: opacity .4s ease; z-index: 1; }
#home_animation article.active div { opacity: 1; }
#home_animation article:nth-child(2) div { width: 40vw; text-align: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
#home_animation article:nth-child(2n+3) div { left: 37vw; }
#home_animation article:nth-child(2n+4) div { right: 37vw; }
#home_animation article div img { width: 120%; margin-bottom: 2vw; }
#home_animation article div h3 { font-size: 2.6vw; }
#home_animation_wrapper { position: -webkit-sticky; position: sticky; bottom: 0;  pointer-events: none; }
#home_animation_container { position: absolute; bottom: 0; left: 0; height: 100vh; width: 100%; overflow: hidden; }
#home_animation svg { position: absolute; bottom: -25vh; left: calc(50vw - 62.5vh); width: 125vh!important; height: 125vh!important; }
@media (max-aspect-ratio: 1/1) {
  #home_animation svg { bottom: -17.5vw; left: -12.5vw; width: 125vw!important; height: 125vw!important; }
}

#home section:not(#home_animation) { padding-top: var(--h3); }
#home section.publications { padding-bottom: var(--h3); }

#home section.faq .bubble-container { margin: auto; width: 24rem; }
#home section.faq .bubble-wrapper.active .bubble { background: #fff; }
#home section.faq .bubble-wrapper--left.active .bubble { background: var(--c1); }
#home section.faq .bubble { cursor: auto; }
#home section.faq .bubble a { border-radius: 1em; padding: 0 .5em; -webkit-transition: background-color .3s ease; -o-transition: background-color .3s ease; transition: background-color .3s ease; }
#home section.faq .bubble a:hover { background: var(--c2); color: #fff; }

#services {}
#services .col--flex { margin-bottom: calc(var(--i) * 0.58 - var(--g1)); }
#services .col--flex > a:nth-child(2n+2) { -webkit-transform: translateY(50%); -ms-transform: translateY(50%); transform: translateY(50%); }
.service-link { position: relative; width: var(--i); height: calc(var(--i) * 1.16); border-radius: calc(var(--i) / 15); overflow: hidden; -webkit-box-shadow: 0 0 1rem rgba(0,0,0,.1); box-shadow: 0 0 1rem rgba(0,0,0,.1); font-size: calc(var(--i) / 15); }
.service-link span.border { display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; border: 0px solid var(--c3); border-radius: calc(var(--i) / 15); -webkit-box-sizing: border-box; box-sizing: border-box; -webkit-transition: border .15s ease; -o-transition: border .15s ease; transition: border .15s ease; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
.service-link:hover span.border { border: 4px solid var(--c3); }
.service-link--content { padding: 1em; }
.service-link--title { font-size: 1.4em; margin-top: 1em; }
.service-link--text { font-size: .8em; margin-top: 1em; }
.service-link--button span { position: absolute; bottom: calc(var(--i) / 6 + 1rem); right: calc(var(--i) / 3 + 2rem - 4px); -webkit-transform: translate(1rem, 50%); -ms-transform: translate(1rem, 50%); transform: translate(1rem, 50%); font-size: .7em; opacity: 0; color: var(--c3); pointer-events: none; -webkit-transition: all .3s ease; -o-transition: all .3s ease; transition: all .3s ease; }
.service-link--button svg { position: absolute; bottom: 1em; right: 1em; height: calc(var(--i) / 3)!important; width: calc(var(--i) / 3)!important; }
.service-link--button svg path,
.service-link--button svg circle { stroke: var(--c3); fill: var(--c3); }
.service-link:hover .service-link--button span { opacity: 1; -webkit-transform: translate(0, 50%); -ms-transform: translate(0, 50%); transform: translate(0, 50%); }
.service-link:hover .service-link--button svg { -webkit-animation: rotate .4s forwards; animation: rotate .4s forwards; }

.swiper--services { height: calc(var(--i) * 1.94); width: var(--ug3); overflow: visible!important; cursor: -webkit-grab; cursor: grab; }
.swiper--services .parallax-bg { position: absolute; top: 0; height: calc(((var(--i) + var(--g1) ) * 5 - 12%) / 14.01); bottom: 0; left: calc((100vw - 100%) / -2 + var(--g2)); margin: auto; }
.swiper--services .parallax-bg svg { display: block; width: calc((var(--i) + var(--g1) ) * 5 - 12%); height: auto; }
.swiper--services a { margin-right: var(--g1); }
.swiper--services .swiper-slide { width: var(--i); height: calc(var(--i) * 1.16); padding-right: var(--g1); }
.swiper--services .swiper-slide:last-child { padding-right: 0; }
.swiper--services .swiper-slide:nth-child(3n+1) { -webkit-transform: translateY(33%); -ms-transform: translateY(33%); transform: translateY(33%); }
.swiper--services .swiper-slide:nth-child(3n+2) { -webkit-transform: translateY(66%); -ms-transform: translateY(66%); transform: translateY(66%); }

#service {}
#service--intro { z-index: 1; }
#service--intro .service_anim { position: absolute; width: var(--col1); top: 50%; left: calc(var(--col1) / 2); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); }
#service--intro-text { width: var(--col2); -webkit-transform: translateX(calc(var(--col1) + var(--g2))); -ms-transform: translateX(calc(var(--col1) + var(--g2))); transform: translateX(calc(var(--col1) + var(--g2))); }
#service--intro-text h1 { font-size: 3rem; width: calc(var(--col1) * ( 3 / 2.25 )); }
#service--intro-text .subtexts { margin-top: 2rem; max-height: 4em; opacity: 1; }
#service--intro-text .subtexts .subtext::before,
#service--intro-text .button { background: var(--c3); }
#service--intro-text .button { max-width: calc(var(--col1) - 2em); font-size: .8em; margin-top: 2rem; padding: .25em 1em; border-radius: 1em; color: #fff; text-decoration: none; text-align: center; }
#service--intro-text .button:hover { padding: .25em 1em; background: #fff; color: var(--c3); }
#service--intro + .col--right { padding-top: 40rem; }

#service #service--intro .service_anim.wait { left: calc(var(--m) / 2); }
#service--intro-text.wait,
#service--intro + .col--right.wait { opacity: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#service--intro-text.wait { -webkit-transform: translateX(calc(var(--col1) + var(--g2) * 2)); -ms-transform: translateX(calc(var(--col1) + var(--g2) * 2)); transform: translateX(calc(var(--col1) + var(--g2) * 2)); }
#service--intro + .col--right.wait { -webkit-transform: translateY(var(--h3)); -ms-transform: translateY(var(--h3)); transform: translateY(var(--h3)); }

#service--intro .service_anim,
#service--intro-text,
#service--intro-text h1,
#service--intro-text .subtexts,
#service--intro-text .button,
#service--intro + .col--right { -webkit-transition: all .6s ease; -o-transition: all .6s ease; transition: all .6s ease; }
#service--intro-text .subtexts { -webkit-transition: all .6s ease .6s, opacity 0s; -o-transition: all .6s ease .6s, opacity 0s; transition: all .6s ease .6s, opacity 0s; }
#service--intro-text .subtexts .subtext:nth-child(1) { -webkit-transition: opacity .7s .4s; -o-transition: opacity .7s .4s; transition: opacity .7s .4s; }
#service--intro-text .subtexts .subtext:nth-child(2) { -webkit-transition: opacity .7s .5s; -o-transition: opacity .7s .5s; transition: opacity .7s .5s; }
#service--intro-text .subtexts .subtext:nth-child(3) { -webkit-transition: opacity .7s .6s; -o-transition: opacity .7s .6s; transition: opacity .7s .6s; }

#service--intro.scroll .service_anim { width: var(--g2); top: calc(var(--h3) - var(--g2) + .6rem); left: calc(var(--g2) * -1 + .6rem); -webkit-transform: translate(0, 0); -ms-transform: translate(0, 0); transform: translate(0, 0); }
#service--intro.scroll #service--intro-text { width: var(--col1); -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
#service--intro.scroll #service--intro-text h1 { font-size: 2.25rem; width: var(--col1); }
#service--intro.scroll #service--intro-text .subtexts { margin-top: 2rem; opacity: 0; max-height: 0; margin: 0; -webkit-transition: all .6s ease, opacity 0s; -o-transition: all .6s ease, opacity 0s; transition: all .6s ease, opacity 0s; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#service--intro.scroll #service--intro-text .subtexts .subtext { opacity: 0; -webkit-transition: none; -o-transition: none; transition: none; }
#service--intro.scroll #service--intro-text .button { margin-top: 1em; }
#service--intro.scroll + .col--right { padding-top: var(--h3); }

#service section.services { padding: var(--h3) 0; }

#publications {}

section.publications .container:not(.container--xl) { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -ms-flex-wrap: wrap; flex-wrap: wrap; width: var(--ug3); margin: auto; }

.publication-container { --p: var(--u); }
#publication > .publication-container { --p: 100vw; }
#publications a.publication-link:nth-child(3n-2) .publication-container { --p: var(--col2); }

.publication-container { height: 100%; display: inline-block; position: relative; width: var(--p); font-size: calc(var(--u) / 15); vertical-align: top; padding-bottom: .5em; }
.publication-picture { position: relative; height: calc(var(--p) * 0.55); width: 100%; border-radius: calc(var(--p) / 15); overflow: hidden; background: var(--c2); }
#publication > :not(section) > .publication-picture { border-radius: 0; }
.publication-picture svg,
.publication-picture svg rect { position: absolute; top: 0; left: 0; width: var(--p); height: var(--p); }
.publication-picture svg { top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); }
.publication-picture svg rect { x: 0; y: 0; cx: 0; cy: 0; r: 0; }
.publication-picture-text { --fz: calc(var(--p) / 2.5); position: absolute; left: calc(var(--fz) / -6); font-size: var(--fz); white-space: nowrap; }
.publication-picture-text--one { top: calc(var(--fz) / -2.9); }
.publication-picture-text--two { bottom: calc(var(--fz) / -3); }
#publication:not(.preview) > .publication-container .publication-picture-text--one,
#publications a.publication-link:nth-child(3n+1) .publication-picture-text--one { -webkit-transform: translateY(-18%); -ms-transform: translateY(-18%); transform: translateY(-18%); }
#publication:not(.preview) > .publication-container .publication-picture-text--two,
#publications a.publication-link:nth-child(3n+1) .publication-picture-text--two { -webkit-transform: translateY(18%); -ms-transform: translateY(18%); transform: translateY(18%); }


.publication-text { width: calc(100% - 2em); padding: 1em; }
#publications a.publication-link:nth-child(3n+1) .publication-text { position: absolute; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); width: calc(100% - 6em);  padding: 3em; }
a.publication-link .publication-text br { display: none; }
.publication-category { font-size: .8em; font-weight: 400; margin-bottom: .2em; text-transform: lowercase; }
/* #publications a.publication-link:nth-child(3n-1) .publication-container { margin-right: var(--g1); } */

a.publication-link { -webkit-transition: opacity .4s ease; -o-transition: opacity .4s ease; transition: opacity .4s ease; height: -webkit-fit-content; height: -moz-fit-content; height: fit-content; }
a.publication-link.not_hover { opacity: .8; }
a.publication-link .publication-picture { -webkit-transition: color .4s ease; -o-transition: color .4s ease; transition: color .4s ease; }
a.publication-link.not_hover .publication-picture { color: var(--c2); }
/* a.publication-link .publication-picture { transition: background-color .7s ease, color .4s ease; }
a.publication-link:hover .publication-picture { background: var(--c1); color: var(--c2); }
a.publication-link:hover .publication-picture stop:nth-child(1) { stop-color: var(--c2_rgba); }
a.publication-link:hover .publication-picture stop:nth-child(2) { stop-color: var(--c2_rgba_0); } */

.publication-title { font-size: 1.5em; }
#publications a.publication-link:nth-child(3n-2) .publication-container .publication-title { font-size: 2em; }
#publication .publication-title { font-size: 1.5em; }

#publication { --c3: var(--c1); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
#publication > .publication-container { position: absolute; top: var(--h); max-width: 100%; -webkit-clip-path: url(#rect); clip-path: url(#rect); z-index: 1; }
#publication > .publication-container .publication-picture-text { color: var(--c2); }
#publication > .publication-container .publication-text { position: fixed; font-size: calc(var(--m) / 50); vertical-align: top; top: calc(var(--h) + 28vw); left: calc( ( 100vw - var(--m) ) / 2 ); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); width: var(--col1); margin-right: var(--g2); padding: 0; }
#publication > .publication-container .publication-presentation { position: absolute; top: 27.5vw; left: calc((100vw - var(--m)) / 2 + var(--col1) + var(--g2)); width: var(--col2); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); }
#publication > section { position: relative; }
#publication .publication-background { position: absolute; top: 55vw; display: block; width: 100%; height: calc(100% - 55vw); }
#publication .text-bottom-top { position: absolute; top: calc(55vw + 40vw / -3.625); -webkit-transform: translateY(-23%); -ms-transform: translateY(-23%); transform: translateY(-23%); font-size: 40vw; left: calc(40vw / -6); width: calc(100vw + 40vw / 6); white-space: nowrap; color: #fff; }
#publication .col--left { padding: 0; top: calc(var(--h) + 28vw); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); left: calc((100vw - var(--m)) / 2); }
#publication .col--left > * + * { margin-top: 0; }
#publication .col--right { padding-top: calc(65vw + var(--h3)); }
#publication .subtexts { margin-bottom: var(--g1); }
#publication .publication-infos { display: table; position: relative; margin: auto; margin-top: .5em; color: var(--c1); font-size: .7em; padding-left: 1em; }
#publication .publication-infos::before { content: ''; position: absolute; top: .5em; left: 0; height: calc(100% - 1em); width: 2px; background: var(--c1); }
#publication .publication-infos span { display: block; }
#publication > section + section { padding: var(--h3) 0; }

#preview .publication-container { position: fixed; top: 0; left: 0; }
#preview #publication .publication-container:first-of-type .publication-picture-text { color: #fff; }

.publication-read { font-size: .8em; float: right; position: relative; height: 2em; width: 2em; background: #fff; border-radius: 1em; color: var(--c2); -webkit-transition: width .3s ease .2s; -o-transition: width .3s ease .2s; transition: width .3s ease .2s; }
.publication-read span { position: absolute; top: .25em; left: .75em; line-height: 1.5em; opacity: 0; -webkit-transition: opacity .3s ease; -o-transition: opacity .3s ease; transition: opacity .3s ease; }
.publication-read svg { position: absolute; top: .25em; right: .25em; height: 1.5em!important; width: 1.5em!important; }
.publication-read path { stroke: var(--c2); }
.publication-link:hover .publication-read { width: 4.5em; -webkit-transition: width .3s ease; -o-transition: width .3s ease; transition: width .3s ease; }
.publication-link:hover .publication-read span { opacity: 1; -webkit-transition: opacity .3s ease .2s; -o-transition: opacity .3s ease .2s; transition: opacity .3s ease .2s; }
#publications a.publication-link:not(:nth-child(3n-2)) .publication-read { position: absolute; bottom: 0; right: 0; }

.categories .category { display: inline-block; cursor: pointer; text-transform: lowercase; }
.categories .category:hover,
.categories .category:not(:last-child).active { color: var(--c1); }
.categories .category.inactive { color: #fff; }
.categories .category--count { vertical-align: top; font-size: .7em; margin-left: -.2em; color: var(--c1); }
.categories em:last-of-type,
.categories .category:last-child { -webkit-transition: opacity .3s ease; -o-transition: opacity .3s ease; transition: opacity .3s ease; }
.categories:not(.active) em:last-of-type,
.categories:not(.active) .category:last-child { opacity: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }

#faq {}
#faq .faq-to-contact { padding: var(--g2) 0; }
#faq .faq-to-contact a { display: block; }

.bubble-container { max-width: var(--col2); }
.bubble-wrapper { position: relative; padding-bottom: var(--g2); -webkit-transition: padding .3s ease; -o-transition: padding .3s ease; transition: padding .3s ease; }
.bubble-wrapper:not(.bubble-wrapper--left) { direction: rtl; }

.bubble { direction: ltr; position: relative; display: inline-block; width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; max-width: calc(var(--col2) / 2); padding: .75em 1.5em; background: #fff; text-align: left; color: var(--c2); border-radius: 2em 0 2em 2em; -webkit-box-shadow: 0 0 1rem rgba(0,0,0,.1); box-shadow: 0 0 1rem rgba(0,0,0,.1); cursor: pointer; }
.bubble-wrapper--left .bubble { border-radius: 0 2em 2em 2em; }
.bubble-wrapper:last-child { padding-bottom: 0; }
.bubble-wrapper .wave { -webkit-transition: background-color .3s ease, -webkit-transform .3s ease; transition: background-color .3s ease, -webkit-transform .3s ease; -o-transition: transform .3s ease, background-color .3s ease; transition: transform .3s ease, background-color .3s ease; transition: transform .3s ease, background-color .3s ease, -webkit-transform .3s ease; }
.bubble--category { position: absolute; top: -1.5rem; font-size: .8em; }

.bubble-wrapper:nth-child(12n+1) .wave,
.bubble-wrapper:nth-child(12n+5) .wave,
.bubble-wrapper:nth-child(12n+9) .wave,
.bubble-wrapper:nth-child(12n+11) .wave { -webkit-transform: translateX(calc(var(--col2) / -10)); -ms-transform: translateX(calc(var(--col2) / -10)); transform: translateX(calc(var(--col2) / -10)); }
.bubble-wrapper:nth-child(12n+3) .wave,
.bubble-wrapper:nth-child(12n+7) .wave,
.bubble-wrapper:nth-child(12n+12) .wave { -webkit-transform: translateX(calc(var(--col2) / -5)); -ms-transform: translateX(calc(var(--col2) / -5)); transform: translateX(calc(var(--col2) / -5)); }
.bubble-wrapper:nth-child(2n+2) .wave,
.bubble-wrapper:nth-child(2n+4) .wave,
.bubble-wrapper:nth-child(2n+6) .wave,
.bubble-wrapper:nth-child(2n+8) .wave,
.bubble-wrapper:nth-child(2n+10) .wave { -webkit-transform: translateX(calc(var(--col2) / -3.75)); -ms-transform: translateX(calc(var(--col2) / -3.75)); transform: translateX(calc(var(--col2) / -3.75)); }
.bubble-wrapper.active .wave,
#search .bubble-wrapper.active .wave { -webkit-transform: translateX(0)!important; -ms-transform: translateX(0)!important; transform: translateX(0)!important; }

.bubble--title { font-family: "Muli", sans-serif; font-size: 1em; }

.answer--close { position: relative; top: calc(100% + var(--g1)); right: 0; display: block; height: 0; width: 1rem; z-index: 2; opacity: 0; pointer-events: none; -webkit-transition: opacity .3s ease; -o-transition: opacity .3s ease; transition: opacity .3s ease; }
.answer--close span { position: relative; display: block; height: 1rem; }
.answer--close-wrapper { -webkit-transform: translateY(var(--g1)); -ms-transform: translateY(var(--g1)); transform: translateY(var(--g1)); }
.answer_close { cursor: pointer; }
.answer_close:hover { -webkit-animation: bounce .5s ease; animation: bounce .5s ease; }
.answer_close:before,
.answer_close:after { content: ''; position: absolute; top: -10%; left: 50%; height: calc(125%); width: 2px; background: var(--c2); -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }
.answer_close:after { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }

.answer { direction: ltr; position: relative; padding: 0 var(--g1) 0 calc(var(--g1) * 3); max-height: 0; font-size: .8em; overflow-y: hidden; opacity: 0; pointer-events: none; -webkit-transition: padding .5s ease, max-height .35s cubic-bezier(0, 0.6, 0, 1), opacity .5s ease; -o-transition: padding .5s ease, max-height .35s cubic-bezier(0, 0.6, 0, 1), opacity .5s ease; transition: padding .5s ease, max-height .35s cubic-bezier(0, 0.6, 0, 1), opacity .5s ease; }
/* .answer::first-letter { float: left; display: inline-block; font-size: 2.5em; line-height: 1em; margin-left: -.08em; margin-right: .05em; } */

#search .answer { width: calc(100% - var(--g1)); }

.bubble-wrapper.active .bubble { background: var(--c1); }
.bubble-wrapper.active .answer--close { opacity: 1; pointer-events: all; }
.bubble-wrapper.active .answer { padding: var(--g1) var(--g1) 0 calc(var(--g1) * 3); max-height: 750vh; opacity: 1; pointer-events: all; -webkit-transition: padding .5s ease, max-height .35s cubic-bezier(1, 0, 1, 0.6), opacity .5s ease; -o-transition: padding .5s ease, max-height .35s cubic-bezier(1, 0, 1, 0.6), opacity .5s ease; transition: padding .5s ease, max-height .35s cubic-bezier(1, 0, 1, 0.6), opacity .5s ease; }

#home .bubble-wrapper { padding-bottom: 0.5em; }
#home .bubble-wrapper--left { padding-top: 1em; padding-bottom: 0.5em; }
#home section.faq:not(.active) .bubble { -webkit-transform: translateX(100%); -ms-transform: translateX(100%); transform: translateX(100%); opacity: 0; pointer-events: none; }
#home section.faq:not(.active) .bubble-wrapper--left .bubble { -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); }
#home .bubble { margin-bottom: 0; -webkit-transition: opacity .5s ease, -webkit-transform .3s ease; transition: opacity .5s ease, -webkit-transform .3s ease; -o-transition: opacity .5s ease, transform .3s ease; transition: opacity .5s ease, transform .3s ease; transition: opacity .5s ease, transform .3s ease, -webkit-transform .3s ease; }

#about {}
#about .col--left { padding-top: var(--h3); }
#about .col--left img { width: 100%; }
.about-block--text-image { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
.about-block--text-image img { width: 4em; height: 4em; border-radius: 50%; -o-object-fit: cover; object-fit: cover; margin-right: 1em; }
.about-block--images { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: var(--g1); margin-left: -1em; margin-bottom: -.5em; }
.about-block--images figure { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: center; -ms-flex-align: center; align-items: center; padding: .5em; }
.about-block--images img { height: 4em; -o-object-fit: contain; object-fit: contain; }
.about-block--images figcaption { font-size: .8em; text-align: center; }
.about-block--images.pictos { width: calc(100% - 3em); }
.about-block--images.pictos figure { width: 5em; }
.about-block--images.pictos img { width: 4em; }
.about-block--images.pictos figcaption { font-size: .8em; max-width: 5rem; text-align: center; }
.about-block--images.logos figure { padding: .5em 1em; }
.about-block--images.logos img { max-width: 10em; }
.about-block--images.logos figcaption { display: none; }
.about-block--images.badges figure { width: 11em; }
.about-block--images.badges img { height: 10em; max-width: 10em; }
.about-block--images.badges figcaption { display: none; }

#official_dpo { position: absolute; width: 100%; padding-top: 17.7%; bottom: calc(var(--g1) * 3); background: url('../images/dna_dpo.svg'); background-size: contain; background-repeat: no-repeat; }

#contact form * { font-family: inherit!important; color: inherit; font-size: 1rem; }
#contact form { position: relative; line-height: 1.4em; }
#contact form .block { -webkit-transition: opacity .5s ease; -o-transition: opacity .5s ease; transition: opacity .5s ease; }
#contact form .block:first-child { margin-bottom: 1rem; }
#contact form .block:nth-last-child(2) { margin: 1em 0; }
#contact form .block.website { position: fixed; left: -400vw; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#contact form .block > i { font-style: normal; font-weight: 700; color: var(--c1); }
#contact input { background: none; border-bottom: 2px solid var(--c1); color: #fff; }
#contact input#contact--name { max-width: calc(100% - 4em); }
#contact input#contact--company { max-width: calc(100% - 7em); }
#contact input#contact--mail { max-width: calc(100% - 12.7em); }
#contact select { font-size: .8em; color: var(--c2); padding-left: .3em; border-right: .3em solid #fff; border-radius: 1em; padding: .15em .75em; }
#contact textarea { display: block; width: calc(100% - 2em); margin: .7rem 0; padding: 1em; border-radius: 1em; resize: none; color: var(--c2); }
#contact button { display: block; float: right; padding: .25em .7em; border-radius: 1em; background: var(--c1); color: var(--c2); cursor: pointer; -webkit-transition: background-color .3s ease; -o-transition: background-color .3s ease; transition: background-color .3s ease; }
#contact button:hover { background: #fff; }
#contact form #contact--message_container { position: absolute; top: 0; left: 0; height: calc(100% + 8px); padding-bottom: 4rem; width: calc(100% + 8px); -webkit-transform: translate(-4px, -4px); -ms-transform: translate(-4px, -4px); transform: translate(-4px, -4px); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); opacity: 0; -webkit-transition: opacity .5s ease; -o-transition: opacity .5s ease; transition: opacity .5s ease; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#contact form #contact--message_container .message_wrapper { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); width: calc(100% - var(--g2)); text-align: center; }
#contact form.message .block { opacity: .1; pointer-events: none; }
#contact form.message #contact--message_container { opacity: 1; pointer-events: all; -webkit-user-select: auto; -moz-user-select: auto; -ms-user-select: auto; user-select: auto; }
#contact .col--right .informations { font-size: .8em; margin-top: 5.5rem; color: var(--c1); }

#search { background: var(--c1_light); }

#search.searching .search_container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: cyan; z-index: 99; -webkit-transition: opacity .7s ease; -o-transition: opacity .7s ease; transition: opacity .7s ease; background: var(--c1); }
#search:not(.searching) .search_container { opacity: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#search.searching .search_container::before,
#search.searching .search_container::after { content: ''; display: block; position: absolute; top: 0; left: 0; height: 100vw; width: 100vw; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background: -o-radial-gradient(#fff 0%, var(--c1) 60%); background: radial-gradient(#fff 0%, var(--c1) 60%); z-index: -1; }
#search.searching .search_container::after { top: 100%; left: 100%; }
#search form { display: block; position: absolute; top: 50vh; left: 50vw; width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; -webkit-transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%); transform: translate(-50%,-50%); max-width: var(--m); padding: .5em; }
#search form input,
#search form button { font-size: inherit; font-family: inherit; background: none; color: inherit; outline: none; border: none; }

#search form .text_input--sizer { display: inline-block; max-width: calc(100vw - 12em); min-width: 2.6em; vertical-align: bottom; -webkit-box-align: center; -ms-flex-align: center; align-items: center; position: relative; font-size: 2em; -webkit-transition: min-width .3s ease; -o-transition: min-width .3s ease; transition: min-width .3s ease; }
#search form .text_input--sizer[data-value=""] { min-width: 9em!important; }
#search form .text_input--sizer::after { content: attr(data-value) '  '; visibility: hidden; white-space: nowrap; }
#search form .text_input--sizer::after,
#search form .text_input { display: inline-block; width: calc(100% + .1em); height: 100%; text-align: right; font: inherit; background: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; }
#search form .text_input { position: absolute; caret-color: #fff; }
#search form .text_input::-webkit-input-placeholder { color: var(--c2); -webkit-transition: color .3s ease; transition: color .3s ease; }
#search form .text_input::-moz-placeholder { color: var(--c2); -moz-transition: color .3s ease; transition: color .3s ease; }
#search form .text_input:-ms-input-placeholder { color: var(--c2); -ms-transition: color .3s ease; transition: color .3s ease; }
#search form .text_input::-ms-input-placeholder { color: var(--c2); -ms-transition: color .3s ease; transition: color .3s ease; }
#search form .text_input::placeholder { color: var(--c2); -webkit-transition: color .3s ease; -o-transition: color .3s ease; transition: color .3s ease; }
#search form .text_input:focus::-webkit-input-placeholder { color: var(--c2_rgba_03); }
#search form .text_input:focus::-moz-placeholder { color: var(--c2_rgba_03); }
#search form .text_input:focus:-ms-input-placeholder { color: var(--c2_rgba_03); }
#search form .text_input:focus::-ms-input-placeholder { color: var(--c2_rgba_03); }
#search form .text_input:focus::placeholder { color: var(--c2_rgba_03); }
#search form .text_input::-moz-selection { background-color: rgba(255,255,255,.4); }
#search form .text_input::selection { background-color: rgba(255,255,255,.4); }
#search form .search_input { display: none; }
#search form .submit_input { margin-left: 1em; line-height: 2em; cursor: pointer; -webkit-transition: color .3s ease; -o-transition: color .3s ease; transition: color .3s ease; }
#search form .submit_input:hover { color: #fff; }

#search .searched-words { position: fixed; top: calc(var(--h) * 1.5); left: var(--h2); height: 1.5rem; z-index: 98; cursor: default; }
#search .searched-words * { display: inline-block; }
#search .searched-words_back { height: 1.5em; width: 1.5em; margin-right: .5em; border-radius: 0.75em; cursor: pointer; -webkit-transition: background-color .3s ease; -o-transition: background-color .3s ease; transition: background-color .3s ease; }
#search .searched-words_back:hover { background: var(--c1); }
#search .searched-words_back svg { fill: none; stroke: var(--c2); stroke-width: 3; width: 70%; margin: 15%; }
#search .searched-words_back,
#search .searched-words--text { -webkit-box-shadow: 0 0 1rem rgba(0,0,0,.1); box-shadow: 0 0 1rem rgba(0,0,0,.1); background: #fff; }
#search .searched-words--text { border-radius: .75em; line-height: 1.1em; padding: .2em 1em; vertical-align: top; }
#search .searched-words_list { max-width: calc(100vw - var(--h6) - 10em); vertical-align: top; }
#search .searched-words_list span { position: relative; display: inline-block; background: var(--c1_light); font-size: .8rem; padding: 0 1em 0 .4em; line-height: 1em; border-radius: .8em; margin-right: .4em; cursor: pointer; pointer-events: all; }
#search .searched-words_list span:last-child { margin: 0; }
#search .searched-words_list span::after { display: block; position: absolute; top: 0; right: .3em; font-size: .7em; height: 1em; width: 1em; text-align: center; content: '×'; }

#search .section-container { width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
#search .section-container::after { content: 'Pas de résultat pour cette recherche'; display: block; position: absolute; top: calc(50vh - .5em); width: 80%; left: 10%; text-align: center; -webkit-transition: opacity .7s ease; -o-transition: opacity .7s ease; transition: opacity .7s ease; }
#search .section-container:not(.sections_count_0)::after { opacity: 0; -webkit-transition: opacity .7s ease; -o-transition: opacity .7s ease; transition: opacity .7s ease; pointer-events: none; }

#search section { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; display: inline-flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: center; -ms-flex-align: center; align-items: center; width: 100%; min-height: calc(100vh - var(--h6)); padding: var(--h3) 0; vertical-align: top; -webkit-transition: width .7s ease; -o-transition: width .7s ease; transition: width .7s ease; }
#search section:not(.active) { width: 0; -webkit-transition: width .7s ease .5s; -o-transition: width .7s ease .5s; transition: width .7s ease .5s; }
#search section.publications { background: var(--c1); }
#search .section-container.faq_extend section.services.active,
#search .section-container.faq_extend section.publications.active { width: 20%; }

#search .section_title { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; margin-bottom: var(--g1); }

#search .faq_close { display: block; height: 50px; width: 50px; cursor: pointer; background: blue; }
#search .section-container:not(.faq_extend) .faq_close { max-height: 0; opacity: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#search .search_section:not(.active) .faq_close { display: none; }

#search section .section_title,
#search .items { -webkit-transition: opacity .4s ease, width .3s ease .4s; -o-transition: opacity .4s ease, width .3s ease .4s; transition: opacity .4s ease, width .3s ease .4s; opacity: 0; }
#search section.active .section_title,
#search section.active .items { -webkit-transition: width .7s ease, opacity .5s ease .7s; -o-transition: width .7s ease, opacity .5s ease .7s; transition: width .7s ease, opacity .5s ease .7s; opacity: 1; }

#search .items { max-width: none; padding: 0 calc(var(--g1)/2); }
/* #search .items { position: -webkit-sticky; position: sticky; top: var(--h2); } */
#search .sections_count_0 .items { width: calc(33.33vw - var(--g1)); }
#search .sections_count_3 .items { width: calc(33.33vw - var(--g1)); }
#search .sections_count_2 .items { width: calc(50vw - var(--g1)); }
#search .sections_count_1 .items { width: calc(100vw - var(--g1)); }
#search section.services .items,
#search section.publications .items { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; }
#search section.faq .items { max-width: var(--col2); }

#search .items .item { width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; padding: calc(var(--g1)/2); padding-bottom: var(--g1); }

#search .faq .items .item { margin: auto; }
#search .faq .items .item p { display: block; cursor: pointer; }
#search .faq .items .item .question {  }
#search .faq .items .item .answer { padding-left: .1em; color: var(--c2); }
#search .faq .items .item:not(.active) .answer { opacity: 0; max-height: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
#search .bubble-wrapper { margin-bottom: auto; }
#search .bubble--category { top: -0.5rem; }
#search .bubble-wrapper:nth-child(12n+1) .wave,
#search .bubble-wrapper:nth-child(12n+5) .wave,
#search .bubble-wrapper:nth-child(12n+9) .wave,
#search .bubble-wrapper:nth-child(12n+11) .wave { -webkit-transform: translateX(calc(var(--tr) / -10)); -ms-transform: translateX(calc(var(--tr) / -10)); transform: translateX(calc(var(--tr) / -10)); }
#search .bubble-wrapper:nth-child(12n+3) .wave,
#search .bubble-wrapper:nth-child(12n+7) .wave,
#search .bubble-wrapper:nth-child(12n+12) .wave { -webkit-transform: translateX(calc(var(--tr) / -5)); -ms-transform: translateX(calc(var(--tr) / -5)); transform: translateX(calc(var(--tr) / -5)); }
#search .bubble-wrapper:nth-child(2n+2) .wave,
#search .bubble-wrapper:nth-child(2n+4) .wave,
#search .bubble-wrapper:nth-child(2n+6) .wave,
#search .bubble-wrapper:nth-child(2n+8) .wave,
#search .bubble-wrapper:nth-child(2n+10) .wave { -webkit-transform: translateX(calc(var(--tr) / -3.75)); -ms-transform: translateX(calc(var(--tr) / -3.75)); transform: translateX(calc(var(--tr) / -3.75)); }


.cookies_active { overflow: hidden; }
#cookies { position: fixed; top: 0; left: 0; height: 100%; width: 100%; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; z-index: 99; opacity: 0; -webkit-transition: opacity .6s ease; -o-transition: opacity .6s ease; transition: opacity .6s ease; }
.cookies_active #cookies { opacity: 1; pointer-events: all; -webkit-user-select: auto; -moz-user-select: auto; -ms-user-select: auto; user-select: auto; }
.cookies-blur, .cookies-bkg--white, .cookies-bkg--color, #cookies-container { position: absolute; height: 100%; width: 100%; }
.cookies-blur { -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
.cookies-bkg--white { background: #fff; opacity: 0; }
.cookies-bkg--color { background: var(--c2); opacity: .9; }
.cookies-bkg--white, .cookies-bkg--color {-webkit-transition: opacity .3s ease;-o-transition: opacity .3s ease;transition: opacity .3s ease; }
.cookies-close { position: fixed; top: calc(var(--h) * 2); right: calc(var(--g1) + 1em); height: .8em; width: .8em; cursor: pointer; z-index: 99; }
.cookies-close div { -webkit-transform: translateX(-67%) translateY(-6%); -ms-transform: translateX(-67%) translateY(-6%); transform: translateX(-67%) translateY(-6%); height: 100%; width: 100%; }
.cookies-close span { position: absolute; background-color: var(--c1); height: .1em; width: 141.42%; top: 50%; left: 50%; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); -webkit-transform-origin: center; -ms-transform-origin: center; transform-origin: center; -webkit-transition: background-color .3s ease; -o-transition: background-color .3s ease; transition: background-color .3s ease; }
.cookies-close span:nth-child(2) { -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); }
.cookies-close:hover span { background-color: #fff; }
#cookies-footer { position: fixed; left: 0; bottom: 0; height: var(--h); padding: calc(var(--h) / 2) 0; width: 100%; background: var(--c2); z-index: 99; text-align: center; }
#cookies-footer span { display: inline-block; font-size: .9em; padding: .55em 1em; border-radius: 1.25em; }
.cookies-validation { background: var(--c1); cursor: pointer; -webkit-transition: background-color .3s ease; -o-transition: background-color .3s ease; transition: background-color .3s ease; }
.cookies-validation:hover { background: #fff; }
#cookies-container { overflow: auto; color: #fff; }
#cookies h3 { font-weight: 400; }
#cookies h3 .i-b { display: inline-block; }
.cookies-styles i { font-size: 0; }
.cookies-styles svg.double-cookies { display: inline; width: 1.64em; height: 1em; vertical-align: bottom; fill: var(--c1); -webkit-transition: fill .6s ease; -o-transition: fill .6s ease; transition: fill .6s ease; margin-right: -.15em; }
#cookies-container .col--left p { margin-bottom: .8rem; }
#cookies-container .col--left .checkboxes-container span.checkbox:first-child { margin-right: .5em; }
#cookies h4 { margin: 1.6em 0 .4em 0; font-size: 1.26em; color: var(--c1); font-weight: 400; }
#cookies table { margin-top: 1em; width: 100%; text-align: left; font-size: .8em; border-collapse: collapse; }
#cookies thead tr, #cookies tbody tr:nth-child(2n+2):not(:last-child) { border-bottom: 1px solid var(--c1); }
#cookies th { font-weight: 400; color: var(--c1); }
#cookies th, #cookies td { padding-bottom: .5em; }
#cookies tbody tr:nth-child(2n+1) td { padding-top: 1em; }
#cookies tbody tr:nth-child(2n+2):not(:last-child) td { padding-bottom: 1em; }

#cookies-pop { position: -webkit-sticky; position: sticky; bottom: 0; left: calc(100vw - 17rem - var(--g1)); height: 0px; width: 17rem; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); z-index: 50; }

#cookies-pop .cookies-close { position: absolute; top: 1.6rem; right: 1.6rem; }
#cookies-pop--container { overflow: hidden; border-radius: 1rem; -webkit-box-shadow: 0 0 1rem rgba(0,0,0,.1); box-shadow: 0 0 1rem rgba(0,0,0,.1); }
#cookies-pop--container .cookies-container { position: relative; width: calc(100% - 4rem); padding: 2rem; font-size: .8em; color: #fff; }
#cookies-pop--container .title { font-size: 1.2rem; margin-bottom: 1em; text-align: center; }
#cookies-pop--container p { margin-bottom: 1em; }
#cookies-pop--container svg.dooble-cookies { font-size: 1.2rem; }
#cookies-pop--container .checkbox { font-size: 1rem;  }
#cookies-pop--container a[href="#cookies"] { margin-left: 2.5em; font-size: .75rem; color: var(--c1); -webkit-transition: color .3s ease; -o-transition: color .3s ease; transition: color .3s ease; }
#cookies-pop--container a[href="#cookies"]:hover { color: #fff; }
#cookies-pop--container .cookies-validation { position: relative; height: 3em; width: 3em; margin: auto; border-radius: 50%; -webkit-transform: translateY(1em); -ms-transform: translateY(1em); transform: translateY(1em); }
#cookies-pop--container .cookies-validation svg { fill: none; stroke: var(--c2); stroke-width: 2.25; width: 70%; margin: 15%; }


#cookies-pop--container { -webkit-transform-origin: bottom right; -ms-transform-origin: bottom right; transform-origin: bottom right; }

html.cookies_open #cookies-pop #cookies-pop--container,
html:not(.cookies_open) #cookies-pop #cookies-pop--trigger { -webkit-transform: translateY(calc(-100% - var(--g1))) scale(1); -ms-transform: translateY(calc(-100% - var(--g1))) scale(1); transform: translateY(calc(-100% - var(--g1))) scale(1); opacity: 1; -webkit-transition: opacity .3s ease .2s, -webkit-transform .5s ease; transition: opacity .3s ease .2s, -webkit-transform .5s ease; -o-transition: transform .5s ease, opacity .3s ease .2s; transition: transform .5s ease, opacity .3s ease .2s; transition: transform .5s ease, opacity .3s ease .2s, -webkit-transform .5s ease; }
html:not(.cookies_open) #cookies-pop #cookies-pop--container,
html.cookies_open #cookies-pop #cookies-pop--trigger {-webkit-transform: translateY(calc(-100% - var(--g1))) scale(0);-ms-transform: translateY(calc(-100% - var(--g1))) scale(0);transform: translateY(calc(-100% - var(--g1))) scale(0); opacity: 0; -webkit-transition: opacity .3s ease, -webkit-transform .8s ease; transition: opacity .3s ease, -webkit-transform .8s ease; -o-transition: transform .8s ease, opacity .3s ease; transition: transform .8s ease, opacity .3s ease; transition: transform .8s ease, opacity .3s ease, -webkit-transform .8s ease; }

#cookies-pop--trigger { position: absolute; right: 0; height: 3em; width: 3em; -webkit-box-shadow: 0 0 1rem rgba(0,0,0,.1); box-shadow: 0 0 1rem rgba(0,0,0,.1); background: transparent; border-radius: 50%; z-index: 50; overflow: hidden; cursor: pointer; }
#cookies-pop--trigger .cookies-bkg--white { opacity: 0; }
#cookies-pop--trigger .cookies-bkg--color { opacity: .5; }
#cookies-pop--trigger:hover .cookies-bkg--white { opacity: 1; }
#cookies-pop--trigger:hover .cookies-bkg--color { opacity: 0; }
#cookies-pop--trigger svg { fill: var(--c1); position: relative; width: 60%; margin: 20%; }
.no_stats #cookies-pop--trigger svg { fill: #dadada; }

span.checkbox { position: relative; display: inline-block; }
input[type="checkbox"] { position: absolute; -webkit-transform: scale(0); -ms-transform: scale(0); transform: scale(0); }
input[type="checkbox"] + label { padding-left: calc(2.25em + 4px); font-size: .75em; color: var(--c1); cursor: pointer; }
input[type="checkbox"][required] + label { pointer-events: none; cursor: default; }
input[type="checkbox"] + label::before,
input[type="checkbox"] + label::after { content: ''; display: block; position: absolute; left: 0; top: 0; height: 1em; -webkit-transform: translateY(.4em); -ms-transform: translateY(.4em); transform: translateY(.4em); -webkit-transition: background-color .3s ease, left .3s ease; -o-transition: background-color .3s ease, left .3s ease; transition: background-color .3s ease, left .3s ease; }
input[type="checkbox"] + label::before { width: 2em; border-radius: calc(.5em + 2px); background: transparent; border: 2px solid var(--c1); }
input[type="checkbox"]:not([required]) + label::after { top: 3px; left: 3px; height: calc(1em - 2px); width: calc(1em - 2px); border-radius: 100%; background: #fff; }
input[type="checkbox"]:checked + label::before { background: var(--c1); }
input[type="checkbox"]:checked + label::after { left: calc( 1em + 3px); }

footer { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: space-evenly; -ms-flex-pack: space-evenly; justify-content: space-evenly; -webkit-box-align: center; -ms-flex-align: center; align-items: center; background: var(--c1); height: var(--f); }
footer > a img { height: var(--h); }
footer nav { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; width: var(--ug3); font-size: .8rem; }
footer nav div h6 { font-size: 1.2em; font-weight: 400; margin-bottom: .35em; }
footer nav div ul { position: relative; padding-left: 1em; }
footer nav div ul::before { content: ''; display: block; position: absolute; left: 0; width: 2px; height: 100%; background: -webkit-gradient(linear, left top, left bottom, from(var(--c2)), to(var(--c1))); background: -o-linear-gradient(var(--c2), var(--c1)); background: linear-gradient(var(--c2), var(--c1)); border-radius: 1px 1px 100% 100%; }
footer nav div ul li { list-style: none; margin: .5em 0; font-size: .8em; }

::-moz-selection { background: #00c37a40; }

::selection { background: #00c37a40; }
.display-none { display: none; }
.hidden { opacity: 0; pointer-events: none; }
.bkg-white { background: #fff; }
.bkg-light { background: var(--c1); }
.bkg-dark { background: var(--c2); }
.bkg-light-to-dark { background: -webkit-gradient(linear, left top, left bottom, from(var(--c1)), to(var(--c2))); background: -o-linear-gradient(var(--c1), var(--c2)); background: linear-gradient(var(--c1), var(--c2)); }
.bkg-dark-to-light { background: -webkit-gradient(linear, left top, left bottom, from(var(--c2)), to(var(--c1))); background: -o-linear-gradient(var(--c2), var(--c1)); background: linear-gradient(var(--c2), var(--c1)); }
.bkg-white-to-light { background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(var(--c1_light))); background: -o-linear-gradient(#fff, var(--c1_light)); background: linear-gradient(#fff, var(--c1_light)); }
.bkg-light-to-white { background: -webkit-gradient(linear, left top, left bottom, from(var(--c1_light)), to(#fff)); background: -o-linear-gradient(var(--c1_light), #fff); background: linear-gradient(var(--c1_light), #fff); }
.color-white { color: #fff; }
.color-light { color: var(--c1); }
.color-dark { color: var(--c2); }
.txt-left { text-align: left; }
.txt-center { text-align: center; }
.txt-right { text-align: right; }

/* @media screen and (max-width: 3200px) {
  main { min-height: calc(100vh - var(--h6)); }
} */

@media screen and (min-width: 1041px) and (max-width: 2000px) {
  #search .section-container.sections_count_3 .bubble-wrapper .wave { -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
}

@media screen and (min-width: 1041px) {

  #search .search-menu { display: none; }
  #search section { overflow-y: hidden; }

  #cookies-container .col--left .checkboxes-container { white-space: nowrap; }

}

@media screen and (min-width: 801px) and (max-width: 1040px) {
  header { font-size: .65em; }
  .col--left, footer div { font-size: calc(var(--m) / 50); }
  .bubble { max-width: calc(var(--col2) - var(--g1) - 4em); }
}

@media screen and (min-width: 801px) {

  /* html.scroll_end { -ms-scroll-snap-type: y proximity; scroll-snap-type: y proximity; }
  body, .scroll-snapper { scroll-snap-align: start; scroll-margin: 0; } */

  header.transparent { background: transparent; color: var(--c2); }
  header.transparent::after { content: ''; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); z-index: -1; }
  header.transparent #menu_trigger,
  header.transparent #menu_trigger:hover {  }
  header.transparent #home_trigger rect { fill: var(--c2); }
  header.transparent #home_trigger.light rect,
  .cookies_active header.transparent #home_trigger rect { fill: #fff; }
  header.transparent #search_trigger svg *,
  header.transparent #search_trigger:hover svg * { stroke: var(--c2); }
  header.transparent .nav a:hover { color: var(--c2); }

  #home_animation .section-link span { font-size: 1.5vw; }

  #faq .col--right,
  #faq .col--right::after { background: var(--c2); -webkit-transition: background-color .7s ease; -o-transition: background-color .7s ease; transition: background-color .7s ease; }
  #faq .col--right::after { content: ''; display: block; position: absolute; top: 0; right: 0; height: 100%; width: calc((var(--ww) - var(--m)) / 2 + 1px); -webkit-transform: translateX(calc(100% - 1px)); -ms-transform: translateX(calc(100% - 1px)); transform: translateX(calc(100% - 1px)); z-index: -1; }
  #faq .col--right.bkg_light,
  #faq .col--right.bkg_light::after { background: var(--c1_light); }
  #faq .col--right.bkg_light .bubble-wrapper .bubble--category { color: var(--c2); }

  #search .publication-category.color-light,
  #search .publication-title { color: var(--c2); }

  #cookies-container .col--left { padding-top: calc(var(--h3) - 2.2rem); }
}

@media screen and (max-width: 2000px) {
  :root {
    --m: calc(100vw / 16 * 12);
  }
}

@media screen and (max-width: 1040px) {
  :root {
    --m: calc(100vw / 14 * 12);
    --mxl: var(--m);
    --i: calc(var(--col2) - var(--g2) * 4.25);
  }
  .desktop-only--ib { display: none; }
  .mobile-only--ib { display: inline-block; }
  html { font-size: calc(var(--m) / 30); }

  /* .service-link span.border { border: 4px solid var(--c3); } */

  .bubble { max-width: calc(var(--col2) - var(--g1)); }

  .col--left h1 { font-size: 2em; }

  .content ul { padding-left: var(--g1); }

  #service--intro-text h1,
  #service--intro.scroll #service--intro-text h1 { font-size: 2em; width: var(--col1); }

  #publications a.publication-link .publication-container { --p: var(--col2); }
  #publications a.publication-link .publication-container .publication-title { font-size: 2em; }
  #publications a.publication-link:not(:nth-child(3n-2)) .publication-read { position: relative; }
  #publications a.publication-link .publication-picture-text--one { -webkit-transform: translateY(-18%); -ms-transform: translateY(-18%); transform: translateY(-18%); }
  #publications a.publication-link .publication-picture-text--two { -webkit-transform: translateY(18%); -ms-transform: translateY(18%); transform: translateY(18%); }
  #publications a.publication-link .publication-text { position: absolute; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); width: calc(100% - 6em);  padding: 3em; }

  .about-block--images,
  .about-block--images.pictos,
  .about-block--images.logos { font-size: .8em; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; width: 100%; margin-left: 0; }
  .about-block--text-image { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
  .about-block--text-image img { margin-bottom: 1em; }

  #contact input#contact--name,
  #contact input#contact--company,
  #contact input#contact--mail { width: calc(100% - .4em)!important; max-width: calc(100% - .4em);}

  #search { --tr: 0; }
  :not(#search) .bubble-wrapper .wave { -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
  :not(#home, #search) .bubble-wrapper.active .wave { -webkit-transform: translateX(calc(var(--g1) * -1)); -ms-transform: translateX(calc(var(--g1) * -1)); transform: translateX(calc(var(--g1) * -1)); }

  header #search_trigger { right: var(--g1); -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); }

  main#search { padding-top: var(--h); }

  #search .searched-words { position: relative; margin: auto; margin-top: calc(var(--h) * 0.5); margin-bottom: var(--g1); left: 0; top: auto; height: auto; width: calc(100vw - var(--h4)); text-align: center; }
  #search .searched-words_back { position: absolute; }
  #search .searched-words--text { width: calc(100% - 4em); padding: .2em 2em; background: none; -webkit-box-shadow: none; box-shadow: none; }
  #search .searched-words--text > span { display: block;}
  #search .searched-words_list { width: 100%; max-width: none; }
  #search .searched-words_list span { background: #fff; }

  #search .search-menu { position: relative; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; padding-bottom: 0; width: var(--col2); margin: auto; z-index: 2; }
  #search .search-menu .section_title { -webkit-transition: all .3s ease; -o-transition: all .3s ease; transition: all .3s ease; font-size: .6em; cursor: pointer; }
  #search .search-menu .section_title.active { -webkit-transform: scale(1.5); -ms-transform: scale(1.5); transform: scale(1.5); }
  #search .search-menu .section_title:nth-child(1) { -webkit-transform-origin: left; -ms-transform-origin: left; transform-origin: left; }
  #search .search-menu .section_title:nth-child(3) { -webkit-transform-origin: right; -ms-transform-origin: right; transform-origin: right; }
  #search .search-menu .section_title.inactive { opacity: .5; pointer-events: none; }
  #search .search-menu .section_title::after { content: ''; display: block; position: absolute; top: 100%; height: 1px; width: 0; background: var(--c2); -webkit-transition: width .3s ease; -o-transition: width .3s ease; transition: width .3s ease; }
  #search .search-menu .section_title.active::after { width: calc(100% - 1em); }

  #search .section-container { -webkit-transition: width .7s ease, -webkit-transform .4s ease; transition: width .7s ease, -webkit-transform .4s ease; -o-transition: width .7s ease, transform .4s ease; transition: width .7s ease, transform .4s ease; transition: width .7s ease, transform .4s ease, -webkit-transform .4s ease; }
  #search .section-container.sections_count_0 { width: 100vw; }
  #search .section-container.sections_count_1 { width: 100vw; }
  #search .section-container.sections_count_2 { width: 200vw; }
  #search .section-container.sections_count_3 { width: 300vw; }
  #search .section-container.translate_none { -webkit-transform: translateX(0); -ms-transform: translateX(0); transform: translateX(0); }
  #search .section-container.translate_one_third { -webkit-transform: translateX(-33.33%); -ms-transform: translateX(-33.33%); transform: translateX(-33.33%); }
  #search .section-container.translate_half { -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); }
  #search .section-container.translate_two_thirds { -webkit-transform: translateX(-66.66%); -ms-transform: translateX(-66.66%); transform: translateX(-66.66%); }
  #search .section-container.translate_none,
  #search .section-container.translate_one_third,
  #search .section-container.translate_half,
  #search .section-container.translate_two_thirds { --translate: var(--g1) * -1; }

  #search .search_section { position: relative; padding-top: var(--g1); z-index: 1; }
  #search .search_section.publications::after { content: ''; display: block; position: absolute; left: 0; top: 0; height: 100vh; width: 100%; -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); transform: translateY(-100%); background: inherit; z-index: -1; }

  #search .items { width: calc(100vw - var(--g2))!important; }

  #search .search_section .section_title { display: none; }

  #cookies-container .col--left p + span { display: block; margin-bottom: .4rem; }
  #cookies-container h3 .exception { display: none; }

  #service #service--intro-text .button.desktop-only--ib { display: inline-block; }

  #contact span.block,
  #contact select { display: block; }
  #contact div.block { margin-bottom: 2em; }
}

@media screen and (max-width: 800px) {
  :root {
    --g1: 6vw;
    --m: calc(100vw - var(--g1) * 2);
    --col2: var(--m);
    --ug3: var(--m);
    --i: calc(var(--col2) - var(--g2) * 4);
  }
  .desktop-only { display: none; }
  .mobile-only { display: block; }

  html { font-size: calc(var(--m) / 20); }

  header nav { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; -webkit-box-pack: space-evenly; -ms-flex-pack: space-evenly; justify-content: space-evenly; position: fixed; top: var(--h); left: 0; height: calc(100vh - var(--h)); width: calc(100vw - var(--g1) * 2); padding: 0 var(--g1); background: var(--c2); }
  header .nav { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; font-size: 2.4rem; }
  header .nav--left a { text-align: right; }
  header .nav a:not(:last-child) { margin-right: 0; }

  header .nav-gradients { position: absolute; top: 0; left: 0; height: 100%; width: 100%;  pointer-events: none; z-index: -1; }
  header .nav-gradients span { display: block; position: fixed; height: 200vw; width: 200vw; background: -o-radial-gradient(var(--c1), transparent 66%); background: radial-gradient(var(--c1), transparent 66%); -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); }
  header .nav-gradients span:nth-child(1) { top: 15vh; left: -20vw; }
  header .nav-gradients span:nth-child(2) { top: 70vh; left: 50vw; }
  header .nav-gradients span:nth-child(3) { top: 35vh; left: 120vw; }

  header .nav-search { position: fixed; bottom: var(--g1); left: 50%; height: 3.2rem; width: 3.2rem; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); border-radius: 50%; background: var(--c1); -webkit-transition: background-color .3s ease; -o-transition: background-color .3s ease; transition: background-color .3s ease; }
  header .nav-search:hover { background: #fff; }
  header .nav-search svg { stroke: var(--c2); stroke-width: 3; fill: none; width: 60%; margin: 20%; }

  header nav,
  header #menu_trigger { -webkit-transition: opacity .6s ease; -o-transition: opacity .6s ease; transition: opacity .6s ease; }

  header:not(.open) nav,
  header.open #menu_trigger { opacity: 0; pointer-events: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }

  .col { width: 100%; }
  .col--left { position: relative; height: auto; top: auto; margin-right: 0; margin-bottom: var(--g2); padding-bottom: 0; }
  .col--right { padding-top: var(--g2); }
  .col--height { min-height: auto; }

  #services .col--flex > a:nth-child(2n+1) { -webkit-transform: translateX(var(--g1)); -ms-transform: translateX(var(--g1)); transform: translateX(var(--g1)); }
  #services .col--flex > a:nth-child(2n+2) { -webkit-transform: translateX(calc(var(--m) - 65vw - var(--g1))); -ms-transform: translateX(calc(var(--m) - 65vw - var(--g1))); transform: translateX(calc(var(--m) - 65vw - var(--g1))); }
  .service-link, .swiper--services .swiper-slide { --i: 65vw; }
  .section-link em::after { width: 30em; -webkit-transition: width .3s ease; -o-transition: width .3s ease; transition: width .3s ease; }
  .swiper-container { margin-bottom: var(--g2); }
  .swiper--services { height: auto; }
  .swiper--services .swiper-wrapper { height: auto; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; }
  .swiper--services .parallax-bg { top: calc(var(--g1) * -1); bottom: auto; left: 40vw; }
  .swiper--services .swiper-slide { left: 50%; -webkit-transform: translateX(-60%)!important; -ms-transform: translateX(-60%)!important; transform: translateX(-60%)!important; margin-bottom: var(--g1); padding-right: 0; }
  .swiper--services .swiper-slide:last-child { margin-bottom: 0; }
  .swiper--services .swiper-slide:nth-child(2n+0) { -webkit-transform: translateX(-40%)!important; -ms-transform: translateX(-40%)!important; transform: translateX(-40%)!important; }

  #cookies-container h3 .exception { display: inline; }
  #cookies-container .col--right { padding-top: 0; }

  #home_animation article div { top: var(--h); left: 0!important; right: 0!important; bottom: 55vh; height: -webkit-fit-content; height: -moz-fit-content; height: fit-content; width: var(--m); margin: auto; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
  #home_animation article:nth-child(2) div { top: calc(50vh + var(--h) / 2); -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); transform: translateY(-100%); width: var(--m); margin: 0 auto 0 auto; }
  #home_animation article:nth-child(1n+3) div { -webkit-transform: none; -ms-transform: none; transform: none; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; }
  #home_animation article div img { width: 50%; }
  /* #home_animation article div h3 { font-size: 166%; } */
  #home_animation article div h3 { font-size: 200%; }
  #home_animation article div h3 br { display: none; }
  #home_animation article div .section-link { margin-left: 3em ; }
  #home_animation svg { position: absolute; bottom: 0; pointer-events: none; opacity: .8; -webkit-transform: translate3d(0vw, 18%, 0px)!important; transform: translate3d(0vw, 18%, 0px)!important; left: -50vw!important; width: 200vw!important; height: 200vw!important; }

  #publication > section { background: -webkit-gradient(linear, left top, left bottom, from(var(--c1_light)), to(#fff)); background: -o-linear-gradient(var(--c1_light), #fff); background: linear-gradient(var(--c1_light), #fff); }
  #publication > .publication-container { position: relative; top: 0; height: calc(100vh - var(--h));  padding-bottom: 0; -webkit-clip-path: none; clip-path: none; }
  #publication > :not(section) > .publication-picture { height: 100%; }
  #publication > :not(section) > .publication-picture svg { height: 100%; width: 100%; top: 0; -webkit-transform: none; -ms-transform: none; transform: none; }
  #publication > :not(section) > .publication-picture svg rect { height: 100%; width: 100%; }
  #publication > .publication-container .publication-text { position: absolute; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); transform: translate(-50%, -50%); margin-right: 0; width: 66vw; font-size: 1.2rem; }
  #publication .publication-title { font-size: 1.5em; }
  #publication .publication-background { display: none; }
  #publication .text-bottom-top { top: calc(0vh + 40vw / -3.625); }
  #publication > .publication-container .publication-presentation,
  #publication .col--left { display: none; }
  #publication .col--right { padding-top: calc(7vw + var(--g2)); }
  .content--default svg.hr.desktop-only { display: none; }
  .mobile-presentation { font-size: 1.2em; padding-bottom: var(--g2); }
  #publication > section + section { background: var(--c2); }

  a.publication-link .publication-container { --p: var(--col2); }
  a.publication-link .publication-container .publication-title { font-size: 2em; }
  a.publication-link:not(:nth-child(3n-2)) .publication-read { position: relative; }
  a.publication-link .publication-picture-text--one { -webkit-transform: translateY(-18%); -ms-transform: translateY(-18%); transform: translateY(-18%); }
  a.publication-link .publication-picture-text--two { -webkit-transform: translateY(18%); -ms-transform: translateY(18%); transform: translateY(18%); }
  a.publication-link .publication-text { position: absolute; top: 50%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); width: calc(100% - 6em);  padding: 3em; }

  #service--intro { padding-top: 0; }
  #service--intro .service_anim,
  #service--intro.scroll .service_anim,
  #service #service--intro .service_anim.wait { position: absolute; top: calc(50vh - var(--h)); right: 0; left: auto; width: 50vw; -webkit-transform: translateY(-100%); -ms-transform: translateY(-100%); transform: translateY(-100%); }
  #service--intro-text,
  #service--intro-text.wait,
  #service--intro.scroll #service--intro-text { width: var(--col2); -webkit-transform: none; -ms-transform: none; transform: none; padding-top: calc(100vh - var(--h)); }
  #service--intro-text h1,
  #service--intro.scroll #service--intro-text h1 { position: absolute; top: calc(50vh - var(--h)); font-size: 3rem; width: 100%; }
  #service #service--intro-text .button.desktop-only--ib { display: none; }
  .subtexts, .subtexts--wrapper { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; max-height: auto; text-align: center; max-height: none; }
  .subtexts--wrapper, .subtexts--title { width: 100%; }
  #service--intro-text .subtexts,
  #service--intro.scroll #service--intro-text .subtexts { margin-top: auto; max-height: none; opacity: 1; pointer-events: all; -webkit-user-select: auto; -moz-user-select: auto; -ms-user-select: auto; user-select: auto; }
  .subtexts .subtext { padding: var(--g1) 2em; width: calc(100% / 3 + 4em); }
  #service--intro.scroll #service--intro-text .subtexts .subtext { opacity: 1; }
  .subtexts .subtext::before { height: 2px; width: calc(100% - 8em); left: 4em; }
  .subtexts .subtext:first-child::before { display: none; }
  #service--intro + .col--right { padding-top: 0!important; }
  #service .button { position: -webkit-sticky; position: sticky; bottom: 0; -webkit-transform: translateY(calc(var(--g1) * -1)); -ms-transform: translateY(calc(var(--g1) * -1)); transform: translateY(calc(var(--g1) * -1)); background: var(--c3); height: 3em; border-radius: 1.5em; border-left: 1em solid var(--c3); border-right: 1em solid var(--c3); -webkit-box-sizing: border-box; box-sizing: border-box; z-index: 50; max-width: calc(100% - 7em); text-align: center; width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; margin: auto; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; color: #fff; -webkit-transition: color .3s ease, background-color .3s ease, border .3s ease; -o-transition: color .3s ease, background-color .3s ease, border .3s ease; transition: color .3s ease, background-color .3s ease, border .3s ease; }
  #service .button:hover { background: #fff; border-color: #fff; color: var(--c3); }



  section.publications .publication-link:not(:last-child) { margin-bottom: var(--g1); }

  #faq .faq-to-contact { padding: 0; margin-top: calc(var(--g1) * -1); padding-bottom: calc(var(--g2) * 2); }
  .bkg_light .bubble-wrapper.active .bubble--category { color: var(--c1); }
  .answer { color: #fff; }
  .answer_close:before,
  .answer_close:after { background: #fff; }
  #search .answer_close:before,
  #search .answer_close:after { background: var(--c2); }
  .answer { padding: 0 var(--g1) 0 var(--g1); }
  .bubble-wrapper.active .answer { padding: var(--g1) var(--g1) 0 var(--g1); }
  #search .answer { width: calc(100% - var(--g2)); }

  #official_dpo { position: fixed; bottom: calc(var(--h3) - 2.5rem); right: 0; width: 15rem; -webkit-transform: translateX(62%); -ms-transform: translateX(62%); transform: translateX(62%); -webkit-transition: -webkit-transform .3s ease; transition: -webkit-transform .3s ease; -o-transition: transform .3s ease; transition: transform .3s ease; transition: transform .3s ease, -webkit-transform .3s ease; z-index: 2; }
  #official_dpo.focus { -webkit-transform: translateX(8%); -ms-transform: translateX(8%); transform: translateX(8%); }

  #search form .text_input--sizer { max-width: var(--m); }
  #search form .text_input { text-align: left; }
  #search form .submit_input { display: block; margin: auto; margin-top: 1em; }

  html.cookies_open #cookies-pop #cookies-pop--container { -webkit-transform: translateX(-1.5rem) translateY(calc(-100% - var(--g1))) scale(1); -ms-transform: translateX(-1.5rem) translateY(calc(-100% - var(--g1))) scale(1); transform: translateX(-1.5rem) translateY(calc(-100% - var(--g1))) scale(1); opacity: 1; -webkit-transition: opacity .3s ease .2s, -webkit-transform .5s ease; transition: opacity .3s ease .2s, -webkit-transform .5s ease; -o-transition: transform .5s ease, opacity .3s ease .2s; transition: transform .5s ease, opacity .3s ease .2s; transition: transform .5s ease, opacity .3s ease .2s, -webkit-transform .5s ease; }
  html:not(.cookies_open) #cookies-pop #cookies-pop--container {-webkit-transform: translateX(-1.5rem) translateY(calc(-100% - var(--g1))) scale(0);-ms-transform: translateX(-1.5rem) translateY(calc(-100% - var(--g1))) scale(0);transform: translateX(-1.5rem) translateY(calc(-100% - var(--g1))) scale(0); opacity: 0; -webkit-transition: opacity .3s ease, -webkit-transform .8s ease; transition: opacity .3s ease, -webkit-transform .8s ease; -o-transition: transform .8s ease, opacity .3s ease; transition: transform .8s ease, opacity .3s ease; transition: transform .8s ease, opacity .3s ease, -webkit-transform .8s ease; }

  footer { height: auto; padding: var(--h2) 0; }
  footer > a img { height: auto; width: calc(var(--m) - 8rem); margin-bottom: var(--h); }
  footer nav { -ms-flex-wrap: wrap; flex-wrap: wrap; width: calc(var(--m) - 3rem); padding: 0; }
  footer nav div { padding: 1rem 0; }
}

@media screen and (min-width: 2001px) and (max-height: 820px) {
  main { min-height: calc(100vh - var(--h)); }
}
@media screen and (min-width: 1041px) and (max-height: 50vw) {
  main { min-height: calc(100vh - var(--h)); }
}
@media screen and (min-width: 801px) and (max-height: 60vw) {
  main { min-height: calc(100vh - var(--h)); }
}

@-webkit-keyframes rotate {
  from { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
  to { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
}

@keyframes rotate {
  from { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
  to { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
}

@-webkit-keyframes bounce {
  0% { -webkit-transform: scale(1); transform: scale(1); }
  10% { -webkit-transform: scale(.8); transform: scale(.8); }
  30% { -webkit-transform: scale(1.1); transform: scale(1.1); }
  60% { -webkit-transform: scale(0.9); transform: scale(0.9); }
  100% { -webkit-transform: scale(1); transform: scale(1); }
}

@keyframes bounce {
  0% { -webkit-transform: scale(1); transform: scale(1); }
  10% { -webkit-transform: scale(.8); transform: scale(.8); }
  30% { -webkit-transform: scale(1.1); transform: scale(1.1); }
  60% { -webkit-transform: scale(0.9); transform: scale(0.9); }
  100% { -webkit-transform: scale(1); transform: scale(1); }
}
