@charset "UTF-8";

/**************************/
/**************************/
/********** VARS **********/
/**************************/
/**************************/

/* https://easings.net/fr */

:root {
	/* duration */
	--duration-fast: .25s;
	--duration-normal: .5s;
	--duration-slow: 1s;
	/* easing */
	--ease-fast: cubic-bezier(0,.5,.5,1);
	--elastic: cubic-bezier(1, 0.01, 0, 1.22);
	--ease: ease;
	--easeInQuint: cubic-bezier(0.64, 0, 0.78, 0);
	--easeOutQuint: cubic-bezier(0.22, 1, 0.36, 1);
}

/********************************/
/********************************/
/********** ANIMATIONS **********/
/********************************/
/********************************/

/*******************************/
/********** STRUCTURE **********/
/*******************************/

body {
	transition:
	color var(--duration-fast) var(--ease),
	background var(--duration-slow) var(--ease);
}
header {
	transition:
	opacity var(--duration-fast) var(--ease),
	background var(--duration-normal) var(--ease);
}
main,
footer {
	transition:
	opacity var(--duration-fast) var(--ease-fast),
	filter var(--duration-fast) var(--ease-fast),
	transform var(--duration-normal) var(--ease);
}

/********************************/
/********** INTRODUCED **********/
/********************************/

body.introduced:not(.off) header:after {
	transition:
	opacity var(--duration-fast) var(--ease) calc(var(--duration-fast) / 1),
	transform var(--duration-fast) var(--ease) calc(var(--duration-fast) / 1),
	background var(--duration-fast) var(--ease) calc(var(--duration-fast) / 1);
}
body.introduced.off header:after {
	transition:
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--ease),
	background var(--duration-fast) var(--ease);
}

/****************************/
/********** STYLES **********/
/****************************/

.event-title {
	transition:
	color var(--duration-fast) var(--ease-fast),
	text-decoration var(--duration-fast) var(--ease-fast),
	width var(--duration-fast) var(--ease-fast),
	transform var(--duration-fast) var(--ease-fast);
}

/********************************/
/********** NAVIGATION **********/
/********************************/

a,
nav a {
	transition:
	color var(--duration-fast) var(--ease),
	text-decoration var(--duration-fast) var(--ease),
	opacity var(--duration-fast) var(--ease),
	border var(--duration-fast) var(--ease),
	width var(--duration-fast) var(--elastic),
	transform var(--duration-fast) var(--elastic);
}
a:after,
nav a:after {
	transition:
	width var(--duration-normal) var(--elastic),
	transform var(--duration-normal) var(--elastic);
}
.thumbnail .post-icon:before,
a.post-icon:before,
a.link:before {
	transition:transform var(--duration-normal) var(--elastic);
}
#contextual {
	transition:
	opacity var(--duration-fast) var(--ease);
}
#primary a span {
	transition:inherit;
}
.section-link .icon-arrow-down.animated {
	transition:
	color var(--duration-fast) var(--ease),
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--elastic);
}
#navbar .accessibility-toggle {
	transition:
	color var(--duration-fast) var(--ease),
	background var(--duration-fast) var(--ease),
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--elastic);
}
.go-to-the-top {
	transition:
	visibility .01s linear calc(var(--duration-fast) * 1.5),
	color var(--duration-fast) var(--ease),
	background var(--duration-fast) var(--ease),
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--elastic);
}
body.scrolled .go-to-the-top {
	transition:visibility .01s linear,
	color var(--duration-fast) var(--ease),
	background var(--duration-fast) var(--ease),
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--elastic);
}

/*********************************/
/********** COLLAPSIBLE **********/
/*********************************/

a.collapse-toggle > * {
	transition:
	transform var(--duration-normal) var(--elastic);
}
/* out */
.collapsible {
	transition:
	max-height var(--duration-fast) var(--elastic) calc(var(--duration-fast) / 2),
	margin var(--duration-fast) var(--ease) calc(var(--duration-fast) / 2),
	opacity var(--duration-fast) var(--ease);
}
.collapsible > * {
	transition:
	opacity var(--duration-fast) var(--ease);
}
/* in */
.collapsible.collapsed {
	transition:
	max-height var(--duration-fast) var(--elastic),
	margin var(--duration-fast) var(--ease) calc(var(--duration-fast) / 2),
	opacity var(--duration-fast) var(--ease) calc(var(--duration-fast) / 2);
}
.collapsible.collapsed > * {
	transition:
	opacity var(--duration-fast) var(--ease) calc(var(--duration-fast) / 2);
}

/*****************************/
/********** GALLERY **********/
/*****************************/

a.gallery-toggle img {
	transition:
	opacity var(--duration-normal) var(--ease);
}

/********************************/
/********** NAVIGATION **********/
/********************************/

#navigation {
	transition:
	visibility .01s linear calc(var(--duration-normal) * 1.5),
	height var(--duration-normal) var(--easeInQuint) calc(var(--duration-normal) / 2);
}
body.expanded #navigation {
	transition:
	visibility .01s linear,
	height var(--duration-normal) var(--easeOutQuint);
}
#navigation .navigation-content > * {
	transition:
	opacity var(--duration-normal) var(--easeInQuint),
	transform var(--duration-normal) var(--easeInQuint);
}
body.expanded #navigation .navigation-content > * {
	transition:
	opacity var(--duration-normal) var(--easeOutQuint) calc(var(--duration-normal) / 2),
	transform var(--duration-normal) var(--easeOutQuint) calc(var(--duration-normal) / 2);
}
#sitemap .menu a {
	transition:
	color var(--duration-normal) var(--ease),
	text-decoration var(--duration-normal) var(--ease),
	opacity var(--duration-normal) var(--ease),
	width var(--duration-normal) var(--elastic),
	transform var(--duration-normal) var(--elastic),
	visibility .01s linear calc(var(--duration-normal) * 1.5);
}
body.expanded #sitemap .menu a {
	transition:
	color var(--duration-normal) var(--ease),
	text-decoration var(--duration-normal) var(--ease),
	opacity var(--duration-normal) var(--ease),
	width var(--duration-normal) var(--elastic),
	transform var(--duration-normal) var(--elastic),
	visibility .01s linear;
}

/****************************/
/********** MEDIAS **********/
/****************************/

/* in */
.mediaplayer-container.is-playing iframe,
.mediaplayer-container.is-playing .v-controlBar:after {
	transition:
	opacity var(--duration-fast) var(--ease) var(--duration-fast) !important;
}
/* out */
.mediaplayer-container.is-paused iframe,
.mediaplayer-container.is-paused .v-controlBar:after {
	transition:
	opacity var(--duration-fast) var(--ease) !important;
}

/*****************************/
/********** FIGURES **********/
/*****************************/

.thumbnail a:before {
	transition:opacity var(--duration-fast) var(--ease);
}

/***************************/
/********** ICONS **********/
/***************************/

svg > * {
	transition:
	fill var(--duration-fast) var(--ease),
	stroke var(--duration-fast) var(--ease);
}
[class^="icon-"].animated .label,
[class^="icon-"].animated .label:before,
[class^="icon-"].animated .label:after {
	transition:
	transform var(--duration-fast) var(--elastic),
	right var(--duration-fast) var(--elastic),
	margin var(--duration-fast) var(--elastic),
	clip-path var(--duration-fast) var(--elastic),
	height var(--duration-fast) var(--elastic),
	width var(--duration-fast) var(--elastic);
}
.svg-icon-outline {
	transition:stroke var(--duration-normal) var(--ease);
}

/**************************/
/********** GRID **********/
/**************************/

.grid .item {
	transition:
	opacity var(--duration-normal) var(--ease),
	transform var(--duration-normal) var(--ease);
}
.grid .item.off {
	transition:
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--ease);
}
.results-title {
	transition:
	opacity var(--duration-normal) var(--ease),
	transform var(--duration-normal) var(--ease);
}

/**************************/
/********** TABS **********/
/**************************/

.tabs .tab {
	transition:
	visibility .01s linear calc(var(--duration-normal) * 1.5),
	opacity var(--duration-normal) var(--ease);
}
.tabs .tab.active {
	transition:visibility .01s linear,
	opacity var(--duration-normal) var(--ease);
}

/******************************/
/********** OVERLAYS **********/
/******************************/

.overlay {
	transition:
	opacity var(--duration-normal) var(--easeInQuint),
	transform calc(var(--duration-fast) / 2) var(--easeInQuint),
	visibility .01s linear var(--duration-normal);
}
.overlay-content {
	transition:
	opacity var(--duration-normal) var(--easeInQuint);
}
.clickoutside {
	transition:
	opacity calc(var(--duration-fast) / 2) var(--easeInQuint),
	visibility .01s linear var(--duration-normal);
}
.overlay.active {
	transition:
	visibility .01s linear,
	opacity var(--duration-normal) var(--easeOutQuint) calc(var(--duration-fast) / 2),
	transform calc(var(--duration-fast) / 2) var(--easeOutQuint) calc(var(--duration-fast) / 4);
}
.overlay.active .overlay-content {
	transition:
	opacity var(--duration-normal) var(--easeOutQuint)  calc(var(--duration-fast) / 2);
}
body.overlayed .clickoutside {
	transition:
	opacity  calc(var(--duration-fast) / 2) var(--easeOutQuint),
	visibility .01s linear  calc(var(--duration-fast) / 2);
}
body.onload .overlay {
	transition: none;
}

/********************************/
/********** GOOGLE MAP **********/
/********************************/

.gmap-controls a {
	transition:
	background var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--ease);
}

/************************/
/********** FX **********/
/************************/

.fx {
	transition:all var(--duration-normal) var(--easeOutQuint);
}
body.onload .fx {
	transition:none;
}
.dot {
	transition:
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--elastic);
}

/***************************/
/********** FORMS **********/
/***************************/

input[type="radio"],
input[type="checkbox"] {
	transition: box-shadow var(--duration-fast) var(--ease-fast);
}
input[type="submit"],
button {
	transition:
		color var(--duration-fast) var(--ease-fast),
		text-shadow var(--duration-fast) var(--ease-fast),
		transform var(--duration-fast) var(--ease-fast),
		opacity var(--duration-fast) var(--ease-fast),
		border var(--duration-fast) var(--ease-fast) !important;
}

/****************************/
/********** SWIPER **********/
/****************************/

.swiper-container .swiper-controls .reduce,
.swiper-container .swiper-controls .previous,
.swiper-container .swiper-controls .next {
	transition:
	transform var(--duration-fast) var(--ease),
	margin var(--duration-fast) var(--ease);
}

/***********************************/
/********** ACCESSIBILITY **********/
/***********************************/

.accessibility-options .fontSize {
	transition:
	color var(--duration-fast) var(--ease),
	text-shadow var(--duration-fast) var(--ease),
	background var(--duration-fast) var(--ease);
}
a.switcher {
	transition:
	transform var(--duration-fast) var(--elastic),
	padding var(--duration-fast) var(--elastic),
	background var(--duration-fast) var(--ease);
}
a.switcher:before {
	transition:
	transform var(--duration-fast) var(--elastic),
	left var(--duration-fast) var(--elastic);
}
a.switcher:after {
	transition:
	transform var(--duration-fast) var(--elastic),
	width var(--duration-fast) var(--elastic);
}

/*****************************/
/********** INSTANT **********/
/*****************************/

.instant-transition {
	-webkit-transition:none !important;
	-o-transition:none !important;
	-moz-transition:none !important;
	transition:none !important;
}

/****************************/
/****************************/
/********** LOADER **********/
/****************************/
/****************************/

/** icon only **/

.loader:before {
	content:"" !important;
	display:inline-block;
	height:2rem;
	width:2rem;
	margin:-.5rem;
	-webkit-border-radius:50%;
	   -moz-border-radius:50%;
	        border-radius:50%;
	border-style:solid;
	border-width:var(--logo-line-height);
	border-bottom:solid var(--logo-line-height) transparent;
	-webkit-animation: spinner 1s infinite linear;
	   -moz-animation: spinner 1s infinite linear;
	     -o-animation: spinner 1s infinite linear;
	        animation: spinner 1s infinite linear;
}

/** loading txt **/

.is-loading:before {
	content:"";
	display:inline-block;
	vertical-align:middle;
	height:1.75em;
	width:1.75em;
	margin:-.375em .375em -.375em -.375em;
	-webkit-border-radius:50%;
	   -moz-border-radius:50%;
	        border-radius:50%;
	border-style:solid;
	border-width:var(--logo-line-height);
	border-bottom:solid var(--logo-line-height) transparent;
	color:var(--primary-color);
	text-shadow:0 0 0 var(--primary-color);
	-webkit-animation: spinner .5s infinite linear;
	   -moz-animation: spinner .5s infinite linear;
	     -o-animation: spinner .5s infinite linear;
	        animation: spinner .5s infinite linear;
}

/** colors **/

body.alt .is-loading:before {
	color:var(--secondary-color);
	text-shadow:0 0 0 var(--secondary-color);
}

/********** SPINNER **********/

@-webkit-keyframes spinner {
	0%, 50%, 100% { -webkit-animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); }
	0% { -webkit-transform: rotate(0); }
	50% { -webkit-transform: rotate(180deg); }
	100% { -webkit-transform: rotate(360deg); }
}
@-moz-keyframes spinner {
	0%, 50%, 100% { -moz-animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); }
	0% { -moz-transform: rotate(0); }
	50% { -moz-transform: rotate(180deg); }
	100% { -moz-transform: rotate(360deg); }
}
@-o-keyframes spinner {
	0%, 50%, 100% { -o-animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); }
	0% { -o-transform: rotate(0); transform: rotate(0); }
	50% { -o-transform: rotate(180deg); transform: rotate(180deg); }
	100% { -o-transform: rotate(360deg); transform: rotate(360deg); }
}
@keyframes spinner {
	0%, 50%, 100% { -webkit-animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); -moz-animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); -o-animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); animation-timing-function: cubic-bezier(0.5, 0.5, 0.5, 0.5); }
	0% { -webkit-transform: rotate(0); -moz-transform: rotate(0); -o-transform: rotate(0); transform: rotate(0); }
	50% { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); }
	100% { -webkit-transform: rotate(360deg); -moz-transform: rotate(360deg); -o-transform: rotate(360deg); transform: rotate(360deg); }
}







/***************************/
/***************************/
/********** NO JS **********/
/***************************/
/***************************/

/** global **/

body.no-js {
	pointer-events:all;
}

/** fx **/
/*
body.no-js section .fx {
	opacity:1;
	transform:none !important;
	transition:0 !important;
}
body.no-js section .fx.shape {
	opacity:1;
	transform:translate3d(-50%,0,0) !important;
	transition:none !important;
}
*/
/** textfit **/

body.no-js .textfit .introduction {
	font-size:4em;
}