@font-face {
	font-family: Futura;
	font-style: normal;
	font-weight: 300;
	src: url(../fonts/FuturaStd-Book.woff) format("woff");
}

@font-face {
	font-family: Futura;
	font-style: normal;
	font-weight: 700;
	src: url(../fonts/FuturaStd-Bold.woff) format("woff");
}

@font-face {
	font-family: Didot;
	font-style: normal;
	src: url(../fonts/Didot-Bold.woff) format("woff");
}





/* General
----------------------------------------- */

:root {
	--blue: #3752A0;
	--grey: #CECECE;
	--light-grey: #F5F5F5;
}

* {
	box-sizing: border-box;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-family: Futura;
	font-weight: normal;
	font-size: 4.4444vw;
	margin: 0;
	padding: 0;

	/* user-select: none; */
}

a {
	color: inherit;
}

.hidden {
	display: none !important;
}


.language-fr .translatable.en,
.language-fr .translatable.de,
.language-en .translatable.fr,
.language-en .translatable.de,
.language-de .translatable.fr,
.language-de .translatable.en {
	display: none;
}



/*  Header
----------------------------------------- */

header.page-header {
	display: flex;
	padding: 1.25em;
}

header.page-header .group {
	display: flex;
	gap: 1.25em;
}

header.page-header .group.left {
	flex-grow: 1;
}

header.page-header .button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 3.125em;
	height: 3.125em;
	flex-shrink: 0;

	color: white;
	cursor: pointer;
}

header.page-header .button span {
	font-size: 0.9375em;
	font-weight: bold;
	text-transform: uppercase;
}

header.page-header .button.close {
	background-color: var(--blue);
}

header.page-header .group.languages .button {
	background-color: var(--grey);
}


/*  Load Screen
----------------------------------------- */

.terminal {
	height: var(--vh);
	display: flex;
	flex-direction: column;
}

.terminal .load-screen {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.load-screen-header {
	padding: 4.5em 1.25em 0;
}

.load-screen-header h1 {
	font-family: Didot;
	font-size: 3.2em;
	line-height: 1.2em;
	margin: 0;
	text-transform: uppercase;
	white-space: nowrap;
}

.load-screen-header svg,
.load-screen-header img {
	display: block;
	width: 100%;
	height: auto;
}

.load-screen-connexion {
	margin: 5em 1.25em 0;
	padding: 0;
	height: 6.1519em;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
}

.load-screen-connexion .text {
	font-size: 1.25em;
	line-height: 1em;
}

.load-screen-connexion .line {
	position: absolute;
	width: 100%;
	border-bottom: 1px solid var(--grey);

	animation-duration: 1s;
	animation-iteration-count: infinite;
	animation-direction: alternate;
	animation-play-state: running;
	animation-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
}

.load-screen-connexion .line.top {
	top: 0;
	animation-name: load-top;
}

.load-screen-connexion .line.bottom {
	bottom: 0;
	animation-name: load-down;
}


@keyframes load-top {
	from {
		transform: translateY(0);
	}

	to {
		transform: translateY(1.25em);
	}
}

@keyframes load-down {
	from {
		transform: translateY(0);
	}

	to {
		transform: translateY(-1.25em);
	}
}



.load-screen .sponsors {
	flex-grow: 1;
	display: flex;
	align-items: flex-end;
}

.load-screen .sponsors ul {
	flex-grow: 1;
	padding: 0 1.125em 1.125em;
	margin: 0;
	list-style-type: none;
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.load-screen .sponsors ul li {
	width: 5.9063em;
}

.load-screen .sponsors ul li svg,
.load-screen .sponsors ul li img {
	display: block;
	width: 100%;
	height: auto;
}

.load-screen .sponsors ul li .title {
	font-size: 0.625em;
	line-height: 1.4em;
	color: var(--grey);
	margin: 0 0 1em;
}





/*  Index
----------------------------------------- */

ul.index {
	margin: 0;
	list-style-type: none;
	padding: 1.25em;

	/* flex-grow: 1;
  overflow: auto;
  min-height: 0; */
}

ul.index li {
	border-bottom: 1px solid var(--grey);
	display: flex;
	/* height: 4.2054em; */
	align-items: center;
	padding-bottom: 0.5em;
	margin-bottom: 0.5em;
}

/* ul.index li:last-child {
  border-bottom: none;
} */
ul.index a {
	display: flex;
	padding: 0.5em 0;
	align-items: baseline;
	gap: 1em;
	cursor: pointer;
}

ul.index a .digit {
	font-size: 2.5em;
	line-height: 1em;
	color: var(--blue);
	font-family: Didot;
}

ul.index a .title {
	font-size: 1.25em;
	line-height: 1em;
	color: black;
	font-family: Didot;
}

/*  Index - Remerciements
----------------------------------------- */

.thanks {
	padding: 1.25em;
	padding-top: 0px !important;
}

.thanks .thanks-header {
	/* border-top: 1px solid var(--grey); */
	display: flex;
	/* height: 4.2054em; */
	padding: 1.4277em 0;
	align-items: center;
}

.thanks .thanks-header h3 {
	margin: 0;
	/* font-size: 1.25em;
	line-height: 1em; */
	color: black;
	/* font-family: Didot; */
	font-size: 1.125em;
	line-height: 1.2em;
}

.thanks .thanks-body .text {
	font-size: 0.9375em;
	line-height: 1.4em;
	white-space: break-spaces;
}



/*  Places
----------------------------------------- */

.places {
	flex-grow: 1;
	min-height: 0;
	display: flex;
}

.places .place {
	overflow: auto;
}

.place-header {
	display: flex;
	align-items: baseline;
	gap: 0.5em;
	padding: 0 1.25em;
}

.place-header .digit {
	font-family: Didot;
	font-size: 5em;
	line-height: 1em;
	color: var(--blue);
}

.place-header h2 {
	font-family: Didot;
	font-size: 1.5625em;
	line-height: 1.2em;
	margin: 0;
}



/*  Places - Pistes
----------------------------------------- */

ul.pistes {
	margin: 0;
	list-style-type: none;
	padding: 0 1.25em;
}

ul.pistes h3 {
	margin: 2em 0 0;
	/* font-family: Didot; */
	font-size: 1.125em;
	line-height: 1.2em;
}

ul.pistes .description {
	margin: 0 0 1em;
}

ul.pistes .description .text {
	font-size: 1.125em;
	line-height: 1.4615em;
	white-space: break-spaces;
}

ul.pistes .media {
	margin: 0 0 1em;
}

ul.pistes .media figure {
	margin: 0;
}

ul.pistes .media figure img {
	width: 100%;
	height: auto;
	display: block;
}

/*  Places - Lectures
----------------------------------------- */

.lecture-header {
	margin: 2.25em 1.125em;
}

.lecture-header h2 {
	margin: 0;
	font-family: Didot;
	font-size: 1.5625em;
	line-height: 1.2em;
	margin: 0;
}

ul.lectures {
	margin: 0;
	list-style-type: none;
	padding: 0 1.25em;

	color: var(--blue);
}

ul.lectures li {
	background-color: var(--light-grey);
	padding: 0.5em;
	margin: 0 0 0.75em;
}

ul.lectures li .audio-player .timeline {
	width: 14em;
}

ul.lectures h3 {
	margin: 0.25em 0 0.5em;
	/* font-family: Didot; */
	font-size: 1.125em;
	line-height: 1.2em;
}

ul.lectures .description {
	margin: 0 0 1em;
}

ul.lectures .description .text {
	font-size: 1.125em;
	line-height: 1.4615em;
	white-space: break-spaces;
}

ul.lectures .media {
	margin: 0 0 1em;
}

ul.lectures .media figure {
	margin: 0;
}

ul.lectures .media figure img {
	width: 100%;
	height: auto;
	display: block;
}

ul.lectures .audio-player .play-button svg rect {
	fill: var(--blue);
}


/*  Places - Audio player
----------------------------------------- */

.audio-player {
	position: relative;
	/* height: 2em; */
	margin: 1em 0;

	display: flex;
	flex-direction: column;
	align-items: center;

	--player-color: var(--grey);
}

ul.lectures .audio-player {
	--player-color: var(--blue);
}

.audio-player .timeline {

	/* flex-grow: 1; */
	position: relative;
	width: 15em;
	height: 1.5em;
	/* left: 2.1406em; */


}

.audio-player .timeline .line {
	position: absolute;
	width: 99.9%;
	height: 3px;
	top: 0.6875em;
	background-color: var(--player-color);
}

.audio-player .timeline .time {
	position: absolute;
	top: 0.1em;
	width: 2.5em;
}

.audio-player .timeline .time span {
	font-size: 0.75em;
	line-height: 1em;
	font-weight: 700;
	color: var(--player-color);
}

.audio-player .timeline .time.current {
	right: 100%;
}

.audio-player .timeline .time.total {
	left: 100%;
	text-align: right;
}

.audio-player .timeline .cursor {
	position: absolute;
	width: 0.75em;
	height: 0.75em;
	top: 0.375em;
}

.audio-player .timeline .cursor .bullet {
	width: 100%;
	height: 100%;
	border: 3px solid var(--player-color);
	border-radius: 50%;
	background-color: white;
}

.audio-player .player-controls {
	position: relative;
	display: flex;
	gap: 2.9031em;
	align-items: center;
}

.audio-player .play-button {
	flex-shrink: 0;
	width: 1.5em;
	height: 1.125em;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.28em;
}

.audio-player .play-button.playing:not(.loading) .picto {
	width: 1em;
	height: 1em;
	border-left: 0.4em solid var(--player-color);
	border-right: 0.4em solid var(--player-color);
}

.audio-player .play-button:not(.playing, .loading) .picto {
	font-size: 0.575em;
	width: 0;
	height: 0;
	border-top: 1em solid transparent;
	border-bottom: 1em solid transparent;
	border-left: 1.7321em solid var(--player-color);
}

.audio-player .play-button:not(.playing) .picto svg {
	width: 100%;
	height: 100%;
	display: block;
}

.audio-player .play-button:not(.loading) .picto .spin {
	display: none;
}

.audio-player .player-controls .backward-button svg,
.audio-player .player-controls .forward-button svg {
	display: block;
	width: 1.5831em;
	height: auto;
}

.audio-player .player-controls .backward-button svg path,
.audio-player .player-controls .forward-button svg path {
	fill: var(--player-color);
}

.audio-player.sync-player .player-controls .backward-button,
.audio-player.sync-player .player-controls .forward-button {
	display: none;
}



/*  Connexion
----------------------------------------- */

.terminal .connexion {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

.terminal .connexion .connexion-header {
	flex: 1 0 0;
	display: flex;
	align-items: center;
	padding: 0 1.25em;
}

.terminal .connexion .connexion-header svg {
	display: block;
	width: 100%;
	height: auto;
}

.terminal .connexion .connexion-body {
	flex: 0 1 auto;
	display: flex;
	justify-content: center;
}

.terminal .connexion .connexion-body svg {
	display: block;
	width: 8em;
	height: auto;
}

.terminal .connexion .connexion-body svg path {
	fill: var(--grey);
}

.terminal .connexion .connexion-footer {
	flex: 1 0 0;
}




/*  Newsletter
----------------------------------------- */

.input-field label {
	display: block;
}

.input-field input {
	background-color: transparent;
	border: none;
	border-bottom: 1px solid black;
	width: 100%;
	font-family: inherit;
	font-weight: inherit;
	font-size: inherit;
	border-radius: 0;
	padding: 0.2rem 0;
	margin: 0 0 1rem;

}

button {
	background-color: black;
	color: white;
	border: 1px solid black;
	width: 100%;
	font-family: inherit;
	font-weight: inherit;
	font-size: inherit;
	border-radius: 0;
	padding: 0.2rem 0;
	margin: 1rem 0;
}

button:active {
	background-color: white;
	color: black;
}

button.loading {
	opacity: 0.5;
}

/* ----------------------------------------- */
