/*-----------------*/
/* LOADER */
/*-----------------*/
#loader-wrapper svg
{
    --size: 50vw;
    width: var(--size);
    height: var(--size);
    --maxsize: 300px;
    max-width: var(--maxsize);
    max-height: var(--maxsize);
}

@keyframes animate-svg-stroke-1{0%{stroke-dashoffset:5716.87744140625px;stroke-dasharray:5716.87744140625px}100%{stroke-dashoffset:0;stroke-dasharray:5716.87744140625px}}@keyframes animate-svg-fill-1{0%{fill:transparent}100%{fill:rgb(15,15,15)}}.svg-elem-1{animation:animate-svg-stroke-1 1s cubic-bezier(0.47,0,0.745,0.715) 0s both,animate-svg-fill-1 0.7s cubic-bezier(0.47,0,0.745,0.715) 0.8s both}@keyframes animate-svg-stroke-2{0%{stroke-dashoffset:2862.679443359375px;stroke-dasharray:2862.679443359375px}100%{stroke-dashoffset:0;stroke-dasharray:2862.679443359375px}}@keyframes animate-svg-fill-2{0%{fill:transparent}100%{fill:rgb(15,15,15)}}.svg-elem-2{animation:animate-svg-stroke-2 1s cubic-bezier(0.47,0,0.745,0.715) 0.12s both,animate-svg-fill-2 0.7s cubic-bezier(0.47,0,0.745,0.715) 0.9s both}@keyframes animate-svg-stroke-3{0%{stroke-dashoffset:1924.3455810546875px;stroke-dasharray:1924.3455810546875px}100%{stroke-dashoffset:0;stroke-dasharray:1924.3455810546875px}}@keyframes animate-svg-fill-3{0%{fill:transparent}100%{fill:rgb(15,15,15)}}.svg-elem-3{animation:animate-svg-stroke-3 1s cubic-bezier(0.47,0,0.745,0.715) 0.24s both,animate-svg-fill-3 0.7s cubic-bezier(0.47,0,0.745,0.715) 1s both}@keyframes animate-svg-stroke-4{0%{stroke-dashoffset:9557.1083984375px;stroke-dasharray:9557.1083984375px}100%{stroke-dashoffset:0;stroke-dasharray:9557.1083984375px}}@keyframes animate-svg-fill-4{0%{fill:transparent}100%{fill:rgb(240,28,33)}}.svg-elem-4{animation:animate-svg-stroke-4 1s cubic-bezier(0.47,0,0.745,0.715) 0.36s both,animate-svg-fill-4 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.1s both}@keyframes animate-svg-stroke-5{0%{stroke-dashoffset:1559.765625px;stroke-dasharray:1559.765625px}100%{stroke-dashoffset:0;stroke-dasharray:1559.765625px}}@keyframes animate-svg-fill-5{0%{fill:transparent}100%{fill:rgb(240,28,33)}}.svg-elem-5{animation:animate-svg-stroke-5 1s cubic-bezier(0.47,0,0.745,0.715) 0.48s both,animate-svg-fill-5 0.7s cubic-bezier(0.47,0,0.745,0.715) 1.2000000000000002s both}

/*-----------------*/
/* ELEMENTS */
/*-----------------*/
.horairemodal .infohoraires_ouverture p{
    margin-bottom: 16px;
}
.white blockquote p
{
    color: var(--white);
}
/*-----------------*/
/* LIGNES DE CONSTRUCTION (motif du logo) */
/*-----------------*/
.lines {
    --line-color: rgb(15 15 15 / 18%);
    position: absolute;
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    z-index: -1;
}
#news .lines,
#reassurances .lines,
#footerForm .lines,
#contentPage .lines { --line-color: rgb(255 255 255 / 22%); }

.line {
    position: absolute;
    display: block;
    background: var(--line-color);
}
.line.v { width: 1px; top: -5%; bottom: -5%; transform-origin: center top; }
.line.l1 { left: 6%; }
.line.l2 { left: calc(6% + 18px); top: 10%; }
.line.r1 { right: 7%; top: 20%; bottom: 35%; width: 2px; background: var(--primary-color); }
.line.h { height: 1px; left: -2%; width: 40%; top: 82%; transform-origin: left center; }

.line.o { height: 1px; left: 2%; width: 45%; top: 30%; rotate: 28deg; transform-origin: left center; }

/* Jonction : pilier rouge à cheval sur le haut de la section, traits qui débordent des deux côtés */
.seam {
    position: absolute;
    top: 0;
    right: 12%;
    width: 40px;
    height: 260px;
    translate: 0 -50%;
    pointer-events: none;
    z-index: 2;
}
.seam-pillar {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 14px;
    height: 100%;
    background: var(--primary-color);
    /* sommet taillé en biais comme dans le logo */
    clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%);
    transform-origin: center bottom;
}
.seam-line {
    position: absolute;
    top: -25%;
    width: 1px;
    height: 150%;
    /* gris moyen : lisible sur la section claire du dessus comme sur la sombre du dessous */
    background: rgb(128 128 128 / 45%);
    transform-origin: center top;
}
.seam-line:first-child { left: 0; }
.seam-line:nth-child(2) { left: 12px; top: -10%; height: 135%; }


/*-----------------*/
/* HEADER */
/*-----------------*/
#header-top {
    background-color: var(--black);
    color: var(--white);
}
.fixed-header #header-coordonnees
{
    display: none;
}
.fixed-header #navprimary
{
    position: static;
    border-top: 1px solid rgb(255 255 255 / 20%);
    border-bottom: initial;
}
.fixed-header #header-top>*
{
    justify-content: center;
}
/*-----------------*/
/* NAVPRIMARY */
/*-----------------*/

.navigtoogle:not(:last-of-type):after {
    content: "";
    height: 10px;
    width: 1px;
    position: absolute;
    right: 0;
    top: 50%;
    background-color: var(--white);
    transform: translateY(-50%);
    opacity: 0.4;
}
#navprimary .navigtoogle:first-of-type:after
{
    display: none;
}

.navigmenu .naviglink.lvl-0:not(.item-logo) span:after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    width: 100%;
    bottom: -13px;
    transform-origin: right center;
    transform: scale(0, 1);
    transition: transform .25s cubic-bezier(.25, .8, .25, 1);
    height: 3px;
    background: currentColor
}

.navigmenu .active .naviglink.lvl-0 {
    color: var(--primary-color);
}

.navigmenu .active .naviglink.lvl-0 span:after,
.navigmenu .naviglink.lvl-0:hover span:after {
    transform-origin: left center;
    transform: scale(1, 1)
}
/*-----------------*/
/* HEADERHOME */
/*-----------------*/
.imageDiapo:before,
.imageDiapo:after,
#headerHome:before,
#headerHome:after{
    z-index: 2;
    --c: var(--primary-color);
    --w: max(2px, calc(100vw* 0.0015));
    --o: 14%; 
    --frame:
        linear-gradient(var(--c) 0 0) var(--o) 0 / var(--w) 100% no-repeat,
        linear-gradient(var(--c) 0 0) calc(100% - var(--o)) 0 / var(--w) 100% no-repeat,
        linear-gradient(var(--c) 0 0) 0 var(--o) / 100% var(--w) no-repeat,
        linear-gradient(var(--c) 0 0) 0 calc(100% - var(--o)) / 100% var(--w) no-repeat;
    border: none;
    background: var(--frame);
    top: 50%;
    width: var(--size);
    height: calc(var(--size)* 1.2); 
}
#headerHome:after{
    background: var(--frame),
        linear-gradient(to top right, transparent calc(50% - 1px), var(--c) 0 calc(50% + 1px), transparent 0);
}
#headerHome:before,
#headerHome:after{
    opacity: 0.23;
    transform: translateY(-50%);
}
#headerHome:before{
     --size: 12.5vw;
     margin-top: calc(98vw* 0.2);
     left: calc(100vw* 0.03);
}
#headerHome:after{
    --size: 17.5vw;
    left: auto;
    right: calc(-100vw* 0.04);
    margin-top: calc(-100vw* 0.06);
}

.imageDiapo:before{
    --size: 20vw;
    transform: translate(-50%, 0%);
}

.imageDiapo:after{
    --size: 10vw;
    left: auto;
    right: 0;
    margin-top: calc(-100vw* 0.14);
    transform: translateX(30%) translateY(-50%);
}
#headerHome-accroche
{
    font-size: 1.5em;
    margin: 0 auto;
    margin-bottom: 20px;
    font-family: var(--font-bold);
}
/*-----------------*/
/* SOCIAL */
/*-----------------*/
.sociblock:not(#headerHome-social .sociblock) .share-buttons a {
    --size: 35px;
    width: var(--size);
    height: var(--size);
    align-items: center;
    justify-content: center;
    margin: 0 1.5px;
}
.sociblock:not(#headerHome-social .sociblock) .share-buttons a:before {
    content: '';
    position: absolute;
    z-index: 0;
    width: 100%;
    height: 100%;
    top: 0;
    border-radius: 100px;
    transition: all ease 250ms;
}
.sociblock:not(#headerHome-social .sociblock) .share-buttons a:first-child:before{background: #3B5998;}
.sociblock:not(#headerHome-social .sociblock) .share-buttons a:nth-child(2):before{background: #1DA1F2;}
.sociblock:not(#headerHome-social .sociblock) .share-buttons a:nth-child(3):before{background: #E4405F;}
.sociblock:not(#headerHome-social .sociblock) .share-buttons a:nth-child(4):before{background: #0077B5;}

.sociblock:not(#headerHome-social .sociblock) .share-buttons a:hover:before{background: var(--primary-color);}
.sociblock:not(#headerHome-social .sociblock) .share-buttons a svg{
    --size: 15px;
	fill: var(--white)
}

/*-----------------*/
/* GALLERY HOME */
/*-----------------*/
#galleryHome .gallery {
    display: grid;
    width: 100%;
    transition: .6s;
    grid-template-columns: repeat(3,1fr);
    max-width: 100%;
    grid-auto-rows: 120px;
    position: relative;
    grid-gap: 2px
}

#galleryHome .gallery .gallery-item {
    grid-column: span 1;
    position: relative;
    width: 100%!important
}
/*-----------------*/
/* PRODUITS HOME */
/*-----------------*/


/*-----------------*/
/* CONTENT */
/*-----------------*/
.home #content{padding-top: 0;}
.home #content .content-imgHome{flex-wrap: nowrap!important;}

.home #content .content-imgHome  .wp-block-column .wp-block-image,
.home #content .content-imgHome  .wp-block-column .wp-block-image a{height: 100%;}

.home #content .content-imgHome  .wp-block-column .wp-block-image img{
	height: 100%;
	object-fit:cover;
}
.home #content .title{
	max-width: 720px;
}
.home #content .content-imgHome{
    max-width: 410px;
    margin-left: auto;
    position: relative;
    top: -70px;
    margin-bottom: -40px;
    z-index: 3;
    gap: 0;
}
.home #content .content-imgHome .wp-block-column:first-of-type .wp-block-image{
    top: 35px;
    height: 125px;
    position: relative;
}
.home #content .content-imgHome .wp-block-column:last-of-type .wp-block-image{
    position: relative;
    border-radius: 0 0 200px 200px;
    overflow: hidden;
    height: 230px;
    left: -26%;
    width: 126%;
    z-index: -1;
}

/*-----------------*/
/* CONTENTPAGE */
/*-----------------*/
#contentPage
{
    background: var(--black);
}
/*----------------- INTRO BANNER -----------------*/
#content .introBanner{
	height: 700px;
	padding: 0;
	max-width: 100%;
	overflow: hidden;
	margin: 0;
	left: -30px;
	margin: 50px 0 150px;
}
#content .introBanner .wp-block-cover__image-background {will-change: transform, clip-path;}

#content .introBanner.introBanner_right{
	margin-left: auto;
	left: auto;
	right: -30px;
}

/*-----------------*/
/* PRESTATIONS */
/*-----------------*/
.home #prestations{
	padding: 120px 30px 150px;
	background-position: center;
	background-size: cover;
	border-bottom: solid 1px #f0f0f0;
}
.home #prestations:before{background: linear-gradient(var(--white), rgb(255 255 255 / 30%) 20%);}
.prestations-img {height: auto;}

#prestations .cksliderwrap{padding: 0;}

.nohome #prestations{
	background: none;
	padding: 0;
}

#prestations .prestations-content{
	padding: 50px 40px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 40px;
	background: var(--white);
	top: 40px;
	position: relative;
}
#prestations .prestations-content:before{
	left: -20%;
	background-color: var(--white);
	width: 120%;
	border: solid 1px #f0f0f0;
}

#prestations .wrapContent-presta .blocthumb{
    height: 100%;
    position: relative;
    z-index: 1;
    overflow: hidden;
}


#prestations .blocthumb img{
	position: absolute;
	top: 0;
	left: 0;
}

#prestations .prestations-content h3 {margin: 0 0 -20px;}
.home #prestations .prestations-content .title_content:not(:hover),
.home .prestations-content :is(.content_link, .tc_excerpt){color: var(--black)}
/*-----------------*/
/* PRESTATIONS PAGE */
/*-----------------*/
.grid-img {
	margin-left: -1rem;
	margin-right: -1rem;
	margin-top: 100px!important;
	margin-bottom: -80px;
}
.grid-img img{
	height: 100%;
	object-fit: cover;
}

.grid-img div {height: 100%;}


/*-----------------*/
/* CARTE */
/*-----------------*/

.tc_content .wp-block-table:not(.is-style-stripes) table{
	margin-bottom: 0;
	background: none!important;
}

.tc_content .wp-block-table:not(.is-style-stripes) table td em {
    font-size: 14px;
    line-height: 1.4;
    display: block;
    font-family: var(--font-text);
    letter-spacing: 0;
    text-transform: none;
    color: var(--text-color);
    font-weight: normal;
}

.tc_content .wp-block-table:not(.is-style-stripes) table td{
	padding: 15px 6px !important;
	border: none !important;
	border-bottom: 1px dashed #515151 !important;
	color: var(--title-color);
	font-weight: bold;
}

.tc_content .wp-block-table:not(.is-style-stripes) table tr td:not(:first-child){
	width: auto!important;
	display: flex;
	align-items: center;
	min-width: 85px;
	font-family: var(--font-bold);
	color: var(--primary-color);
}


/*-----------------*/
/* ACTU */
/*-----------------*/
#news {
    padding: 150px 30px ;
    background-image: url(../images/home-bg1.jpg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    z-index: 1
}
#news .content-news {grid-gap: 0 60px}

#news .wrapper_slider {
    grid-column: span 1;
    border-bottom: solid 1px rgb(255 255 255 / 20%);
    padding-bottom: 30px;
    margin-bottom: 30px
}
#news .wrapper_inner_slider{
    height: auto;
    background: none;
    border: none;
}

#news .wrapper_slider:last-of-type,
#news .wrapper_slider:first-of-type {
    border: none;
    margin: 0;
    padding: 0
}

#news .wrapper_slider:not(:first-of-type) .thumbnail_slider{display: none;} 
#news .wrapper_slider:not(:first-of-type) .text_slider{
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;  
    overflow: hidden;
} 

#news .content_slider {padding: 0}
#news .title_slider a:not(:hover) { color: var(--white)}
#news .title_slider {font-size: 1.5em;}

#news .thumbnail_slider .button {
    position: absolute;
    left: 0;
    bottom: 0;
    border-radius: 0!important;
}
#news .wrapper_slider .text_slider,
#news .wrapper_slider .text_slider a { color: var(--white)}

#news .wrapper_slider:first-of-type .next_slider {display: none}

#listarticles .listedarticle {
    background: var(--background-color);
    height: 100%
}


.title_link_slider {
	background-size: 100% 96%;
    background-repeat: no-repeat;
    background-image: -o-linear-gradient(transparent calc(100% - 2px),currentColor 2px);
    background-image: linear-gradient(transparent calc(100% - 2px),currentColor 2px);
    background-image: -ms-linear-gradient(transparent 95%,currentColor 2px);
    -webkit-transition: .6s cubic-bezier(.215,.61,.355,1);
    -o-transition: .6s cubic-bezier(.215,.61,.355,1);
    transition: .6s cubic-bezier(.215,.61,.355,1);
    background-size: 0 96%
}
.title_link_slider:hover {background-size: 100% 96%}

/*-----------------*/
/* SECTIONS */
/*-----------------*/
#sections{
    position:relative;
    z-index: 10;
}
.sectionsbloc .specialthumb {position: relative;}
.sectionsbloc.odd .section_thumb {order: 0;}


/*-----------------*/
/* REASSURANCES */
/*-----------------*/
#reassurances{
    background-image: url(../images/home-bg4.jpg);
	background-position: center;
	background-size: cover;
}
#reassurances:before{
    background: var(--overlay-color);
}
#reassurances .picto-bloc .picto-img .icon-box{
    display: flex;
    align-items: center;
}
.picto-container{
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	position: relative;
	margin: 140px 0 70px;
	display: grid;
}

.picto-container .picto-content{
	margin: 0 ;
	text-align: left;
}
.picto-container li p{
	margin:  0;
	font-size: 18px;
}
.picto-container li p strong{
    display: block;
    font-family: var(--font-title);
    font-size: 27px;
    line-height: 1.3;
    margin-bottom: 6px;
    color: var(--white);
}
.picto-container  .picto-img{
	position:absolute;
	background: var(--primary-color);
	top: 0;
	left: 0;
	padding: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
}
/*-----------------*/
/* PARTENAIRES */
/*-----------------*/
.widget_partenaires{justify-content: center;}
/*-----------------*/
/* NEWSLETTER */
/*-----------------*/

/*-----------------*/
/* CERTIFICATIONS */
/*-----------------*/
.widget_certifications
{
    max-width: 400px;
    margin:  0 auto!important;
    width: 100%;
}
/*-----------------*/
/* AGENCES */
/*-----------------*/

/*-----------------*/
/* CONTACTFORM */
/*-----------------*/

/*-----------------*/
/* FOOTER */
/*-----------------*/
#footer #footerbloc {
	grid-template-areas:
		" footerLinks";
	grid-template-columns:  1fr;
	justify-items: center;
}
#footerForm{
	background-image: url(../images/home-bg2.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    padding: 120px 50px 220px;
    z-index: 3;
}
#footerLogo{
    text-align: center;
}
#footerForm #wrapperForm{
	max-width: 700px;
	margin: auto;
	background-color: var(--overlay-color);
	padding: 70px 50px;
}
#footerForm #wrapperForm .title{margin-bottom: 40px;}

#footer-coordonnees{
	bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
}
#footer-coordonnees font{display: contents}
#footer-coordonnees .wrappercontent > div {
    line-height: 1.3;
    font-size: 15px;
    padding: 45px 20px 20px 20px;
}
#footer-coordonnees .wrappercontent>div:before {top: 20px;}
#footer{background: var(--title-color)}
