/*
Theme Name:
Author:
Author URI:
Version: 1
Text Domain: centrale
*/

/**
* main style sheet
* @author		charroma@gmail.com
* @creationDate 2023-03-04
* @editDate		2023-03-04
*/

/** http://meyerweb.com/eric/tools/css/reset/ 	v2.0 | 20110126		License: none (public domain) */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, button, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video, input[type=checkbox], input[type=radio] { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, main { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote::before, blockquote::after, q::before, q::after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; }

/** defaults */
h1, h2, h3, h4, h5, h6 { font-weight: normal; }
strong { font-weight: bold; }
em { font-style: italic; }
abbr { text-decoration: none; }
img { vertical-align: bottom; }
sup { font-size: 60%; }
mark { background-color: inherit; color: inherit; }
ins { text-decoration: none; }
template { display: none; }
input[type="submit"], button { border-radius: 0; }
button::-moz-focus-inner { padding: 0; border: 0; }
details summary { cursor: pointer; list-style-type: none; }
details > summary::-webkit-details-marker { display: none; }

/*:is(::selection, ::-moz-selection) { background: var(--c-text); color: var(--c-bg); }*/

html {
	/*color-scheme   : only dark;*/
	font-size      : 0.625em;
	--content-w    : min(1440px, 100%);
	--main-pad     : 30px;
	--main-pad     : max(30px, env(safe-area-inset-left));
	--main-pad--   : calc(var(--main-pad) * -1);
	--section-pad  : 10rem;
	--scroll-bar   : 0px;

	--c-bg         : #fff;
	--c-txt        : #000;

	--c-border     : #ddd;
	--c-border-l   : #636161;
	--maxw         : 708px;

	--input-h      : 4rem;

	--c-msg        : #857755;
	--c-msg-l      : #dbc9a2;
	--c-msg-ll     : #ffedc5;
	--c-success    : #3c763d;
	--c-success-l  : #c6d9b6;
	--c-success-ll : #e1f1d3;
	--c-error      : #a94442;
	--c-error-l    : #d4adb1;
	--c-error-ll   : #fad5d8;

	--c-text       : #2d2d2d;
	--c-text-l     : #666;
	--c-main       : #dd2127;
	--c-main-rgb   : 221, 33, 39;
	--c-main-d     : #94191d;
	--c-sec        : #2d2d2d;
	--c-gray-l     : #f2f2f2;

	--head-h       : 160px;
	--head-hx      : 2rem;
	--head-wx      : 20px;
	--border-r     : 12px;
	--border-r2    : 6px;
	--border-r3    : 25px;

	--ease         : cubic-bezier(.22,.61,.36,1);
	--box-shadow   : 0 10px 15px rgba(0, 0, 0, 0.1), 0 20px 15px rgba(0, 0, 0, 0.1), 0 30px 15px rgba(0, 0, 0, 0.1)
}
/*@media (prefers-contrast: more) {
	html {

	}
}*/
body { background: var(--c-bg); line-height: 1.5; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; -webkit-text-size-adjust: none; text-align: left; overflow-x: clip; }
body, input:is([type=text], [type=password], [type=number], [type=email], [type=tel], [type=url], [type=range]), select, textarea { font-size: 1.6rem; color: var(--c-text); }

/** links */
a { color: var(--c-main); text-decoration: underline; }
a:where(:hover, :active, :focus) { color: var(--c-text); }
.disabled, button[disabled="disabled"] { cursor: default; }

/** fonts */
@font-face {
	font-family: 'Brandon Text';
	src: url('css/fonts/brandon-text-regular.woff2') format('woff2'),
		 url('css/fonts/brandon-text-regular.woff') format('woff');
	font-weight: normal; font-style: normal; font-display: swap; ascent-override: 100%;
}
@font-face {
	font-family: 'Brandon Text';
	src: url('css/fonts/brandon-text-bold.woff2') format('woff2'),
		 url('css/fonts/brandon-text-bold.woff') format('woff');
	font-weight: bold; font-style: normal; font-display: swap; ascent-override: 100%;
}
body, input, select, textarea { font-family: 'Brandon Text', 'Helvetica Neue', Helvetica, Arial, sans-serif; }

/* **************************** */
/** transitions */
:is(.slider-pj, .slider-vid) a::after, .ls-services h3,
.sub-menu .menu-item i, .foot .navs summary::after,
:where(.head, .ls-pag, .ls-partners) a, .logo img, button, .bt, input[type="submit"],
:where(.gallery) img { /* autoprefixer: off */ transition: all 0.2s linear; -webkit-backface-visibility: hidden; backface-visibility: hidden; }

.foot a { /* autoprefixer: off */ transition: color 0.2s linear; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
:is(button, .bt)::before, input[type="submit"]::before { /* autoprefixer: off */ transition: all 0.75s var(--ease); -webkit-backface-visibility: hidden; backface-visibility: hidden; }
.slider-pj .scroll > div, :is(.slider-pj, .slider-vid) figcaption { /* autoprefixer: off */ transition: all 0.2s var(--ease); -webkit-backface-visibility: hidden; backface-visibility: hidden; }
/* { transition: none; } */

/* **************************** */
/** animations */
.slideTxt { display: inline-block; animation: slideTxt 0.5s ease-in-out forwards; visibility: hidden; }

.fixed { animation: slideIn 0.5s ease-in-out forwards; }
.fixed.slideOut { animation: slideOut 0.5s ease-in-out forwards; }
.fadeIn, .nav-mobile { animation: fadeIn 0.5s ease-in-out forwards; }
.fadeOut { max-height: 0; opacity: 0; transition: opacity 1s, max-height 0s 1s; }

@keyframes slideIn {
	0% { transform: translateY(-100%); visibility: visible; }
	100% { transform: translateY(0); visibility: visible; }
}
@keyframes slideTxt {
	0% { transform: translateY(100%); visibility: visible; }
	100% { transform: translateY(0); visibility: visible; }
}
@keyframes slideOut {
	to { opacity: 0; transform: translateY(-100%); }
}
@keyframes fadeIn {
	0%   { opacity: 0; }
	100% { opacity: 1; }
}

/* **************************** */
/** class gen */
.hide, .screen-reader-text, .visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
.hidden { visibility: hidden; }
.none, .printonly { display: none!important; }
.ir { display: block; background-position: 0 0; background-repeat: no-repeat; overflow: hidden; text-indent: -9999px; }

.clear { clear: both; }
.clearer { display: block!important; width: 100%!important; clear: both!important; height: 0!important; line-height: 0!important; font-size: 1px!important; float: none!important; overflow: hidden; margin: 0!important; padding: 0!important; border: none!important; }

.-text-center { text-align: center; }
.-text-right { text-align: right; }
.-text-left { text-align: left; }

.-auto { margin-inline: auto; }
.-max { max-width: var(--maxw); }

.no-space { margin-bottom: 0; }
.space-sml { margin-bottom: 0.5rem; }
.spaced { margin-bottom: 1.5rem; }
.space-big { margin-bottom: 3rem; }
.space-bigger { margin-bottom: 4.5rem; }
.space-biggest { margin-bottom: 6rem; }
.space-top { margin-top: 1.5rem; }
.space-top-big { margin-top: 3rem; }

.spinner { margin: 0!important; padding: 0!important; }

#tip { display: none; position: absolute; max-width: 300px; padding: 4px 10px; font-size: 1.1rem; line-height: 1; background: var(--c-text); color: var(--c-bg); white-space: nowrap; border-radius: 5px; box-shadow: 0 1px 5px var(--c-text); z-index: 9999; }

/* **************************** */
/** forms */
fieldset, .fieldset { margin-bottom: 2rem; }
:is(fieldset, .fieldset) > :last-child { margin-bottom: 0; }

.form-group { margin-bottom: 1.5rem; }
input:where([type="text"], [type="password"], [type="number"], [type="email"], [type="tel"], [type="url"], [type="range"]),
select,
textarea { width: 250px; height: var(--input-h); padding: 0 10px 0; background: var(--c-gray-l); border: 1px solid var(--c-border); outline: none; box-sizing: border-box; border-radius: var(--border-r2); }

select { padding: 0 10px; background: var(--c-gray-l); border-radius: 0; appearance: none; -webkit-appearance: none; appearance: none; }
.select { display: block; position: relative; overflow: hidden; padding: 0; background-color: var(--c-gray-l); border: 1px solid var(--c-border); text-align: left; box-sizing: border-box; }
.select::after { position: absolute; top: 50%; right: 10px; z-index: 1; content: '↓'; display: block; transform: translateY(-50%); font-size: 1rem; }
.select select { position: relative; z-index: 2; width: calc(100% + 35px); max-width: none; height: calc(var(--input-h) - 2px); padding-right: 55px; background-color: transparent; border: none; }
.select select::-ms-expand { display: none; }
.select select:-moz-focusring { color: transparent; text-shadow: 0 0 0 var(--c-txt); }

/*input:is([type="checkbox"], [type="radio"], [type="file"]) { accent-color: var(--c-main); }*/

input:where([type="text"], [type="password"], [type="email"], [type="number"], [type="tel"], [type="url"], [type="range"]):focus,
:is(select, textarea):focus,
.select:focus-within { border-color: var(--c-border-l); }

textarea { height: 15rem; padding-block: 1rem; overflow: auto; vertical-align: top; appearance: none; -webkit-appearance: none; }
textarea.-sml { height: 5rem; }
select { max-width: 100%; }
input[type="file"] { font-size: 1.2rem; }
input:is([type="text"], [type="email"], [type="password"], [type="submit"]) { appearance: none; -webkit-appearance: none; }

input.-sml { width: 60px; }
input.-med { width: 125px; }
input.-disabled, input[disabled="disabled"],
button.disabled, button.disabled:is(:hover, :focus) { background-color: #ddd; color: #666; }

::placeholder { }
input:-webkit-autofill { -webkit-box-shadow: 0 0 0px 1000px var(--c-gray-l) inset; }

.i-info { color: var(--c-text-l); font-size: 1.1rem; line-height: 1; font-style: italic; }

form :is(label, .label) { display: block; width: auto; margin-bottom: 0.5rem; line-height: 1.2; float: none; text-align: left; }

.i-multi .wpcf7-form-control { display: flex; flex-wrap: wrap; margin-bottom: -7px; }
.cols2 .i-multi .wpcf7-form-control { align-items: center; min-height: var(--input-h); }
.i-multi .wpcf7-list-item { margin-bottom: 0.7rem; margin-right: 30px; }
.i-multi .wpcf7-list-item label { display: flex; margin-bottom: 0; }
.i-multi .wpcf7-list-item input { margin-top: 2px; }
.i-multi .wpcf7-list-item-label { flex: 1 1 auto; margin-left: 5px; font-size: 1.4rem; }

.i-checkbox label { display: flex; align-items: flex-start; }
	.i-checkbox label input { flex: 0 0 auto; margin: 3px 10px 0 0; }

.-full textarea,
.-full input:where([type="text"], [type="password"], [type="email"], [type="tel"], [type="url"], [type="range"]),
.-full .select { width: 100%; max-width: inherit; }

form .submit { margin: 3rem 0 0; }
.submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 15px; }

/** bts */
button, input[type="submit"] { display: inline; background: none; cursor: pointer; --spacing: 45px; }
	button, .bt, input[type="submit"], .nav-xtra .menu-item-166 a { position: relative; display: inline-flex; gap: 0 36px; align-items: center; padding: 1.3rem 25px; background: var(--c-main); border: none; border-radius: var(--border-r2); color: var(--c-bg); font-size: 1.6rem; line-height: 1; font-weight: bold; text-align: center; text-decoration: none; overflow: hidden; touch-action: manipulation; user-select: none; text-overflow: ellipsis; }
	button::before, .bt.-arr::before,
	input[type="submit"]::before { content: ''; position: absolute; z-index: 0; top: 0; bottom: 0; left: 100%; width: 150%; background-color: var(--c-main-d); transform: skew(45deg) translateX(-50px); }
	.h-scroll .bts button::after,
	.bt.-arr::after,
	input[type="submit"]::after { content: ''; position: relative; z-index: 2; display: inline-block; width: 8px; height: 11px; background: url(img/arr-r.svg) 100% 50%/auto 100% no-repeat; }

	.bt.-alt { background-color: var(--c-text-l); }
	.bt.-alt.-arr::before { background-color: var(--c-text); }
	.bt.-alt.-arr:is(:hover, :focus) { background-color: var(--c-text-l); }

	.bt span { position: relative; }
	.bt.-icon span { padding-left: 35px; }
	.bt.-icon img { --xtra: 3px; position: absolute; top: 50%; left: 0; width: 30px; height: calc(100% + (var(--xtra)*2)); transform: translateY(-50%); object-fit: contain; }

	:is(button, .bt.-arr) span,
	:is(input[type="submit"]) span { position: relative; z-index: 2; display: flex; align-items: center; gap: 7px; }

	button:is(:hover, :focus)::before, .bt.-arr:is(:hover, :focus)::before,
	input[type="submit"]:is(:hover, :focus)::before { transform: skew(45deg) translateX(-90%); }
	button:is(:hover, :focus), .bt.-arr:is(:hover, :focus),
	input[type="submit"]:is(:hover, :focus) { background-color: var(--c-main); }
	.bt:is(:hover, :focus), .nav-xtra .menu-item-166 a:is(:hover, :focus) { background-color: var(--c-main-d); }

.bt.-sml { padding: 0.8rem 12px; font-size: 1.4rem; }
.bt.-med { padding: 1rem 15px; }

:is(.bt, button).-reset { padding: 0; background-color: transparent; border: 0; border-radius: 0; text-transform: none; white-space: normal; }

.msgbox, .wpcf7-response-output { position: relative; margin-bottom: 1.5rem; padding: 1.5rem var(--main-pad); line-height: 1.4; background-color: var(--c-msg-ll); border: 1px solid var(--c-msg-l); color: var(--c-msg); }
	.msgbox :is(p, ul) { margin-bottom: 1.5rem; }
	.msgbox > :last-child { margin-bottom: 0; }
	.msgbox ul { margin-left: 20px; list-style-type: disc; }
	.msgbox.-success ul { margin-left: 0; list-style-type: none; }
	.msgbox label { display: block; float: none; margin: 0; }
	.msgbox .close { position: absolute; top: 2px; right: 2px; display: none; }
	.wpcf7-response-output { padding-top: 1.5rem; }

.msgbox.-success, .sent .wpcf7-response-output { background: var(--c-success-ll); border-color: var(--c-success-l); color: var(--c-success); }
.msgbox.-success a { color: var(--c-success); text-decoration: underline; }
.msgbox.-success a:is(:hover, :focus) { color: var(--c-txt); }

.msgbox.-errors, .browsehappy,
:is(.invalid, .aborted, .failed, .spam) .wpcf7-response-output { background: var(--c-error-ll); border-color: var(--c-error-l); color: var(--c-error); }
.msgbox.-errors a { color: var(--c-error); text-decoration: underline; }
.msgbox.-errors a:is(:hover, :focus) { color: var(--c-txt); }

:is(input, .select, textarea).wpcf7-not-valid,
:is(input, textarea)[aria-invalid=true] { border-color: var(--c-error); }
.wpcf7-not-valid-tip, .wpcf7-valid-tip { display: block; margin-top: 0.5rem; font-size: 1.2rem; color: var(--c-error); }
.wpcf7-valid-tip { color: var(--c-success); }

.screen-reader-response, .wpcf7-response-output { display: none; }
:is(.invalid, .sent, .unaccepted, .spam, .aborted, .failed) .wpcf7-response-output { display: block; }

/* **************************** */
/** header */
.head { font-size: 1.8rem; }
	.head .skip-main:focus { transition: all 0s linear; top: 0; left: 0; width: auto; height: auto; padding: 3px 5px; overflow: hidden; clip-path: unset; font-size: 1.2rem; background-color: var(--c-txt); color: var(--c-bg); }

	.head a { text-decoration: none; }
	.logo img { display: block; }
	.logo a:is(:hover, :focus) img { opacity: 0.5; }
	.home .logo a:is(:hover, :focus) img { opacity: 1; }

	.head .container { display: flex; align-items: center; justify-content: space-between; width: auto; padding-block: 3rem; }

	.nav {}
		.nav > ul { display: flex; gap: 0 55px; }
		.nav > ul > li > a { padding-block: 0.5rem; }
		.nav a, .nav .sub-menu .sub-menu :is(.current-menu-parent, .current-menu-item) > a { color: currentColor; }
		.nav .sub-menu :is(.current-menu-parent, .current-menu-item) i { background-color: var(--c-main); }
		.nav :is(.current-menu-parent, .current-menu-item) > a,
		.nav .sub-menu .sub-menu :is(.current-menu-parent, .current-menu-item) > a:is(:hover, :focus),
		.nav a:is(:hover, :focus) { color: var(--c-main); }
		.menu-item-has-children > a svg { margin-left: 5px; vertical-align: middle; transform: rotate(90deg); }

		.sub-menu .menu-item > a i { display: inline-grid; place-content: center; width: 18px; height: 18px; border-radius: 50%; background: var(--c-txt); transform: rotate(0); color: var(--c-bg); }
		.sub-menu .menu-item > a:is(:hover, :focus) i { background-color: var(--c-main); }
		.sub-menu .menu-item > a svg { width: 6px; height: auto; margin: 0; transform: rotate(0); }

	.nav-xtra {}
		.nav-xtra .menu-item-166 a { padding: 0.5rem 15px; font-size: 1.6rem; }

	.has-sm, .menu-item-has-children { position: relative; }
		:is(.has-sm, .menu-item-has-children) ul { display: none; position: absolute; min-width: 200px; padding: 20px; background-color: var(--c-bg); border-radius: var(--border-r2); box-shadow: var(--box-shadow); box-sizing: border-box; }
		:is(.has-sm, .menu-item-has-children) ul a { display: block; }
		:is(.has-sm, .menu-item-has-children) ul ul { position: static; padding: 0; background: transparent; border-radius: 0; box-shadow: none; }

	#menu-main > .menu-item-has-children { position: static; }
	#menu-main > .menu-item-has-children > ul { flex-wrap: wrap; gap: 30px; left: 50%; width: calc(100% - 60px); max-width: 980px; padding: calc(var(--main-pad) * 2); border-radius: var(--border-r3); transform: translate(-50%, 0.5rem); box-sizing: border-box; }
	#menu-main > .menu-item-has-children > ul > li { flex: 0 0 calc(33.33% - 20px); }

	#menu-main > .menu-item-has-children > ul > li:last-child { flex: 1 1 100%; }
	#menu-main > .menu-item-has-children > ul > li:last-child > a { border-bottom: none; }
	#menu-main > .menu-item-has-children > ul > li:last-child > a span { justify-content: center; }
	#menu-main .bt { display: flex; justify-content: center; color: var(--c-bg); }

	#menu-main > .menu-item-has-children > ul > .menu-item-has-children { flex: 0 0 100%; }
	#menu-main > .menu-item-has-children > ul > .menu-item-has-children ul { display: flex; flex-wrap: wrap; gap: 30px; margin-block: 20px; line-height: 1.2; }
	#menu-main > .menu-item-has-children > ul > .menu-item-has-children ul > li { flex: 0 0 calc(33.33% - 20px); }
	:is(#menu-main, #menu-main-1) > .menu-item-has-children > ul > .menu-item-has-children ul > li a { position: relative; display: block; padding-left: 20px; text-decoration: none; }
	:is(#menu-main, #menu-main-1) > .menu-item-has-children > ul > .menu-item-has-children ul > li a::before { content: '//'; position: absolute; left: 0; color: var(--c-main); font-weight: bold; }
	#menu-main > li > ul > li > a span,
	#menu-main-1 > li > ul > li > a { display: flex; gap: 8px; align-items: center; font-weight: bold; }
	:is(#menu-main, #menu-main-1) > li > ul > li > a:not(.bt) { padding-bottom: 5px; border-bottom: 2px solid #000; }

	.no-js :is(.has-sm, .menu-item-has-children) > a:is(:hover, :focus) ~ ul,
	.no-js :is(.has-sm, .menu-item-has-children) > ul:is(:hover, :focus),
	.no-js :is(.has-sm, .menu-item-has-children):focus-within > ul { display: flex; z-index: 8; }

	.mobile, #mobile-overlay { display: none; }

.-head-over .head { position: relative; z-index: 2; height: calc(var(--head-h) + var(--head-hx)); box-sizing: border-box; }
	.-head-over .head .container { padding-top: calc(3rem + 2rem); }
	.-head-over .nav > ul > li > a { color: var(--c-bg); }
	.-head-over .nav > ul > li > a:is(:hover, :focus) { color: var(--c-main); }

/* **************************** */
/** content */
#wrapper { }
.content { position: relative; z-index: 1; }

.-head-bg { position: relative; margin-top: calc(var(--head-h) * -1); }
	.-head-bg > .container { padding-top: calc(var(--head-h) + var(--head-hx)); }

.container { position: relative; width: var(--content-w); margin: 0 auto; }
	h1, .h1 { margin-bottom: 3rem; line-height: 1; text-wrap: balance; }
	h2, .h2 { margin-bottom: 3rem; font-size: clamp(2.4rem, 42/1280*100cqw, 5.4rem); line-height: 1; font-weight: bold; text-wrap: balance; }
	h3 { margin-bottom: 1.5rem; font-size: clamp(2rem, 36/1240*100cqw, 3.6rem); line-height: 1; font-weight: bold; }
	h4 { line-height: 1.2; }

	:where(.text *) + h2 { margin-top: 4.5rem; }
	:where(.text *) + h3 { margin-top: 3rem; }

/*	.text a[rel*="external"]::after { content: ''; font-size: 1.2rem; font-weight: normal; }*/

.text { margin-bottom: 3rem; line-height: 1.4; }
.text.-big { font-size: 1.8rem; }
.text.-bigger { font-size: clamp(1.6rem, 18/1024*100cqw, 2rem); }
	.text :where(p, ul, ol, dl) { margin-bottom: 1.5rem; margin-bottom: 1lh; }
	.text ul { list-style-type: disc; margin-left: 20px; }
	.text ul ul { margin-bottom: 0; margin-top: 5px; list-style-type: circle; }
	.text ol { list-style-type: decimal-leading-zero; margin-left: 30px; }
	/*.-max, .text :where(h2, h3, h4, p, ul, ol, blockquote, .vid), .lost_reset_password { max-width: var(--maxw); }*/
	.-max { max-width: var(--maxw); }

	.text :is(p, ol, ul, dl, iframe) + h2 { margin-top: 6rem; }
	.text :is(p, ol, ul, dl, iframe) + h3 { margin-top: 3rem; }

	.text .vid { display: block; }

	/*.text ul { margin-left: 0; list-style-type: none; }
		.text ul li { position: relative; padding-left: 20px; }
		.text ul li::before { content: '•'; position: absolute; top: 0; left: 0; }*/

	/*.text ol { margin-left: 15px; counter-reset: term; }
		.text ol > li { position: relative; margin-top: 1rem; padding-left: 30px; }
		.text ol > li:first-of-type { margin-top: 0; }
		.text ol > li::before { content: counter(term, decimal-leading-zero) '.'; position: absolute; left: 0; top: 0; width: 20px; color: var(--c-txt); text-align: center; font-size: 2rem; line-height: 1; counter-increment: term; }
		.text ol[type="a"] > li::before { content: counter(term, lower-alpha) '.'; counter-increment: term; font-size: inherit; line-height: 1.4; }
	*/

	.text .no-ls { list-style-type: none; margin-left: 0; }
	.text > :last-child, .text.no-space { margin-bottom: 0; }

.out { width: calc(100vw - var(--scroll-bar)); transform: translateX( calc( -1 * (100vw - var(--scroll-bar) - var(--content-w)) / 2 ) ); }
.img-replace { position: relative; }
	.img-replace .to-replace { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }

.cols2, .cols1-2, .cols2-1, .cols3, .cols4, .col2-set { --gap: max(var(--main-pad), 3.8%); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3rem var(--gap); justify-content: start; align-items: start; }
.cols1-2 { grid-template-columns: minmax(0, 1fr) 65.4%; }
.cols2-1 { grid-template-columns: 65.4% minmax(0, 1fr); }
.cols3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cols4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

:is(.cols2, .cols3, .cols4):has(.-span2, .-span3, .-span4) { grid-auto-flow: dense; }
:is(.cols2, .cols3, .cols4) .-span2 { grid-column: span 2; }
:is(.cols2, .cols3, .cols4) .-span3 { grid-column: span 3; }
:is(.cols2, .cols3, .cols4) .-span4 { grid-column: span 4; }

:where(.cols2, .cols1-2, .cols2-1, .cols3, .cols4, .cols5, .col2-set).-reverse { grid-auto-flow: dense; }
	:where(.cols2, .cols1-2, .cols2-1, .col2-set).-reverse > *:nth-child(1) { grid-column: 2; }
	:where(.cols2, .cols1-2, .cols2-1, .col2-set).-reverse > *:nth-child(2) { grid-column: 1; }

:where(.cols2, .cols1-2, .cols2-1, .cols3, .cols4, .cols5, .col2-set).-v-center { align-items: center; }

.bloc-content > :where(.cols2, .cols3) > div > :last-child,
.bloc-content > div > :last-child { margin-bottom: 0; }

.w-img, .alignnone, .aligncenter, .alignleft, .alignright, .wp-block-image { margin-bottom: 1.5rem; }
.alignnone, .aligncenter { max-width: 100%; height: auto; }
.aligncenter { display: block; margin-inline: auto; }
.alignleft, .alignright { max-width: 48%; height: auto; margin-top: 0.5rem; }
.alignleft { float: left; margin-right: 3.8%; }
.alignright { float: right; margin-left: 3.8%; }
	:is(.w-img, .wp-block-image) img { display: block; width: 100%; height: auto; background-color: var(--c-txt); border-radius: var(--border-r2); }
	.w-img .desc, .wp-block-image figcaption { margin-top: 1rem; font-size: 1.2rem; color: var(--c-text-l); text-align: left; }
	.w-img .desc p:last-of-type { margin-bottom: 0; }

.w-img.-left { position: relative; left: var(--main-pad--); }
	.w-img.-left img { border-radius: 0 var(--border-r3) var(--border-r3) 0; }
.-reverse .w-img, .w-img.-right { position: relative; left: inherit; right: var(--main-pad--); }
	:is(.-reverse .w-img, .w-img.-right) img { border-radius: var(--border-r3) 0 0 var(--border-r3); }

.gallery { margin-bottom: 3rem; }
	.gallery img { width: 100%; height: auto; object-fit: cover; }
	.gallery a:is(:hover, :focus) img { opacity: 0.5; }

.h-scroll-nav { display: none; justify-content: center; margin-top: 1rem; }
	.h-scroll-nav span { display: block; width: 8px; height: 8px; margin: 0 3px; border-radius: 50%; background-color: #999; }
	.h-scroll-nav .selected { background-color: #666; }

.iframe-click { position: relative; display: inline-block; }
	.iframe-click button { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 2; margin: 0; padding: 0; border: none; background: url('data:image/svg+xml;utf8,<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 667 667" xmlns="http://www.w3.org/2000/svg"><path d="m333.333 666.667c184.094 0 333.334-149.24 333.334-333.334 0-184.095-149.24-333.333-333.334-333.333-184.095 0-333.333 149.238-333.333 333.333 0 184.094 149.238 333.334 333.333 333.334z" fill-opacity=".5"/><path d="m447.123 368.633-157.34 92.894c-25.326 14.953-56.45-4.51-56.45-35.3v-185.788c0-30.79 31.124-50.252 56.45-35.299l157.34 92.893c26.057 15.387 26.057 55.214 0 70.6z" fill="%23fff" fill-rule="nonzero"/></svg>') 50% 50%/62px no-repeat; cursor: pointer; }

.section { padding-block: var(--section-pad); }
	.section.-bg-l { background-color: var(--c-gray-l); }
	.section.-bg-ll { background-color: var(--c-bg); }
	.section.-box { margin-inline: var(--head-wx); padding-block: calc(var(--section-pad) * .75); border-radius: var(--border-r3); }
	.section .container > :last-child { margin-bottom: 0; }
.section.-no-pad { padding: 0; }
.cmplz-document .section-entete-simple + .section { padding-top: 0; }

dialog { padding: 0; border: none; border-radius: var(--border-r3); }
.-no-dialog dialog { position: fixed; z-index: 100; top: 0; right: 0; bottom: 0; left: 0; display: none; align-items: center; overflow: auto; }
	dialog .overlay { position: fixed; z-index: 100; top: 0; right: 0; bottom: 0; left: 0; }
	dialog::backdrop, .-no-dialog dialog .overlay { background-color: var(--c-txt); opacity: 0.75; }
	dialog .inner { container-type: inline-size; position: relative; z-index: 101; width: clamp(320px - (var(--main-pad) * 2), 100vw - (var(--main-pad) * 2), 580px); margin: auto; padding: var(--main-pad); background-color: var(--c-bg); box-sizing: border-box; }
	dialog .close { position: fixed; z-index: 101; top: 8px; right: 8px; padding: 7px; width: 32px; height: 32px; color: var(--c-bg); background-color: var(--c-txt); }
	dialog .close svg { width: 100%; height: auto; }
	dialog .close path { fill: currentColor; }
	dialog .close::before { display: none; }
	dialog .close:is(:hover, :focus) { color: var(--c-main); }

body:has(.media-modal[open]) { overflow: hidden; }
.media-modal .inner { width: clamp(320px - (var(--main-pad) * 2), 100vw - (var(--main-pad) * 2), 1100px); }

h2 u { position: relative; z-index: 1; --p: 1; --hl-thick: 0.56em; text-decoration: none; }
h2 u::before { content:''; position:absolute; z-index: -1; left: -0.12em; right: -0.10em; bottom: 0.06em; height: var(--hl-thick); background: rgba(var(--c-main-rgb), 0.18);transform: scaleX(var(--p)); transform-origin: left center;}

.head-all { display: flex; flex-wrap: wrap; gap: 3rem var(--main-pad); align-items: center; }
	.head-all:has(h2) { margin-bottom: 3rem; }
	.head-all:has(h3) { margin-bottom: 2rem; }
	.head-all :is(h2, h3) { flex: 1 1 auto; margin-bottom: 0; }
	.head-all > a { flex: 0 0 auto; }

.has-symbol { position: relative; z-index: 5; }
.has-symbol::before { --w: clamp(100px, 200/1920*100vw, 200px); content: ''; position: absolute; z-index: 5; top: 0; right: 0; width: var(--w); height: 0; padding-top: calc(var(--w) * 452 / 300); background: url(img/bg-lines.svg) 0 0/auto 100% no-repeat; transform: translateY(-60%); }
.has-symbol.-s-bl::before { top: inherit; bottom: 0; right: inherit; left: 0; transform: translateY(30%); }

/** home */
.home-main { margin-bottom: var(--section-pad); }
	.home-main .container { container-type: inline-size; width: auto; max-width: 100%; margin-inline: var(--head-wx); padding: 0; background-color: var(--c-txt); color: var(--c-bg); border-radius: var(--border-r3); overflow: hidden; }
	.home-main :is(.container, .media)::before { content: ''; position: absolute; z-index: 1; top: 0; right: 0; bottom: 0; left: 0; background-color: var(--c-txt); opacity: 0.7; }
	.home-main .media::before { display: none; }
	.home-main .txt { position: relative; z-index: 5; display: flex; align-items: center; width: var(--content-w); min-height: 600px; height: 93vh; max-height: 1440px; margin: 0 auto; padding: calc(var(--head-h)) 0 8cqh; box-sizing: border-box; }
	.home-main h1 { margin-bottom: 2rem; font-size: clamp(2.4rem, 4cqw, 6.6rem); font-weight: bold; }
	.home-main .text { max-width: 750px; font-size: clamp(1.8rem, 2cqw, 2.4rem); }
	.home-main :is(video, picture) { position: absolute; z-index: 0; top: 0; left: 0; display: block; width: 100%; height: 100%; }
	.home-main video { object-fit: cover; }
	.home-main picture img { display: block; width: 100%; height: auto; object-fit: cover; }

.home figcaption, .single-project figcaption {
    margin-left: 10px;
}
.home .slider-pj figcaption:before, .single-project .slider-pj figcaption:before{
    content: "//";
    color: var(--c-main);
    position: absolute;
    font-size: 25px;
    top: -5px;
    left: 0px;
}
.slider-pj { position: relative; margin-block: 4.5rem; --item-w: 300px; --gap: 15px; --slide-num: 2; }
	:is(.slider-pj, .slider-vid) .bts button { gap: 0; position: absolute; z-index: 10; top: 50%; padding: 5rem 1.5rem; transform: translateY(-50%); }
	:is(.slider-pj, .slider-vid) .bts button::before { display: none; }
	:is(.slider-pj, .slider-vid) .prev { left: 0; border-radius: 0 var(--border-r2) var(--border-r2) 0; }
	:is(.slider-pj, .slider-vid) .prev::after { transform: rotate(180deg); }
	:is(.slider-pj, .slider-vid) .next { right: 0; border-radius: var(--border-r2) 0 0 var(--border-r2); }
	:is(.slider-pj, .slider-vid) .bts button:is(:hover, :focus) { background-color: var(--c-main-d); }
	.slider-pj .bts button[disabled], .slider-pj .bts button[disabled]:is(:hover, :focus) { display: none; background-color: var(--c-text-l); }

	.slider-pj .scroll { display: flex; flex-wrap: nowrap; gap: 0 var(--gap); padding-inline: calc(var(--main-pad) + var(--head-wx)); overflow: scroll; }
	:is(.slider-pj, .slider-vid) .scroll::-webkit-scrollbar { display: none; }
	:is(.slider-pj, .slider-vid) .scroll { scrollbar-width: none; -ms-overflow-style: none; }
	.slider-pj .scroll > div { position: relative; flex: 0 0 var(--item-w); will-change: flex-basis; overflow: hidden; border-radius: var(--border-r2); }
	:is(.slider-pj, .slider-vid) a { display: block; }
	:is(.slider-pj, .slider-vid) a::after { content: ''; position: absolute; z-index: 1; top: 0; right: 0; bottom: 0; left: 0; background: linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,0)); opacity: 0; }
	:is(.slider-pj, .slider-vid) picture { display: block; }
	:is(.slider-pj, .slider-vid) img { display: block; width: 100%; object-fit: cover; object-position: 50% 50%; }
	.slider-pj img { aspect-ratio: 450/375; }
	:is(.slider-pj, .slider-vid) figcaption { position: absolute; z-index: 3; left: 0; bottom: 0; right: 0; padding: 0 20px 20px; font-weight: bold; line-height: 1.2; color: var(--c-bg); transform: translateY(10px); opacity: 0; }
	.slider-pj .scroll > div:hover { flex-basis: calc(var(--item-w) * 1.5); }
	:is(.slider-pj, .slider-vid) .scroll > div:hover figcaption { transform: translateY(0); opacity: 1; }
	:is(.slider-pj, .slider-vid) .scroll > div:hover a::after { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
	:is(.slider-pj, .slider-vid) .scroll figcaption { transform: translateY(0); opacity: 1; }
	:is(.slider-pj, .slider-vid) .scroll > div:hover { flex-basis: var(--item-w); }
}

.home-partners { margin-top: 6rem; }
	.ls-partners { position: relative; margin-top: 3rem; }
		.ls-partners .scroll { display: flex; gap: 3rem 0; overflow: auto; }
		.ls-partners .scroll::-webkit-scrollbar { display: none; }
		.ls-partners .scroll { scrollbar-width: none; -ms-overflow-style: none; }
		.ls-partners .scroll > * { flex: 0 0 calc(100% / 5); }
		.ls-partners a { display: block; text-decoration: none; }
		.ls-partners picture { display: grid; place-content: center }
		.ls-partners img { display: block; width: auto; max-width: 75%; max-height: 100%; margin: auto; object-fit: contain; filter: grayscale(1); }
		.ls-partners a:is(:hover, :focus) { opacity: 0.5; }

	.home-partners .bts { display: flex; gap: 5px; margin-top: 1.5rem; padding-inline: var(--main-pad); }
	.home-partners .bts button { gap: 0; justify-content: center; width: 26px; height: 26px; padding: 0; background-color: var(--c-sec); border-radius: 50%; }
	.home-partners .bts button::before { display: none; }
	.home-partners .prev::after { position: relative; right: 1px; transform: rotate(180deg); }
	.home-partners .next::after { position: relative; left: 2px; }
	.home-partners .bts button:is(:hover, :focus) { background-color: var(--c-txt); }
	.home-partners button[disabled], .home-partners button[disabled]:is(:hover, :focus) { background-color: var(--c-text-l); }

.ls-services { row-gap: 4.5rem; margin-top: 6rem; }
	.ls-services li { container-type: inline-size; }
	.ls-services picture { display: block; margin-bottom: 2rem; }
	.ls-services picture img { display: block; width: 100%; height: auto; background-color: var(--c-txt); border-radius: var(--border-r); }
	.ls-services a { display: block; text-decoration: none; }
	.ls-services .txt { display: flex; align-items: center; gap: 1.5rem 30px; }
	.ls-services h3 { flex: 1 1 auto; margin-bottom: 0; font-size: clamp(2rem, 28/586*100cqw, 2.8rem); color: var(--c-txt); }
	.ls-services .bt { flex: 0 0 auto; }
	.ls-services a:is(:hover, :focus) h3 { color: var(--c-main); }

/** contact */
#input_2_16 label:has(img) { position: relative; padding-left: 35px; }
#input_2_16 label img { position: absolute; top: 0; left: 0; }
.gchoice { --gf-ctrl-label-line-height-secondary: 1.2; }

/** cookie */
.cmplz-cookiebanner { text-align: left; --cmplz_button_font_size: 1.6rem; }
html .cmplz-cookiebanner .cmplz-title { font-weight: bold; font-size: 1.6rem; }
html .cmplz-cookiebanner .cmplz-header { display: block; }
html .cmplz-cookiebanner .cmplz-divider { display: none; }
html .cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-description { padding-top: 0; }
.cmplz-cookiebanner button { text-align: center; }
html .cmplz-cookiebanner .cmplz-buttons .cmplz-btn { justify-content: center; font-weight: bold; }
html .cmplz-cookiebanner .cmplz-buttons .cmplz-accept:is(:hover, :focus) { background-color: var(--c-main-d); border-color: var(--c-main-d); }
html .cmplz-cookiebanner .cmplz-buttons .cmplz-save-preferences:is(:hover, :focus) { background-color: #ddd; border-color: #ddd; }
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn::before { display: none; }
html .cmplz-cookiebanner .cmplz-message { margin-bottom: 1rem; font-size: 1.4rem; text-align: left; }

@media (min-width: 1024px) {
	html .cmplz-cookiebanner .cmplz-message,
	html .cmplz-cookiebanner .cmplz-categories { margin-bottom: 0; }
	html .cmplz-cookiebanner .cmplz-links.cmplz-documents,
	html .cmplz-cookiebanner .cmplz-buttons { grid-row-start: inherit; }
}

#cmplz-document {}
div.cmplz-document h3 { font-size: 1.6rem; font-weight: bold; }
div.cmplz-document i { font-style: italic; }
.cmplz-categories { margin-bottom: 15px; }
.cmplz-contact-organisation { font-weight: bold; }

#cmplz-cookies-overview .cmplz-dropdown.cmplz-dropdown-cookiepolicy summary div,
#cmplz-document .cmplz-dropdown.cmplz-dropdown-cookiepolicy summary div { grid-template: "heading paragraph chevron"; grid-template-columns: 2fr auto 25px; }

#cmplz-cookies-overview { margin-bottom: 45px; }
	#cmplz-cookies-overview details { font-size: 1.2rem; }
	#cmplz-cookies-overview details + details { border-top: 1px solid #ddd; }
	#cmplz-cookies-overview summary { position: relative; }
	#cmplz-cookies-overview summary::after { content: '+'; position: absolute; top: 50%; right: 0; font-size: 2.2rem; line-height: 1; color: var(--c-main); transform: translateY(-50%); }
	#cmplz-cookies-overview [open] summary::after { transform-origin: top center; transform: rotate(45deg) translateY(-50%); }
	#cmplz-cookies-overview p { margin: 0; }
	#cmplz-cookies-overview h4 { font-weight: bold; font-size: 14px; }

.cmplz-service-header { padding: 7px 0; }
.cmplz-service-description, .cmplz-sharing-data { margin-top: 10px; }
.cmplz-service-description { padding-right: 10px; }
.cookies-per-purpose { margin: 15px 0 10px; }
	.cookies-per-purpose h5 { font-size: 12px; font-weight: bold; color: var(--c-txt); }
.cmplz-subtitle { font-weight: bold; }

html #cmplz-manage-consent .cmplz-manage-consent { left: 20px; }
.cmplz-marketing.cmplz-statistics .cmplz-manage-consent { display: none; }
#cmplz-manage-consent .cmplz-manage-consent { --cmplz-manage-consent-offset: -25px; }

@media screen and (max-width: 456px) {
	.cookie-consent { right: 20px; }
	.cookie-consent .cookie-actions { grid-template-columns: 1fr; row-gap: 10px; }
	.cookie-consent .policy a { flex-basis: 100%; }
}

/* **************************** */
/** footer */
.foot { clear: both; padding-block: var(--section-pad) 3rem; background: var(--c-sec) url(img/bg-pattern-alt.webp) 50% 0/500px repeat; color: var(--c-bg); }

	.foot .section { color: var(--c-txt); }
	.foot .section .container { padding-inline: calc(var(--main-pad) * 3); }
	.foot .section h2 { margin-bottom: 0; }
	.foot .section .txt { max-width: 360px; max-width: 70%; align-self: center; }

	.foot > :where(.container) { container-type: inline-size; display: grid; grid-template-columns: minmax(0, 25%) 1fr minmax(0, 25%); gap: 3rem max(var(--main-pad), 3.8%); margin-top: var(--section-pad); }
	.foot > :where(.container) a { color: currentColor; text-decoration: none; }
	.foot .logo { margin-bottom: 3rem; }

	.foot .tel { font-size: 1.2em; }
	.foot .tel a {font-weight: bold;color: var(--c-main); margin: 20px 0; display: block; font-size: 25px;}
	.foot .tel a:is(:hover, :focus) { color: var(--c-bg); }

	.follow { display: flex; align-items: center; flex-wrap: wrap; gap: 15px; margin-top: 1.5rem; }
		.follow a { display: grid; place-items: center; color: var(--c-bg); }
		.follow svg { display: block; width: 100%; height: auto; }
		.follow :is(.ins, .vimeo, .in) { width: 20px; }
		.follow .fb { height: 20px; }
		.follow a:is(:hover, :focus) { color: var(--c-main); }

	.foot summary, .foot h4 , .foot .title_foot{ font-size: clamp(18px, 1cqw, 36px); font-weight: bold; }
	.foot summary { cursor: default; }

	.foot .navs { display: grid; grid-template-columns: repeat(2, minmax(0, 50%)); gap: 1.5rem 30px; }
	.foot .navs .title_foot { grid-column: span 2; padding-bottom: 1.5rem; border-bottom: 1px solid var(--c-border-l); cursor: default; }
	.foot details { line-height: 1.2; }
	.foot details ul { padding-top: 1.5rem; }
	.foot details ul li { break-inside: avoid; }
	.foot details ul li:not(:first-child) { margin-block: 1rem; }
	.foot a:where(:not(.bt)):is(:hover, :focus) { color: var(--c-main); }

	.frm-newsletter {}
		.frm-newsletter .msgbox { padding: 10px; line-height: 1.2; }
		.frm-newsletter .tagnews { margin-bottom: 1.5rem; }
		.frm-newsletter .inputs { position: relative; }
		.frm-newsletter input { width: 100%; }
		.frm-newsletter button { margin-top: 1.5rem; }

	.copy { grid-column: 1 / -1; margin-top: 3rem; padding-top: 3rem; font-size: 1.4rem; text-align: center; border-top: 1px solid var(--c-border-l); }
	.copy a { text-decoration: underline; text-decoration-style: dotted; }

/* **************************** */
/** responsive */
@media screen and (min-width: 1541px) {
	.text.-big { font-size: 2rem; }
	.cols2 .w-img { width: calc(50vw - 3.8% - var(--main-pad)); }
	.w-img.-left { left: calc((100vw - var(--scroll-bar) - 1440px) / 2 * -1); }
	.-reverse .w-img, .w-img.-right { left: inherit; right: var(--main-pad--); }

	.head .container { padding-inline: var(--main-pad); }
	.-head-over .head .container { padding-inline: calc(var(--main-pad) + var(--head-wx)); }

	/*.ls-partners .scroll { padding-left: calc((100vw - 1520px + (var(--head-wx)*2)) / 2 ); }*/
	.ls-partners .scroll > * { flex-basis: calc(100% / 6); }
}

@media screen and (max-width: 1540px) {
	html { --content-w: 100%; }

	.container, :is(.head, .foot) .container { width: 100%; padding-inline: var(--main-pad); box-sizing: border-box; }
	.container .container { padding-inline: 0; }
	.out { transform: translateX(var(--main-pad--)); }
	.out .container { padding-inline: var(--main-pad); }
	.section.-box .out { transform: translateX( calc( -1 * (100vw - var(--scroll-bar) - var(--content-w)) / 2 - var(--head-wx) - var(--main-pad) ) ); }

	.-head-over .head .container { padding-inline: calc(var(--main-pad) + var(--head-wx)); }

	/* home */
	.home-main .txt { padding-inline: var(--main-pad); }

	/* content */
	.bloc-content > .cols3 { grid-template-columns: repeat(2, minmax(0, 1fr)); font-size: inherit; }
}
/** 1280 */
@media screen and (max-width: 1279px) {
	html { --head-hx: 1rem; --head-wx: 10px; }
	/*.ls-services .txt { flex-wrap: wrap; }*/
}
/** 768 */
@media screen and (max-width: 1023px) {
	.head { font-size: inherit; }

	#menu-main > .menu-item-has-children > ul { padding: calc(var(--main-pad)); }

	/* home */
	:is(.slider-pj, .slider-vid) a::after { opacity: 1; }
	.slider-pj .scroll > div:hover { flex-basis: var(--item-w); }
	:is(.slider-pj, .slider-vid) .scroll figcaption { transform: translateY(0); opacity: 1; }
	.slider-pj img { height: calc(375/300*var(--item-w)); }

	.case-layout__right.w-img.-right { right: 0; }

	/* foot */
	.foot .section .container { grid-template-columns: minmax(0, 1fr); padding-inline: var(--main-pad); }
	.foot .section .txt { max-width: inherit; }

	.foot > .container { grid-template-columns: 1fr 1fr; align-items: start; }
	.foot-addr { margin-bottom: 3rem; }
	.navs { order: 3; grid-column: span 2; }
	.frm-newsletter { order: 2; align-self: end; margin-bottom: 3rem; }
	.copy { order: 10; }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
	.text.-big { font-size: inherit; }
}

@media screen and (max-width: 960px) {
	html .bloc-entete__images-wrapper { margin-top: 0; }
	.bloc-entete__col--texte { order: 2; }
	.bloc-entete__col--images { margin-block: -6.5rem 0; }
}

@media screen and (max-width: 810px) {
	.nav, .nav-xtra { display: none; }

	/* home */
	:is(.slider-pj, .slider-vid) .bts, .home-partners .bts { display: none; }
	.ls-partners .scroll { gap: 0 40px; margin-inline: var(--main-pad--); padding-left: var(--main-pad); }
	.ls-partners .scroll > * { flex-basis: auto; }
	.ls-partners .scroll > *:last-child { margin-right: var(--main-pad); }
	.ls-partners img { max-width: 160px; max-height: 80px; }

	#type-parent { display: block; min-height: 26px; }

	.section-entete-simple { display: grid; gap: 30px; }
	.section-entete-simple > .container { order: 2; }
	html .section-entete-simple.has-symbol::before { top: 60px; }

	/* mobile nav */
	.mobile { display: block; }
	.nav-mobile { display: none; }
	#nav-menu:checked ~ .nav-mobile { display: block; }

	.bt-nav-mobile { display: block; position: absolute; z-index: 101; top: 50%; right: calc(var(--main-pad) + var(--head-wx)); width: 32px; height: 27px; padding: 0; background: transparent; border: none; border-radius: 0; cursor: pointer; }
		.bt-nav-mobile span, .bt-nav-mobile span::before, .bt-nav-mobile span::after { transition-duration: 0.5s; position: absolute; left: 0; height: 3px; width: 32px; background-color: var(--c-main); }
		.bt-nav-mobile span { top: 12px; text-indent: -9999px; }
		.bt-nav-mobile span::before { content: ""; top: -12px; left: 0; }
		.bt-nav-mobile span::after { content: ""; top: 12px; left: 0; }
		.bt-nav-mobile.open span, #nav-menu:checked ~ .bt-nav-mobile span { transition-duration: 0.5s; background: transparent; }
		.bt-nav-mobile.open span::before, #nav-menu:checked ~ .bt-nav-mobile span::before { background-color: #333; transform: rotateZ(45deg) translate(8px, 9px); }
		.bt-nav-mobile.open span::after, #nav-menu:checked ~ .bt-nav-mobile span::after { background-color: #333; transform: rotateZ(-45deg) translate(8px, -9px); }
	.bt-nav-mobile:is(:hover, :focus) { background: transparent; }

	#nav-menu:checked ~ .bt-nav-mobile { top: var(--main-pad); }

	.-head-over .bt-nav-mobile span, .-head-over .bt-nav-mobile span::before, .-head-over .bt-nav-mobile span::after { background-color: var(--c-bg); }
	.-head-over .bt-nav-mobile.open span::before, .-head-over #nav-menu:checked ~ .bt-nav-mobile span::before { background-color: var(--c-txt); }
	.-head-over .bt-nav-mobile.open span::after, .-head-over #nav-menu:checked ~ .bt-nav-mobile span::after { background-color: var(--c-txt); }

	#mobile-overlay { display: none; position: absolute; top: 0; right: 0; left: 0; height: 100%; z-index: 99; background-color: rgba(0, 0, 0, 0.25); }

	.nav-mobile { position: absolute; z-index: 100; top: 0; left: 0; right: 0; padding: min(7.5rem, 10vw); background-color: var(--c-bg); font-size: 2.4rem; box-shadow: 0 10px 15px rgba(0, 0, 0, 0.25); }
		.nav-mobile ul { display: grid; gap: 1rem 0; }
		.nav-mobile .menu-extra-container { margin-top: 1rem; }
		.nav-mobile a, .nav-mobile .sub-menu .sub-menu .current-menu-item > a { color: var(--c-txt); }
		.nav-mobile ul :is(.current-menu-parent, .current-menu-item) > a,
		.nav-mobile .sub-menu .sub-menu .current-menu-item > a:is(:hover, :focus),
		.nav-mobile a:is(:hover, :focus) { color: var(--c-main); }
		.nav-mobile .menu-item-has-children > a svg { display: none; }
		.nav-mobile .sub-menu .menu-item > a svg { display: inline; }
		.nav-mobile :is(.has-sm, .menu-item-has-children) ul { display: block; position: static; margin-block: 1rem 2rem; padding: 0; box-shadow: none; font-size: 0.75em; }
		#menu-main-1 > li > .sub-menu { display: grid; gap: 1.5rem; }
		#menu-main-1 > li > .sub-menu .sub-menu { display: flex; flex-wrap: wrap; gap: 1.5rem 30px; padding-block: 2rem; font-size: 1em; }
		#menu-main-1 > li > .sub-menu .sub-menu li { flex: 0 0 calc(50% - 15px); line-height: 1.2; }

		#menu-main-1 > .menu-item-has-children > ul > li:last-child { display: none; }

	.mobile-contact { position: absolute; top: calc(50% - 1px); right: calc(32px + 15px + var(--main-pad) + var(--head-wx)); display: grid; place-content: center; width: 32px; height: 32px; color: var(--c-bg); background: var(--c-txt); border-radius: 50%; }
	.mobile-contact svg { display: block; width: 80%; height: auto; margin: 0 auto; }
	.mobile-contact:is(:hover, :focus) { background-color: var(--c-main); }
}
/** 640 */
@media screen and (max-width: 767px) {
	html { --section-pad: 7.5rem; }
.ls-services .txt { flex-wrap: wrap; }
	.content { overflow-x: hidden; overflow-x: clip; }
	.bloc-content :is(.cols2, .cols3), .bloc-img { grid-template-columns: minmax(0, 1fr); }
	.bloc-content .-reverse > :nth-child(1), :where(.cols2, .cols1-2, .cols2-1, .col2-set).-reverse > :nth-child(1) { grid-column: 1; }
	.bloc-content :is(.cols2, .cols3) .w-img { margin-bottom: 0; }
	.alignright, .alignleft, .bloc-content .has-img img { float: none; display: block; max-width: 100%; height: auto; }
	.alignleft { margin-right: 0; }
	.alignright { margin-left: 0; }
	.w-img.-left.slider-w-img { left: 0; }
	.w-img.-right.slider-w-img, .w-img.case-layout__right { right: 0; }

	.bloc-img .w-img { max-width: 500px; }
	.bloc-img .w-img:has(.portfolio-grid-section) { max-width: inherit; }
	.bloc-img .w-img.has-symbol.-s-bl { margin-bottom: 4.5rem; }

	/* home */
	.slider-pj { --item-w: 250px; }

	/* h scroll */
	.h-767 { position: relative; margin-left: var(--main-pad--); margin-right: var(--main-pad--); padding-left: 0; padding-right: 0; }
		.h-767 .scroll { display: grid; grid-template-columns: 295px; grid-auto-columns: 295px; grid-auto-flow: column; column-gap: 15px; padding: 0 var(--main-pad); overflow: auto; overflow-y: clip; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
			.h-767 .scroll::-webkit-scrollbar { display: none; -webkit-appearance: none; width: 14px; height: 8px; }
			.h-767 .scroll::-webkit-scrollbar-thumb { border-radius: 8px; border: none; background-color: rgba(0, 0, 0, .3); }
			.h-767 .scroll { scrollbar-width: none; -ms-overflow-style: none; }
			.h-767 .scroll > * { margin-bottom: 8px; }
		.h-767 .h-scroll-nav { display: flex; }
}

@media screen and (min-width: 480px) and (max-width: 767px) {

}

@media screen and (max-width: 640px) {
	.home-main .txt { height: calc(100dvh - (var(--head-wx) * 2)); }

	.cards-v2--bg-light .cards-v2__card { position: relative; padding-bottom: 75px; }
	.cards-v2--bg-light .cards-v2__icon-wrap { position: absolute; bottom: 2rem; right: 2rem; }
}

/** 480 */
@media screen and (max-width: 639px) {
	.text.-big { font-size: inherit; }

	/* head */
	:is(.head, .foot) .logo img { max-width: 140px; height: auto; }
	#menu-main-1 > li > .sub-menu .sub-menu { display: grid; }
	#menu-main-1 > li > .sub-menu .sub-menu { margin-bottom: 1rem; }

	html .bloc-entete__images-wrapper { gap: 1.5rem; }
	html .bloc-entete__images-wrapper.entete-images-3 { grid-template-columns: 1fr; }
	.entete-images-3 .bloc-entete__image--3,
	.bloc-entete__image--2 { display: none; }
	.bloc-entete__images-wrapper.entete-images-3 .bloc-entete__image--1 { aspect-ratio: 1; }
	html .bloc-entete__contenu { padding-block: 3rem; }

	/* content */
	.gallery.cols4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

	/* foot */
	.foot { background-size: 250px; }
	.foot > .container { grid-template-columns: minmax(0, 1fr); }
	.navs { order: inherit; grid-column: 1; }
	.frm-newsletter { order: inherit; margin-bottom: 0; }
	.copy { order: inherit; }
	.foot details { margin-bottom: 3rem; }
}

@media screen and (max-width: 480px) {
	html { --main-pad: 20px; --main-pad : max(20px, env(safe-area-inset-left)); --section-pad: 6rem; }
	.has-symbol::before { --w: 60px; }
}
/** 414 */
@media screen and (max-width: 479px) {
	/* content */
	.gallery.cols4, .gallery.cols3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	#type-parent { display: block; min-height: 24px; }

	/* footer */
	.foot .navs { grid-template-columns: 1fr; row-gap: 0; }
	.foot .navs h4 { grid-column: 1; margin-bottom: 1.5rem; }
	.foot .navs summary { position: relative; padding-block: 0.75rem; cursor: pointer; text-transform: uppercase; font-size: 90%; }
	.foot .navs summary::after { content: ''; position: absolute; top: 50%; right: 0; width: 8px; height: 11px; background: url(img/arr-r.svg) 100% 50%/auto 100% no-repeat; transform: translateY(-50%) rotate(90deg); }
	.foot .navs details[open] summary::after { transform: translateY(-50%) rotate(-90deg); }
	.foot details ul { padding-top: 0.75rem; }
	.foot details { margin-bottom: 0; }
}
/** 375 */
@media screen and (max-width: 413px) {
	body { font-size: 1.4rem; }
}
/** 320 */
@media screen and (max-width: 359px) {
	html { --main-pad: 15px; --main-pad : max(15px, env(safe-area-inset-left)); }
}

/* landscape */
@media (max-height: 480px) {
	.head .logo img { width: 150px; height: auto; }
	.home-main .txt { min-height: 440px; }

	.slider-pj { --item-w: 250px; }
	.case-layout__right.w-img { max-width: 460px; }
}
@media (max-width: 810px) or (max-height: 480px) {
	.cols2.bloc-img.-v-center { align-items: start; }
	.cols2.bloc-img .w-img { position: sticky; top: 0; }

	.cols2.bloc-img .w-img.-left:not(.slider-w-img) { transform: translateX(var(--main-pad--)); }
}
@media (max-width: 767px) {
	.cols2.bloc-img .w-img { position: relative; }
	.cols2.bloc-img .w-img.-left:not(.slider-w-img) { transform: none; }
}

/** clear */
.clearfix::after { content: "."; display: block; height: 0; clear: both; visibility: hidden; overflow: hidden; }
