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

@font-face {
  font-family: 'Roboto';
  src: url('typo/Roboto.woff2') format('woff2 supports variations'),
       url('typo/Roboto.woff2') format('woff2-variations');
  font-weight: 100 900;  /* active toute la plage de poids */
  font-style: normal;
  font-display: swap;
}

/* CSS Document */
html,body{
margin:0;
padding:0;
background-color:#ffffff;
color:#000000;
font-family:'Roboto';
font-size:18px;
	font-weight: 200;
}

/* --- typo ----------------------------------------------------------- */
a{
text-decoration:none;
}
p{ margin: 0; padding: 0; }

.titreh1{
	margin: 0;
	padding: 0;
	font-size: 1.5em;
	color: #000000;
	text-decoration: none;
	position: relative;
	float: left;
	width: 100%;
	text-align: center;
	font-weight: 200;
}
.titreh1 a{ color: #000000; text-decoration: none;}

.titreh2{
	margin: 0;
	width: 100%;
	text-align: center;
	color: #000000;
	font-size: 1em;
	font-weight: normal;
	text-transform: uppercase;
	background-color: rgba(0,0,0,0.05);
	border-bottom: 1px solid #999999;
	padding: 5px 0px;
}

.categorieTitre{
	font-size: 0.7em;
	color: #666666; 
}

.orange{ color:#f96606; }
.gris{ color: #333333; }

/* IMAGE ----------------------------------------- */
.imMW{ max-width: 100%; height: auto; display: block; }
.imMH{ max-height: 100%; width: auto; display: block; }
.imCover { width: 100%; height: 100%; object-fit: contain; display: block; }

.iconeTxt{ width: 30px; height: 30px; }

/* -------------------------------------------------------------------- */
#Debut{
	width: 100%;
	height: 60px;
	position: fixed;
	float: left;
	transition: all 0.4s;
	z-index: 5;
}

.bandeauPrincipal{
width:100%;
height:100%;
background-color:#FFFFFF;
box-shadow: 0px 0px 5px #cccccc;
text-align:center;
display: flex;
justify-content: space-between;
align-items: center;

position:relative;
float:left;
z-index:10;
}

.nomTop{
	width: 150px;
	font-size: 0.8em;
	text-align: left;
	font-weight: 200;
	position: relative;
	float: left;
	margin: 10px;
}
.nomTop img{
	max-width: 100%; 
	height: auto; 
	display: block;
}
.traitTop{
	width: 100%;
	height: 1px;
	background-color: #dddddd;
	position: relative;
	float: left;
	margin: 4px 0;
}

.menuP{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap:10px;
	margin: 0 5px;
	padding: 0 10px;
	position: relative;
	float: left;
}
.bMenu{
	width: auto;
	min-width: 70px;
	height: 30px;
	font-size: 0.8em;
	color: #000000;
	font-weight: 400;
	text-decoration: none;
	text-transform: uppercase;
	border-radius: 6px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	gap:5px;
	position: relative;
	float: left;
	padding: 5px;
	z-index: 5;
}
.bMenu.insta{ min-width: 0; height: 25px; }
.bMenu.copyr{ min-width: 0; height: 20px; }
.bMenu.close{ display: none; min-width: 0; height: 30px; }
.logoMenu{
	width: 50px;
	max-height: 50px;
	position: relative;
	float: left;
}
.boutMobile{ display: none; }
.bLegal{
	width: calc(100% - 10px);
	font-size: 0.8em;
	border: 1px solid #dddddd;
	background-color: #dddddd;
	border-radius: 6px;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	position: absolute;
	float: left;
	padding: 5px 0;
	bottom: 5px;
	left: 50%;
	transform: translateX(-50%);
}

.ssmenu{
	width: 250px;
	height: 100vh;
	background-color: #000000;
	color: #ffffff;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	position: absolute;
	float: left;
	left: -250px;
	transition: all 0.4s;
	z-index: 9;
}
.ssmenu.active{ left: 120px; }
.titresmenu{
	width: 100%;
	text-align: center;
	font-size: 1.1em;
	font-weight: bold;
	position: relative;
	float: left;
	color: #999999;
	border-bottom: 1px solid #333333;
	padding: 5px 0;
}

.ssmenu a{
	width: 100%;
	height: 30px;
	color: #ffffff;
	text-decoration: none;
	position: relative;
	float: left;
	display: block;
}
.bsmenu{
	width: 100%;
	height: 30px;
	display: flex;
	align-items: center;
	border-bottom: 1px solid #333333;
	position: relative;
	float: left;
	cursor: pointer;
}
.bsmenu p{
	position: relative;
	padding: 0 10px;
	z-index: 2;
}
.bsmenu .fdBarre{
	width: 0;
	height: 100%;
	background-color: #666666;
	position: absolute;
	float: left;
	transition: all 0.2s;
	z-index: 1;
}
.bsmenu:hover .fdBarre{ width: 100%; }

.boutBack{
	width: 40px;
	aspect-ratio:4/3;
	/*border: 1px solid #dddddd;
	border-radius: 6px;*/
	background-color: #ffffff;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	float: left;
	left: 0;
	top: 0;
	padding: 5px 0;
	margin: 5px 0;
	z-index: 5;
}
.boutBack img{ max-width: 80%; height: auto; display: block; }

#Page{
	width: calc(100% - 10px);
	height: calc(100dvh - 70px);
	display: flex;
	justify-content: flex-start;
	align-items: center;
	flex-direction: column;
	position: relative;
	float: left;
	top: 70px;
	margin-left: 5px;
	z-index: 1;
	transition: all 0.4s;
}

.paraContenu{
	width: 100%;
	position: relative;
	float: left;
	margin: 40px 0;
}


/* ACCUEIL ----------------------- */
.photoAcc{
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	float: left;
}

/* QUI -------------------------- */
.blocPresent{
	width: calc(100% - 10px);
	max-width: 800px;
	height: 100%;
	max-height: 420px;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap:20px;
	position: absolute;
	float: left;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
.photoPresent{
	position: relative;
}
.txtPresent{
	max-width: 450px;
	text-align: justify;
	position: relative;
	font-weight: 200;
}

/* GALERIE --------------- */
.titrePage{
	width: 100%;
	height: 60px;
	position: relative;
	float: left;
	display: flex;
	justify-content: center;
	align-items: center;
	transition: all 0.4s;
	margin-bottom: 15px;
}

.galerieCol {
	column-count: 4;            /* 4 colonnes */
	column-gap: 10px;           /* espace entre colonnes */
	width: 100%;
	max-width: 1400px;
	position: relative;
	float: left;
}

.caseGalerie {
	display: inline-block;
	width: 100%;
	margin-bottom: 10px;
	break-inside: avoid; /* évite les coupures entre colonnes */
	overflow: hidden;
	position: relative;
}

.caseGalerie img{
	width: 100%;
	height: auto;
	display: block;
	object-fit: cover;
	transition: transform 0.4s ease;
	z-index: 1;
}

.caseGalerie .nomCase{
	width: 100%;
	display: flex;
	background-color: rgba(0,0,0,0.5);
	justify-content: center;
	align-items: flex-start;
	gap:0;
	position: absolute;
	float: left;
	bottom: 10%;
	opacity: 0;
	transition: all 0.8s ease;
	z-index: 2;
}
.caseGalerie .nomCase p{
	width:calc(100% - 30px);
	padding: 5px 15px;
	/*border-top:1px solid #ffffff;
	border-bottom: 1px solid #ffffff;*/
	text-align: center;
	color: #ffffff;
	font-weight: 400;
	text-decoration: none;
	text-transform: lowercase;
}
.caseGalerie .nomCase p::first-letter{
	text-transform: uppercase;
}
.caseGalerie:hover .nomCase{ opacity: 1; }

/* DETAILS -------------------------- */

.zoneDefil{
	width: 100%;
	height: calc(100% - 80px);
	overflow-y: auto;
    white-space: nowrap;
    display: flex;
	position: relative;
	scroll-snap-type: y mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch; /* pour un défilement fluide sur iOS */
	float: left;
}

.diapDefil{ width:100%; display: flex; flex-direction: column; }
.blocDiap{
	width:100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
	flex-direction: column;
    flex-shrink: 0;
    scroll-snap-align: start;
	scroll-snap-stop: always;
	position: relative;
	overflow: hidden;
}
.blocDiap img {
    max-height: 100%;
    max-width: 100%;
	object-fit: contain;
}
.visuDiap{
	width: 100%;
	max-height: 100%;
	display: flex;
    align-items: center;
    justify-content: center;
	position: relative;
}
.visuDiap.mini{
	max-height: calc(100% - 30px);
}
.titreDiap{
	width: 75%;
	height: 30px;
	background-color: #ffffff;
	/*border-top: 1px solid #999999;*/
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 1.1em;
	font-weight: 200;
	position: relative;
	z-index: 2;
}

.flecheNav{
	width: 40px;
	height: 40px;
	border: 1px solid #999999;
	border-radius: 50%;
	background-color: #ffffff;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	float: left;
	bottom: 30px;
	right: 30px;
	z-index: 3;
	opacity: 0;
	animation-name: indiqueScroll;
	animation-duration: 5s;
	animation-delay: 1s;
	animation-iteration-count: infinite;
}
.flecheNav img{ max-width: 75%; height: auto; display: block; }

/* ACTU --------------- */
.galerieNews {
	width: 100%;
	max-width: 1400px;
	/*margin: 40px 0 0 50%;*/
	position: relative;
	float: left;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap:10px;
	align-items: center;
	/*transform: translateX(-50%);*/
}

.caseNews {
	display: inline-block;
	width: 100%;
	margin-bottom: 10px;
	overflow: hidden;
	position: relative;
}

.caseNews img {
	width: 100%;
	height: auto;
	display: block;
	/*border-radius: 8px;*/
	object-fit: cover;
	transition: transform 0.3s ease;
	z-index: 1;
}
.caseNews img:hover {
	transform: scale(1.05);
}

.caseNews .nomCase{
	width: 100%;
	background-color: rgba(255,255,255,0.9);
	border-top: 1px solid #999999;
	text-align: center;
	/*font-weight: bold;*/
	color: #000000;
	text-decoration: none;
	position: absolute;
	float: left;
	bottom: 0;
	padding: 5px 0;
	z-index: 2;
}

/* DETAIL ACTU ----------------------- */
.couvertureInfo{
	width: 100%;
	height: calc(100vh - 100px);
	display: flex;
	justify-content: center;
	align-items: center;
	gap:20px;
	position: relative;
	padding-top: 10px;
}
.visuCouv{
	height: calc(100% - 10px);
	max-width: 60%;
	position: relative;
	box-shadow: 0 0 5px rgba(0,0,0,0.2);
}
.visuCouv img{
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	object-position: center center;
	display: block;
}
.txtCouv{
	max-width: 40%;
	max-height: 95%;
	position: relative;
	overflow: auto;
}

.groupeFlex{
	width: 100%;
	max-width: 1400px;
	margin: 40px 0 0 50%;
	transform: translateX(-50%);
	position: relative;
	float: left;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap:10px;
}
.groupeFlex.top{ align-items: flex-start; }
.caseFlex{
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	/*align-items: center;*/
	align-items: stretch;
	position: relative;
	overflow: hidden;
}
.caseFlex.ligneFull{ width: 100%; }
.caseFlex.ligne3{ width: 30%; }
.caseFlex.ligne4{ width: calc(25% - 10px); }

.visuFlex{
	max-width: 100%;
	height: auto;
	display: block;
	position: relative;
}
.visuFlex img{
	width: 100%;
	height: auto;
	/*object-fit: contain;*/
}
.txtFlex{
	width: 100%;
	border-top: 1px solid #333333;
	position: relative;
	text-align: center;
	font-size: 1em;
	padding: 5px 0;
}
.legendeFlex{
	width: 100%;
	position: relative;
	text-align: center;
	font-size: 0.9em;
	padding: 5px 0;
}
.groupeTxt{
	width: auto;
	max-width: 100%;
	display: inline-flex;
	justify-content: center;
	align-items: flex-start;
	text-align: left;
	gap:5px;
	clear: both;
}

.videoExpo{
width:100%;
max-width: 720px;
/*height: 410px;*/
position: relative;
float: left;
left: 50%;
transform: translateX(-50%);
background-color:#000000;
clear:both;
}
.vidP{
width:calc(100% - 2px);
position:relative;
float:left;
}

.mobi{ display: none; }

.trameMess{
	width: 100%;
	height: 100%;
	background-color: rgba(255,255,255,0.9);
	position: fixed;
	float: left;
	display: flex;
	justify-content: center;
	align-items: center;
	top: 0;
	left: 0;
	z-index: 20;
}
.popMess{
	width: calc(100% - 40px);
	max-width: 450px;
	max-height: 90%;
	background-color: #ffffff;
	border: 1px solid #999999;
	border-radius: 8px;
	padding: 10px;
	position: relative;
	float: left;
	overflow: auto;
}
.closeF{
	width: 100%;
	background-color: #cdcdcd;
	color: #000000;
	font-size: 0.9em;
	text-decoration: none;
	position: relative;
	float: left;
	display: flex;
	justify-content: center;
	padding: 5px 0;
	margin-bottom: 10px;
}