@charset "UTF-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap');

html, body {
	height: 100%;
}
body { 
	margin: 0;
	font-size: 14px;
}

:root {
	--vspace: 80px;
	--jaune: #ffdd00;
	--text: #2c2b59;
	--screenh: calc(100vh - 90px - 60px);
}

* {
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	color: var(--text);
	box-sizing: border-box;         /* For IE and modern versions of Chrome */
	-moz-box-sizing: border-box;    /* For Firefox                          */
	-webkit-box-sizing: border-box;
	line-height: 1em;
    -webkit-user-drag: none !important;
    -webkit-touch-callout: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
}

main *, p {
	white-space:normal;
}
.material-symbols-outlined {
  font-variation-settings:
  'FILL' 1,
  'wght' 400,
  'GRAD' 0,
  'opsz' 24
}

.hidden {
	display: none;
}
div img, span img {
	max-width: 100%;
	height: auto;
}
span.scrollicon {
	display: inline-block;
	position: fixed;
	left: 50vw;
	bottom: 36px ;
	width: 36px;
	height: 36px;
	border: 1px solid #333;
	background: url(../img/scroll_h.svg)no-repeat left center;
	background-size: 400% auto;
	will-change: background-position;
	background-position: 0px 0;
	-webkit-animation-name: scrollicon;
          animation-name: scrollicon;
  -webkit-animation-timing-function: steps(3);
          animation-timing-function: steps(3);
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
}
@-webkit-keyframes scrollicon {
	0% {
		background-position: 0 0;
	}
	  100% {
	    background-position-x: -102px;
	  }
}

section.titre {
	position: relative;
    display: flex;
    flex-direction: column;  /* Alignement vertical */
    justify-content: center; /* Centre verticalement */
    align-items: center;      /* Centre horizontalement */
    height: 100vh;           /* Pour occuper toute la hauteur de l'écran */
    text-align: center;      /* Centrage du texte */
}
section.titre h2 {
	font-size: 5vw;
	margin: 1vh 0;
}
section.titre h3 {
	font-size: 3vw;
	margin: 1vh 0;
}
section.titre h4 {
	font-size: 2vw;
	margin: 1vh 0;
	max-width: 120vh;
	width: 80vw;
}
section.titre h5 {
	font-size: 1.5vw;
	margin: 1vh 0;
}

section.titre div.objet.flipenter {
	position: relative;
	width: 40vw;
	height: 40vh;
	max-width: 40vh;
	max-height: 40vw;
	cursor: grab;
	cursor: -moz-grab;
    cursor: -webkit-grab;
	display: none;
}
section.titre div.objet img {
	display: block;
	max-width: 100%;
	-webkit-filter: drop-shadow(0px 5px 5px rgba(0,0,0,.2));
	filter: drop-shadow(0px 5px 5px rgba(0,0,0,.2));
}

section.titre div.objet.flipenter {
    cursor: grab;
    cursor: -moz-grab;
    cursor: -webkit-grab;
}

section.titre div.objet.flipenter.dragging {
    cursor: grabbing;
    cursor: -moz-grabbing;
    cursor: -webkit-grabbing;
}


.flipenter img {
	position: absolute;
	left: 0;
	top: 0;
	display: none;
}
.flipenter img:nth-child(1) {
	display: block;
}

@media (orientation: portrait) {
	section.titre {
		padding: 0 20px;
	}
	section.titre h2 {
		font-size: 6vh;
	}
	section.titre h3 {
		font-size: 4vh;
	}
	section.titre h4 {
		font-size: 2vh;
	}
	section.titre h5 {
		font-size: 1.5vh;
	}
}


/*------------------------- HEADER PAGE ---------------------*/
header {
	position: fixed;
	top: 0;
	width: 100%;
	height: 60px;
	background: #fff;
	overflow: hidden;
	z-index: 99;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}
header h1 {
	position: relative;
}
header h1 a {
	font-size: 24px !important;
	line-height: 42px;
	padding: 0 30px 0 60px;
	font-family: 'Montserrat', sans-serif;
	font-weight: 600;
	font-size: 16px;
	color: var(--text);
	display: inline-block;
	text-decoration: none;
	z-index: 999;
}

header span.active {
	color: #9900FF;
}
div.postheader {
	display: block;
	height: 60px;
}

header a.home {
	display: inline-block;
	text-decoration: none;
	position: absolute;
	left: 20px;
	top: 22px;
	color: var(--text);
	z-index: 999;
}
header a.home::before {
	content: '\e88a';	
	font-family: 'Material Symbols Outlined';
	font-size:30px;
}

header a.sarcelles, header a.estienne, header a.licra {
	display: inline-block;
	text-decoration: none;
	position: absolute;
	top: 22px;
	color: #000;
	z-index: 99;
}
header a img {
	height: 40px;
	width: auto;
}

header a.estienne {
	right: 70px;
	top: 12px;
}
header a.licra {
	right: 360px;
	top: 7px;
}
header a.licra img {
	height: 50px;
}
header a.sarcelles {
	right: 200px;
	top: 15px;
}
header a.sarcelles img {
	height: 28px;
}


@media (max-width: 1300px) {
	header a.estienne, header a.licra, header a.sarcelles, header h1 span {
			display: none;
	}
	header.active a.estienne, header.active a.licra, header.active a.sarcelles {
		position: fixed;
		display: inline-block;
		top: auto;
		bottom: 70px;
		opacity: 0;
		animation: fadeIn 1s ease-in .5s forwards; 
		
	}
	
}


@media (max-width: 500px) {
	header h1 {width: calc(100% - 60px); }
	header h1 a { line-height: 22px; }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}


/*----------------------- burger menu ---------------------*/

#burger {
	display: inline-block !important;
  	position: absolute;
	cursor: pointer;
	width: 50px;
	text-indent: -9999em;
	height: 50px;
	z-index: 99;
	top: 25px;
	right: 10px;
}
#burger.desktopactive {
	opacity: 1;
	visibility:visible;
	transition: opacity 1s ease-in-out 0s;
}
#burger span {
	margin-top: 5px;
	margin-left:8px;
	height: 50px;
}

#burger span, #burger span:before, #burger span:after {
  position: absolute;
  display: block;
  cursor: pointer;
  border-radius: 1px;
  height: 3px;
  width: 30px;
  background: #2c2b59;
  content: '';
}
#burger span:before
 {
  top: -7px;
}
#burger span:after
 {
  bottom: -7px; 
}
#burger span, #burger span:before, #burger span:after {
  transition: all 500ms ease-in-out;
}

#burger.active span {
  background-color: transparent;
}
#burger.active span:before, #burger.active span:after {
  top: 0;
}
#burger.active span:before{
  transform: rotate(45deg);
}
#burger.active span:after {
  transform: rotate(-45deg);
}

/*-------------nav---------------*/
nav  {
	position: fixed;
	right: 0;
	bottom: 100%;
	padding: 0px 20px;
	display: flex;
	justify-content:center;
	align-items:center;
	background: var(--jaune);
	height: 100vh;
	width: 100%;
	transition: all .5s ease-in-out 0s;
}
header.active nav {
	bottom: 0;
}

nav ul {
	list-style:none;
	margin: 0;
	padding: 0;
}
nav ul li {
	display:block;
	margin: 0 5px;
}
nav li a {
	font-size: 1.2em;
	display: inline-block;
	padding: 1vh 0;
	text-decoration: none;
	color: var(--text);
}
nav li a.chapitre {
	font-size: 2em;
}
nav li a.credits {
	margin-top: 2vh;
}


/*------------------------- FOOTER PAGE ---------------------*/
footer {
	position: fixed;
	bottom: 0;
	width: 100%;
	height: 30px;
	background: #fff;
	overflow: hidden;
	z-index: 9;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}
footer ul::before {
	content: ' ';
	display: inline-block;
	position: absolute;
	top: 12px;
	left: 30px;
	width: calc(100% - 60px);
	height: 6px;
	/*background: turquoise;*/
	z-index: -1;
}

footer ul {
	list-style: none;
	display: flex;
	width: 100%;
	margin: 0;
	padding: 4px 30px;
	-webkit-justify-content: space-around;
}
footer ul li a {
	display: inline-block;
	background: #fff;
	font-size: .8em;
	text-decoration: none;
	font-weight: 600;
	padding: 5px;
	color: transparent;
}
footer ul li a::before {
	content: ' ';
	display: inline-block;
	width: 10px;height: 10px;
	background: var(--text);
	border-radius: 50%;
	opacity: .25;
}
footer ul li a.active::before {
	opacity: 1;
}

@media (orientation: portrait) {
	footer ul {
		padding: 4px 10px;
	}
	footer ul li a {
		font-size: .7em;
	}
}
/*----------------------- COMMONS  -------------*/
main {
	padding-top: 60px;
	background: #ddd;
	min-height: calc(100vh - 90px);
}

section {
	position: relative;
	min-height: calc(100vh - 90px);
    display: block;
	text-align: center;
}
section div.wrapper {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
section img.back {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
body section > a.cliquable {
	height: 100%;
	max-height: 100%;
}
body section > a.cliquable img{
	position: relative;
	max-height: 100%;
	width: auto;
}
.cartouche {
	position: absolute;
	top: 10%;
	left: 10%;
	width: 50vw;
	text-align: left;
	background: #fff;
	padding: 20px;
	line-height: 1.5em;
}
/*------------------------- Scroll icons ---------------------*/
a.scrolldown, a.scrollright, a.scrollnext {
	display: block;
	position: absolute;
	width: 100%;
	bottom: calc(30px + 3vh);
	text-align: center;
	text-decoration: none;
	animation: scrolldown 1.5s infinite ease-in-out;
}
a.scrolldown::before, a.scrollnext::before,a.scrollright::before  {
	content: '\e313';
	font-family: 'Material Symbols Outlined';
	font-size:5vh;
}
a.scrollright {
	animation: scrollright 1.5s infinite ease-in-out;
}
a.scrollright::before { 
	content: '\e5cc';
}

@keyframes scrolldown {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(+2vh);
  }
  100% {
    transform: translateY(0);
  }
}
@keyframes scrollright {
  0% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(+2vh);
  }
  100% {
    transform: translateX(0);
  }
}


/*------------------------- cliquables ---------------------*/
@keyframes glow {
  0% {
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
  }
  50% {
    filter: drop-shadow(0 0 15px rgba(255, 255, 255, 1));
  }
  100% {
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.8));
  }
}
/*------------------------- animations commons ---------------------*/
.anim {
	position: absolute;
	 user-select: none !important;
}
/*------------------------- éléments cliquables + infowindow ---------------------*/

img {
	    -webkit-touch-callout: none;
     -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

}
a.cliquable {
  display: inline-flex;
  align-items: center;
  position: absolute;
}
a.cliquable img {
  animation: glow 1.5s infinite ease-in-out;
  max-height: 100%;
}
section:not(.active) div.infowindow {
	opacity: 0;
}
div.infowindow {
	position: fixed;
	visibility: hidden;
	opacity:0;
	display: inline-flex;
	align-items: center;
	top: calc(10vh + 80px);
	left: calc((100vw - 60vh)/2);
	aspect-ratio:1/1;
	width: 60vh;
	max-width: 80vw;
	background: url(../img/case.svg)no-repeat center center;
	background-size: 100%;
	transition:all .5s;
}

@media (orientation: portrait) {
	div.infowindow {
		left: 10vw;
	}
}
div.infowindow.active {
	visibility: visible;
	opacity:1;
	cursor:pointer;
}
div.infowindow div.content {
	display: inline-flex;
	align-items: center;
	padding: 2vh 5vw;
	height: 100%;
	line-height: 1.5em;
	font-size: 2vh;
	text-align: center;	-webkit-user-select: none;
    -webkit-touch-callout: none;
     -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;

}
div.infowindow a.close {
	position: absolute;
	top: 15px;
	right: 15px;
	width: 30px;
	height: 30px;
	background:url('../img/close.png') no-repeat center center;
	background-size: contain;
}

/*------------------------- flipping ---------------------*/


.flipping img {
	position: absolute;
	display: none;
}
.flipping img:nth-child(1) {
	display: block;
}




/* ---------------- LAYOUT EXISTANT ---------------- */

body.homepage main {
	display: flex;
	position: absolute;
	top: 60px;
	height: calc(100% - 60px);
	width: 100vw;
	overflow-x: hidden;
	padding: 0;
	background: #fff;
	flex-direction: column;
}
body.homepage footer { display: none; }

@media (max-aspect-ratio: 1/1.25)  {
	body.homepage main {
		height: calc(100% - 90px);
	}
	body.homepage footer {
		display: block;
	}
}

/* ---------------- SECTION SOMMAIRE ---------------- */

section.sommaire {
	position: relative;
	width: fit-content;
	height: calc(100vh - 60px - 15vh);
	min-height: auto;
	aspect-ratio: 1300/813;
}

section.sommaire img.back {
	display: block;       
	height: calc(100vh - 60px - 15vh);          
	width: auto;           
	max-width: none; 
	min-width: 100vw;
}

section.sommaire ul {
	position: absolute;
	inset: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (orientation: portrait) {
	section.sommaire, section.sommaire img.back {
		height: calc(100vw / 1.25);
	}
}

/* ---------------- ZONES ---------------- */

section.sommaire li.chapitre {
	position: absolute;
}

section.sommaire li.chapitre a {
	display: block;
	width: 100%;
	height: 100%;
	text-indent: -9999px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}
.chapitre::after {
	content: ' ';
	position: absolute;
	bottom: 0;
	display: inline-block;
	width: 100%;
	height: 50%;
	background-size: contain;
	background-repeat: no-repeat;
}

/* ---------------- POSITIONS (EN % DE L’IMAGE) ---------------- */
.chapitre1 { bottom: 36%;left: 50%;width: 10%;height: 20%; }
.chapitre1 a { background-image: url(../img/home_1_portrait.png); }
.chapitre1::after {
		bottom: -75%;
	left: -10%;
	height: 100%;
	width: 150%;
	background-image: url(../img/home_1_name.png);
}

.chapitre2 { bottom: 42%;left: 3%;width: 10%;height: 25%; }
.chapitre2 a { background-image: url(../img/home_2_portrait.png); }
.chapitre2::after {
	left: 30%;
	bottom: -10%;
	height: 60%;
	background-image: url(../img/home_2_name.png);
}

.chapitre3 { bottom: 58%;left: 20%;width: 11%;height: 15%; }
.chapitre3 a { background-image: url(../img/home_3_portrait.png); }
.chapitre3::after {
	bottom: -30%;
	left: -20%;
	background-image: url(../img/home_3_name.png);
}

.chapitre4 { bottom: 78%;left: 50.5%;width: 7%;height: 14%; }
.chapitre4 a { background-image: url(../img/home_4_portrait.png); }
.chapitre4::after {
	bottom: -20%;
	left: 0;
	width: 150%;
	height: 30%;
	background-image: url(../img/home_4_name.png);
}

.chapitre5 { left: 17%;bottom: 9.5%;width: 11%;height: 22%; }
.chapitre5 a { background-image: url(../img/home_5_portrait.png); }
.chapitre5::after {
	bottom: -35%;
	left: 40%;
	height: 70%;
	width: 130%;
	background-image: url(../img/home_5_name.png);
}

.chapitre6 { bottom: 67%;left: 34.5%;width: 8%;height: 14%; }
.chapitre6 a { background-image: url(../img/home_6_portrait.png); }
.chapitre6::after {
	bottom: -30%;
	left: -30%;
	width: 120%;
	background-image: url(../img/home_6_name.png);
}

.chapitre7 { bottom: 48%;left: 62%;width: 10%;height: 19%; }
.chapitre7 a { background-image: url(../img/home_7_portrait.png); }
.chapitre7::after {
	bottom: -40%;
	left: 32%;
	width: 130%;
	height: 100%;
	background-image: url(../img/home_7_name.png);
}

.chapitre8 { left: 34%;bottom: 22%;width: 10%;height: 25%; }
.chapitre8 a { background-image: url(../img/home_8_portrait.png); }
.chapitre8::after {
	left: -22%;
	bottom: -38%;
	width: 130%;
	background-image: url(../img/home_8_name.png);
}
@media (min-aspect-ratio: 1.25/1) AND (max-aspect-ratio: 1.4/1)  {
	.chapitre7 { bottom: 8%;left: 46%; }
}

/* ---------------- ASIDE  ---------------- */

body.homepage aside {
	position: fixed;
		display: flex;
		justify-content:center;
		align-items:center;
		flex-grow: 1;
	width: 100%;
	bottom: 0;
	background: #ffdd00;
	z-index: 8;
	height: 15vh;
	padding: 10px 30px;
}


body.homepage aside div {
	margin-auto;
}
body.homepage aside div p {
	line-height: 1.5em;
	margin: 10pxh 0;
}
body.homepage aside h2 {
	font-size: 1.75em;
	margin: 0;
	display: block;
	text-align:center;
}
@media (orientation: portrait) {
	body.homepage aside {
		position: relative;
		height: auto;
	}
	body.homepage aside h2 {
		font-size: 3vh;
		line-height: 1.5em;
		margin: 20px 0;
	}
}


@media (min-aspect-ratio: 1.25/1)  {
	body.homepage aside {
		top: 60px;
		right: 0;
		width: 20vw;
		height: calc(100% - 90px);
		min-width: calc(100vw - (calc(100vh - 90px)*1.5));
	}
	body.homepage aside h2 {
		margin: 4vw 0;
	}
	section.sommaire, section.sommaire img.back {
		height: calc(100vh - 90px);
		min-width: 0;
	}
	body.homepage footer {
		display: block;
	}
}

@media (min-aspect-ratio: 1.25/1) AND (max-aspect-ratio: 1.6/1)  {
	body.homepage aside h2 {
		font-size: 2vw;
	}
}


/*------------------------- CREDITS ---------------------*/
body.credits main, body.savoirplus main {
	text-align: center;
	height: auto;
	min-height: 100%;
	padding-top: 100px;
	padding-bottom: 70px;
}
body.credits main section,body.savoirplus main section {
	text-align: left;
	margin: auto;
	display: block;
	max-width: 800px;
	padding: 80px 30px;
	font-weight: normal;
	height: auto;
	min-height: auto;
	max-height: auto;
}
body.credits section.jaune {
	background: var(--jaune);
	width: calc(100% - 60px);
	margin: 30px auto;
	padding: 10px 30px;
}
body.savoirplus section.jaune {
	background: var(--jaune);
	width: calc(100% - 60px);
	margin: 30px auto;
	padding: 10px 30px;
}
body.credits section.texte {
	width: calc(100% - 60px);
	margin-top: 0px;
	margin-bottom: 60px;
	padding: 10px 30px;
}
body.savoirplus section.texte {
	width: calc(100% - 60px);
	padding: 10px 30px;
}
body.credits section.texte p , body.credits section.texte p *{
	font-size: 14px; line-height: 1.5em;
}

body.credits main  h2,body.savoirplus main  h2 {
	line-height:1.5em;
	font-size: 1.25em;
}
body.savoirplus main section h2 {
	padding: 0 30px;
}

body.credits main section h3,body.savoirplus main section h3 {
	line-height:1em;
	font-size: 1.15em;
}
body.credits main section .encadre,body.savoirplus main section .encadre {
	background: #f2f2f2;
	padding: 30px;
}	
body.credits main section p,body.savoirplus main section p, body.credits main section p *,body.savoirplus main section p * {
	line-height:1.75em;
}	


