/*** HELPERS & GENERAL ***/

:root {
	--blue: #00c3ef;
	--blue-dk: #0093e9;
	--red: #d5072e;
	--red-dk: #9c072e;
	--grey: #cccccc;
	--grey-dk: #777777;
	--grey-lt: #e9e9e9;
	--white: #ffffff;
	--white-dk: #fafafa;

	--white-a: rgba(255,255,255,.1);
	--white-a-lt: rgba(255,255,255,.05);
	--black-a: rgba(0,0,0,.1);
	--black-a-lt: rgba(0,0,0,.05);

	--un-xs: 5px;
	--un-xs-n: -5px;
	--un-sm: 10px;
	--un-sm-n: -10px;
	--un: 20px;
	--un-n: -20px;
	--un-lg: 40px;
	--un-lg-n: -40px;
	--un-xl: 80px;
	--un-xl-n: -80px;
	--un-xxl: 120px;
	--un-xxl-n: -120px;

	--shadow: 0 5px 20px rgba(0,0,0,.05);
	--shadow-lg: 0 8px 30px rgba(0,0,0,.1);
}

body {overflow-x: hidden !important;}

img {width: 100%; vertical-align: middle; user-select: none;}

.margin-un {margin: var(--un) 0 !important;}
.margin-t-un {margin-top: var(--un) !important;}
.margin-b-un {margin-bottom: var(--un) !important;}
.margin-t-un-sm {margin-top: var(--un-sm) !important;}
.margin-t-un-lg {margin-top: var(--un-lg) !important;}
.margin-t-un-xl {margin-top: var(--un-xl) !important;}
.margin-b-un-sm {margin-bottom: var(--un-sm) !important;}
.margin-b-un-lg {margin-bottom: var(--un-lg) !important;}
.margin-b-un-xl {margin-bottom: var(--un-xl) !important;}

.no-margin {margin: 0 !important;}
.no-margin-t {margin-top: 0 !important;}
.no-margin-b {margin-bottom: 0 !important;}

hr {
	border: 0;
	height: 2px;
	background: var(--grey-lt);
	width: 100%;
	margin: var(--un-lg) 0;
	transition: .3s;
}

hr.hrv {
	width: 2px;
	height: 30px;
	margin: 0 var(--un-lg);
}

/*** COLOR & TYPOGRAPHY ***/

::selection{color: var(--white); background: var(--red);}
::-moz-selection{color: var(--white); background: var(--red);}

* {font-family: 'Poppins', sans-serif; color: var(--grey-dk);}

.blue {background: var(--blue) !important;}
.blue-dk {background: var(--blue-dk) !important;}
.red {background: var(--red) !important;}
.red-dk {background: var(--red-dk) !important;}

.blue-text {color: var(--blue) !important;}
.red-text {color: var(--red) !important;}

.blue-gd, .btn, #cookieChoiceInfo, #fade {
	background: rgb(0,195,239);
	background: -moz-linear-gradient(left,  rgba(0,195,239,1) 0%, rgba(0,147,233,1) 100%);
	background: -webkit-linear-gradient(left,  rgba(0,195,239,1) 0%,rgba(0,147,233,1) 100%);
	background: linear-gradient(to right,  rgba(0,195,239,1) 0%,rgba(0,147,233,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00c3ef', endColorstr='#0093e9',GradientType=1 );
}

.red-gd, .btn-red {
	background: rgb(213,7,46);
	background: -moz-linear-gradient(left,  rgba(213,7,46,1) 0%, rgba(156,7,46,1) 100%);
	background: -webkit-linear-gradient(left,  rgba(213,7,46,1) 0%,rgba(156,7,46,1) 100%);
	background: linear-gradient(to right,  rgba(213,7,46,1) 0%,rgba(156,7,46,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#d5072e', endColorstr='#9c072e',GradientType=1 );
}

a {color: var(--blue);}

a.underlined, .btn-inline {position: relative; font-weight: 900;}

a.underlined::after, .btn-inline::after {
	content: '';
	display: block;
	background: var(--blue);
	height: 2px;
	width: 0%;
	left: 0;
	margin-top: -2px;
	opacity: 0;
	position: absolute;
	transition: .3s;
}

.btn-inline::after {
	margin-top: 20px;
	background: var(--grey-dk);
}

a.underlined.u-w::after {background: var(--white);}

a.underlined.red-text::after {background: var(--red);}

a.underlined:hover::after, .btn-inline:hover::after {
	opacity: 1;
	width: 100%;
}

p, .card .card-content p, blockquote, ul {margin: var(--un) 0;}
p:first-child, blockquote:first-child, ul:first-child {margin-top: 0;}
p:last-child, blockquote:last-child, ul:last-child {margin-bottom: 0;}

p.larger {font-size: 1.1rem; font-weight: 500;}

h1, h2, h3, h4, h5, h6 {margin: 0;}

h2 {font-size: 2.5rem;}
h3 {font-size: 2.2rem;}
h4 {font-size: 1.4rem;}
h5 {font-size: 1.2rem;}

b, strong {color: inherit; font-weight: 900;}

.bold {font-weight: 900 !important;}
.semi-bold {font-weight: 700;}
.justify {text-align: justify;}
.lowercase {text-transform: lowercase;}
.capitalize {text-transform: capitalize;}

.facebook:hover {background: #1877f1 !important;}
.messenger:hover {background: #0084ff !important;}
.twitter:hover {background: #1da1f2 !important;}
.linkedin:hover {background: #0077b5 !important;}

.feather {
	stroke-linecap: square;
	stroke-linejoin: bevel;
}

/*** COMPONENTS ***/

.btn {
	border-radius: var(--un);
	box-shadow: var(--shadow);
	padding: var(--un-sm) var(--un);
	height: auto;
	line-height: initial;
	position: relative;
	/*overflow: hidden;*/
}

.btn::before {
	content: '';
	display: block;
	width: 0%;
	height: 0%;
	position: absolute;
	background: #ffffff;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	opacity: 0;
	border-radius: var(--un);
	transition: .3s;
}

.btn:hover::before {
	opacity: .2;
	width: 100%;
	height: 100%;
}

.btn:hover {
	box-shadow: var(--shadow-lg);
	transform: scale(1.1);
}

.btn span {
	font-weight: 600;
	color: var(--white);
	position: relative;
}

.btn-inline {
	display: inline-flex;
	position: relative;
	align-items: center;
	color: var(--grey-dk);
}

.btn-inline .feather {
	width: 18px;
	margin-left: 5px;
}

.card {
	box-shadow: var(--shadow);
	margin: 0;
	border-radius: var(--un-lg) 0;
}

.card .card-image {
	border-radius: var(--un-lg) 0;
	overflow: hidden;
}

.card .card-content {padding: var(--un);}

.card-entry {
	display: flex;
	height: 100%;
}

.card-entry:hover {box-shadow: var(--shadow-lg);}

.card-entry .card-image {
	width: 25%;
	background: var(--white-dk);
	display: flex;
	align-items: center;
	justify-content: center;
}

.card-entry .card-image img {
	transition: .3s;
	width: initial;
	height: 0;
	object-fit: cover;
	width: 100%;
}

.card-entry:hover .card-image img {transform: scale(1.1);}

.card-entry .card-content {width: 75%;}

.card-entry .card-content .card-date {
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

.card-entry .card-content .card-date .feather {
	width: 18px;
	margin-right: 5px;
}

.card-entry .card-content h4 {
	margin: var(--un-sm) 0;
	color: var(--blue);
	font-weight: 600;
	transition: .3s;
}

.card-entry .card-content h4:hover {
	color: var(--red);
}

.card-entry .card-content hr {margin: var(--un-sm) 0;}

.card-entry .card-content .card-authors :not(:last-child)::after {
	content: ',';
	color: var(--grey-dk);
	font-weight: 400;
}

.card-entry .card-content .card-authors a {
	color: var(--red);
	font-weight: 600;
	white-space: nowrap;
	position: relative;
}

.card-entry .card-content .card-authors a::before {
	content: '';
	display: block;
	background: var(--red);
	height: 2px;
	width: 0%;
	left: 0;
	bottom: 0;
	margin-top: -2px;
	opacity: 0;
	position: absolute;
	transition: .3s;
}

.card-entry .card-content .card-authors a:hover::before {
	opacity: 1;
	width: 100%;
}

.card.card-horiz {
	display: flex;
	padding: var(--un-lg);
	align-items: center;
}

.card.card-horiz.ch-pic {
	padding: 0;
	overflow: hidden;
	height: 100%;
}

.card.card-horiz:hover {
	box-shadow: var(--shadow-lg);
}

.card.card-horiz.ch-pic > div:first-child {
	overflow: hidden;
	border-radius: var(--un-lg) 0;
	width: 33.33%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.card.card-horiz.ch-pic > div:last-child {
	padding: var(--un);
	width: 66.66%;
}

.card.card-horiz .feather {
	width: 50px;
	height: 50px;
	margin-right: var(--un);
	stroke: var(--blue);
	transition: .3s;
}

.card.card-horiz:hover .feather,
.card.card-horiz:hover img {
	transform: scale(1.1);
}

.card.card-horiz img {
	width: 150px;
	margin-right: var(--un);
	transition: .3s;
}

.card.card-horiz.ch-pic img {
	margin-right: 0;
	border-radius: var(--un-lg) 0;
}

.card.card-horiz h3,
.card.card-horiz h4 {
	transition: .3s;
}

.card.card-horiz:hover h3,
.card.card-horiz:hover h4 {
	color: var(--red);
}

section {padding: var(--un-xl) 0;}

section.section-grey {
	background: var(--white-dk);
	border-radius: var(--un-xxl) 0 0 var(--un-xxl);
	position: relative;
}

section.section-grey::before,
section.section-grey::after {
	content: '';
	display: block;
	position: absolute;
	background-image: url('../img/rounded-corner-white-dk.svg');
	background-size: 100%;
	height: 120px;
	width: 120px;
	right: 0;
}

section.section-grey::before {
	top: -120px;
	transform: scale(1,-1);
}

section.section-grey::after {bottom: -120px;}

.section-title {
	margin-bottom: var(--un-lg);
	position: relative;
	text-align: center;
}

.section-title h3 {
	font-weight: 600;
	color: var(--red);
	display: inline-block;
	position: relative;
}

.section-title h3::before,
.section-title h3::after {
	content: '';
	display: block;
	position: absolute;
	border-top: 2px dashed var(--grey);
	width: 70px;
	top: 50%;
	transform: translateY(-50%);
}

.section-title h3::before {left: -75px;}

.section-title h3::after {right: -75px;}

.badge-type {
	background: var(--red);
	padding: var(--un-xs) var(--un);
	border-radius: var(--un-xs);
	font-weight: 600;
	font-size: .9rem;
	color: var(--white);
	display: inline-flex;
	align-items: center;
}

.badge-type span {
	font-size: .9rem;
	margin-right: var(--un-xs);
	color: var(--white);
}

.breadcrumb::before {
	content: '';
	display: none;
}

.breadcrumb {
	display: flex;
	font-size: .9rem;
}

.breadcrumb span {
	font-size: .8rem;
	margin-right: var(--un-sm);
}

.breadcrumb li:not(:last-child) a::after {
	content: '›';
	color: var(--grey);
	margin: 0 var(--un-sm);
}

/*** GRID SYSTEM ***/

.grid {
	display: flex;
	flex-wrap: wrap;
	margin: var(--un-sm-n);
	justify-content: center;
}

.grid.centered {align-items: center;}

.grid-item {margin: var(--un-sm);}

.grid.g-2 .grid-item {width: calc(50% - var(--un));}

.grid.g-2.g-img .grid-item.gi-img {width: calc(33.33% - var(--un));}

.grid.g-2.g-img .grid-item.gi-img:first-child {padding-right: var(--un-lg);}

.grid.g-2.g-img .grid-item.gi-img:last-child {padding-left: var(--un-lg);}

.grid.g-2.g-img .grid-item:not(.gi-img) {width: calc(66.66% - var(--un));}

.grid.g-3 .grid-item {width: calc(33.33% - var(--un));}

.grid.g-4 .grid-item {width: calc(25% - var(--un));}

.grid.g-5 .grid-item {width: calc(20% - var(--un));}

/*** FORMS ***/

#contact-form {
	margin-top: var(--un-lg);
	background: var(--white-dk);
	padding: var(--un-lg);
	border-radius: var(--un-lg) 0;
}

label {
	position: relative !important;
	transform: none !important;
	font-size: 1rem;
	margin-bottom: 5px;
	display: block;
}

label.required::after {
	content: ' *';
	color: var(--red);
}

input,
textarea {
	background: var(--white) !important;
	border: 0 !important;
	box-shadow: var(--shadow) !important;
	border-radius: var(--un) 0 !important;
	padding: 0 15px !important;
	margin-bottom: 0 !important;
	transition: .3s;
	width: calc(100% - 30px) !important;
}

input:focus,
textarea:focus {
	box-shadow: var(--shadow-lg) !important;
	outline: none;
}

textarea {
	padding: 15px !important;
	height: auto;
	min-height: 100px;
	width: 100% !important;
}

.fluentform .ff-el-form-check-label .ff-el-form-check-input {
	opacity: 1;
	width: var(--un) !important;
	margin-right: var(--un-sm);
}

/*** HEADER ***/

#sticky-wrapper {
	z-index: 99;
	position: relative;
}

header nav {
	background: transparent;
	box-shadow: none;
	transition: .3s;
}

.is-sticky header nav {
	background: var(--white);
	box-shadow: var(--shadow);
	height: 64px;
}

header nav .container {height: 64px;}

#navbar-content {
	display: flex;
	align-items: center;
	height: 64px;
}

#header-logo svg {
	margin-top: 10px;
	margin-bottom: -14px;
	width: 140px;
	transition: .3s;
}

.is-sticky #header-logo svg {
	margin-top: 3px;
	width: 110px;
}

#header-logo svg path,
#header-logo svg rect {transition: .3s;}

.is-sticky #header-logo svg path,
.is-sticky #header-logo svg rect {fill: var(--blue);}

.is-sticky #header-logo svg path#Tracé_5,
.is-sticky #header-logo svg path#Tracé_6,
.is-sticky #header-logo svg path#Tracé_7 {fill: var(--red);}

#navbar-content ul {width: 100%;}

#navbar-content ul li a {
	padding: 0;
	position: relative;
	transition: .3s;
}

#navbar-content ul li:not(:last-child) a {margin-right: var(--un);}

#navbar-content ul li a:hover {background: transparent;}

#navbar-content ul li a span {
	color: inherit;
	display: inline-block;
	transition: .3s;
}

#navbar-content ul li a:hover span {transform: scale(1.1);}

#navbar-content ul li a.active span {
	font-weight: 700;
	transform: scale(1.1);
}

#navbar-content ul li a::after {
	content: '';
	display: block;
	position: absolute;
	border-right: 2px dashed var(--white);
	height: 0;
	left: 50%;
	opacity: .5;
	transform: translateX(-50%);
	bottom: 20px;
	transition: .2s;
}

.is-sticky #navbar-content ul li a::after {border-right-color: var(--grey);}

#navbar-content ul li a.active::after {
	opacity: 1;
	border-right: 2px dashed var(--white);
	bottom: 0px;
	height: 15px;
}

.is-sticky #navbar-content ul li a.active::after {border-right-color: var(--blue);}

#navbar-content ul li a:hover::after {
	height: 15px;
	bottom: 0px;
}

.is-sticky #navbar-content ul li a {color: var(--blue);}

.is-sticky #navbar-content ul li a:hover {color: var(--red);}

#navbar-content .btn {white-space: nowrap;}

#navbar-content hr.hrv {
	margin: 0 var(--un);
	background: var(--white-a);
}

.is-sticky #navbar-content hr.hrv {background: var(--grey-lt);}

#navbar-separator {
	margin: 5px 0 var(--un) 0;
	background: var(--white-a);
}

.is-sticky #navbar-separator {opacity: 0;}

#navbar-sub-title h2 {
	font-size: 1.2rem;
	color: var(--white);
	transition: .3s;
}

.is-sticky #navbar-sub-title h2 {opacity: 0;}

#back-to-top {
	position: fixed;
	right: var(--un-lg);
	bottom: -100px;
	width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: .3s;
}

.is-sticky #back-to-top {bottom: var(--un-lg);}

#back-to-top .feather {
	stroke: var(--white);
	width: 30px;
	height: 30px;
}

.button-collapse {
	margin: 0 !important;
	display: flex;
	align-items: center;
}

.button-collapse svg {
	stroke: var(--white);
	width: 40px;
	height: 40px;
}

.is-sticky .button-collapse svg {
	stroke: var(--blue);
}

#mobile-nav {
	padding: var(--un-lg);
	box-shadow: var(--shadow);
	border-radius: var(--un-lg) 0 0 var(--un-lg);
	height: 100vh;
	display: flex;
	flex-direction: column;
	justify-content: center;
	width: 350px;
}

#mobile-nav li:not(:last-child) {
	border-bottom: 2px solid var(--grey-lt);
	margin-bottom: var(--un);
	padding-bottom: var(--un);
}

#mobile-nav li a {
	padding: 0;
	font-size: 1.4rem;
	position: relative;
	background: transparent !important;
}

#mobile-nav li a.active {
	color: var(--blue) !important;
	font-weight: 500;
}

#mobile-nav li a.active::before {
	content: '';
	display: block;
	position: absolute;
	left: -40px;
	top: 50%;
	border-top: 2px dashed var(--blue);
	transform: translateY(-50%);
	height: 2px;
	width: 25px;
}

#mobile-nav #close-nav {
	position: absolute;
	left: var(--un-lg);
	top: var(--un-lg);
	border-bottom: 0;
	margin: 0;
	padding: 0;
}

#mobile-nav #close-nav .feather {
	stroke: var(--red);
	width: 40px;
	height: 40px;
}

/*** HOME ***/

#home-hero {
	margin-top: -64px;
	position: relative;
	border-radius: 0 0 0 var(--un-xxl);
}

#home-hero .container {pointer-events: none;}

#particles-home {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
}

#hh-content {
	padding: 100px 0;
	padding-top: 164px;
	position: relative;
	display: flex;
	align-items: center;
	max-width: 1100px;
	margin: 0 auto;
}

#hh-content img {
	max-width: 400px;
	padding-right: var(--un-lg);
}

#hh-content h1 {
	font-weight: 700;
	color: var(--white);
}

#hh-content p {
	font-size: 1.2rem;
	color: var(--white);
	text-align: justify;
	text-align: justify;
}

#hh-social {
	position: absolute;
	display: flex;
	flex-direction: column;
	right: var(--un-lg);
	top: 50%;
	margin: 0;
	transform: translateY(-50%);
}

#hh-social li:not(:last-child) {margin-bottom: var(--un);}

#hh-social li a {
	display: block;
	width: 60px;
	height: 60px;
	background: var(--white);
	border-radius: var(--un) 0;
	position: relative;
	box-shadow: var(--shadow);
	transition: .3s;
}

#hh-social li a:hover {box-shadow: var(--shadow-lg);}

#hh-social li a svg {
	width: 45px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
}

#hh-social li a svg path {transition: .3s;}

#hh-social li a:hover svg path {fill: var(--white);}

#home-carousel {
	padding: 0;
	position: relative;
	z-index: 8;
}

#home-carousel #hc-content, #page-content #hc-content {
	height: 60vh;
	width: 100%;
	background: rgb(0,195,239);
	background: -moz-linear-gradient(left,  rgba(0,195,239,1) 0%, rgba(0,147,233,1) 100%);
	background: -webkit-linear-gradient(left,  rgba(0,195,239,1) 0%,rgba(0,147,233,1) 100%);
	background: linear-gradient(to right,  rgba(0,195,239,1) 0%,rgba(0,147,233,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00c3ef', endColorstr='#0093e9',GradientType=1 );
	border-radius: var(--un);
	margin-top: var(--un-xxl-n);
	position: relative;
	overflow: hidden;
}

#page-content #hc-content {
	margin-top: 0;
}

#home-carousel #hc-content .hci-item, #page-content #hc-content .hci-item {
	position: relative;
	height: 60vh;
	display: flex;
	align-items: center;
}

#home-carousel #hc-content .hci-background, #page-content #hc-content .hci-background {
	position: absolute;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

#home-carousel #hc-content .hci-background img, #page-content #hc-content .hci-background img {
	position: absolute;
	top: -5%;
	left: -5%;
	width: 110%;
	height: 110%;
	object-fit: cover;
	filter: blur(10px);
	opacity: .5;
}

#home-carousel #hc-content .hci-content, #page-content #hc-content .hci-content {
	display: flex;
	align-items: center;
	position: relative;
	padding: var(--un-lg);
	justify-content: center;
}

#home-carousel #hc-content .hci-image, #page-content #hc-content .hci-image {
	width: 30%;
}

#home-carousel #hc-content .hci-image img, #page-content #hc-content .hci-image img {
/*	aspect-ratio: 1 / 1;*/
/*	object-fit: contain;*/
	width: 100%;
	border-radius: var(--un-sm);
	height: auto;
}

#home-carousel #hc-content .hci-inner, #page-content #hc-content .hci-inner {
	color: var(--white);
	padding-left: var(--un-lg);
}

.slick-prev, .slick-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	border: 0;
	background: transparent !important;
	z-index: 9;
}

.slick-next {
	right: 0;
}

.slick-prev span, .slick-next span {
	font-size: 4rem;
	background: transparent !important;
}

.slick-dots {
	position: absolute;
	bottom: var(--un);
	display: flex;
	justify-content: center;
	width: 100%;
}

.slick-dots li button {
	height: var(--un);
	width: var(--un);
	background: var(--white);
	font-size: 0rem;
	transition: .3s;
	border: 0;
	display: block;
	border-radius: var(--un);
	margin: 0 var(--un-xs);
}

.slick-dots li:not(.slick-active) button {
	opacity: .5;
}

#home-intro {position: relative;}

#home-intro::before {
	content: '';
	display: block;
	position: absolute;
	background-image: url('../img/rounded-corner-blue-dk.svg');
	background-size: 100%;
	height: 120px;
	width: 120px;
	right: 0;
	top: 0;
}

#home-carousel + #home-intro::before, #page-content + #home-intro::before {
	top: calc(-60vh + 120px);
}

#hi-network {
	position: absolute;
	top: 0;
}

#hi-labs .grid-item {
	text-align: center;
	position: relative;
}

#hi-labs .grid-item::before {
	content: '';
	display: block;
	position: absolute;
	border-right: 2px dashed var(--grey);
	top: -80px;
	height: 150px;
	left: 50%;
	transform: translateX(-50%);
	z-index: -1;
}

#hi-labs .grid-item img {
	max-width: 250px;
	mix-blend-mode: darken;
	height: auto;
	transition: .3s;
}

#hi-labs .grid-item img:hover {transform: scale(1.1);}

#hi-cards .card:hover {box-shadow: var(--shadow-lg);}

#hi-cards .card-image {max-height: 179px;}

#hi-cards .card-image img {
	height: auto;
	transition: .3s;
}

#hi-cards .card:hover .card-image img {transform: scale(1.1);}

#hi-cards .card-content {
	text-align: center;
	position: relative;
	padding: var(--un-lg);
	padding-top: 0;
}

#hi-cards .feather {
	width: 100px;
	height: 100px;
	padding: var(--un);
	border-radius: var(--un) 0;
	stroke: var(--white);
	margin-top: -50px;
}

#hi-cards h4 {
	color: var(--blue);
	margin-top: var(--un);
}

#hu-content {
	display: flex;
	align-items: center;
}

#hu-cta {
	display: flex;
	align-items: center;
	justify-content: center;
}

#home-news {position: relative;}

#home-partners {
	background: #FFFFFF;
	background: linear-gradient(90deg, rgba(255, 255, 255, 1) 0%, rgba(250, 250, 250, 1) 100%);
}

#hn-network {
	position: absolute;
	right: 0;
	top: 0;
}

#hp-logos .grid-item {text-align: center;}

#hp-logos img {
	mix-blend-mode: darken;
	max-width: 250px;
	transition: .3s;
}

#hp-logos img:hover {transform: scale(1.1);}

#hp-cta {
	display: flex;
	align-items: center;
	justify-content: center;
}

#home-axes {position: relative;}

#ha-network {
	position: absolute;
	top: 0;
}

#ha-content .hac-item {
	display: flex;
	align-items: center;
}

#ha-content .hac-item:nth-child(3) {flex-direction: row-reverse;}

#ha-content .hac-item > div {padding-left: var(--un-lg);}

#ha-content .hac-item:nth-child(3) > div {
	text-align: right;
	padding-left: 0;
	padding-right: var(--un-lg);
}

#ha-content .hac-item:nth-child(3) .btn-inline {justify-content: flex-end;}

#ha-content .hac-item img {
	width: 30%;
	border-radius: var(--un-xl) 0;
	box-shadow: var(--shadow-lg);
}

#ha-content .hac-item h4 {position: relative;}

#ha-content .hac-item h4::before {
	content: '';
	display: block;
	position: absolute;
	width: 30px;
	height: 0;
	border-top: 2px dashed var(--grey);
	left: -40px;
	top: 50%;
	transform: translateY(-50%);
}

#ha-content .hac-item:nth-child(3) h4::before {
	left: initial;
	right: -40px;
}

/*** PAGES ***/

#page-header {
	margin-top: -64px;
	position: relative;
	border-radius: 0 0 0 var(--un-xxl);
	padding-top: 200px;
	padding-bottom: 30px;
}

#particles-page {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
}

#page-header #ph-background {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: 0 0 0 var(--un-xxl);
}

#page-header #ph-background img {
	position: absolute;
	top: -5%;
	left: -5%;
	width: 110%;
	height: 110%;
	object-fit: cover;
	filter: blur(5px);
	opacity: .5;
}

#page-header #ph-background::after {
	content: '';
	display: block;
	position: absolute;
	width: 50%;
	height: 100%;
	right: 0;
	background: #0093E9;
	background: linear-gradient(-80deg,rgba(0, 147, 233, 1) 0%, rgba(0, 147, 233, 0) 100%);
}

#page-header h1 {
	font-size: 2.5rem;
	font-weight: 700;
	text-align: center;
	color: var(--white);
	position: relative;
}

#page-header h1::before,
#page-header h1::after {
	content: '';
	display: block;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 0;
}

#page-header h1::after {
	background: var(--red);
	height: 6px;
	border-radius: 10px 10px 0 0;
	width: 120px;
	bottom: -30px;
}

#page-header h1::before {
	border-right: 2px dashed var(--white);
	height: 40px;
	bottom: -40px;
}

#page-header ul {
	position: relative;
	justify-content: center;
	display: flex;
}

#page-content {position: relative;}

#page-content::before {
	content: '';
	display: block;
	position: absolute;
	background-image: url('../img/rounded-corner-blue-dk.svg');
	background-size: 100%;
	height: 120px;
	width: 120px;
	right: 0;
	top: 0;
}

#page-content #pc-title {
	display: flex;
	align-items: center;
	margin-top: var(--un-xxl-n);
	margin-bottom: var(--un-lg);
}

#page-content #pc-title img {
	width: 20%;
	height: auto;
	box-shadow: var(--shadow);
	border-radius: var(--un-sm);
	margin-right: var(--un-lg);
}

#page-content #pc-title h1 {
	font-size: 2.5rem;
}

#page-related + #partners-pre-hr {display: none;}

.pc-sub-title {
	text-align: center;
	margin-top: -50px;
	margin-bottom: 30px;
}

#page-intro {
	display: flex;
	align-items: center;
	/*justify-content: center;*/
}

#page-intro img {
	width: 150px;
	border: 2px solid var(--grey-lt);
	border-radius: var(--un-lg) 0;
	margin-right: var(--un);
}

#page-intro #pi-date {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	background: var(--white-dk);
	padding: var(--un-sm);
	border-radius: var(--un) 0;
}

#page-intro #pi-date .feather {margin-right: var(--un-sm);}

#page-intro h5 {margin-bottom: var(--un);}

#page-intro h3 {font-weight: 600;}

#page-intro h4 {
	margin-top: var(--un);
}

#page-intro h4 a {
	transition: .3s;
}

#page-intro h4 a:hover {
	color: var(--red);
}

#page-intro h4 a:not(:last-child)::after {
	content: ' / ';
	color: var(--grey);
}

#page-description {
	margin: var(--un-lg) 0;
	background: var(--white-dk);
	padding: var(--un-lg);
	border-radius: var(--un-lg) 0;
}

#page-description h4 {
	margin-bottom: var(--un);
}

#page-description h4 small {
	opacity: .66;
}

#page-description em {
	color: var(--grey);
}

#page-description #pd-links {
	display: flex;
	margin-top: var(--un-sm);
}

#page-description #pd-links li:not(:last-child) {
	margin-right: var(--un);
}

#page-description #pd-links a.btn {
	width: var(--un-lg) !important;
	height: var(--un-lg) !important;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

#page-description #pd-links a.btn .feather {
	width: 22px;
	height: 22px;
	stroke: var(--white);
}

#page-description #pd-links a.btn svg:not(.feather) {
	width: 20px;
	height: 20px;
}

.page-list-items li {
	display: flex;
	align-items: center;
	background: var(--white);
	border-radius: var(--un) 0;
	box-shadow: var(--shadow);
	transition: .3s;
}

.page-list-items li.linked:hover {
	box-shadow: var(--shadow-lg);
}

.page-list-items li:not(:last-child) {
	margin-bottom: var(--un);
}

.page-list-items li img {
	border-radius: var(--un) 0;
	width: 75px;
	transition: .3s;
}

.page-list-items li.linked:hover img {
	transform: scale(1.1);
}

.page-list-items li span {
	margin-left: var(--un);
}

.page-list-items li a:last-child {width: 100%;}

.page-list-items li a span {
	color: var(--blue);
	display: block;
	width: 100%;
	transition: .3s;
	font-weight: 600;
}

.page-list-items li a span:hover {
	color: var(--red);
}

#page-download {
	text-align: center;
	display: block;
}

.tabs .indicator {display: none;}

#page-filter {
	display: flex;
	justify-content: space-around;
	background: var(--white);
	height: auto !important;
	box-shadow: var(--shadow);
	border-radius: var(--un-lg) 0;
	overflow-x: auto;
	overflow-y: hidden;
}

#page-filter li {
	line-height: initial !important;
	height: auto !important;
	white-space: nowrap;
}

#page-filter li a {
	font-size: 1.2rem;
	display: block;
	padding: var(--un);
	color: var(--grey);
	font-weight: 600;
	text-align: center;
	position: relative;
	transition: .3s;
}

#page-filter li a:not(.active):hover {
	color: var(--red);
	transform: scale(1.1);
}

#page-filter li a.active {
	transform: scale(1.1);
	color: var(--blue);
}

#page-filter li a.active::after {
	content: '';
	display: block;
	position: absolute;
	height: 5px;
	width: calc(100% - var(--un-lg));
	background: var(--blue);
	bottom: 3px;
	border-radius: 10px 10px 0 0;
}

#page-search {
	width: 100%;
	position: relative;
	display: flex;
}

#page-search .feather {
	position: absolute;
	left: 10px;
	top: 10px;
}

#page-search input {
	padding-left: 45px !important;
	width: calc(100% - 60px);
	border-bottom-right-radius: 0 !important;
}

#page-search button {
	border-top-left-radius: 0 !important; 
}

#page-settings {
	display: flex;
	align-items: center;
}

#page-settings.ps-right {
	justify-content: flex-end;
}

#page-settings #page-display {
	margin-top: 0;
	display: flex;
	align-items: center;
}

#page-settings #page-display a,
#page-settings #page-display a svg {transition: .3s;}

#page-settings #page-display a.active svg {
	stroke: var(--blue);
	transform: scale(1.1);
}

#page-settings #page-display a:not(.active):hover svg {
	stroke: var(--red);
	transform: scale(1.1);
}

#page-settings #page-display hr.hrv {margin: 0 var(--un);}

#page-list {transition: .3s;}

#page-list.animate {opacity: 0;}

#page-list .card hr {transition: none;}

#page-list.list {padding-top: var(--un-sm);}

.grid-item.gi-empty {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: calc(100% - var(--un)) !important;
	padding: var(--un-xl);
	background: var(--white-dk);
	border-radius: var(--un-lg) 0;
	margin: var(--un-xl) 0;
}

.grid-item.gi-empty .feather {
	width: 50px;
	height: 50px;
}

.grid-item.gi-empty em {
	font-size: 1.2rem;
	margin-top: var(--un);
}

#page-list.list .grid-item {
	width: 100%;
	margin-top: 0;
	margin-bottom: 0;
}

#page-list.list .grid-item .card {
	box-shadow: none;
	background: var(--white-dk);
	border-radius: 0;
}

#page-list.list .grid-item:nth-child(even) .card {background: transparent;}

#page-list.list .grid-item .card-image {
	width: 12%;
	padding: var(--un);
	background: transparent;
	border-radius: 0;
	display: flex;
	align-items: center;
}

#page-list.list .grid-item .card-image img {
	height: auto !important;
	width: 100%;
	border-radius: var(--un) 0;
}

#page-list.list .grid-item .card-content {
	width: 88%;
	display: flex;
	align-items: center;
	padding-left: 0;
}

#page-list.list .grid-item .card-content .card-date {
	border-right: 2px solid var(--grey-lt);
	height: 50px;
	padding-right: var(--un);
	margin-right: var(--un);
}

#page-list.list .grid-item .card-content .card-authors {
	min-width: 20%;
	max-width: 20%;
}

#page-list.list .grid-item .card-content hr {
	height: 50px;
	width: 2px;
	margin: 0 var(--un);
}

#page-list.list .grid-item .card-content .btn-inline {white-space: nowrap;}

#pagination nav {
	background: transparent;
	box-shadow: none;
}

#pagination {margin-top: var(--un-lg);}

#pagination ul {
	display: flex;
	align-items: center;
	justify-content: center;
}

#pagination ul li:not(:last-child) {margin-right: var(--un-sm);}

#pagination ul li a {
	color: var(--grey-dk);
	font-size: 1.1rem;
	display: block;
	padding: 0 6px;
	font-weight: 600;
	transition: .3s;
}

#pagination ul li a.disabled {
	color: var(--grey);
	cursor: not-allowed;
}

#pagination ul li a.active {
	background: var(--blue);
	color: var(--white);
	transform: scale(1.1);
	border-radius: var(--un-sm) 0;
	padding: 0 10px;
}

#pagination ul li a:not(.active):not(.disabled):hover {
	color: var(--red);
	transform: scale(1.1);
}

#pagination ul li hr.hrv {margin: 0 var(--un-sm);}

#header-404 {
	margin-top: -64px;
	position: relative;
	padding-top: 200px;
	padding-bottom: 200px;
	height: 100vh;
}

#header-404::after {
	content: '';
	display: block;
	position: absolute;
	background-image: url('../img/rounded-corner-blue.svg');
	background-size: 100%;
	height: 120px;
	width: 120px;
	left: 0;
	bottom: -120px;
}

#content-404 {
	position: absolute;
	top: calc(50% + 64px);
	left: 50%;
	transform: translate(-50%,-50%);
	text-align: center;
}

#content-404 h1 {
	color: var(--white);
	font-weight: 900;
	font-size: 20rem;
	line-height: 14rem;
	opacity: .2;
	pointer-events: none;
}

#content-404 h2 {
	margin-top: var(--un);
	color: var(--white);
	font-weight: 600;
	pointer-events: none;
}

#content-404 hr {
	width: 50%;
	margin-left: auto;
	margin-right: auto;
	background: var(--white-a);
}

/*** WP CONTENT ***/

.wp-block-separator {
	border-top: 0 !important;
}

.block-timeline {
	padding: 0 var(--un-xxl);
}

.block-timeline .block-timeline-item {
	display: flex;
	align-items: center;
	padding: var(--un) 0;
	position: relative;
}

.block-timeline .block-timeline-item::before {
	content: '';
	display: block;
	background: var(--blue);
	width: 2px;
	height: 100%;
	position: absolute;
	left: calc(var(--un-lg) + var(--un));
}

.block-timeline .block-timeline-item:first-child::before {
	top: var(--un);
}

.block-timeline .block-timeline-item:last-child::before {
	bottom: 50%;
	height: 50%;
}

.block-timeline .block-timeline-item .block-timeline-date {
	height: var(--un-xxl);
	width: var(--un-xxl);
	min-width: var(--un-xxl);
	margin-right: var(--un);
	background: var(--blue);
	font-size: 2rem;
	font-weight: 600;
	color: var(--white);
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--un);
	z-index: 2;
}

.block-timeline .block-timeline-item .block-timeline-content {
	text-align: justify;
}

.wp-block-embed {
	padding: 0;
	margin: 0;
}

.wp-block-embed iframe {
	aspect-ratio: 16 / 9;
	vertical-align: middle;
	width: 100%;
	height: auto;
}

/*** LAZY BLOCKS ***/

/*** FOOTER ***/

footer {
	background: var(--white-dk);
	padding: var(--un-lg);
	position: relative;
	border-radius: var(--un-xxl) 0 0 0;
}

footer::before {
	content: '';
	display: block;
	position: absolute;
	background-image: url('../img/rounded-corner-white-dk.svg');
	background-size: 100%;
	height: 120px;
	width: 120px;
	right: 0;
	top: -120px;
	transform: scale(1,-1);
}

#footer-content {display: flex;}

#footer-content .hrv {
	align-self: center;
	height: 100px;
}

#footer-content :first-child,
#footer-content :last-child {align-self: center;}

#footer-content .footer-item {width: 20%;}

#footer-contact > div {
	display: flex;
	align-items: center;
}

#footer-contact > div:not(:last-child) {margin-bottom: var(--un);}

#footer-contact > div .feather {
	margin-right: var(--un-sm);
	min-width: 24px;
}

#footer-contact > div span {
	font-size: 1.1rem;
	font-weight: 600;
}

#footer-copyright {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

/*** JS ***/

#loader {
	position: fixed;
	width: 100%;
	height: 100vh;
	background: var(--white);
	z-index: 99999;
}

#loader img {
	width: 400px;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}

.cn-text-container, .cn-buttons-container {color: var(--white) !important;}

/*#cookieChoiceInfo {
	color: var(--white);
	font-weight: 600;
	display: flex;
	align-items: center;
	justify-content: center;
	top: initial !important;
	bottom: var(--un);
	left: var(--un) !important;
	right: var(--un) !important;
	width: calc(100% - var(--un-me)) !important;
	padding: var(--un-sm) !important;
	border-radius: 30px 0;
}

#cookieChoiceInfo span {color: var(--white);}

#cookieChoiceInfo a {
	background: var(--red);
	color: var(--white);
	padding: 7px 15px;
	font-weight: 600;
	text-transform: uppercase;
	border-radius: var(--un) 0;
}*/

#fade {
	position: fixed;
	width: 100%;
	height: 100vh;
	top: 0;
	left: 0;
	z-index: 1000;
}

/*** CHEATS ***/

.margin-u {margin: var(--un) 0 !important;}
.margin-u-xs {margin: var(--un-xs) 0 !important;}
.margin-u-sm {margin: var(--un-sm) 0 !important;}
.margin-u-me {margin: var(--un-me) 0 !important;}
.margin-u-lg {margin: var(--un-lg) 0 !important;}
.margin-u-xl {margin: var(--un-xl) 0 !important;}
.margin-t-u {margin-top: var(--un) !important;}
.margin-b-u {margin-bottom: var(--un) !important;}
.margin-t-u-xs {margin-top: var(--un-xs) !important;}
.margin-t-u-sm {margin-top: var(--un-sm) !important;}
.margin-t-u-me {margin-top: var(--un-me) !important;}
.margin-t-u-lg {margin-top: var(--un-lg) !important;}
.margin-t-u-xl {margin-top: var(--un-xl) !important;}
.margin-t-u-xxl {margin-top: var(--un-xxl) !important;}
.margin-b-u-xs {margin-bottom: var(--un-xs) !important;}
.margin-b-u-sm {margin-bottom: var(--un-sm) !important;}
.margin-b-u-me {margin-bottom: var(--un-me) !important;}
.margin-b-u-lg {margin-bottom: var(--un-lg) !important;}
.margin-b-u-xl {margin-bottom: var(--un-xl) !important;}
.margin-b-u-xxl {margin-bottom: var(--un-xxl) !important;}
.margin-u-n {margin: var(--un-n) 0 !important;}
.margin-t-u-n {margin-top: var(--un-n) !important;}
.margin-b-u-n {margin-bottom: var(--un-n) !important;}
.margin-t-u-xs-n {margin-top: var(--un-xs-n) !important;}
.margin-t-u-sm-n {margin-top: var(--un-sm-n) !important;}
.margin-t-u-me-n {margin-top: var(--un-me-n) !important;}
.margin-t-u-lg-n {margin-top: var(--un-lg-n) !important;}
.margin-t-u-xl-n {margin-top: var(--un-xl-n) !important;}
.margin-t-u-xxl-n {margin-top: var(--un-xxl-n) !important;}
.margin-b-u-xs-n {margin-bottom: var(--un-xs-n) !important;}
.margin-b-u-sm-n {margin-bottom: var(--un-sm-n) !important;}
.margin-b-u-me-n {margin-bottom: var(--un-me-n) !important;}
.margin-b-u-lg-n {margin-bottom: var(--un-lg-n) !important;}
.margin-b-u-xl-n {margin-bottom: var(--un-xl-n) !important;}
.margin-b-u-xxl-n {margin-bottom: var(--un-xxl-n) !important;}

.no-margin {margin: 0 !important;}
.no-margin-t {margin-top: 0 !important;}
.no-margin-b {margin-bottom: 0 !important;}

.padding-u {padding: var(--un) 0 !important;}
.padding-u-xs {padding: var(--un-xs) 0 !important;}
.padding-u-sm {padding: var(--un-sm) 0 !important;}
.padding-u-me {padding: var(--un-me) 0 !important;}
.padding-u-lg {padding: var(--un-lg) 0 !important;}
.padding-u-xl {padding: var(--un-xl) 0 !important;}
.padding-t-u {padding-top: var(--un) !important;}
.padding-b-u {padding-bottom: var(--un) !important;}
.padding-t-u-xs {padding-top: var(--un-xs) !important;}
.padding-t-u-sm {padding-top: var(--un-sm) !important;}
.padding-t-u-me {padding-top: var(--un-me) !important;}
.padding-t-u-lg {padding-top: var(--un-lg) !important;}
.padding-t-u-xl {padding-top: var(--un-xl) !important;}
.padding-t-u-xxl {padding-top: var(--un-xxl) !important;}
.padding-b-u-xs {padding-bottom: var(--un-xs) !important;}
.padding-b-u-sm {padding-bottom: var(--un-sm) !important;}
.padding-b-u-me {padding-bottom: var(--un-me) !important;}
.padding-b-u-lg {padding-bottom: var(--un-lg) !important;}
.padding-b-u-xl {padding-bottom: var(--un-xl) !important;}
.padding-b-u-xxl {padding-bottom: var(--un-xxl) !important;}
.padding-u-n {padding: var(--un-n) 0 !important;}
.padding-t-u-n {padding-top: var(--un-n) !important;}
.padding-b-u-n {padding-bottom: var(--un-n) !important;}
.padding-t-u-xs-n {padding-top: var(--un-xs-n) !important;}
.padding-t-u-sm-n {padding-top: var(--un-sm-n) !important;}
.padding-t-u-me-n {padding-top: var(--un-me-n) !important;}
.padding-t-u-lg-n {padding-top: var(--un-lg-n) !important;}
.padding-t-u-xl-n {padding-top: var(--un-xl-n) !important;}
.padding-t-u-xxl-n {padding-top: var(--un-xxl-n) !important;}
.padding-b-u-xs-n {padding-bottom: var(--un-xs-n) !important;}
.padding-b-u-sm-n {padding-bottom: var(--un-sm-n) !important;}
.padding-b-u-me-n {padding-bottom: var(--un-me-n) !important;}
.padding-b-u-lg-n {padding-bottom: var(--un-lg-n) !important;}
.padding-b-u-xl-n {padding-bottom: var(--un-xl-n) !important;}
.padding-b-u-xxl-n {padding-bottom: var(--un-xxl-n) !important;}

.padding-l-u {padding-left: var(--un) !important;}
.padding-r-u {padding-right: var(--un) !important;}
.padding-l-u-xs {padding-left: var(--un-xs) !important;}
.padding-l-u-sm {padding-left: var(--un-sm) !important;}
.padding-l-u-me {padding-left: var(--un-me) !important;}
.padding-l-u-lg {padding-left: var(--un-lg) !important;}
.padding-l-u-xl {padding-left: var(--un-xl) !important;}
.padding-l-u-xxl {padding-left: var(--un-xxl) !important;}
.padding-r-u-xs {padding-right: var(--un-xs) !important;}
.padding-r-u-sm {padding-right: var(--un-sm) !important;}
.padding-r-u-me {padding-right: var(--un-me) !important;}
.padding-r-u-lg {padding-right: var(--un-lg) !important;}
.padding-r-u-xl {padding-right: var(--un-xl) !important;}
.padding-r-u-xxl {padding-right: var(--un-xxl) !important;}
.padding-u-n {padding: var(--un-n) 0 !important;}
.padding-l-u-n {padding-left: var(--un-n) !important;}
.padding-r-u-n {padding-right: var(--un-n) !important;}
.padding-l-u-xs-n {padding-left: var(--un-xs-n) !important;}
.padding-l-u-sm-n {padding-left: var(--un-sm-n) !important;}
.padding-l-u-me-n {padding-left: var(--un-me-n) !important;}
.padding-l-u-lg-n {padding-left: var(--un-lg-n) !important;}
.padding-l-u-xl-n {padding-left: var(--un-xl-n) !important;}
.padding-l-u-xxl-n {padding-left: var(--un-xxl-n) !important;}
.padding-r-u-xs-n {padding-right: var(--un-xs-n) !important;}
.padding-r-u-sm-n {padding-right: var(--un-sm-n) !important;}
.padding-r-u-me-n {padding-right: var(--un-me-n) !important;}
.padding-r-u-lg-n {padding-right: var(--un-lg-n) !important;}
.padding-r-u-xl-n {padding-right: var(--un-xl-n) !important;}
.padding-r-u-xxl-n {padding-right: var(--un-xxl-n) !important;}

.no-padding {padding: 0 !important;}
.no-padding-t {padding-top: 0 !important;}
.no-padding-b {padding-bottom: 0 !important;}

.hide, *.hide {display: none !important;}

.o-10 {opacity: .1;}
.o-20 {opacity: .2;}
.o-50 {opacity: .5;}

.border-radius-u-sm {border-radius: var(--un-sm);}
.border-radius-u {border-radius: var(--un);}
.border-radius-u-lg {border-radius: var(--un-lg);}
.border-radius-u-xl {border-radius: var(--un-xl);}

.o-hidden {overflow: hidden;}
.o-x-hidden {overflow-x: hidden;}

.absolute {position: absolute;}
.abs-bottom-left {bottom: 0; left: 0;}
.abs-bottom-right {bottom: 0; right: 0;}
.abs-top-left {top: 0; left: 0;}
.abs-top-right {top: 0; right: 0;}

.darken {mix-blend-mode: darken;}
.lighten {mix-blend-mode: lighten;}

.nowrap {white-space: nowrap;}