@charset 'UTF-8';

/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on February 3, 2018 */
@font-face {
	font-family: 'fsalbert';
	src: url('fsalbert_regular.eot');
	src: url('fsalbert_regular.eot?#iefix') format('embedded-opentype'),
		url('fsalbert_regular.woff') format('woff'),
		url('fsalbert_regular.ttf') format('truetype'),
		url('fsalbert_regular.svg#fsalbert') format('svg');
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: 'london-fill';
	src: url('london_fill.eot');
	src: url('london_fill.eot?#iefix') format('embedded-opentype'),
		url('london_fill.woff') format('woff'),
		url('london_fill.ttf') format('truetype'),
		url('london_fill.svg#london-fill') format('svg');
	font-weight: normal;
	font-style: normal;
}

* {
	margin: 0;
	padding: 0;
	z-index: 0;

	transition: font-size 0.2s ease-in-out, padding-left 0.2s ease-in-out;
}

body {
	color: black;
	background-color: white;
	font-size: 12pt;
	font-family: 'fsalbert', cursive, sans-serif;
	margin: 0;
	padding: 0;
	/*! padding-top: 45px; */
}

img {
    border: 0 none;
}

a {
    color: inherit;
    text-decoration: underline;
}

p + p {
	margin-top: 12pt;
}

nav, section {
	width: 100%;

	background-color: white;
}

input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea {
	margin: 3px 2%;
	padding: 3px;
	border: 2px solid LightSteelBlue;
	background-color: rgba(255, 255, 255, 0.5);
	font-size: 12pt;
	font-family: 'fsalbert', cursive, sans-serif;
}
input[type="submit"] {
	margin: 3px 2%;
	padding: 0 12pt;
	font-size: 12pt;
	font-family: 'fsalbert', cursive, sans-serif;
	border: 2px solid black;
	border-radius: 5px;
}
input:invalid {
	background-color: white !important;
}
input:focus, textarea:focus {
	border-color: #006AB3;
	background-color: white;
}

form label {
	display: inline-block;
	vertical-align: top;
	padding-top: 3px;
	white-space: nowrap;
}

label {
	cursor: pointer;
}

/* Classes de styles */

.vignette {
    display: inline-block;
	padding: 2%;
	margin: 1%;
    border-radius: 7px;
	background-color: #006AB3;
	color: white;
}

.encadre {
    display: inline-block;
	padding: 2%;
	margin: 1%;
    border-radius: 7px;
	border: 2px solid #006AB3;
}

.flotant-droit {
	float: right;
	max-width: 50%;
	box-sizing: border-box;
}

/* Squelette commun */

div#site {
	padding: 0;
	padding-bottom: 32pt;

	margin: 0;
	margin-left: 25%;
	margin-left: 25vw;
	margin-right: 25%;
	margin-right: 25vw;
	margin-bottom: 32pt;
	margin-top: 80px;
}

body > header {
	position: fixed;
	top: 0;
	height: 80px;
	width: 100%;
	z-index: 80;

	color: white;
	background-color: #006AB3;
	background-image: url('logo.png');
	background-repeat: no-repeat;
	background-size: contain;
	
	overflow: hidden;
}

body > header > h1 {
	font-family: 'london-fill', Times, serif;
	font-variant: small-caps;
	white-space: nowrap;
	font-size: 34pt;
	line-height: 72px;
	display: inline-block;
	height: 80px;
	padding-left: 97px;
	z-index: 90;
}
body > header > h1 a {
	color: white;
	text-decoration: none;
}

body > header > h2 {
	display: inline-block;
	padding-left: 35px;
	font-weight: normal;
}

a#bouton-menu {
	line-height: 45px;
	height: 45px;
	position: fixed;
	top: 0;
	right: 0;
	text-align: right;
	margin: 0 1%;
	padding: 0 0.5%;
	font-size: 30px;
	font-weight: bold;
	text-decoration: none;
	color: white;
	z-index: 100;
	text-shadow: 0 0.1em #006AB3;
}

section#chapeau {
	/* max-height: 52.6%;
	max-height: 50vh; */
	overflow: hidden;
}

/* Diaporama effet "glisse" */

@keyframes glisse {
	0%, 20%, 100% { left: 0; }
	
	25%, 45% { left: -100%; }
	
	50%, 70% { left: -200%; }

	75%, 95% { left: -300%; }
	
	99.9999% { left: -400%; }
}

/* Chapeau */

div.diapo {
	position: relative;
	/* height: 407px; */
	margin: 0;
	left: 0;
	padding: 0;
	text-align: left;
	font-size: 0;
	overflow: hidden;
	
	animation: none;
}

div.diapo * {
	padding: 0;
	display: inline;
}

div.diapo figure {
	width: 100%;
	height: 100%;
	z-index: 40;
	overflow: hidden;
	
	transition: all 2s ease;
}

div.diapo figcaption {
	position: absolute;
	bottom: 0px;
	height: auto;
	width: 100vw;
	z-index: 40;
	font-size: 12pt;
	background-color: white;
	color: black;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

div.diapo figcaption.encart p {
	font-size: 1.8vw;
	text-align: center;
	display: table-cell;
	line-height: 20px !important;
}

div.diapo figcaption.encart {
	font-size: 1.7vw;
	bottom: auto;
	top: 0px;
	width: 6.5%;
	white-space: normal;
}

div#diapo-chapeau {
	width: 500%;
}

div#diapo-chapeau img {
	width: 20%; /* 100% / nombre d'images */
	/* height: 47vh; /* 32 + 80 + 45 */
	object-fit: cover;
}

div#diapo-chapeau h2 {
	position: absolute;
	width: 17%;
	height: 80%;
	margin-top: 1.5%;
	
	font-size: 36pt;
	padding-left: 1%;
	color: white;

	text-shadow: 0 0 6px black;
}

div#diapo-chapeau p {
	bottom: 0;
	width: 20%;
	height: 32px;
	line-height: 32px;
	padding-left: 0.5%;
}

/* Navigation diaporama */

input.lecture:checked + div#diapo-chapeau {
	animation: glisse 25s ease 0s infinite;
}

input.lecture:checked + div#diapo-chapeau p {
	display: inline-block !important;
}

input.activateur {
	display: none !important;
	position: absolute;
}

input.activateur:checked + figure {
	position: absolute;
	left: 0px;
	z-index: 50;
}

input.activateur:checked + figure p {
	/* display: inline-block !important; */
	height: 0;
}

ul.diapo-navigation {
	position: relative;
	bottom: 43px;
	width: 100%;
	z-index: 50;

	text-align: right;
}

ul.diapo-navigation li {
	display: inline-block;
	padding: 0.4% 0.4% 1%;
}

ul.diapo-navigation li label {
	height: 12pt;
	width: 12pt;
	display: block;
	
	overflow: hidden;
	border-radius: 50%;

	color: white;
	background-color: white;
	box-shadow: 0 0 6px black;

	cursor: pointer;
	-webkit-transition: 0.2s ease-in-out; /* Safari */
	transition: 0.2s ease-in-out;
}

ul.diapo-navigation li label:hover {
	color: black;
	background-color: black;
	box-shadow: 0 0 6px white;
}

ul.diapo-navigation li label.lecture {
	padding: 0;
	
	color: black;
	font-size: 9pt;
}

ul.diapo-navigation li label.lecture:hover {
	color: white;
}

/* Bouton surbrillant */

@keyframes alterne-fond {
	from { background-color: transparent; }
	to { background-color: DimGrey; }
}

.alterne {
	font-size: 32pt;
	z-index: 70;

	border-radius: 1em;
	text-shadow: 0 0 0.1em DimGrey;
	color: white;
	
	/* DESACTIVE
	animation: alterne-fond 5s linear 1s infinite alternate;
	-webkit-transition: 0.2s ease-in-out;
	transition: 0.2s ease-in-out;
	*/
}

.alterne:hover {
	font-size: 38pt;
}

/* Miniatures */

aside.miniatures {
	display: inline;
	width: 28%;
	height: 385px;
	float: right;
	padding: 1%;
	overflow-x: hidden;
	overflow-y: auto;
}

aside.miniatures img {
	display: inline;
	float: right;
	width: 180px;
	padding: 0 0 4px 4px;
}

/* MOF */

section#mof {
	width: 100%;
	min-height: 250px;
	padding: 0;
	margin-bottom: 50px;
	
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-around;
	align-items: baseline;
	row-gap: 50px;
	
	background-color: white;
}

section#mof > * {
	height: 200px;
	padding: 0;
	flex-basis: 315px;
}

section#mof figure#MOF {
	flex-basis: 70px;
	align-self: center;
}

section#mof figcaption {
	position: relative;
	width: 100%;
}
section#mof figcaption * {
	position: relative;
}
section#mof figcaption h2 {
	top: -73px;
	font-size: 26pt;
	font-weight: bold;
	color: gold;
	text-shadow: 1px 1px 4px brown;
}
section#mof figcaption p {
	top: -50px;
	left: -100px;
	text-align: left;
}

section#mof p {	
	text-align: right;
	line-height: 16pt;
	margin-top: 2%;
}
section#mof p.peu {
	line-height: 200%;
}
section#mof p.beaucoup {
	margin-top: 6pt;
}

section#mof img {
	object-fit: cover;
	object-position: 0 0;
}
section#mof span {
	right: 18%;
	width: 24%;
	width: calc(15% + 60px);
	margin-top: 14pt;
	
	color: white;
	text-shadow: 0 0 6px black;
}

/* Intro */

section#intro {
	width: 97%;
	padding: 25px 0;
	background-color: white;
	color: white;
	text-shadow: 0 0 6px black;
}

section#intro > * {
	height: 200px;
	padding: 0;
}

section#intro figcaption {
	position: relative;
	width: 100%;
	text-align: right;
	font-size: 16pt;
	line-height: 16pt;
	margin-top: 4%;
	line-height: 200%;
}
section#intro figcaption.peu {
	margin-top: 6%;
}
section#intro figcaption.beaucoup {
	margin-top: 6pt;
}
section#intro figcaption * {
	position: relative;
}

section#intro img {
	object-fit: cover;
	object-position: 0 0;
	position: absolute;
	width: 50%;
}

section#intro.mots-cles li {
	font-size: 22pt;
	color: #006AB3;
	text-shadow: none;
	height: auto;
	list-style: none;
}
section#intro.mots-cles li:nth-child(2) {
	margin-left: 15%;
}
section#intro.mots-cles li:nth-child(3) {
	margin-left: 30%;
}
section#intro.mots-cles li:nth-child(4) {
	margin-left: 45%;
}
section#intro.mots-cles li:nth-child(5) {
	margin-left: 60%;
}
section#intro.mots-cles span {
	color: black;
}

/* Labels */
/*figure#EFC-logo, figure#Facebook-logo {
	display: inline-block;
	margin: 2%;
	width: 30%;
	white-space: nowrap;
}
figure#EFC-logo img, figure#Facebook-logo img {
	border: none !important;
}
figure#Facebook-logo img {
	margin-bottom: 11px;
}
figure#EFC-logo figcaption, figure#Facebook-logo figcaption {
	display: inline-block;
	position: relative;
	left: 7pt;
	text-align: left;
	vertical-align: top;
}
figure#EFC-logo figcaption {
	top: 7pt;
}
figure#Facebook-logo figcaption {
	top: 0pt;
}*/

div#labels {
	display: flex;
	flex-direction: row;
	
	align-items: center;
	margin: 33px;
	justify-content: space-around;
}
div#labels figure {
	white-space: nowrap;
	max-width: 30%;
	max-width: fit-content;
}
div#labels figure a {
	display: flex;
	flex-direction: row;
	text-decoration: none;
}
div#labels figcaption {
	margin-top: 10px;
	margin-left: 2%;
}

/* Menu */

@keyframes remonte {
	from { padding-top: 10%; }
	to { padding-top: 0; }
}

nav#menu {
	/*padding-top: 2%;
	padding-top: calc(2% + 80px);*/
	padding-bottom: 1%;
	box-sizing: border-box;
	text-align: center;
}

nav#menu-magic {
	position: relative;
	position: sticky;
	top: 60px;
	height: 14pt;
	z-index: 90;
	overflow: hidden;
	color: white;
	background-color: transparent;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

a#intro-ancre {
	position: absolute;
	top: calc(100vh - 80px);
}

a#menu-ancre {
	position: relative;
	top: -80px;
}

nav#menu ul {
	clear: right;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(240px, 1fr));
	/*! grid-gap: 0 12%; */
}

nav#menu li {
	display: inline-block;
	max-width: 100%;
	padding: 2% 0;
}

nav#menu a {
	text-decoration: none;
}

nav#menu img {
	max-width: 240px;
	border-bottom: 2px solid #006AB3;
}

nav#menu ul p {
	position: relative;
	margin-top: -24px;
	
	line-height: 14pt;
	font-size: 14pt;
	font-weight: bold;
	color: #006AB3;
	background-color: white;
	background-color: rgba(255, 255, 255, 0.8);
}
nav#menu ul li:hover p {
	font-size: 16pt;
}
nav#menu ul a.selection p {
	font-size: 16pt;
	color: white;
	background-color: transparent;
	text-shadow: 0 0 6px black;
}

/* Sections */

a.contenu {
	position: relative;
	/* top: calc(100vw * 0.05 + 100vh + 390px); */
	top: -80px;
}

section.section-page {
	/*! height: 100%; */
	overflow: hidden;
}

section.section-page h1 {
	padding: 2% 2% 0.5% 2%;
	font-weight: bold;
	color: #006AB3;
	border-bottom: 4px solid Gainsboro;
}

section.section-page h2 {
	padding: 0 2% 0.5% 2%;
	font-size: 14pt;
}

section.section-page p {
	padding: 0 2%;
}

/*
section.section-page {
	background-attachment: fixed;
	background-repeat: no-repeat;
	background-size: auto auto, auto auto, 100% auto;
	background-size: cover;
}
*/

section.section-page div.diapo {
	width: 100%;
	height: 407px;
	height: 55vmin;
	min-height: 200px;
	padding: 0;
	margin-bottom: 2%;
}

section.section-page div.diapo figure label.alterne {
	position: absolute;
	top: 0;
	width: 30px;
	height: 50%;
	padding-top: 20%;
	
	font-size: 32pt;
	
	color: white;
	text-shadow: 0 0 6px black;
	transition: font-size 0.2s ease-in-out;

	cursor: pointer;
}

section.section-page div.diapo figure label.suivant {
	right: 2%;
	text-align: right;
}
section.section-page div.diapo figure label.precedent {
	left: 2%;
	text-align: left;
}
section.section-page div.diapo figure label.alterne:hover {
	font-size: 35pt;
}

section.section-page div.diapo p {
	position: relative;
	font-size: 12pt;
	/*background-color: rgba(255, 255, 255, 0.8);*/
}

/* Diaporama section */

section.section-page div.diapo figure {
	position: absolute;
	z-index: 30;
	opacity: 0;
	transition: opacity 0.5s ease-in-out;
	overflow: visible;
	height: auto;
}

section.section-page input.activateur:checked + figure {
	z-index: 40;
	opacity: 1;
}

section.section-page div.diapo img {
	position: relative;
	/* top: 36pt; */
	left: 0;
	height: 100%;
	width: 100%;
	object-fit: cover;
	vertical-align: middle;
}

section.section-page ul.diapo-navigation {
	position: absolute;
	bottom: auto;
}

section.section-page div.diapo figcaption {
	display: block;
	bottom: auto;
}

/* Adresse et Demande d'information */

section#coordonnees img {
	max-width: 100%;
	object-fit: contain;
}

section#informations form {
	background-color: Gainsboro;
	padding: 1%;
}

section#mentions-legales article {
	padding: 2%;
}
section#mentions-legales h3 {
	margin: 2%;
}
section#mentions-legales ul {
	padding: 0 4%;
}

section.section-page article {
	padding-bottom: 30px;
}

section.section-page article.text-section {
	/*! background-color: Gainsboro; */
	display: block;
	text-align: justify;
	border-left: 4px solid Gainsboro;
	padding-bottom: 0;
}

/* Réseaux sociaux */

div#sociaux {
	position: fixed;
	bottom: 5%;
	right: 5%;
	text-align: center;
}

div#sociaux figcaption {
	width: 90px;
}

/* Pied de page */

body > footer {
	min-height: 20pt;
	z-index: 100;
	text-align: center;
	
	background-color: #006AB3;
	width: 100%;
	position: fixed;
	bottom: 0;
}

footer a {
	display: inline-block;
	margin: 2px 1%;
	color: white;
	font-size: 14pt;
	line-height: 14pt;
}
footer a:nth-child(even) {
	text-align: left;
}
footer a:nth-child(odd) {
	text-align: right;
}

/* Autres tailles d'écran */

@media screen and (min-width: 1870px) {	
	aside.miniatures {
		width: 42%;
	}
}

@media screen and (max-width: 1457px) {
	div#site {
		margin-left: 15%;
		margin-left: 15vw;
		margin-right: 15%;
		margin-right: 15vw;
	}
	
	nav#menu ul {
		grid-template-columns: repeat(2, minmax(210px, 1fr));
	}
	
	aside.miniatures {
		display: block;
		width: 98%;
		height: 185px;
		float: none;
		margin-bottom: 2%;
	}
		
	section#intro img {
		width: 70%;
	}
	
	div#sociaux {
		position: relative;
		bottom: 40px;
		right: 5%;
		float: right;
	}
}

@media screen and (max-width: 889px) {
	div#site {
		margin-left: 10%;
		margin-left: 10vw;
		margin-right: 10%;
		margin-right: 10vw;
	}

	div#diapo-chapeau h2 {
		line-height: 42pt;
		font-size: 28pt;
	}
	
	section#intro img {
		width: 80%;
	}
}

@media screen and (max-width: 799px) {
	div#site {
		margin-left: 0;
		margin-right: 0;
	}
	
	body > header > h1 {
		padding-left: 12.5%;
	}
		
	nav#menu-magic {
		display: none;
	}
	
	section#intro img {
		width: 100%;
	}
}

@media screen and (max-width: 630px) {

	div#diapo-chapeau h2 {
		line-height: 24pt;
	}
	
	nav#menu ul {
		display: block;
	}
	
	.flotant-droit {
		width: 98%;
		max-width: none;
		float: none;
	}
}

@media screen and (max-width: 599px) {

	body > header > h1 {
		padding-left: 7%;
	}

	div#diapo-chapeau h2 {
		font-size: 18pt;
	}

	div#diapo-chapeau p {
		line-height: 15px;
	}

	figure#EFC-logo, figure#Facebook-logo {
		width: auto;
	}

	aside.miniatures {
		display: none;
	}
	
	div#sociaux {
		bottom: 100px;
	}
	div#sociaux figcaption {
		width: 150px;
	}
}

@media screen and (max-width: 350px) {

	div#diapo-chapeau h2 {
		font-size: 14pt;
	}
}

@media screen and (max-width: 442px), screen and (max-height: 442px) {
	
	div#site {
		margin-top: 60px;
	}
	
	body > header {
		height: 60px;
	}
	
	body > header > h1 {
		font-size: 23pt;
		line-height: 57px;
		padding-left: 4%;
		height: 60px;
	}

	body > footer {
		position: static;
	}
}
