* {
	box-sizing:border-box;	
}
html {
	font-size:62.5%;
}
body {
	font-size:1.6rem;
	font-family:Arial, Helvetica, sans-serif;
	line-height:1.5;
	margin:0;
}
hgroup {
	font-family: 'Sarabun', sans-serif;	
}
h1 {
    font-size:3.2rem;
    margin: 2.6rem 0;
}
h2 {
    font-size: 2.8rem;
    margin: 2rem 0;
}
h3 {
	font-size:2.2rem;
    margin: 1.8rem 0;
}
a, a:hover {
	text-decoration:none;
}
img, iframe {
	max-width:100%;
	height:auto;
}
/************/
/** CLASSES */
/***********/
.flexContainer {
	display:flex;
	flex-flow:row wrap
}
.flexContainer > * {
	flex:1;
}
.flex-column > * {
    flex:1;
}
:root{
    --blue-light: rgb(0, 159, 227);
    --blue-mid: rgb(0, 111, 158);
    --blue-dark: rgb(0, 73, 127);
    --yellow: rgb(243, 146, 0);
    --orange: rgb(234, 91, 12);
}
.blue-light { background-color: var(--blue-light); }
.blue-mid { background-color: var(--blue-mid); }
.blue-dark { background-color: var(--blue-dark); }
.orange { background-color: var(--orange); }
.yellow { background-color: var(--yellow); }

#main {
    overflow: hidden;
    position: relative;
}
/*************/
/** HEADER **/
/************/
header.flexContainer {
	min-height:100vh;
	position:relative;
	color:#fff;
	text-align:center;
	flex-flow:column nowrap;
}
header.flexContainer:hover::before {
	filter: blur(4px);
  	-webkit-filter: blur(4px);
}
header::before {
	content:'';
	display:block;
	position:absolute;
	top:0;
	left:0;
	height:100%;
	width:100%;
	background:url(img/header-back.jpg) no-repeat 50% 50% / cover;
	transition: all 0.5s ease-in;
}
header::after, #quiSlide::before  {
	content:'';
	display:block;
	position:absolute;
	top:0;
	left:0;
	height:100%;
	width:100%;
	background-color:rgba(0,54,69,0.4);
	mix-blend-mode: multiply;
}
header > div, header > footer {
    position: relative;
	z-index:10;
}
header > div.flexContainer {
    justify-content: center;
    align-items: center;
	padding:1rem;
}
header > div.flexContainer > div.flexContainer {
    flex-flow: column nowrap;
    justify-content: center;
    align-content: center;
    align-items: center;
    padding: 0.5rem 1rem;
    transition: opacity 1s ease;
}
img.logo {
    margin: .5rem;
    animation: slideBottomFade .4s 1 paused forwards .5s;
    position: relative;
    opacity: 0; bottom:2rem;
}
@keyframes slideBottomFade {
    0% { opacity: 0; bottom:2rem; }
    100% { opacity: 1; bottom:0; }
}
/** TITRES **/
.home header h1 {
	margin:1rem;
    font-size:4rem;
	font-weight:600;
    animation: slideTopScaleFade .4s 1 running forwards .9s;
    position: relative;
    opacity: 0; top:1rem; transform: scale(0.5);
}
@keyframes slideTopScaleFade {
    0% { opacity: 0; top:1rem; transform: scale(0.5); }
    100% { opacity: 1; top:0; transform: scale(1); }
}
.home header h2 {
	font-weight:200;
    align-self: stretch;
    display: flex;
    font-size:2.4rem;
    justify-content: center;
    margin: 0.5rem 0 8rem;
    position: relative;
    bottom: 2rem;
    opacity: 0;
    animation: marginIncrease 1s 1 forwards 1.3s;
}
header.flexContainer h2::before, header.flexContainer h2::after {
    content: "";
    display: block;
    background-color: #fff;
    width: 0;
    flex: 1;
    padding-right: 1rem;
    background-clip: content-box;
    height: 2px;
    align-self: center;
    
}
@keyframes marginIncrease {
    0% { margin-left:15rem; margin-right:15rem; opacity:0; bottom:2rem; }
    50% { opacity:1; }
    100% { margin-left:0; opacity:1; margin-right:0; bottom:0; }
}
header.flexContainer h2::after {
    padding-left: 1rem;
    padding-right: 0;
}

@media (min-width:980px) {
    .home header h1 {
        font-size:5.4rem;
    }
    .home header h2 {
        font-size:3.4rem;
    }
}
.wait {
    position: fixed;
    background-color: rgb(0,54,69);
    height: 100%;
    width: 100%;
    color: #fff;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;
    top: 0;
    left: 0;
    z-index: 1000;
}
.wait img {
    max-width: 100px;
}
/** BOUTONS **/
.btns.flexContainer {
    flex-flow: column nowrap;
}
.btn-menu-g {
    margin-bottom: 20px;
    padding-bottom: 10px;
    position: relative;
}
.btn-menu-g::after {
    content: '';
    display: block;
    height: 2px;
    width: 120%;
    background-color: #fff;
    position: absolute;
    bottom: -5px;
    left: -10%;
}
.btn-menu-g span {
    line-height: 30px;
}
.contBtnW {
    width:30px;
    margin-right: 1rem;
}
.btn-menu-g:hover .btnW {
    /*animation: scaleBtnW 0.2s 4 normal;*/
}
.btnW {
    background-color: #fff;
    width: 6px;
    margin: 2px;
    height: 5px;
    flex:1 1 5px;
}
.scaleBtnWAnim {
    animation: scaleBtnW 0.2s 4 normal 2.4s;
}
@keyframes scaleBtnW {
    0% { transform: scale(1); }
    100% { transform: scale(1.5); }
}

.btnW:nth-child(2) { animation-delay: 2.1s; }
.btnW:nth-child(3) { animation-delay: 2.2s; }
.btnW:nth-child(4) { animation-delay: 2.3s; }
.btnW:nth-child(5) { animation-delay: 2.4s; }
.btnW:nth-child(6) { animation-delay: 2.5s; }
.btnW:nth-child(7) { animation-delay: 2.6s; }
.btnW:nth-child(8) { animation-delay: 2.7s; }
.btnW:nth-child(9) { animation-delay: 2.8s; }

.btnOrange.btn-video {
	background-color:rgb(222,95,24);
}
.glitchAnim {
    animation: glitch-anim-text 1s linear 1 .2s;
}
@keyframes glitch-anim-text {
	0% { 
		transform: translate3d(calc(-1 * '5px'),0,0) scale3d(-1,-1,1);
		-webkit-clip-path: polygon(0 20%, 100% 20%, 100% 21%, 0 21%);
		clip-path: polygon(0 20%, 100% 20%, 100% 21%, 0 21%);
	}
	2% {
		-webkit-clip-path: polygon(0 33%, 100% 33%, 100% 33%, 0 33%);
		clip-path: polygon(0 33%, 100% 33%, 100% 33%, 0 33%);
	}
	4% {
		-webkit-clip-path: polygon(0 44%, 100% 44%, 100% 44%, 0 44%);
		clip-path: polygon(0 44%, 100% 44%, 100% 44%, 0 44%);
	}
	5% {
		-webkit-clip-path: polygon(0 50%, 100% 50%, 100% 20%, 0 20%);
		clip-path: polygon(0 50%, 100% 50%, 100% 20%, 0 20%);
	}
	6% {
		-webkit-clip-path: polygon(0 70%, 100% 70%, 100% 70%, 0 70%);
		clip-path: polygon(0 70%, 100% 70%, 100% 70%, 0 70%);
	}
	7% {
		-webkit-clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%);
		clip-path: polygon(0 80%, 100% 80%, 100% 80%, 0 80%);
	}
	8% {
		-webkit-clip-path: polygon(0 50%, 100% 50%, 100% 55%, 0 55%);
		clip-path: polygon(0 50%, 100% 50%, 100% 55%, 0 55%);
	}
	9% {
		-webkit-clip-path: polygon(0 70%, 100% 70%, 100% 80%, 0 80%);
		clip-path: polygon(0 70%, 100% 70%, 100% 80%, 0 80%);
	}
	9.9% {
		transform: translate3d(calc(-1 * '5px'),0,0) scale3d(-1,-1,1);
	}
	10%, 100% {
		transform: translate3d(0,0,0) scale3d(1,1,1);
		-webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
	}
}

.btn-video, .btn-menu-g, .closeVideo, .closeMenu {
	display:flex;
	padding: 0.5rem;
    cursor: pointer;
}
.btn-video::before {
    content: url(img/btn-video-play.png);
    height: 41px;
}
.btn-menu-g::before, .btn-video::before, .btn-menu-g span, .btn-video span {
	display: inline-block;
    padding: 0 0.5rem;
}
.btn-video span {
    line-height: 40px;
}
/************/
header > footer.flexContainer {
	background-color:rgba(0,54,69,0.4);
	flex: 0 1 auto;
	text-align:left;
	justify-content:space-between;
}
header > footer.flexContainer a {
	color:#fff;
}
.navFooter, .share {
    padding: 0 2rem;
}
.share {
    text-align: right;
	background-color:rgba(0,54,69,0.4);
	flex:0 1 auto;
    font-size: 0;
}
.navFooter span, .share span, .navFooter a, .share a {
    padding: 2rem 0.5rem;
    display: inline-block;
    font-size: 1.6rem;
    cursor: pointer;
}
/******************/
/** transitions **/
/****************/
.overlay {
    position: absolute;
    width: 100%;
    height: 100%;  
}
.overlay.black {
    top: 200%;
    left: 200%;
    background-color: rgb(0,0,0);
    transform: rotate(-45deg) scale(3);
    transition: all 0.6s ease 0.5s;
}
.overlay.orange {
    top: 200%;
    right:220%;   
    transform: rotate(45deg) scale(3);
    background-color: var(--orange);
    transition: all 0.6s ease;
}
/**********************/
/* video full screen */
/********************/
#video-fond {
    overflow: hidden;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0;
    transform: scale(0.1);
    width: 100%;
    height: 100%;
    z-index: 20;
    transition: all 0.8s ease;
}
#video-fond > video {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
/* 1. Pas de support d'object-fit */
@media (min-aspect-ratio: 16/9) {
  #video-fond > video {
    height: 300%;
    top: -100%;
  }
}
@media (max-aspect-ratio: 16/9) {
  #video-fond > video {
    width: 300%;
    left: -100%;
  }
}
/* 2. En cas de support d'object-fit, écrase les règles en (1) */
@supports (object-fit: cover) {
  #video-fond > video {
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    object-fit: cover;
  }
}
.menuCtx {
    position: relative;
    text-align: center;
    justify-content: flex-end;
    align-items: center;
    z-index: 20;
    color: #fff;
    bottom: 5.4rem;
    transition: bottom 2s ease 1.2s;
}
.menuCtx > div {
    flex: 0 1 auto;
    margin: 0 1rem;
}
.menuCtx > div span {
    margin: 0 0.5rem;
}
/*************/
/*** NAV ***/
/************/
#navigation {
    position: absolute;
    padding: 0.5rem;
    background-color: #000;  
    overflow: hidden;
    left: 0;
    top:0;
    transform: translateY(100%);
    width: 100%;
    min-height: 100%;
    z-index: 10;
    display: flex;
    flex-flow: column nowrap;
    justify-content: flex-start;
    transition: transform ease-out 1s;
}
#navigation h2 {
    position: relative;
    z-index: 10;
    height: 100%;
    width: 100%;
    margin: 0;
}
#navigation .row {
    display: block;
}
h2 a {
    height: 100%;
    position: static;
    width: 100%;
    color:#fff;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: all 0.5s ease;
    padding: 2rem !important;
}
@media (min-width:768px) {
    h2 a {
        position: absolute;
        padding: 0;
    }
    #navigation .row {
        display: flex;
    }
}
article:not(#qui) h2 a:hover {
    font-weight:600;
    color:#fff;
}
.row { padding: 0; margin: 0; }

#navPrimary div.content { padding: 0; }

/**********/
/** CUBES **/
/***********/
.cube {
    min-width:25%;
    min-height: 45px;
    background-clip: content-box;
    padding: 0.5rem;
    position: relative;
}
.cube.w50 {
    min-width: 50%;
}
.cube.w70 {
    min-width: 70%;
}
.cube.w100 {
    min-width: 100%;
}
.cubeContainer, #navSecond .cubeContainer:last-of-type .flexContainer:last-of-type {
    display: none;
}
@media (min-width:768px) {
    .cubeContainer, #navSecond .cubeContainer:last-of-type .flexContainer:last-of-type {
        display: flex;
    }
}
.cubeContainer.flexContainer {
    margin: 0;
}
.cubeContainer.col-md-4 {
    padding: 0;
}
#navPrimary .flexContainer.cube .cube, #navSecond .flexContainer.cube .cube {
    position: absolute;
    min-height: auto;
}
#navPrimary .flexContainer.cube .cube:first-child {
    padding: 0 0.5rem 0 0 !important;
    width: calc(50% - 0.5rem);
}
#navPrimary .flexContainer.cube .cube:nth-child(2) {
    padding: 0 0 0 0.5rem !important;
    right: 0.5rem;
    width: calc(50% - 0.5rem);
}
#navPrimary .flexContainer.cube .cube:last-child {
    padding: 0 !important;
    bottom: 0.5rem;
    height: calc(50% - 1.5rem);
    width: calc(100% - 1rem);
}

#navSecond article, #navPrimary article {
    padding: 0.5rem;
    position: relative;
}
#navSecond .flexContainer.cube .cube:first-child {
    padding: 0 !important;
    width: calc(100% - 1rem);
    height: calc(50% - 1.5rem);
}
#navSecond .flexContainer.cube .cube:nth-child(2) {
    padding: 0 0.5rem 0 0 !important;
    left: 0.5rem;
    bottom:0.5rem;
    width: calc(50% - 0.5rem);
}
#navSecond .flexContainer.cube .cube:last-child {
    padding: 0 0 0 0.5rem !important;
    right: 0.5rem;
    bottom:0.5rem;
    width: calc(50% - 0.5rem);
}
#navSecond .cubeContainer.flexContainer {
    padding: 0 0.5rem;
}
/**************/
/** CARDS **/
/************/
.row article {
    background-clip: content-box !important;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    position: relative;
}
.row article::after {
    content:'';
    display: block;
    position: absolute;
    height: calc(100% - 1rem);
    width: calc(100% - 1rem);
    background-color:rgba(0,54,69,0.7);
	mix-blend-mode: overlay;
    transition: background-color 0.5s ease-in;
}
.row article:hover::after {
    background-color:rgba(0,54,69,0);
}
/** backgrounds **/
#ecole { background: url(img/ecole.jpg) no-repeat 50% 50%; background-size: cover; }
#college { background: url(img/college.jpg) no-repeat 50% 50%; background-size: cover; }
#lycee { background: url(img/lycee.jpg) no-repeat 50% 50%; background-size: cover; }
#etablissement { background: url(img/etablissement.jpg) no-repeat 50% 50%; background-size: cover; }
#restauration { background: url(img/restauration.jpg) no-repeat 50% 50%; background-size: cover; }
#actus { background: url(img/actualites.jpg) no-repeat 50% 50%; background-size: cover; }
#contact { background: url(img/contact.jpg) no-repeat 50% 50%; background-size: cover; }
#pastorale { background: url(img/pastorale.jpg) no-repeat 50% 50%; background-size: cover; }
#inscription { background: url(img/inscriptions.jpg) no-repeat 50% 50%; background-size: cover; }
#qui { background: url(img/qui-sommes-nous.jpg) no-repeat 50% 50%; background-size: cover; }
#liens { background: url(img/liens.jpg) no-repeat 50% 50%; background-size: cover; }
#qui h2 {
    margin: 0;
}
#qui h2 a:hover {
    color: #fff;
}
#qui a {
    position: static;
    padding: 1rem;
}
#qui h2 a:hover {
    color: #fff;
}
article#restauration {
    flex: 2;
}
#etablissement, #qui, #pastorale, #inscription, #ecole, #college, #liens, #lycee, #actus, #restauration, #contact { 
    
}
.scaleNavItem {
    transform: scale(0.1); opacity: 0;
    animation: scaleNavItem 1s normal 1 ease-out running forwards;
}
.scaleNavItemReverse {
    
    animation: scaleNavItemReverse 1s normal 1 ease-in running forwards;
}
@keyframes scaleNavItem {
    0% { transform: scale(0.1); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}
@keyframes scaleNavItemReverse {
    0% { transform: scale(1); opacity: 1; }
    100% { transform: scale(0.1); opacity: 0; }
}
#qui { animation-delay: 0.2s; }
#pastorale { animation-delay: 0.4s; }
#inscription { animation-delay: .6s; }
#ecole { animation-delay: .8s; }
#college { animation-delay: 1s; }
#liens { animation-delay: 1.2s; }
#lycee { animation-delay: 1.4s; }
#actus { animation-delay: 1.6s; }
#restauration { animation-delay: 1.8s; }
#contact { animation-delay: 2s; }
/***************************/
/*** QUI SLIDE ***/
/*************************/
#quiSlide {
    position: absolute;
    padding: 4rem;
    color: #fff;
    background: url(img/etablissement.jpg) #000 no-repeat;
    background-size: cover;
    overflow: hidden;
    left: 0;
    top:0;
    transform: translateY(-100%);
    width: 100%;
    min-height: 100%;
    z-index: 10;
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    transition: transform ease-in-out 1s;
}
#quiSlide::before  {
	background: -moz-linear-gradient(left, rgba(0,54,69,1) 0%, rgba(0,54,69,1) 43%, rgba(0,54,69,0.63) 100%);
background: -webkit-linear-gradient(left, rgba(0,54,69,1) 0%,rgba(0,54,69,1) 43%,rgba(0,54,69,0.63) 100%);
background: linear-gradient(to right, rgba(0,54,69,1) 0%,rgba(0,54,69,1) 43%,rgba(0,54,69,0.63) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#003645', endColorstr='#a1003645',GradientType=1 );
}
.quiAfter  {
    position: absolute;
    top:0; left: 0;
    width: 100%; height:100%;
    opacity: 0;
background: -moz-linear-gradient(left, rgba(0,27,35,1) 0%, rgba(0,27,35,1) 43%, rgba(0,54,69,0.81) 100%);
background: -webkit-linear-gradient(left, rgba(0,27,35,1) 0%,rgba(0,27,35,1) 43%,rgba(0,54,69,0.81) 100%);
background: linear-gradient(to right, rgba(0,27,35,1) 0%,rgba(0,27,35,1) 43%,rgba(0,54,69,0.81) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001b23', endColorstr='#cf003645',GradientType=1 );
    transition:opacity 2s ease;
    mix-blend-mode: multiply;
}
#quiSlide article {
    position: relative;
    flex: 1 1 0;
    max-width: 600px;
    z-index: 10;
}
.closeWho {
    align-self: flex-start;
    padding: 1.4rem;
    position: relative;
    font-size: 3rem;
    cursor: pointer;
    line-height: 0.8;
    z-index: 10;
}
.quiPlus + p {
    height:0;
    overflow: hidden;
    opacity: 0;
    transition: all 1.5s ease;
}
.quiPlus {
    background-color: #212121;
    cursor: pointer;
    margin-bottom: 1rem;
    padding: 1rem;
    display: inline-block;
    transition: padding 1.5s ease;
}
/***** video *****/
.containerVideo {
    position: absolute;
    height: calc(100% - 1rem);
    width: calc(100% - 1rem);
    overflow: hidden;
    top: 0.5rem;
    left: 0.5rem;
}
.scaleBloc video {
    position: absolute;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    padding: 0;
    margin: 0;
    object-fit: cover;
}