/* fonts */
/* https://fonts.google.com/ */
@font-face {
	font-family: "IBMPlexSans";
	src: url(/style/font/IBMPlexSans-SemiBold.ttf);
	font-display: swap;
	font-weight: 600;
}
@font-face {
	font-family: "DMSans";
	src: url(/style/font/DMSans-Light.ttf);
	font-display: swap;
	font-weight: 300;
}
@font-face {
	font-family: "DMSans";
	src: url(/style/font/DMSans-Regular.ttf);
	font-display: swap;
	font-weight: 400;
}
@font-face {
	font-family: "DMSans";
	src: url(/style/font/DMSans-SemiBold.ttf);
	font-display: swap;
	font-weight: 600;
}

/* variables */
:root {
	--font: "DMSans",arial,sans-serif;
	--font-titre: "IBMPlexSans",arial,sans-serif;
	--padding: 30px;
	--bleu-fonce: #3161af;
	--bleu-clair: #7fc8de;
	--vert: #96c84d;
	--noir: #131521;
}
/* default styles */
*,*::before,*::after {box-sizing: border-box;padding: 0;margin: 0;}
select * {padding: 0 0.5em;}
ul, ol {list-style: none;}
a img, :link img, :visited img, object, fieldset {border: none;}
a:focus, a:hover, :link, :visited {text-decoration: none;}
iframe {line-height: 1em; display: block;}
table {border-collapse: collapse;}
html {font-size: 62.5%;scroll-behavior: smooth;}
body {overflow-x: hidden;background-color: #fff;color: #000;font-family: var(--font);font-size: 1.9em; /* equiv 14px */line-height: 1.5em;}
input, select, textarea {font-size: 100%;}
.clearfix::after {content: ".";display: block;height: 0;font-size:0;clear: both;visibility: hidden;}
.clearfix{display: inline-block;}
* html .clearfix{height: 1%;}
.clearfix{display: block;}
.mir {letter-spacing: -1000em;}
* html .mir {text-indent: -999em;overflow: hidden;}
html>body .mir {letter-spacing: normal;text-indent: -999em;overflow: hidden;}
.clear {clear: both;}
div.clear {height: 0;}
.no-wrap {white-space: nowrap;}
.errorOutput {font-weight: bold;padding: 0.5em 20px;border-top: 2px solid #eee;border-bottom: 2px solid #eee;background: transparent url(/style/alert.gif) no-repeat left center;}
a:link, a:visited {color: #008cd9;}

/* sections et blocs */
.page, .page_min {
	width: min(100%,1300px);
	margin: 0 auto;
}
.page_min {width: min(100%,800px);}
.page1-2 {width: min(100%,650px);}
.page1-3 {width: min(100%,433.33px);}
.section {padding: calc(var(--padding)*4) 0; position: relative; }
[id] {
  scroll-margin-top: 129px;
}
.sectionTop { padding-top: 200px; }

.cache { display: none; }

.col1-2, .col1-3, .col2-3,
.col3-4, .col1-4, .col1-5 {
	float: left;
}
.col,.flex1-1{width: 100%;}
.col3-4,.flex3-4{width: 75%;}
.col1-2,.flex1-2{width: 50%;}
.col1-3,.flex1-3{width: 33.33%;}
.col2-3,.flex2-3{width: 66.66%;}
.col1-4,.flex1-4{width: 25%;}
.col1-5,.flex1-5{width: 20%;}

.section1-3 { width: calc(50% - 216.5px); }
.section2-3 { width: calc(50% + 216.5px); }

/* flexbox */
.flexParent {
    display: flex;
    flex-wrap: wrap;
}
.flex, .flex1-1, .flex1-2, .flex1-3,
.flex2-3, .flex3-4, .flex1-4, .flex1-5 {
    display: flex;
}
.flexColumn {
	flex-direction: column;
	display: flex;
}
.flex_between {
    justify-content: space-between;
}
.flex_start_center {
    justify-content: flex-start;
    align-items: center;
}
.flex_center {
    justify-content: center;
}
.flex_center_center {
    justify-content: center;
    align-items: center;
}
.flex_between_center {
    justify-content: space-between;
    align-items: center;
}
.flex_end_center {
    justify-content: flex-end;
    align-items: center;
}
.flex_around_center {
    justify-content: space-around;
    align-items: center;
}
.flex_end_end {
	justify-content: end;
	align-items: end;
}
.align_items_center { align-items: center; }

/* columns */
.column2, .column3 { column-gap: var(--padding); }
.column2 { columns: 2; }
.column3 { columns: 3; }

/* padding margin */
.paddingSmallx2{ padding: calc(var(--padding) / 4); }
.paddingSmall{ padding: calc(var(--padding) / 2); }
.padding{ padding: var(--padding); }
.paddingBig{ padding: calc(var(--padding) * 2); }
.paddingLR{
	padding-left: var(--padding);
	padding-right: var(--padding);
}
.paddingTB{ 
	padding-top: var(--padding);
	padding-bottom: var(--padding);
}
.paddingNoTop {padding-top: 0;}
.paddingNoBottom {padding-bottom: 0;}

.margin_auto{margin: 0 auto;}
.marginNoBottom, .section p.marginNoBottom {margin-bottom: 0 !important;}

/* gestion des couleurs/fonds */
.bg {
	background-repeat: no-repeat;
	background-position: center;
	background-size: cover;
}
.bg_blanc {background-color: #fff; color: #000;}
.bg_noir {background-color: var(--noir); color: #fff;}
.bg_bleu_fonce {background-color: var(--bleu-fonce); color: #fff;}
.bg_bleu_clair {background-color: var(--bleu-clair); color: #fff;}
.bg_vert {background-color: var(--vert); color: #fff;}
.bg_gris {background-color:#bcbcbc; color: #fff;}

.bg_blanc a:is(:link,:visited) {color: #000;}
.bg_noir a:is(:link,:visited) {color: #fff;}

.bleu_fonce {color: var(--bleu-fonce)!important;}
.bleu_clair {color: var(--bleu-clair)!important;}
.vert {color: var(--vert)!important;}
.noir {color: #000!important;}

.block {display: block;}
.relative{position: relative;}
.oHidden {overflow: hidden;}

.float_left {float: left;}
.float_right {float: right;}

.h100 { height: 100%; }
.vh100 { height: 100vh; }

/* textes */
p {margin-bottom: 30px;}
p.noMarginBottom {margin-bottom: 0px;}
.align_center {text-align: center;}
.align_right {text-align: right;}

.maj {text-transform: uppercase;}
.italic {font-style: italic;}
.noItalic {font-style: normal;}

.thin {font-weight: 100;}
.extralight {font-weight: 200;}
.light {font-weight: 300;}
.normal {font-weight: 400;}
.medium {font-weight: 500;}
.semibold {font-weight: 600;}
.bold {font-weight: 700;}
.extrabold {font-weight: 800;}
.black {font-weight: 900;}

.big {font-size: 150%; line-height: 1.5;}
.extrabig {font-size: 200%; line-height: 1.5;}
.small {font-size: 80%; line-height: 1.5;}
.extrasmall {font-size: 60%; line-height: 1.5;}

/* animations */
.zoom_container {
	display: block;
	overflow: hidden;
	line-height: 0;
}

.zoomup { transition: 0.4s; }
.zoomup:is(:hover,:focus) {transform: scale(1.2);}

.zoomdown { transition: 0.4s; }
.zoomdown:is(:hover,:focus) {transform: scale(0.8);}

.zoomtourne { transition: 0.4s;}
.zoomtourne:is(:hover,:focus) {transform: rotate(15deg) scale(0.9);}

.zoominfini:is(:hover,:focus) {
	animation-duration: 0.8s;
	animation-name: zoominfini;
	animation-iteration-count: infinite;
	animation-direction: alternate;
	animation-timing-function: ease-in-out;
}
@keyframes zoominfini {
  from { transform: scale(1); }
  to   { transform: scale(1.2); }
}

.fade {
	opacity: 0;
	transition: 1s;
}
.fondu_top {
	opacity: 0;
	position: relative;
	transform: translateY(-200px);
	transition: all 1s, width 0s;
}
.fondu_bottom {
	opacity: 0;
	position: relative;
	transform: translateY(200px);
	transition: all 1s, width 0s;
}
.fondu_left {
	opacity: 0;
	position: relative;
	transform: translateX(-1000px);
	transition: all 1s, width 0s;
}
.fondu_right {
	opacity: 0;
	position: relative;
	transform: translateX(1000px);
	transition: all 1s, width 0s;
}
.animActive {
	opacity: 1;
	transform: none;
	z-index: 100;
}

.transition05 { transition: 0.5s; }
.transition1 { transition: 1s; }
.transition15 { transition: 1.5s; }
.transition2 { transition: 2s; }
.transition25 { transition: 2.5s; }

.rond { position: relative; }
.rond::before {
	content: '';
	display: block;
	padding-bottom: 100%;
}

/* header */
header {
	position: fixed;
	width: 100%;
	z-index: 101;
	top: 0;
	left: 0;
	transition: 0.5s;
}
header.fix { background-color: var(--noir); }
a.headerLogo { max-width: 300px; transition: 0.5s; position: relative; z-index: 9;}
header.fix a.headerLogo { max-width: 200px; }

#selectLang {
	background-color: transparent;
	border: none;
	color: #fff;
	position: absolute;
	top: 0;
	right: 0;
}

/* menu */
nav#mainNav ul { text-align: center; }
nav#mainNav li {
	display: inline-block;
	position: relative;
	padding: 20px 0;
}
nav#mainNav li a {
	display: block;
	padding: 0 20px;
	position: relative;
	text-transform: lowercase;
	color: #fff;
	transition: 0.5s;
}
nav#mainNav li:not(:last-child) a::after {
	content: '';
	height: 100%;
	width: 2px;
	background-color: var(--bleu-clair);
	position: absolute;
	right: -1px;
	top: 0;
}
#menuBurger, #openNav { display: none; }

/* effets passage de souris */
nav#mainNav li a:is(:hover,:focus),
#accueil nav#mainNav li#nav-accueil > a,
#qui-sommes-nous nav#mainNav li#nav-qui-sommes-nous > a,
#savoir_faire nav#mainNav li#nav-savoir-faire > a,
#maintenance nav#mainNav li#nav-maintenance > a,
#realisations nav#mainNav li#nav-realisations > a,
#inspirations nav#mainNav li#nav-inspirations > a,
#recrutement nav#mainNav li#nav-recrutement > a,
#contact nav#mainNav li#nav-contact > a {
	color: var(--bleu-clair);
}

/* sous-menu */
nav#mainNav .sousMenuParent ul {
	text-align: left;
	position: absolute;
	max-height: 0;
	overflow: hidden;
	transition: 0.5s;
}
nav#mainNav .sousMenuParent:is(:hover,:focus-within) ul,
nav#mainNav .sousMenuParent a:is(:hover,:focus) + ul {max-height: 250px;}
nav#mainNav .sousMenuParent ul a {white-space: nowrap;}
nav#mainNav .burgerOnly {display: none;}

/* transformation en menu burger */
@media all and (max-width: 1340px) {

	nav li a::after {
		display: none;
	}

	nav#mainNav .burgerOnly { display: block; }

	nav#mainNav ul {
		background-color: var(--noir);
		position: absolute;
		display: flex;
		flex-direction: column;
		width: 100vw;
		height: 100vh;
		top: 0;
		left: 0;
		padding: 118px calc(var(--padding) / 2) calc(var(--padding) / 2);
		text-align: left;
		transform: translateX(-100%);
		transition: 0.5s;
	}
	nav#mainNav > ul {
		overflow: hidden;
		z-index: 1;
	}
	nav#mainNav li { display: block; padding: 10px 0; }

	/* sous-menu */
	nav#mainNav .sousMenuParent > a::after {
		content: '\f0da';
		font-family: "Font Awesome 6 Free";
		font-weight: 700;
		position: absolute;
		top: 50%;
		right: 10px;
		transform: translateY(-50%);
	}

	nav#mainNav #openNav:not(:checked) ~ ul .sousMenuParent ul { display: none; }
	nav#mainNav .sousMenuParent ul, nav#mainNav .sousMenuParent a:hover + ul {
		position: fixed;
		top: 0;
		left: 100%;
		max-height: none !important;
		z-index: 2;
		transform: none;
		box-shadow: none;
	}
	nav#mainNav .sousMenuParent > a.open + ul {	left: 0; }

	/* bars */
	#menuBurger { display: block; padding : 10px}
	#menuBurger label {
		cursor: pointer;
		position: relative;
		display: block;
		width: 85px;
		z-index: 10;
	}
	#menuBurger label::before,
	#menuBurger label::after {
		content: '';
	}
	#menuBurger label span,
	#menuBurger label::before,
	#menuBurger label::after {
		width: 20px;
		height: 2px;
		background-color: #fff;
		transition: 0.5s;
		margin-top : 5px;
		display: block;
		transform-origin: left;
	}
	#menuBurger label b {
		color: #fff;
		display: block;
		position: absolute;
		top : 50%;
		transform: translateY(-50%); 
		left: 30px;
		line-height: 1em;
		font-weight: 400;
		text-transform: uppercase;
	}

	/* burger ouvert */
	nav#mainNav #openNav:checked ~ #menuBurger ~ ul { transform: none; }
	nav#mainNav #openNav:checked + #menuBurger label::before { transform: rotate(45deg); }
	nav#mainNav #openNav:checked + #menuBurger label span { opacity: 0; }
	nav#mainNav #openNav:checked + #menuBurger label::after { transform: rotate(-45deg); }

	nav#mainNav li a::before { display: none !important; }

	#selectLang { display: none; }

	.bgAccueil1, .bgAccueil2 { width: 100% !important; }
	#slider:has(.bgAccueil1:hover)::after,
	#slider:has(.bgAccueil2:hover)::after { display: none !important; }

}

/* footer */
.footerBars { padding: 20px 0; }
.footerBars::before, .footerBars::after {
	content: '';
	height: 1px;
	width: 100%;
	background-color: var(--bleu-fonce);
	position: absolute;
	left: 0;
}
.footerBars::before { top: 0; }
.footerBars::after { bottom: 0; }

.nav-mentions li{display: inline-block;}
.nav-mentions li a{
	padding: 0 5px;
	font-size: 75%;
	border-left: 1px solid;
}
.nav-mentions li:first-child a{ border-left: none; }
.goTop {
	position: absolute;
	top: 20px;
	right: 20px;
	font-size: 300%;
}

/* listes */
ul.list, .dynamicText ul {
	list-style-type: none;
	margin-bottom: 20px;
}

ul.inline li {display: inline-block; padding : 0 10px;}

ul.list li::before, .dynamicText ul li::before {
	content: '';
	width: 7px;
	height: 7px;
	display: inline-block;
	border-radius: 100%;
	background-color: var(--bleu-clair);
	margin-right: 7px;
}

ul.listBlanc li::before {background-color : #fff}

.dynamicText p:has(+ ul) { margin-bottom: 0; }

/* images */
.img_100 {
	display: block;
	line-height: 1;
	max-width: 100%;
	width: auto;
	height: auto;
}
.img_cover {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* titres */
h1, .like_h1, h2, .like_h2, h3, .like_h3, h4, .like_h4 {
	display: block;
	font-family: var(--font-titre);
	line-height: 1.2;
	font-weight: 600;
	margin-bottom: 40px;
}
h1, .like_h1 {
	font-size: 300%;
	text-shadow: 0 0 5px rgba(0,0,0,0.2);
}
h2, .like_h2 {
	font-size: 250%;
}
h3, .like_h3 {
	font-size: 150%;
}
h4, .like_h4 {
	font-size: 120%;
	margin-bottom: 15px;
}

.like_p {
	font-size: 100%;
	font-weight: 600;
	text-transform: none;
}

.beforeBleu::before, .beforeVert::before {
	content: '';
	height: 7px;
	width: 70px;
	position: absolute;
	left: 0;
	top: -20px;
}
.beforeBleu::before { background-color: var(--bleu-clair); }
.beforeVert::before { background-color: var(--vert); }

/*
.afterFlecheGauche::after,
.afterFlecheDroite::after,
.afterFlecheTop::after {
	content: '';
	transform-origin: center;
	position: absolute;
	top: 50%;
	z-index: 2;
}
.afterFlecheGauche::after {
	border-bottom: 30px solid var(--noir);
	border-left: 30px solid var(--noir);
	border-top: 30px solid transparent;
	border-right: 30px solid transparent;
	left: -30px;
	transform: translate(-50%,-50%) rotate(45deg);
}
.afterFlecheDroite::after {
	border-bottom: 30px solid transparent;
	border-left: 30px solid transparent;
	border-top: 30px solid var(--noir);
	border-right: 30px solid var(--noir);
	right: -30px;
	transform: translate(50%,-50%) rotate(45deg);
}
.afterFlecheTop::after {
	top: calc(var(--padding) * -2);
	border-bottom: 30px solid transparent;
	border-left: 30px solid #fff;
	border-top: 30px solid #fff;
	border-right: 30px solid transparent;
	left: 0;
	transform: translate(50%,-50%) rotate(45deg);
}
*/


.encoche {
  --taille: 60px;       /* longueur le long du bord */
  --profondeur: 30px;   /* profondeur vers l'intérieur */
  --decalage: 40%;     /* distance du coin de départ au centre de l'encoche */
}

.encoche--droite {
  clip-path: polygon(
    0 0, 100% 0,
    100% calc(var(--decalage) - var(--taille) / 2),
    calc(100% - var(--profondeur)) var(--decalage),
    100% calc(var(--decalage) + var(--taille) / 2),
    100% 100%, 0 100%
  );
}

.encoche--gauche {
  clip-path: polygon(
    0 0, 100% 0, 100% 100%, 0 100%,
    0 calc(var(--decalage) + var(--taille) / 2),
    var(--profondeur) var(--decalage),
    0 calc(var(--decalage) - var(--taille) / 2)
  );
}

.encoche--haut {
  clip-path: polygon(
    0 0,
    calc(var(--decalage) - var(--taille) / 2) 0,
    var(--decalage) var(--profondeur),
    calc(var(--decalage) + var(--taille) / 2) 0,
    100% 0, 100% 100%, 0 100%
  );
}

.encoche--bas {
  clip-path: polygon(
    0 0, 100% 0, 100% 100%,
    calc(var(--decalage) + var(--taille) / 2) 100%,
    var(--decalage) calc(100% - var(--profondeur)),
    calc(var(--decalage) - var(--taille) / 2) 100%,
    0 100%
  );
}

/* liens */
.btn_suite {
	display: inline-block; 
	text-transform: lowercase;	
	padding: 10px 20px;
	background-color: transparent;
	background-image: url(/style/vague.jpg);
	background-position: 0% 350px;
	background-repeat: no-repeat;
	color: #fff !important;
	font-family: var(--font);
	border: 3px solid;
	font-weight: 600;
	appearance:none;
	transition: 0.5s;
	cursor: pointer;
	border-radius: 20px;
	text-align: center;
	min-width: 250px;
	position: relative;
	overflow: hidden;
}
.bg_blanc .btn_suite {color: #000 !important;}
.btn_suite:is(:hover,:focus) {
	background-position: left bottom;
	animation-name: vague;
	animation-duration: 3s;
	animation-iteration-count: infinite;
	animation-timing-function: linear;
	animation-delay: 0.5s;
	transform: translateY(0);
	background-color: #fff;
	color: #000 !important;
}
@keyframes vague {
	0% { background-position: left bottom;}
	100% { background-position: right bottom;}
}

/* iframe responsive 16/9 */
.video-responsive {
	overflow:hidden;
	padding-block-end:56.25%;
	position:relative;
	height:0;
}
.video-responsive iframe {
	left:0;
	top:0;
	height:100%;
	width:100%;
	position:absolute;
}

/* icônes */
.ico::before{
	font-family: 'Font Awesome 6 Free'; 
	font-size: 120%;
	padding-right: 5px; 
	font-weight: bold;
}
.ico-regular::before{
	font-weight: normal;
}
p.ico span{overflow: hidden; display: inline;}
p.ico::before{display: inline;}

.ico-eye::before { content: "\f06e";}
.ico-map::before { content: "\f3c5";}
.ico-map-marker::before { content: "\f041";}
.ico-mobile::before { content: "\f3cd";}
.ico-phone::before { content: "\f879";}
.ico-web::before { content: "\f0ac";}
.ico-mail::before { content: "\f0e0";}
.ico-recherche::before { content: "\f002";}
.ico-compte::before { content: "\f2bd";}
.ico-pdf::before { content: "\f1c1";}
.ico-print::before { content: "\f02f";}
.ico-streetview::before {content: "\f21d";}
.ico-nav::before {content: "\f0c9";}
.ico-clock::before {content: "\f017";}
.ico-star::before {content: "\f005"; }
.ico-laptop::before {content: "\f109"; }
.ico-store::before {content: "\f54e"; }
.ico-exchange::before {content: "\f362"; }
.ico-desktop::before {content: "\f108"; }
.ico-doc::before {content: "\f15c"; font-weight: 400; }
.ico-calendar::before {content: "\f133"; }

/* magnific popup */
.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:0!important;-webkit-backface-visibility:hidden;backface-visibility:hidden;}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-ajax-holder .mfp-content,.mfp-inline-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-arrow,.mfp-close,.mfp-counter,.mfp-preloader{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none!important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-error .mfp-content,.mfp-s-ready .mfp-preloader{display:none}button.mfp-arrow,button.mfp-close{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;appearance:none;display:block;outline:0;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;filter:alpha(opacity=65);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:focus,.mfp-close:hover{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#333}.mfp-iframe-holder .mfp-close,.mfp-image-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:.65;filter:alpha(opacity=65);margin:-55px 0 0;top:50%;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:focus,.mfp-arrow:hover{opacity:1;filter:alpha(opacity=100)}.mfp-arrow .mfp-a,.mfp-arrow .mfp-b,.mfp-arrow:after,.mfp-arrow:before{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:inset transparent}.mfp-arrow .mfp-a,.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow .mfp-b,.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left .mfp-a,.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left .mfp-b,.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right .mfp-a,.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right .mfp-b,.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}

/* site */
#slider::before {
	content: '';
	position: absolute;
	background-color: rgba(0,0,0,0.1);
	z-index: 1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}
#slider::after {
	content: '';
	height: 100%;
	width: 200px;
	backdrop-filter: blur(3px);
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	position: absolute;
	transition: 1.5s;
	pointer-events: none;
}
.bgAccueil1::after,
.bgAccueil2::after {
	content: '';
	background-color: rgba(0,0,0,0.2);
	position: absolute;
	z-index: 1;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
}

.bgAccueil1, .bgAccueil2 { transition: 1.5s;}
.bgAccueil2 { background-image: url(/style/accueil/utile.jpg); }
.bgAccueil1 { background-image: url(/style/accueil/agreable.jpg); }

.bgAccueil1:hover, .bgAccueil2:hover { width: 75%; }
.bgAccueil1:hover + .bgAccueil2, .bgAccueil1:has(+.bgAccueil2:hover) { width: 25%; }
#slider:has(.bgAccueil1:hover)::after { left: 75%; }
#slider:has(.bgAccueil2:hover)::after { left: 25%; }

.accueilLegende {
	position: absolute;
	display: block;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	z-index: 3;
}

.accueilPicto {
	min-width: 100px;
	margin-right: 15px;
}

.radius { border-radius: 20px; }
.radiusLeft {
	border-top-left-radius: 20px;
	border-bottom-left-radius: 20px;
}
.radiusRight {
	border-top-right-radius: 20px;
	border-bottom-right-radius: 20px;
}

.accueilRealisations .col1-2 { width: 33.33%; }

.sectionRealisation { min-height: 100vh; }

.sectionRealisation::before {
	content: '';
	display: block;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.5);
	position: absolute;
	z-index: 1;
}
.realisationTop {
	position: absolute;
	bottom: calc(var(--padding) * 2);
	left: calc(50% + 216.5px);
}

.triRealisations a { padding: 0 15px; }
.triRealisations a:not(:last-child) {
	border-right: 1px solid var(--bleu-clair);
}

.z1 { z-index: 1; }
.z2 { z-index: 2; }
.z3 { z-index: 3; }

.pictoQui { width: 60px; }


/*** savoir faire    *****************************************/ 
#bg_savoir_faire {
	background : black url(/style/slides/savoir-faire.jpg) no-repeat center center;
	background-size: cover;
}

.nav-sec li {
	display : inline-block;
	padding : 0 5px;
	border-left: 1px solid black;
	line-height: 1;
}

.nav-sec li:first-child {border-left: none;}
.nav-sec li a {
	line-height: 1;
	text-transform: uppercase;
	font-weight: 300;
	font-size: 80%;
}

.paralaxe {
	background: transparent none no-repeat center center;
	background-size : cover;
	min-height : 650px
}

.paralaxeSavoirFaire {
	background-image: url(/style/savoir-faire/paralaxe.jpg);
}

/*** maintenance    *****************************************/ 
#bg_maintenance {
	background : black url(/style/slides/maintenance.jpg) no-repeat center center;
	background-size: cover;
}

.paralaxeMaintenance1 {
	background-image: url(/style/savoir-faire/paralaxe.jpg);
}

.paralaxeMaintenance1 {
	background-image: url(/style/maintenance/paralaxe-fontaine.jpg);
}

.paralaxeMaintenance2 {
	background-image: url(/style/maintenance/section-maintenance.jpg);
}

.paralaxeMaintenance3 {
	background-image: url(/style/maintenance/section-pompage.jpg);
}

.tickets {
	height : 100px; 
	padding-bottom: 150px;
}
.tickets_content {
	height : 150px; 
	position: absolute;
	width: 100%;
	left : 0;
	top : 48px;
	transition: 0.5s;
}
.ticket{
	z-index : 40;
	position: relative;
	transition: 0.5s;
	top : 0;
	/*cursor : pointer;*/
	padding-bottom: 0;
}

.ticket .ticket-list {opacity: 0; max-height: 0; transition: 0.5s;}
.ticket:hover .ticket-list{
	opacity: 1;
	max-height: 1000px;
	padding-bottom: var(--padding)
}
.ticket:hover {
	top : -100px;
}

.paralaxeTicket {
	position: relative;
	z-index : 30;
}
/*** rubrique    *****************************************/ 


.masonry-css, .masonry-css-realisations {
  column-gap: 0px;
}

.masonry-css > .item, .masonry-css-realisations > .item {
 transition : all 0.5s;
 break-inside: avoid;
 /* margin: 0 0 1em;*/
}

/* Masonry-css on large screens */
@media only screen and (min-width: 1300px) {
  .masonry-css {
    column-count: 5;
  } 

  .masonry-css-realisations {
    column-count: 2;
  }

}

@media only screen and (max-width: 1299px) and (min-width: 1000px) {
  .masonry-css {
    column-count: 4;
  }
   .masonry-css-realisations {
    column-count: 3;
  }
}

/* Masonry-css on medium-sized screens */
@media only screen and (max-width: 999px) and (min-width: 750px) {
  .masonry-css {
    column-count: 3;
  }
   .masonry-css-realisations {
    column-count: 2;
  }
}

/* Masonry-css on small screens */
@media only screen and (max-width: 749px) {
  .masonry-css {
    column-count: 2;
  }
} 

.friseSlider .lsOneSlide:nth-child(even) {
	padding-top: 200px;
}

.uneInspi::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	padding: 5px;
	opacity: 0;
	transition: 0.5s;
	width: 100%;
	height: 100%;
	background-color: rgba(0,0,0,0.4);
	z-index : 2;
}
.uneInspi:hover::after, .uneInspi:hover span {
	opacity: 1;
}
.uneInspi span{
	font-size: 90%;
	display: block;
	position: absolute;
	bottom: calc(var(--padding) /2);
	left :  calc(var(--padding) /2); 
	width: calc(100% - var(--padding));
	opacity: 0;
	transition : 0.5s;
	z-index : 3;
	line-height: 1.3em;
}
.bgOuvrier { background-image: url(/style/accueil/mongolfiere-JO.jpg);}
.beforeOuvrier::before {
	content: url(/style/accueil/logo-MOF.png);
	position: absolute;
	top: 0;
	left: -10px;
	transform: translateX(-100%);
}

.vagueBleuClair0::before,
.vagueBleuClairRight0::before,
.vagueBleuFonce0::after,
.vagueBleuClair1::before,
.vagueVert0::after,
.vagueVert1::after {
	position: absolute;
	z-index: 1;
	pointer-events: none;
}

.vagueBleuClair0::before {
	content: url(/style/ruban-bleu-clair.png);
	left: 0;
	bottom: 0;
	transform: translateX(-30%);
}
.vagueBleuClairRight0::before {
	content: url(/style/ruban-bleu-clair.png);
	right: 0;
	top: 0;
	transform: rotate(180deg);
}
.vagueBleuFonce0::after {
	content: url(/style/ruban-bleu-fonce.png);
	right: 0;
	top: 0;
	transform: rotate(180deg);
}
.vagueBleuClair1::before {
	content: url(/style/ruban-bleu-clair.png);
	left: 0;
	top: 0;
	transform: translateX(-30%);
}
.vagueVert0::after {
	content: url(/style/ruban-vert.png);
	right: 0;
	top: 0;
	transform: rotate(180deg);
}
.vagueVert1::after {
	content: url(/style/ruban-vert.png);
	right: 0;
	bottom: -50px;
	transform-origin: left bottom;
	transform: translateX(100%) rotate(-90deg);
}

.marginNegatif { margin-left: -150px; }
/*.traitSchemaBleuFonce { margin-left: -80px; }*/
.traitSchemaBleuFonce::before,
.traitSchemaBleuClair::before,
.traitSchemaVert::after {
	content: '';
	position: absolute;
}
.traitSchemaBleuFonce::before {
	height: 130px;
	width: 2px;
}
.traitSchemaBleuFonce::before {
	left: 14%;
	top: 20%;
	transform: translateY(100%);
	background-color: var(--bleu-fonce);
}
.traitSchemaBleuClair::before {
	width: 150px;
	height: 2px;
	top: 16%;
    left: 34%;
	transform: translateX(-100%);
	background-color: var(--bleu-clair);
}
.traitSchemaVert::after {
	width: 2px;
	height: 150px;
	left: 6%;
    top: 50%;
	transform: translateY(-100%);
	background-color: var(--vert);
}

/* responsive */
@media all and (max-width: 1700px) {
	header { font-size: 90%; }
}

@media all and (max-width: 1550px) {
	nav#mainNav li a { padding: 0 10px; }
	a.headerLogo { max-width: 250px; }
	.noVague-1500::before, .noVague-1500::after {
		display: none;
	}
}

@media all and (max-width: 1300px) {
	.lColumnReverse { flex-direction: column-reverse; }
	.lRowReverse { flex-direction: row-reverse; }
	.lCache { display: none; }
	.l1-1 { width: 100%; }
	.l1-2 { width: 50%; }
	.l1-3 { width: 33.33%; }
	.l1-4 { width: 25%; }
	.lfl { float: left !important; }
	.lP { padding: var(--padding); }
	.lpnb { padding-bottom: 0; }

	.realisationTop { left: 0; width: 50%; }

	.bgAccueil1, .bgAccueil2 { height: 50vh; font-size: 70%;}
	#slider { font-size: 70%; line-height: 1.5; }
	#slider .btn_suite { font-size: 150%; line-height: 1.5; }
	#slider::after { display: none; }

	.traitSchemaBleuFonce::before,
	.traitSchemaBleuClair::before,
	.traitSchemaVert::after { display: none; }
	.marginNegatif { margin-left: 0; }

	.lCacheBefore::before,
	.lCacheAfter::after { display:none; }

	.tickets {
		height : auto; 
		padding-bottom: var(--padding);
	}

	.ticket:hover {
		top : 0;
	}

	.tickets_content {
		position: initial;
		height: auto;
	}
	.ticket .ticket-list{
		opacity: 1;
		max-height: none;
		padding-bottom: var(--padding)
	}

}

@media all and (max-width: 1000px) {
	.mColumnReverse { flex-direction: column-reverse; }
	.mCache { display: none; }
	.m1-1 { width: 100%; }
	.m1-2 { width: 50%; }
	.m1-3 { width: 33.33%; }
	.m1-4 { width: 25%; }
	.cn-cookie a.btnAccept, .cn-cookie a.btnDeny {
		position: relative;
		top: inherit;
		display: block;
		right: inherit;
		margin: 10px auto 0 auto;
		max-width: 200px;
		transform: translateY(0);
	}

	.friseSlider .lsOneSlide:nth-child(even) { padding-top: calc(var(--padding) * 2); }
}

@media all and (max-width: 850px) {
	.w100-850 { width: 100%; }
}

@media all and (max-width: 750px) {
	.w100-750 { width: 100%; max-width: 100%; }
	.reverse-750 { flex-direction: column-reverse; }
	.pnb-750 { padding-bottom: 0; }
	.o1-750 { order: 1; }
	.o2-750 { order: 2; }
	.o3-750 { order: 3; }
	.o4-750 { order: 4; }
	.o5-750 { order: 5; }
	.o6-750 { order: 6; }
	.o7-750 { order: 7; }
	.o8-750 { order: 8; }
	.o9-750 { order: 9; }
	.cache-750 { display: none; }
	.pMin-750 { padding: calc(var(--padding) / 2); }
	.noBefore-750::before { display: none; } 
	.noAfter-750::after { display: none; } 
}

@media all and (max-width: 620px) {
	html, body { overflow-x: hidden; }
	.sColumnReverse { flex-direction: column-reverse; }
	.sCache { display: none; }
	.col1-2, .col1-3, .col2-3, .col1-4, .col3-4, .col1-5 {float: none; width: 100%; }
	.flex1-2, .flex1-3, .flex2-3, .flex1-4, .flex3-4, .flex1-5 {width: 100%;}
	.s1-1 { width: 100%; }
	.s1-2 { width: 50%; }
	.s1-3 { width: 33.33%; }
	.s1-4 { width: 25%; }	
}

@media all and (max-width: 500px) {

}