/** VARIABLES **/

:root {
	--color1: #4b84c5; /* bleu foncé */
	--color2: #eb9000; /* orange foncé */
	--color3: #6ab54b; /* vert foncé */
	--pagewidth: 1280px;

	--color-menu: var(--color2);
	--color-footer: var(--color3);
	--color-a: var(--color2);
	--color-h: var(--color2);
}

/** COLORS **/
a {
	color: #cff;
}
body {
	background-color: white;
	color: #666;;
	margin: 0px;
	padding: 0px;
}
a {
	color: var(--color-a);
}
h1, h2, h3 {
	color: var(--color-h);
}
#zone_menu ,
#menu {
	background-color: var(--color-menu);
}
#zone_menu a {
	color: white;
}
#slogan {
	color: white;
}
/***** FONTS **********/

@font-face {
  font-family: Montserrat;
  font-weight: 400;
  src: url(/res/fonts/static/Montserrat-Regular.ttf);
}
@font-face {
  font-family: Alkalami;
  src: url(/res/fonts/Alkalami-Regular.ttf);
}
@font-face {
  font-family: MerryWeather;
  src: url(/res/fonts/MerryWeather-Regular.ttf);
}
@font-face {
  font-family: Nunito;
  src: url(/res/fonts/Nunito-VariableFont_wght.ttf);
}
@font-face {
  font-family: DancingScript;
  src: url(/res/fonts/DancingScript-VariableFont_wght.ttf);
}

body {
	font-family:  Nunito, Sans-serif;
}

/** sizes **/
.h1, .h2, .h3, .h4,
h1,h2, h3, h4 {
	font-weight: 300;
	margin-top: 0.66em;
	margin-bottom: 0.33em;
}
h1, .h1 { font-size: 24px; }
h2, .h2 { font-size: 20px; }
h3, .h3 { font-size: 18px; }
h4, .h4 { font-size: 16px; }
body {
	font-size: 15px;
}

/** misc **/

h1 {
	border-bottom: solid 1px var(--color-h);
}
h3 {
	border-bottom: solid 1px var(--color-h);
	display: inline-block;
}
#main li::marker {
	color: var(--color2);
	content: '▷';
	font-size: 12px;
}
#main li {
	padding-bottom: 5px;
	padding-left: 8px;
	color: var(--color2);
}

.medium ,
.huge ,
.big {
	text-shadow: 0px 0px 3px #333;
}
.huge { font-size: 50px; }
.big { font-size: 30px; }
.medium { font-size: 20px; }
.arrondi10 {
	border-radius: 10px;
}
.fondgris {
	background-color: #ddd;
}
.keepnewlines {
	 white-space: pre-line;
}
.clickable {
	cursor: pointer;
}
.dimhover:hover {
	filter: brightness(0.7);
}
a.btn {
	text-decoration: none;
}
.error {
	color: red;
	font-weight: bold;
}
.bordered {
	border: solid 1px #999;;
}
.uppercase {
	text-transform: uppercase;
}
.floater { float: left; }
.right { text-align: right; }
.center { text-align: center; }
.floater.right { float: right; }
.left { text-align: left; }
.padded {
	padding: 10px;
}
.shadowed {
	box-shadow: 3px 3px 3px #000;
}
.marged {
	margin-right: 40px;
}
.rounded {
	border-radius: 20px;
	border: none;
}
.btn img {
	vertical-align: middle;
}
.btn:hover {
	box-shadow: 0px 0px 4px #000;
}
.btn {
	text-decoration: none;
	box-sizing: border-box;
	background-color: #ccc;
	display: block;
	border-radius: 10px;
	padding: 10px;
	width: 100%;
	text-align: center;
	margin: 0px;
	cursor: pointer;
	border: none;
}
img {
	max-width: 100%;
}
/**
* pour que le padding et le border soient dans la largeur!
*/
div {
	box-sizing: border-box; 
}

/** mise en page générale et zones **/
#pieddepage, 
#zone_main {
	flex-flow: row wrap;
	width: 100%;
	display: flex;
	box-sizing: border-box;
}
#body {
	width: var(--pagewidth);
	margin: auto;
}
#entete,
#menu,
#main,
#pieddepage {
	min-height: 20px;
}
#main {
	min-height: 500px;
}
#entete,
#menu,
#mosaique,
#pieddepage {
	width: 100%;
}
@media (max-width: 960px) {
	#body { width: 100%; }
}

#ariane a {
	color: #666;
	text-decoration: none;
}
#ariane {
	padding: 5px;
	font-size: 13px; 
	color: #666;
}

/** responsive-ness des blocs de taille selectionnable **/
.size16 { width: 16.666%; }
.size20 { width: 20%; }
.size25 { width: 25%; }
.size30 { width: 30%; }
.size33 { width: 33.333%; }
.size40 { width: 40%; }
.size50 { width: 50%; }
.size66 { width: 66.666%; }
.size75 { width: 75%; }
.size100 { width: 100%; }
@media (max-width: 640px) {
	.mobile100 { width: 100%; display: block; }
	.mobile0 { display: none; }
	.size16 { width: 50%; }
	.size20 { width: 50%; }
	.size25 { width: 50%; }
	.size30 { width: 100%; }
	.size33 { width: 100%; }
	.size40 { width: 100%; }
	.size50 { width: 100%; }
	.size66 { width: 100%; }
	.size75 { width: 100%; }
	.size100 { width: 100%; }
}
@media print {
	#zone_main {
		display: block;
	}
	#pieddepage { display: none; }
	#menu { display: none; }
	#entete {
		break-after: avoid; 
		page-break-after: avoid;
	}
	#body {
		width: 650px; 
	}
	#main {
		page-break-inside: auto;
		page-break-before: avoid;
		width: 100%; 
		box-sizing: content-box; 
	}
	.mobile100 { width: 100%; display: block; }
	.mobile0 { display: none; }
	.size16 { width: 50%; }
	.size20 { width: 50%; }
	.size25 { width: 50%; }
	.size30 { width: 100%; }
	.size33 { width: 100%; }
	.size40 { width: 100%; }
	.size50 { width: 100%; }
	.size66 { width: 100%; }
	.size75 { width: 100%; }
	.size100 { width: 100%; }
}

/*** BRICOLE POUR WEBQUICK ***/
.wq_menu {
	z-index: 1000;
}

/*** GENERIC ***/
.icon_rfloat {
	float: right;
}
.gros {
	font-weight: bold;
}
.alert {
	padding: 20px;
	border-radius: 10px;
	margin: 10px;
	background-color: #ddd;
}
.alert-danger {
	background-color: #faa;
	color: red;
	font-weight: bold;
}


/**** FIX pour bxSlider *****/

.bx-wrapper .bx-viewport {
	-moz-box-shadow: none !important;
	-webkit-box-shadow: none !important;
	box-shadow: none !important;
}

.bx-wrapper { 
 margin-bottom: 38px !important; 
} 
 
.bx-wrapper .bx-viewport { 
  left: 0px !important;   
  border: 0px !important; 
} 
.bx-wrapper .bx-loading { 
  z-index: 1 !important; 
} 
 
.bx-wrapper .bx-controls-direction a { 
  z-index: 1 !important; 
}








/** **************************************************
  * snippets
  * *************************************************/


/*  **************  forms  **************  */

.form_line {
	padding: 1px;
	vertical-align: middle;
}
.formulaire {
	padding: 10px;
}
.form_label {
	display: inline-block;
	width: 200px;
	vertical-align: top;
}
.form_input {
	display: inline-block;
	width: 350px;
}



/* ** cellules_boutons ******************************/

.cellule_boutons_item img {
	vertical-align: middle;
}
.cellule_boutons_item:hover {
	text-decoration: none;
	opacity: 0.9;
	box-shadow: 0px 0px 3px #000;
}
.cellule_boutons_item {
	width: 100%;
	margin: 5px 0px;
	text-align: center;
	display: block;
	text-decoration: none;
	padding: 10px;
	border-radius: 5px;
	box-sizing: border-box;
}

.sc_cellule_boutons {
	display: flex;
	align-items: stretch;
}
.snippet_cellule_boutons {
	box-sizing: border-box;
	position: relative;
	width: 100%;
	display: flex;
	background-repeat: no-repeat;
	background-position: center center;
	padding: 5px;
	margin: 1px;
	align-items: stretch;
}

/* ** cellules **************************************/

.sc_cellule {
	display: flex;
	align-items: stretch;
}
.snippet_cellule {
	box-sizing: border-box;
	position: relative;
	width: 100%;
	display: flex;
	background-repeat: no-repeat;
	background-position: center center;
	padding: 5px;
	margin: 1px;
	align-items: stretch;
}
.snippet_cellule_image {
	padding: 0px;
}
.barre_couleur {
	margin-right: 0px;
	width: 15px;
}
.cellule_bouton_cta:hover {
	opacity: 1.0;
	box-shadow: 0px 0px 3px #333;
}
.cellule_bouton_cta {
	position: absolute;
	bottom: 3px;
	right: 3px;
	padding: 7px;
	font-weight: bold;
	font-size: 12px;
	border-radius: 3px;
	opacity: 0.8;
}
@media (max-width: 640px) {
	.snippet_cellule.hasbackground {
		min-height: 200px;
	}
}


/* ** footer **************************************/


/* ** header **************************************/


/* ***************** menu ************ */

#menu, 
#zone_menu {
	min-height: 37px;
	color: black;
	border-top: solid 0px black;
}
#zone_menu ul {
	list-style:none;
	position:relative;
	margin:0;
	margin-top: 3px;
	padding:0;
}

#zone_menu ul a:hover {
	border-bottom: solid 2px white;
}
#zone_menu ul a {
	border-bottom: solid 2px transparent;
	display:block;
	text-decoration:none;
	line-height:32px;
	padding:0 15px;
}

#zone_menu ul li {
	position:relative;
	float:left;
	margin:0;
	padding:0;
	/*min-width: 120px;*/
	text-align: left;
	/*
	background: red;
	*/
	background: var(--color-menu);
}

#zone_menu ul li:hover {
}

#zone_menu ul ul {
	text-align: left;
	display:none;
	position:absolute;
	top:31px;
	left:0%;
	padding:0;
	background: var(--color-menu);
	width: auto;
	min-width: 120px;
	z-index: 100000;
}

#zone_menu ul ul li:hover {
	background: #aaa;
}
#zone_menu ul ul li {
	float:none;
	width: auto;
}

#zone_menu ul ul a {
	line-height:120%;
	padding:10px 15px
}

#zone_menu ul ul ul {
	top:0;
	left:100%
}

#zone_menu ul li:hover > ul {
	display:block
}

#zone_menu {
	float: right;
}
#menu_opener {
	display: none;
}
@media (max-width: 640px) {
	#menu_opener {
		display: block;
		width: 100%;
		border-bottom: solid 1px #666;
		padding: 10px;
		text-transform: uppercase;
		cursor: pointer;
		font-size: 1.1em;
		background-color: #f7f7f7;
	}
	#zone_menu {
		float: right;
		border-bottom: solid 1px #666;
	}
	#menu  {
		position: sticky;
		top: 0px;
		z-index: 10000;
		background-color: #fff;
	}
	#zone_menu {
		display: none;
		background-color: #fff;
		margin-bottom: 20px;
	}
	#menu ,
	#zone_menu ,
	#zone_menu ul ul li,
	#zone_menu ul li,
	#zone_menu ul ul {
		width: 100%;
	}
	#zone_menu ul li:hover {
		background-color: #aaa;
	}	
	#zone_menu ul ul {
		position: relative;
		display: block;
	}
	#zone_menu ul ul li {
		padding-left: 25px;
		font-size: 0.9em;
	}
}
#zone_menu a {
	text-transform:uppercase;
	text-decoration: none;
	padding-left: 10px;
	padding-right: 10px;
}
#zone_menu {
	text-align: right;
	font-size: 12px;
}


#zone_menu .sc {
	display: inline-block;
	width: auto;
}
	
@media (max-width: 640px) {
	#zone_menu .sc {
		width: 100%;
	}
}


#entete,
#zone_entete
{ margin-bottom: -3px; }


#entete {
	max-height: 300px;
	overflow: hidden;
	position: relative;
}
#menu {
}

#pieddepage {
	border-top: solid 1px var(--color-footer);
}

/* ***************** formulaires ************ */

.form_line { width: 100%; }
.form_label { width: 300px; }
.form_input { width: 300px; }
.form_input textarea, 
.form_input input {
	width: 100%;
}
@media (max-width: 640px) {
	.form_line { width: 100%; }
	.form_label { width: 100%; }
	.form_input { width: 100%; }
}




/* ***************** galerie ************ */
.galerie  {
	width: 100%;
	flex-wrap: wrap;
	display: flex;
}

.galerie .image_contener img {
	width: 100%;
}
.galerie .image_contener {
	/*box-shadow: 3px 3px 3px black;*/
	width: 100%;
	text-align: center;
	overflow: hidden;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center center;
}
.galerie .image { padding: 20px; }

.galerie.         .image_contener { height: 160px; }
.galerie.         .image          { height: 200px; padding: }

.galerie.nb_cols_2 .image_contener { height: 350px; }
.galerie.nb_cols_2 .image          { height: 390px; padding: }

.galerie.nb_cols_3 .image_contener { height: 180px; }
.galerie.nb_cols_3 .image          { height: 220px; padding: }

.galerie.nb_cols_4 .image_contener { height: 160px; }
.galerie.nb_cols_4 .image          { height: 200px; padding: }

.galerie.nb_cols_5 .image_contener { height: 160px; }
.galerie.nb_cols_5 .image          { height: 200px; padding: }

.galerie .image_contener { position: relative; }
.galerie .image_contener .legende {
	position: absolute;
	bottom: 0px;
	width: 100%;
	background-color: rgba(0,0,0,0.5);
	min-height: 30px;
	color: white;
	padding: 5px;
	font-size: 16px;
}


/* slogan pour les pages normales */
#entete #logo {
	max-width: 50%;
	position: absolute;
	bottom: 0px;
	background-color: rgba(255,255,255,0.3);
	padding: 12px;
	left: 5px;
	bottom: 10px;
}
#slogan_contener img {
}
#slogan {
	font-size: 32px;
	text-shadow: 0px 0px 3px black;
}
#slogan_contener {
}
#slogan_contener {
	width: 1000px;
	position: absolute;
	bottom: 0px;
	left: 10px;
}
#slogan_txt_contener {
	position: relative;
	height: 100px;
}
#slogan {
	position: absolute;
	bottom: 40px;
	left: 140px;
}
@media (max-width: 640px) {
	#slogan_contener {
		width: 300px;
	}
	#slogan {
		bottom: 0px;
	}
}
@media (max-width: 480px) {
	#slogan_contener {
		width: 300px;
	}
	#slogan {
		bottom: 10px;
		font-size: 22px;
	}
}

/* slogan alternatif pour la page 1 */
/* deprecated */

#page1 #entete {
	max-height: 100px;
	overflow: hidden;
	position: relative;
}
#page1 #slogan_contener img {
	float: left;
	max-height: 120px;
	margin-top: -10px;
}
#page1 #slogan {
	font-size: 32px;
	text-shadow: 0px 0px 3px black;
}
#page1 #slogan_contener {
}
#page1 #slogan_contener {
	width: 1000px;
	position: absolute;
	top: 0px;
	left: 10px;
}
#page1 #slogan_txt_contener {
	position: relative;
	height: 100px;
}
#page1 #slogan {
	position: absolute;
	bottom: 40px;
	left: 140px;
}
@media (max-width: 640px) {
	#page1 #slogan_contener {
		width: 500px;
	}
	#page1 #slogan {
		bottom: 10px;
	}
}
@media (max-width: 480px) {
	#page1 #slogan_contener {
		width: 300px;
	}
	#page1 #slogan {
		bottom: 10px;
		font-size: 22px;
	}
}

/* relooking 2024 */
#footer_out,
#menu,
#entete_out,
#body {
	width: 100%;
}
#menu ,
#pieddepage,
#main {
	width: var(--pagewidth);
	max-width: 100%;
	margin: auto;
}
#menu_out {
	background-color: var(--color-menu);
}
#entete_out {
	background-image: url('/images/header.jpg');
	background-size: cover;
	background-position: center center;
}
#entete {
	height: 300px;
	position: relative;
}
#footer_out {
	background-color: var(--color-footer);
}
#pieddepage a {
	color: white;
}
#pieddepage {
	color: white;
	border: none;
	margin-top: 10px;
	display: flex;
	flex-wrap: wrap;
	font-size: 16px;
}
#site_plan li a:hover {
	color: #cdf;
}
#site_plan ul ul {
	padding-left: 15px;
}
#site_plan ul {
	padding-left: 0px;
}
#site_plan li a {
	text-decoration: none;
}
#site_plan li {
	float: none;
	display: block;
}
div#zone_menu {
	font-size: 14px;
}

@media (max-width: 640px) {
	#menu_out {
		position: sticky;
		top: 0px;
		z-index: 101;
	}
	#menu_out,
	#menu_opener,
	#menu {
		color: white;
		background-color: var(--color-menu);
	}
	#zone_menu ul ul {
		top: 0px;
	}
}
