/* base.css - Fichier de base sans couleurs ni typographie */

/* Container et Structure */
.container {
	margin: 0 auto;
	max-width: 1200px;
}

/* Spacing Utilities */
body ._ptb-0 { padding-top: 0; padding-bottom: 0; }
body ._ptb-25 { padding-top: 25px; padding-bottom: 25px; }
body ._plr-25 { padding-left: 25px; padding-right: 25px; }
body ._plr-20 { padding-left: 20px; padding-right: 20px; }

body ._mtb-0 { margin-top: 0; margin-bottom: 0; }
body ._mtb-25 { margin-top: 25px; margin-bottom: 25px; }
body ._mlr-25 { margin-left: 25px; margin-right: 25px; }
body ._mlr-20 { margin-left: 20px; margin-right: 20px; }

.c._c-max-s,
._c-max-s {
	max-width: 600px;
}

#cn-notice-text {
	display: inherit;
}

.background-attachment-fixed {
	background-attachment: fixed;
}

/* Responsive Width Classes */
.w1-2 { width: 49.98%; }
.w1-3 { width: 33.31%; }
.w1-4 { width: 24.98%; }
.w1-5 { width: 19.98%; }
.w1-6 { width: 16.64%; }
.w1-7 { width: 14.26%; }
.w1-8 { width: 12.48%; }
.w2-3 { width: 66.64%; }
.w2-5 { width: 39.98%; }
.w2-7 { width: 28.55%; }
.w3-4 { width: 74.98%; }
.w3-5 { width: 59.98%; }
.w3-7 { width: 42.83%; }
.w4-5 { width: 79.98%; }
.w4-7 { width: 57.12%; }
.w5-6 { width: 83.31%; }
.w5-7 { width: 71.4%; }
.w1-9 { width: 11.09%; }
.w2-9 { width: 22.2%; }
.w3-9 { width: 33.31%; }
.w4-9 { width: 44.42%; }
.w5-9 { width: 55.53%; }
.w6-9 { width: 66.64%; }
.w7-9 { width: 77.75%; }
.w8-9 { width: 88.86%; }
.w100, .w1 { width: 100%; }

/* Layout Elements */
.nav-header,
.site-footer,
.site-header,
.site-content,
.l { 
	float: left; 
	width: 100%;
}

body.contact .wpcf7 {
	max-width: 600px;
	margin: 0 auto;
}

.entry-content .b ul {
	padding-left: 18px;
}

.entry-content .b ul li {
	margin: 1em 0;
}

/* Responsive Classes */
@media (min-width: 600px) and (max-width: 1100px) {
	body .tablet-w1-2 { 
		width: 49.99%;
	}
}

@media (max-width: 600px) {
	body .m-w1,
	body .m-w100 { 
		width: 100%;
	}

	body .m-w1-2 { 
		width: 49.99%;
	}

	body #nav li a { 
		padding: 15px 0;
	}

	#nav li a, 
	.w { 
		width: 100%;
	}

	body .hide-mobile,
	body #nav .hidden { 
		display: none;
	}
}

@media (min-width: 500px) and (max-width: 800px) {
	.fl.m-ac,
	.fr.m-ac,
	.ar.m-ac,
	.al.m-ac,
	.m-ac { 
		width: 100%;
	}
}

@media (max-width: 1000px) {
	.c { 
		padding: 0 3%;
	}
}

.b { 
	border-radius: 3px;
}

.b ul li {
	margin: 1em;
}

/* CSS Shortcuts */
.l, .line { 
	display: table; 
	width: 100%; 
	line-height: 1; 
	clear: both;
}

.full { width: 100%; }
.ib { display: inline-block; }
.fl { float: left; }
.fr { float: right; }
.cl, .cleft { clear: left; }
.cright { clear: right; }
.cboth { clear: both; }
.center { margin: 0 auto; }
.w { 
	display: inline-block;     
	vertical-align: top; 
	float: left;
}

/* Predefined Styles */
.js_bg_image {
	background-repeat: no-repeat;
	background-size: cover; 
	background-position: center;
}

div { 
	box-sizing: border-box;
}

body.page .site-content .entry-content .b {
	padding: 5px 25px;
	border-radius: 4px;
}

body.page .l-bt-tel {
	border-top: 2px dashed rgba(0, 0, 50, 0.15);
	border-bottom: 2px dashed rgba(0, 0, 50, 0.15);
	padding: 25px 0;
}

body.page .site-content .l-bt-tel h2,
body.page .site-content .l-bt-tel .l-title {
	margin-bottom: 25px;
}

.post-thumbnail { 
	line-height: 0; 
	text-align: center; 
	padding: 5px 0;
}

.post-thumbnail img { 
	margin: 0 auto; 
	border-radius: 3px; 
}

img { 
	max-width: 100%; 
	height: auto;
}

img.w100 { 
	display: block;
}

.no-bg { 
	background: transparent !important;
}

.fixed {
	position: fixed;
	width: 100%;
	top: 0;
	z-index: 99;
	zoom: 1;
	box-shadow: 0px 0px 20px rgba(0,0,0,0.5);
	opacity: 0.9;
}

.c {	
	display: table;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	position: relative;
}

/* Button and Link Styles */
.b.b-link {
	width: 100%;
	min-height: 65px;
	text-align: center;
	border: 0;
	max-width: 300px;
	display: flex;
	align-content: center;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	border-radius: 50px;
}

.flex-center {
	text-align: center;
	display: flex;
	justify-content: center;
}

.b.b-link a {
	text-decoration: inherit;
}

.l-temoins__item .b {
	min-height: 200px;
}

/* Site Header */
.site-header { 
	min-height: 90px; 
	background-repeat: no-repeat;
	background-size: contain;
	background-position: top left;
}

.site-header .logo img {
	max-width: 75px;
	mix-blend-mode: darken;
}
body.tpl-2025 .site-header .logo img {
	mix-blend-mode: hard-light;
}

.header-in { 
	min-height: 90px;
}

.logo img {
	vertical-align: middle;
}

.w--identity a { 
	text-decoration: none;
}

.logo {
	padding-top: 10px;
}

.w--infos {
	padding-top: 18px;
	line-height: 1.7em;
}

/* Contact Flottant */
.l-floatban {
	text-align: center;
	min-height: 60px;
	max-height: 110px;
	padding: 0;
}

.l-floatban .__num-tel a { 
	text-decoration: none; 
}

.l-floatban a {
	text-decoration: none;
}

.l-floatban a:hover {
	text-decoration: underline;
}

.l-floatban__num {
	padding: 0;
	margin-bottom: 4px;
}

.l-floatban__num img {
	position: relative;
	top: 8px;
}

.l-floatban__infos {
	position: relative;
	bottom: 5px;
	padding: 0 10px;
}

.l-floatban a.open-modal {
	padding: 8px 13px 7px 13px;
	border: 2px #fff solid;
	border-radius: 4px;
	display: inline-block;
}

.l-floatban a.open-modal:hover {
	text-decoration: none;
}

body.tpl-2025 .l-floatban .c{
	text-align: center;
}

/* Banner */
.l-banner { 
	min-height: 50vh;
	padding-top: 2.5vh; 
	padding-bottom: 2.5vh; 
	background-size: 100%;
	background-size: auto;
}

.l-banner-photo {
	padding-top: 20vh; 
	padding-bottom: 20vh; 
}

.l-banner .l-head {
	margin-bottom: 40px;
}

h1,
.l-banner h1 { 
	margin: 20px 0 0 0;
}

.l-banner p.benoit {
	max-width: 800px;
	margin: 0 auto;
}

.l-banner p {  
	margin: 15px 0 0 0;
} 

.l-banner p.xs {  
	margin-top: 10px;
}

.formulaire {
	max-width: 500px;
	margin-top: 15px;
	margin-bottom: 45px;
}

form {
	margin: 0 auto;
}

.geo-select.disabled {
	opacity: 0.75;
	background-image: none;
}

form select,
form textarea {
	width: 100%;
}

.l-banner form {
	max-width: 500px;
	margin-top: 15px;
}

form select,
form select.input,
form textarea.input,
form input.input {
	min-height: 50px;
	margin-bottom: 10px;
	width: 100%;
	max-width: 100%;
	text-indent: 10px;
}

form textarea.input {
	padding-top: 10px;
}

.custom-select { 
	text-align: center; 
}

select,
select#geo-select {
	background-image: url('img/drop-icon.png');
	background-repeat: no-repeat;
	background-position: right;
	padding-right: 40px;
	min-width: 250px;
	min-height: 45px;
	padding: 0 10px;
	border: 0px;
	margin: 0 auto;
	-webkit-appearance: none; 
	-moz-appearance: none;
	appearance: none;
}

select#geo-select option {
	padding: 20px;
}

.wpcf7-form-control-wrap {
	position: relative; 
	display: inline-block;
	width: 100%;
}

.wpcf7-form-control-wrap.radio-urgence {
	display: inline-block;
}

.wpcf7-form-control-wrap .placeholder {
	display: none;
	visibility: hidden;
	position: absolute;
	top: 2px;
	z-index: 99;
	padding-left: 10px;
	width: 100%;
	display: block;
}

.wpcf7-form-control-wrap.filled .placeholder {
	display: block;
	visibility: visible;
}

.wpcf7-response-output {
	margin: 0;
	padding: 10px 15px;
	border-radius: 3px;
}

.screen-reader-response { 
	display: none;
}

div.wpcf7-validation-errors {
	margin: 15px 0;
}

form span.wpcf7-not-valid-tip {
	margin-bottom: 5px;
}

form .input.wpcf7-not-valid {
	margin-bottom: 2px;
}

form .input.filled,
form .input:focus {
	box-shadow: inset 0 0 5px 4px rgba(0,0,0,0.05);	
	outline: 0;
}

form select option,
form select .option {
	padding: 10px;
}

form input.submit {
	width: 100%;
	min-height: 65px;
	border: 0;
}

form .radio-inputs {
	text-align: center; 
	margin: 10px 0 20px 0;
}

/* Custom Radio Buttons */
.wpcf7-list-item label {
	position: relative;
	padding-left: 30px;
	padding-right: 10px;
	margin-bottom: 12px;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.wpcf7-list-item label .wpcf7-list-item-label {
	position: relative;
	top: 2px;
}

.wpcf7-list-item label input {
	position: absolute;
	opacity: 0;
	cursor: pointer;
}

.checkmark {
	position: absolute;
	top: 0;
	left: 0;
	height: 20px;
	width: 20px;
	border-radius: 50%;
}

.checkmark:after {
	content: "";
	position: absolute;
	display: none;
}

.wpcf7-list-item label input:checked ~ .checkmark:after {
	display: block;
}

.wpcf7-list-item label .checkmark:after {
	top: 6px;
	left: 6px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

/* Icons Section */
.l-icons {
	min-height: 140px;
	padding-top: 30px;
	padding-left: 2%;
	padding-right: 2%;
	box-shadow: 0px 0px 20px rgba(0,0,50,0.05); 
}

.l-icons_item {
	float: left;
	padding: 10px;
}

.l-icons_item img {
	float: left;
	margin-right: 10px;
	margin-bottom: 15px;
	border-radius: 50%;
	padding: 10px;
}

.l-icons_itemText {
	position: relative;
	top: 5px;
}

.l-icons_itemText-1 {
	margin-bottom: 5px;
}

/* Services Section */
.l.l-services {
	padding: 0px 5% 50px 5%;
}

.l-services .l-head {
	padding: 40px 0 50px 0;
}

.l.l-services .l_title {
	margin: 0;
	margin-bottom:15px;
}

.l-services p.l_descr {
	margin: 0;
}

.l-services_item { 
	float: left; 
	padding: 10px; 
}

.l-services_item .b {
	padding: 20px;
	min-height: 300px;
}

.l-services_item .b a {
	text-decoration: none;
}

.l-services_item p {
	min-height: 100px;
}

.l-services_item .b_title {
	margin-top: 0;
	margin-bottom: 0;
}

.l-services_btn img {
	margin-bottom: 5px;
	border-radius: 50px;
	padding: 10px;
}

/* Articles Section */
.l.l-articles {
	padding: 0px 5% 50px 5%;
}

.l.l-articles .l-head {
	padding: 40px 0 50px 0;
}

.l.l-articles .l_title {
	margin: 0 0 25px 0;
}

.l.l-articles p.l_descr {
	margin: 0;
}

.l-articles .l_item { 
	float: left; 
	padding: 10px; 
}

.l-articles .l_item .b {
	padding: 25px;
	min-height: 300px;
	border-radius: 4px;
}

.l_item .b:hover {
	box-shadow: 0 0 20px rgba(0,0,0,0.25);
}

.l_item .b a {
	text-decoration: none;
}

.l_item p {
	min-height: 135px;
}

.l_item .b_title {
	margin-top: 0;
	margin-bottom: 0;
}

.l-articles .b_btn {
	padding: 16px;
	border: 1px rgba(0,0,0,0.15) solid;
	border-radius: 4px;
}

/* Certifications */
.l-certifs {
	padding: 60px 0 80px 0; 
	background-size: contain;
}

.l-certifs .w-text .title {
	margin: 0;
}

.l-certifs .w-image img {
	vertical-align: center;
}

.b.b-tel {
	margin-top: 30px;
	padding: 20px;
	max-width: 500px;
	margin: 0px auto 0 auto;
}

.l-certifs .b.b-tel {
	margin: 50px auto 0 auto;
	border-radius: 75px;
}

.b.b-tel a { 
	text-decoration: none; 
}

/* Témoins */
.l-temoins { 
	padding: 50px 0 60px 0;
}

body.page .site-content .l-temoins h2 {
	margin-bottom: 45px;
}

body.page h1.entry-title,
.l-temoins .l-title { 
	margin-top: 0; 
}

.l-temoins .l-title {
	margin-bottom: 40px; 
}

body.page h1.entry-title {
	margin-top: 20px; 
}

.l-temoins__item .b {
	padding: 20px;
	margin: 12px;
}

.b-temoins { 
	text-align: center; 
	box-shadow: 0px 0px 30px rgba(0,0,20,0.15);
}

.b-temoins img.photo { 
	border-radius: 50%; 
	position: relative; 
	bottom: 50px; 
	margin-bottom: -40px; 
}

/* Solutions */
.l-solutions { 
	padding: 40px 0;
}

.l-solutions .l-solutions-item .b {
	min-height: 350px;
}

.l-solutions .l-title { 
	margin: 0;
}

.l-solutions h1.site-title { 
	margin-bottom: 25px; 
}

.l-solutions .l-descr { 
	margin: 0 0 30px 0; 
}

.l-solutions a { 
	text-decoration: none; 
}

.l-solutions .b { 
	margin: 10px; 
	text-align: center; 
	padding: 20px;
	border-top-width: 12px; 
	border-top-style: solid; 
}

.l-solutions .b:hover { 
	border-top-width: 6px;
}

.l-solutions .b-title { 
	min-height: 70px; 
}

.l-solutions .b-descr { 
	min-height: 200px; 
}

.l-solutions .b-btn { 
	box-shadow: 2px 2px 5px rgba(0,0,0,0.1); 
	padding: 20px 0; 
	text-decoration: none; 
}

.l-solutions a:hover .b-title {
	transform: translateY(20px);
}

.l-solutions a:hover .b-descr { 
	transform: translateY(15px);
}

.l-solutions a:hover .b-btn { 
	position: relative;
	bottom: 6px;
	transition: all 250ms ease-in-out;
}

.l-solutions a .b-btn {
	position: relative;
	bottom: 0px;
	transition: all 500ms ease-in-out;
}

/* Contact */
.l-contact { 
	padding: 50px 0;
	min-height: 25vh;
	padding-top: 6vh;
	padding-bottom: 10vh;
}

.contact-actions-item {
	padding: 10px 20px;
}

.contact-actions-item a { 
	min-height: 65px; 
	display: block; 
	text-decoration: none; 
}

.contact-actions-item span {
	display: inline-block;
}

/* Local */
.l-local { 
	padding: 50px 0; 
}

.l-local img { 
	transform: rotate(-2deg); 
	float: left; 
	margin: 0 auto; 
	margin-bottom: 25px; 
	box-shadow: 4px 4px 15px rgba(0,0,0,0.1); 
	border-radius: 5px;  
}

/* Footer */
.site-footer {
	padding: 30px 0;
	box-shadow: 0 0 50px rgba(0,0,0,0.05);
}

.site-footer ul#footer-menu {
	text-align: center;
	padding: 0; 
	margin: 0; 
	list-style: none;
}

.site-footer ul#footer-menu a {
	padding: 2px 10px;
	text-decoration: none;
	display: inline-grid;
}

.site-footer ul#footer-menu li { 
	display: inline-block; 
}

/* Navigation */
ul li.menu-item-has-children:hover ul.sub-menu {
	display: block;
}

.ttmenu ul.sub-menu {
	visibility: hidden;
	opacity: 0;
}

.ttmenu li:hover > ul.sub-menu,
.ttmenu ul.sub-menu li:hover > ul.sub-menu {
	visibility: visible;
	opacity: 1;     
}

.ttmenu.fixed {
	position: fixed;
	width: 100%;
	z-index: 999;
}

.ttmenu .mobile-menu-button {
	width: 100%;
	text-decoration: none;
}

.ttmenu a { 
	text-decoration: none; 
}

.ttmenu li.menu-item-has-children { 
	position: relative; 
}

.ttmenu li.menu-item-has-children > a::after {
	content: "\203A";
	padding-left: 10px;
}

.ttmenu li.menu-item-has-children .menu-item-has-children  > a::after {
	content: "\203A";
}

/* Table */
table { 
	width: 92.5%; 
	margin-bottom: 30px;  
}

table td {
	padding: 5px;
}

/* Captions */
.wp-caption {
	margin-bottom: 1.5em;
	max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
	display: block;
	margin-left: auto;
	margin-right: auto;
}

.wp-caption .wp-caption-text {
	margin: 0.8075em 0;
}

.wp-caption-text {
	text-align: center;
}

embed,
iframe,
object {
	max-width: 100%;
}

/* Normalize */
a, a:hover, a:active, a:focus, object, embed {
	outline: none;
	outline: 0;
}

html {
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

body {
	margin: 0;
	padding: 0;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
	display: block;
}

audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}

audio:not([controls]) {
	display: none;
	height: 0;
}

[hidden] {
	display: none;
}

a {
	background-color: transparent;
}

a:active,
a:hover {
	outline: 0;
}

abbr[title] {
	border-bottom: 1px dotted;
}

dfn {
	font-style: italic;
}

h1 {
	margin: 0.67em 0;
}

svg:not(:root) {
	overflow: hidden;
}

hr {
	box-sizing: content-box;
	height: 0;
	width: 100%;
	border-bottom: 0;
	border-right: 0;
	border-left: 0;
}

pre {
	overflow: auto;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
	-webkit-appearance: button;
	cursor: pointer;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

input {
	line-height: normal;
}

input[type=text],
input[type=password],
input[type=email],
input[type="text"],
input[type="password"],
input[type="email"] {
	box-sizing: border-box;
}

input[type="checkbox"],
input[type="radio"] {
	box-sizing: border-box;
	padding: 0;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
	height: auto;
}

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	border: 1px solid #c0c0c0;
	margin: 0 2px;
	padding: 0.35em 0.625em 0.75em;
}

legend {
	border: 0;
	padding: 0;
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

td,
th {
	padding: 0;
}

/* Box sizing */
*,
*::before,
*::after {
	box-sizing: inherit;
}

html {
	box-sizing: border-box;
}

/* Base Elements */
body {
	margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	clear: both;
	display: inline-block;
	width: 100%;
}

p {
	margin-bottom: 1.5em;
}

blockquote {
	margin: 0 1.5em;
}

address {
	margin: 0 0 1.5em;
}

pre {
	margin-bottom: 1.6em;
	max-width: 100%;
	overflow: auto;
	padding: 1.6em;
}

ul,
ol {
	margin: 0 0 1.5em 3em;
}

ul {
	list-style: disc;
}

ol {
	list-style: decimal;
}

li > ul,
li > ol {
	margin-bottom: 0;
	margin-left: 1.5em;
}

dt {
	font-weight: 700;
}

dd {
	margin: 0 1.5em 1.5em;
}

img {
	height: auto;
	max-width: 100%;
}

figure {
	margin: 1em 0;
}

table {
	margin: 0 0 1.5em;
	width: 100%;
}

a:focus {
	outline: thin dotted;
}

a:hover,
a:active {
	outline: 0;
}

/* Layout Styles */
.main-navigation {
	display: block;
	width: 100%;
}

.main-navigation ul {
	display: none;
	list-style: none;
	margin: 0;
	padding-left: 0;
}

.main-navigation ul ul {
	box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
	float: left;
	position: absolute;
	top: 100%;
	left: -999em;
	z-index: 99999;
}

.main-navigation ul ul ul {
	left: -999em;
	top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
	display: block;
	left: auto;
}

.main-navigation ul ul a {
	width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
	left: auto;
}

.main-navigation li {
	position: relative;
}

.main-navigation a {
	display: block;
	text-decoration: none;
}

.menu-toggle,
.main-navigation.toggled ul {
	display: block;
}

@media screen and (min-width: 37.5em) {
	.menu-toggle {
		display: none;
	}

	.main-navigation ul {
		display: flex;
	}
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
	margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
	display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
	flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
	text-align: end;
	flex: 1 0 50%;
}

/* Posts and pages */
.sticky {
	display: block;
}

.post,
.page {
	margin: 0 0 1.5em;
}

.updated:not(.published) {
	display: none;
}

.page-content,
.entry-content,
.entry-summary {
	margin: 1.5em 0 0;
}

.page-links {
	clear: both;
	margin: 0 0 1.5em;
}

.comment-content a {
	word-wrap: break-word;
}

.bypostauthor {
	display: block;
}

/* Widgets */
.widget {
	margin: 0 0 1.5em;
}

.widget select {
	max-width: 100%;
}

/* Media */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
	border: none;
	margin-bottom: 0;
	margin-top: 0;
	padding: 0;
}

.custom-logo-link {
	display: inline-block;
}

/* Galleries */
.gallery {
	margin-bottom: 1.5em;
	display: grid;
	grid-gap: 1.5em;
}

.gallery-item {
	display: inline-block;
	text-align: center;
	width: 100%;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
	grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
	grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
	grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
	display: block;
}

/* Infinite scroll */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
	display: none;
}

.infinity-end.neverending .site-footer {
	display: block;
}

/* Accessibility */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	display: block;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

#primary[tabindex="-1"]:focus {
	outline: 0;
}

/* Alignments */
.alignleft {
	float: left;
	margin-right: 1.5em;
	margin-bottom: 1.5em;
}

.alignright {
	float: right;
	margin-left: 1.5em;
	margin-bottom: 1.5em;
}

.aligncenter {
	clear: both;
	display: block;
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 1.5em;
}

/* Petits Plus - Border Radius */
.l-solutions .l-solutions-item .b,
.contact-actions-item a,
.b.b-tel,
.l-solutions .b-btn,
form textarea.input,
form input.input,
form input.submit,
.l-services_item .b,
select,
.b-temoins {
	border-radius: 3px;
}

.l-floatban a.open-modal,
.contact-actions-item a,
.l-solutions .b-btn {
	border-radius: 50px;
}

.l-solutions .l-solutions-item .b {
	border-radius: 40px;
}

a.flex,
a.flex .flex {
	display: flex;
	justify-content: center;
	align-items: center;
}

/* Hover Effects */
.l-solutions-item .b:hover,
.b-tel:hover,
.b-link:hover,
form input.submit:hover,
.contact-actions-item a:hover {
	box-shadow: 0 0 20px rgba(0,0,0,0.05);
	transform: scale(1.05);
	transition: all 150ms linear;
}

.contact-actions-item a,
.form input.submit,
.l-solutions-item .b,
.l-services_item .b,
.b-tel,
.b-link {
	transition: all 150ms linear;
}

* {
	transition: all 100ms linear;
}

/* Animations */
.anim-blip {
	animation-duration: 1s;
	animation-iteration-count: 15;
	animation-name: blip;
	transition: transform 600ms linear;
}

.showIn {
	animation-duration: 1s;
	animation-name: fadein;
	transition: transform 300ms linear;
}

.showOut {
	animation-duration: 3s;
	animation-name: fadeout;
	transition: transform 300ms linear;
}

/* Modal */
.modal.hidden { 
	display: none; 
}

.modal .modal-header {
	text-align: center;
	padding: 25px 0.5% 10px 0.5%;
}

.modal-header-2 { 
	margin: 5px 0; 
}

.modal {
	border-radius: 4px; 
	overflow: hidden;
	margin: 0 auto;
	left: 1%;
	right: 1%;
	top: 50px;
	position: absolute;
	z-index: 999;
}

.modal .close {
	text-align: center;
	padding: 2px;
	margin-bottom: 15px;
	position: relative;
	bottom: 0;
	top: 5px;
	width: 28px;
	border-radius: 3px;
	float: right;
	right: 5px;
	cursor: pointer;
}

.modal img {
	width: 100%;
}

.modal .modal-content {}
.modal .modal-inner {
	padding: 5%;
}

.modal .modal-footer {
	padding: 5px;
}

.modal .in {
	padding: 6% 4% 3% 4%;
}

.modal .in h3 {
	margin: 10px 0;
}

.modal .l-icons .w1-4 {
	width: 49.9%;
}

.modal .l-icons img {
	width: auto;
}

#modal-background {
	display: block;
	position: fixed;
	z-index: 99;
	height: 100%;
	width: 100%;
	top: 0;
}

/* Keyframes Animations */
@keyframes fadein {
	0% { opacity: 0; transform: translateY(-50px); }
	100% { opacity: 1; transform: translateY(0px); }
}

@-webkit-keyframes fadein {
	0% { opacity: 0; transform: translateY(-50px); }
	100% { opacity: 1; transform: translateY(0px); }
}

@keyframes fadeout {
	100% { opacity: 1; transform: translateY(0px); }
	0% { opacity: 0; transform: translateY(-50px); }
}

@-webkit-keyframes fadeout {
	100% { opacity: 1; transform: translateY(0px); }
	0% { opacity: 0; transform: translateY(-50px); }
}

@keyframes blip {
	0% { opacity: 1; }
	70% { opacity: 0.7; }
	100% { opacity: 1; }
}

@-webkit-keyframes blip {
	0% { opacity: 1; }
	70% { opacity: 0.7; }
	100% { opacity: 1; }
}

/* WordPress Form Styles */
input.wpcf7-form-control {
	min-width: 400px;
	width: 100%;
	min-height: 50px;
	margin-bottom: 10px;
	border-radius: 3px;
	max-width: 100%;
	text-indent: 10px;
	box-shadow: inset 3px 3px 20px rgba(0,0,0,0.1);
}

input.wpcf7-form-control.wpcf7-submit{
	border-radius: 50px;
}

/* Desktop Navigation Styles */
@media (min-width: 980px) {
	.mobile-menu-button {
		display: none;
	}

	.ttmenu.centered ul { 
		margin: 0 auto;
		display: table;
		float: none;
	}

	.ttmenu { 
		display: inline-block; 
		width: 100%;
	}

	.ttmenu ul {
		padding: 0; 
		margin: 0;
	}

	.ttmenu li {
		position: relative;
		display: initial;
		list-style: none;
	}

	.ttmenu ul li a { 
		padding: 15px 15px; 
		display: inline-block; 
	}

	.ttmenu.fixed ul li a {
		padding-left: 0;
		padding-right: 0;
	}

	.ttmenu ul.sub-menu {
		position: absolute;
		left: -1px;
		z-index: 99;
		width: 99%;
	}

	.ttmenu ul.sub-menu ul {
		left: 100%;
		top: 0;
	}

	ul.sub-menu li {
		width: 300px;
	}

	.ttmenu li:hover > ul.sub-menu::first-child {
		position: absolute; 
	}

	.ttmenu li:hover > ul.sub-menu {
		visibility: visible;
		opacity: 1;
		height: auto;
	}

	.ttmenu li:hover > ul.sub-menu li a { 
		padding: 5px; 
		display: block;
	}
}

/* Mobile Navigation Styles */
@media (max-width: 980px) {
	.mobile-menu-button { 
		display: block; 
	}

	.ttmenu ul.sub-menu {
		height: 0px;
		overflow: hidden;
	}

	.ttmenu li:hover > ul.sub-menu,
	.ttmenu ul.sub-menu li:hover > ul.sub-menu {
		height: auto;
		overflow: auto;       
	}

	.ttmenu { 
		display: inline-block; 
		width: 100%;
	}

	.ttmenu ul {
		padding: 0; 
		margin: 0;
	}

	.ttmenu ul li {
		display: initial; 
		float: left; 
		width: 100%;
	}

	.ttmenu ul li a {
		display: block; 
		padding: 10px 15px;
	}

	ul.sub-menu li a {
		padding-left: 25px;
	}

	ul.sub-menu ul.sub-menu li a {
		padding-left: 35px;
	}
}

/* Responsive Adjustments */
@media all and (max-width: 500px) {
	body .header-in {
		padding-top: 5px; 
		padding-bottom: 5px;
	}

	body .l-floatban {
		padding: 0;
		height: 110px;
	}

	body .l-floatban__num img {
		display: none;
	}

	body .l-floatban span {
		display: block;
	}

	body .l-floatban__infos {
		bottom: 0px;
	}

	body .l{ 
		padding-left: 5%; 
		padding-right: 5%;
	}

	.wpcf7-list-item label {
		display: block !important;
	}

	body .l-certifs .b-tel {
		padding-right: 0;
		padding-left: 0;
	}

	body .b-tel-num img {
		display: block;
		margin: 0 auto;
	}

	.formulaire.c { 
		display: inline-block; 
		padding-right: 0; 
		padding-left: 0; 
		max-width: 95%;
	}

	.l-contact { 
		padding-top: 5vh;
		padding-bottom: 5vh;
	}

	body .l-solutions .b-descr { 
		min-height: 60px; 
	}

	body .l-solutions .l-solutions-item .b { 
		min-height: 230px; 
	}
}

@media (min-width: 500px) {
	.l-local img { 
		margin-right: 25px; 
		margin-top: 20px; 
		max-width: 250px; 
	} 

	.contact-actions-item a { 
		min-height: 80px;
	}

	.b-tel-num img {
		margin-right: 10px;
	}
}

@media all and (min-width: 500px) {
	body .logo { 
		padding-bottom: 10px;
	}

	body .w--infos {
		padding-top: 30px;
	}

	.modal .input,
	.modal select {
		min-width: 460px;
		width: 100%;
	}
}

@media all and (max-width: 600px) {
	body .w.l-temoins__item { 
		width: 100%; 
		padding: 25px 0;
	}
}

@media all and (min-width: 600px) {
	.l-services_item .b {
		padding: 25px;
		min-height: 300px;
	}
}

@media all and (max-width: 650px) {
	body .w.l-temoins__item { 
		width: 100%; 
		padding: 25px 0;
	}
}

@media all and (max-width: 900px) {
	body .logo { 
		padding-top: 10px;
		text-align: center;
	}

	body .site-header .w {
		width: 100%;
		text-align: center;
	}

	body .w--infos {
		padding-bottom: 15px;
	}

	body .l-banner.js_bg_image {
		background-size: 250%;
		background-position: top left;
	}
}

@media all and (min-width: 900px) {
	body .w--infos {
		text-align: right;
	}

	.l-banner { 
		padding-top: 10vh; 
		padding-bottom: 10vh; 
		background-position: top center;
	}

	.js_bg_image.l-banner {
		background-attachment: fixed;
	}
}

@media all and (min-width: 1000px) {
	.l-icons_item img {
		transform: translateY(-10px);
	}

	.contact-actions-item img { 
		position: relative; 
		right: 6px; 
	}
}

@media all and (min-width: 800px) {
	.modal {
		max-width: 600px;
	}
}

@media all and (min-width: 768px) {
	.villes__col {
		max-width: 50%;
		float: left;
	}
}