@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);
}

article section.article-header {
	transition:
	max-width var(--duration-fast) var(--ease-fast),
	margin var(--duration-fast) var(--ease-fast),
	filter var(--duration-fast) var(--ease-fast),
	width var(--duration-normal) var(--ease);
}
/****************************/
/********** STYLES **********/
/****************************/


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

a,
button,
input[type="file"] + label {
	transition:
	color var(--duration-fast) var(--ease),
	text-decoration var(--duration-fast) var(--ease),
	background 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),
	filter var(--duration-fast) var(--elastic);
}
a:before,
a:after {
	transition:inherit;
}
#navbar:after {
	transition:
	opacity var(--duration-fast) var(--ease),
	transform var(--duration-fast) var(--ease);
}

/**********************************/
/********** STICKY APPLY **********/
/**********************************/

.sticky-apply {
	transition:
	max-width var(--duration-fast) var(--elastic),
	border-radius var(--duration-fast) var(--elastic);
}
.sticky-apply .form-apply {
	transition:
	padding var(--duration-fast) var(--elastic);
}
.sticky-apply .form-apply .form-infos {
	transition:
	gap var(--duration-fast) var(--elastic),
	width var(--duration-fast) var(--elastic);
}
.sticky-apply .form-apply .form-infos > * {
	transition:
	max-height var(--duration-fast) var(--elastic),
	opacity var(--duration-fast) var(--elastic),
	transform var(--duration-fast) var(--elastic);
}
.sticky-apply .form-apply .input-container.upload input {
	transition:
	max-width var(--duration-fast) var(--elastic);
}
.sticky-apply .form-apply .input-container.upload label {
	transition:
	gap var(--duration-fast) var(--elastic),
	max-width var(--duration-fast) var(--elastic);
}
.sticky-apply .form-apply .input-container.upload label span {
	transition:
	max-width var(--duration-fast) var(--elastic),
	opacity var(--duration-fast) var(--elastic),
	transform var(--duration-fast) var(--elastic);
}

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

/** out **/

.overlay {
	transition:
	opacity var(--duration-fast) var(--easeInQuint),
	background calc(var(--duration-fast) / 2) var(--easeInQuint),
	backdrop-filter calc(var(--duration-fast) / 2) var(--easeInQuint),
	visibility .01s linear var(--duration-normal);
}
.overlay .overlay-container {
	transition:
	filter var(--duration-fast) var(--easeInQuint),
	transform var(--duration-fast) var(--easeInQuint);
}
/** in **/

.overlay.active {
	transition:
	visibility .01s linear,
	opacity var(--duration-normal) var(--easeOutQuint) calc(var(--duration-fast)),
	background var(--duration-normal) var(--easeOutQuint) calc(var(--duration-fast) / 2),
	backdrop-filter var(--duration-normal) var(--easeOutQuint) calc(var(--duration-fast) / 2);
}
.overlay.active .overlay-container {
	transition:
	filter var(--duration-normal) var(--easeOutQuint) calc(var(--duration-fast) / 2),
	transform var(--duration-normal) var(--easeOutQuint) calc(var(--duration-fast) / 2);
}
/** onload **/

body.onload .overlay {
	transition: none;
}

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

.grid .item,
.grid .item-content {
	transition:
	opacity var(--duration-normal) var(--ease),
	filter var(--duration-normal) var(--elastic),
	transform var(--duration-normal) var(--elastic);
}

/****************************/
/********** 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;
}

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

input[type="radio"],
input[type="checkbox"] {
	transition:
	border var(--duration-fast) var(--ease),
	box-shadow var(--duration-fast) var(--ease);
}
input[type="radio"]:before,
input[type="checkbox"]:before {
	transition:
	opacity var(--duration-fast) var(--ease);
}

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

.swiper-controls .previous span,
.swiper-controls .next span {
	transition:inherit;
}

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

.instant-transition {
	transition:none !important;
}

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

/** icon only **/

.loader:before {
	content:"" !important;
	display:inline-block;
	height:2rem;
	width:2rem;
	margin:-.5rem;
	border-radius:50%;
	border-style:solid;
	border-width:var(--line-height);
	border-bottom:solid var(--line-height) transparent;
	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;
	border-radius:50%;
	border-style:solid;
	border-width:var(--line-height);
	border-bottom:solid var(--line-height) transparent;
	color:var(--accent-color);
	animation: spinner .5s infinite linear;
}

/********** 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); }
}