/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/


/* COLORS ROOT */
:root {
	--h1: clamp(40px, 5vw, 90px);
	--fullHeight: calc(var(--vh, 1vh) * 100);
	--radius: 10px;
	--row: 140px;
	--grid: 90px;
	--logo: 175px;
	--fontSm: 16px;
	--font: 22px;
	--fontLg: 1.25em;
	--vertical-width: 90px;
	--light: #fff6e4;
	--green: #70f250;
	--dark: #00381f;
	--blur: #002f1ade;
}
.darkBg {
	background: var(--dark);
	color: var(--light);
}
.darkBg h2, .darkBg h3 {
	color: var(--green);
}
.greenBg {
	background: var(--green);
}
.lightBg {
	background: var(--light);
}


/* ANIMATIONS */
/* Fade in */
@-webkit-keyframes fadein {
	100% {
		opacity: 1;
	}
}
@keyframes fadein {
	100% {
		opacity: 1;
	}
}
/* Fade out */
@-webkit-keyframes fadeout {
	100% {
		opacity: 0;
	}
}
@keyframes fadeout {
	100% {
		opacity: 0;
	}
}
/* Fader */
.fader {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}
.fader.in-view {
	transition-delay: .15s;
	opacity: 1;
	transform: translateY(0);
}
/* WORD REVEAL - LETTERS */
.word-reveal.reveal-letters .word {
    display: inline-block;
    white-space: nowrap;
}
.word-reveal.reveal-letters .letter {
    display: inline-block;
    opacity: 0;
    transform: translateY(15px);
    transition: opacity .5s ease, transform .6s cubic-bezier(.25, .46, .45, .94);
    transition-delay: var(--letter-delay, 0ms);
}
.word-reveal.reveal-letters.is-visible .letter {
    opacity: 1;
    transform: translateY(0);
}

/* WORD REVEAL - WORDS */
.word-reveal.reveal-words .word {
    display: inline-block;
    overflow: hidden;
    vertical-align: top;
    padding-bottom: .08em;
    margin-bottom: -.08em;
}
.word-reveal.reveal-words .word-inner {
    display: inline-block;
    opacity: 0;
    transform: translate3d(-8px, 0, 0);
    transition: opacity .55s ease-in-out, transform .6s cubic-bezier(.25, .46, .45, .94);
    transition-delay: var(--word-delay, 0ms);
}
.word-reveal.reveal-words.is-visible .word-inner {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}


/* FONTS */
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Thin.woff2') format('woff2');
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Light.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Regular.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Medium.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Bold.woff2') format('woff2');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Heavy.woff2') format('woff2');
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'PP Object Sans';
	src: url('/wp-content/themes/generatepress_child/fonts/PPObjectSans-Black.woff2') format('woff2');
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}
html *, .mobmenu-content * {
    font-family: 'PP Object Sans'!important;
}
.fa-classic, .fa-light, .fa-regular, .fa-solid, .fa-thin, .fal, .far, .fas, .fat {
    font-family: "Font Awesome 6 Pro"!important;
}
.fa-sharp {
    font-family: "Font Awesome 6 Sharp"!important;
}
.fa-brands, .fab {
    font-family: "Font Awesome 6 Brands"!important;
}


/* LOADER / SPLASH */
.splash {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: var(--dark);
	opacity: 1;
	transform: scale(1);
	pointer-events: auto;
	overflow-x: hidden;
	transition: all 1s ease;
}
.splash.timeout {
	opacity: 0;
	pointer-events: none;
}
body:not(.home) .splash-anim {
	display: none;
}
dotlottie-player {
    width: 400px;
    height: 400px;
}


/* GÉNÉRAL */
html {
    -webkit-text-size-adjust: 100%!important; /* Prevent font scaling in landscape while allowing user zoom */
	overflow-x:hidden!important;
}
body .featured-image {
    display: none!important;
}
body {
    background: var(--light);
    color: var(--dark);
	overflow-x:hidden!important;
	line-height:1.3;
}
body, p {
	font-size: var(--font);
}
.large p {
	font-size: var(--fontLg);
}
.flex {
	display:flex;
	gap:60px;
}
.flex::before, .flex::after {
	display:none!important;
}
a, button, input, li {
    transition: .3s;
}
button:hover, html input[type="button"]:hover, input[type="reset"]:hover, input[type="submit"]:hover, a.button:hover, button:focus, html input[type="button"]:focus, input[type="reset"]:focus, input[type="submit"]:focus, a.button:focus, a.wp-block-button__link:not(.has-background):active, a.wp-block-button__link:not(.has-background):focus, a.wp-block-button__link:not(.has-background):hover {
    color: inherit;
    background-color: transparent;
}
a {
    color: var(--dark);
    text-decoration: none;
	transition: .3s;
}
a:hover, a:focus, a:active {
    color: var(--dark);
}
body .vc_row {
    margin-left: 0;
    margin-right: 0;
}
.entry-content:not(:first-child), .entry-summary:not(:first-child), .page-content:not(:first-child) {
    margin-top: 0;
}
.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .one-container .container, .separate-containers .paging-navigation, .inside-page-header {
    background-color: var(--light);
	padding:0;
}
.separate-containers .site-main {
    margin: 0;
}
body .grid-container {
    max-width: 100%;
}
a.button, button.button, body .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern, body .gform_wrapper .gform_footer button, .main-navigation .main-nav ul li.menu-soumission a, body #mobmenuright li.menu-soumission a, .widget_nav_menu ul li.menu-soumission a {
    border: 0;
    font-weight: 700;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: 0;
    margin: 0;
    padding: 0 25px;
    background: var(--green);
    color: var(--dark);
    border-radius: 50px;
    min-height: 50px;
    transition: .3s;
    display: inline-flex;
    line-height: 1;
    align-items: center;
	padding-top:3px;
}
button.button.light, body .light .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:focus, a.button:hover, a.light.button, body .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover, body .light .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern, body .home-about .dark .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover {
    background-color: var(--light);
    color: var(--dark);
}
body .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:focus, a.light.button:hover, body .light .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover, body .dark .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover {
    background: var(--green);
    color: var(--dark);
}
button.button.light:hover, .realisation-back a.button:hover, body .dark .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern, body .dark .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:focus {
    background: var(--dark);
    color: var(--light);
}
body .gform_wrapper .gform_footer button.gform-has-spinner {
	color: var(--light)!important;
}
.main-navigation .main-nav ul li.menu-soumission:hover a {
    color: var(--light)!important;
}
body .full-light .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern {
    background: var(--light);
    color: var(--dark);
	box-shadow: 0 0 0 2px var(--light);
}
body .full-light .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover, body .full-black .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover, body .home-team .light .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern:hover {
    background: var(--dark);
    color: var(--light);
	box-shadow: 0 0 0 2px var(--dark);
}
body .full-black .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern {
    background: var(--dark);
    color: var(--light);
	box-shadow: 0 0 0 2px var(--dark);
}
.main-navigation .main-nav ul li.menu-soumission a, body #mobmenuright li.menu-soumission a {
    margin-left: 40px;
}
.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a, .main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a, .main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a, .main-navigation .menu-bar-item:hover > a, .main-navigation .menu-bar-item.sfHover > a {
    color: var(--light);
	background:transparent;
}
.main-navigation .main-nav ul li > a:hover {
    color: var(--light)!important;
}
input:-webkit-autofill, input:-webkit-autofill:focus, input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 50px var(--light) inset!important;
}
body .gform_wrapper.gravity-theme .gfield textarea.medium {
    height: 180px;
	transition: .3s;
}
.gform_wrapper .gform_footer button, .gform_wrapper .gform_footer input[type=submit], .gform_wrapper .gform_page_footer button, .gform_wrapper .gform_page_footer button{
    width: fit-content!important;
}
h1 {
    font-size: var(--h1);
    line-height: 1;
    font-weight: 700;
    text-transform: uppercase;
}
h2, h3, h4, h5, h6 {
    margin-bottom: 0;
    line-height: 1;
    font-weight: 700;
    text-transform: uppercase;
	padding-bottom:35px;
}
h2 {
    font-size: 60px;
}
h3 {
    font-size: 45px;
}
h4 {
    font-size: 30px;
}
h5 {
    font-size: 20px;
    line-height: 1.2;
}
h6 {
	color: var(--green);
    font-size: 17px;
}
h1, h2, h3, h4, h5, h6, p {
    margin:0;
}
.vc_col-has-fill>.vc_column-inner, .vc_row-has-fill+.vc_row-full-width+.vc_row>.vc_column_container>.vc_column-inner, .vc_row-has-fill+.vc_row>.vc_column_container>.vc_column-inner, .vc_row-has-fill>.vc_column_container>.vc_column-inner {
    padding-top: 0!important;
}
.wpb_button, .wpb_content_element, ul.wpb_thumbnails-fluid>li {
    margin-bottom: 0!important;
}
body .vc_btn3-container {
    margin-bottom: 0;
}
.wrap {
	padding: var(--row) var(--grid);
}
.wrapSm {
    padding: 60px var(--grid);
}
.row {
	padding-top: var(--row);
	padding-bottom: var(--row);
}
body .grid, .footer-widgets-container, .inside-site-info {
	padding-left: var(--grid);
	padding-right: var(--grid);
}
body .vc_column_container > .vc_column-inner {
    padding-left: 0;
	padding-right: 0;
}
.center {
	text-align:center;
}


/* VERTICAL SIDEBARS */
/* Structure */
body {
	padding-left: var(--vertical-width);
	padding-right: var(--vertical-width);
}
.vertical-sidebar {
	position: fixed;
	top: 0;
	bottom: 0;
	width: var(--vertical-width);
    height: 100svh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	padding: 0;
	box-sizing: border-box;
	background: var(--light);
	color: var(--dark);
	z-index: 9999;
	transition: background-color .3s ease;
}
.darker:not(.site-menu-open) .vertical-sidebar {
    background: var(--dark);
    color: var(--light);
}
.vertical-sidebar-left {
	left: 0;
	border-right: 1px solid var(--dark);
}
.vertical-sidebar-right {
	right: 0;
	border-left: 1px solid var(--dark);
}
.darker:not(.site-menu-open) .vertical-sidebar {
    border-color: var(--light);
}
.vertical-sidebar .vertical-widget {
	width: 100%;
	height: 100%;
	min-height: 0;
}
.vertical-sidebar .custom-html-widget {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 100%;
	padding: 30px 0;
	box-sizing: border-box;
}
/* Logo */
.vertical-sidebar-left .logo-inner {
	position: relative;
	width: 100%;
	height: var(--logo);
	flex-shrink: 0;
}
.vertical-sidebar-left .site-logo {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: var(--logo);
	transform: translate(-50%, -50%) rotate(-90deg);
    margin: 35px 0 0;
}
.vertical-sidebar-left .site-logo-img {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
}
.vertical-sidebar-left .site-logo-svg {
    width: var(--logo);
    margin: 5px -10px 0;
}
.site-logo-svg path {
	transition: fill .3s ease;
}
body.site-menu-open .vertical-sidebar-left .site-logo {
	--logo-accent: var(--light);
}
.darker:not(.site-menu-open) .vertical-sidebar-left .site-logo {
	--logo-dark: var(--light);
}
/* Réseaux sociaux */
.social-icons {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 25px;
	width: auto;
	margin-bottom: 45px;
	transform: rotate(-90deg);
	transform-origin: center;
}
.social-icons a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--dark);
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
}
.darker:not(.site-menu-open) .social-icons a {
	color: var(--light);
}
.darker:not(.site-menu-open) .social-icons a:hover {
	color: var(--green);
}
/* Contact vertical */
.vertical-sidebar-right .site-courriel {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: var(--dark);
	text-decoration: none;
}
.darker:not(.site-menu-open) .vertical-sidebar-right .site-courriel {
	color: var(--light);
}
.darker:not(.site-menu-open) .vertical-sidebar-right .site-courriel:hover {
	color: var(--green);
}
.vertical-sidebar-right .site-courriel i {
	font-size: 28px;
	line-height: 1;
}
.vertical-sidebar-right .site-courriel span {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    font-size: 32px;
    font-weight: 700;
    line-height: 1;
    text-transform: lowercase;
    letter-spacing: 0px;
}
.vertical-sidebar-right .site-courriel:hover, .vertical-sidebar-left .social-icons a:hover, a.lang-switch:hover, .darker:not(.site-menu-open) a.lang-switch:hover {
	color: var(--green);
}
body.site-menu-open .vertical-sidebar-right .site-courriel:hover, body.site-menu-open .vertical-sidebar-left .social-icons a:hover, body.site-menu-open a.lang-switch:hover, .darker:not(.site-menu-open) a.lang-switch {
	color: var(--light);
}
/* Menu ouvert */
body.site-menu-open .vertical-sidebar {
	background: var(--green);
}
body.site-menu-open .vertical-sidebar a,
body.site-menu-open .vertical-sidebar button {
	pointer-events: auto;
}


/* BURGER MENU */
/* Bouton */
.site-menu-toggle {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 40px;
	height: 40px;
	padding: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
	z-index: 10001;
}
.site-menu-toggle span {
	display: block;
	width: 40px;
	height: 1px;
	background: var(--dark);
	transition: transform .3s ease;
}
.darker:not(.site-menu-open) .site-menu-toggle span {
    background: var(--light);
}
/* Animation X */
.site-menu-toggle[aria-expanded="true"] span:first-child {
	transform: translateY(5.5px) rotate(45deg);
}
.site-menu-toggle[aria-expanded="true"] span:last-child {
	transform: translateY(-5.5px) rotate(-45deg);
}


/* MENU OVERLAY */
/* Overlay */
.main-menu {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.site-menu-overlay {
	position: fixed;
	top: 0;
	bottom: 0;
	left: var(--vertical-width);
	right: var(--vertical-width);
	z-index: 9998;
	background: var(--green);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .3s ease, visibility .3s ease;
}
.site-menu-overlay[aria-hidden="false"] {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.site-menu-backdrop {
	display: none;
}
/* Panneau */
.site-menu-panel {
	position: relative;
	width: 100%;
	height: 100%;
	background: var(--green);
	overflow-y: auto;
}
/* Structure */
.site-menu-inner {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 0;
	min-height: 100%;
	padding: 0;
	box-sizing: border-box;
}
.site-menu-nav {
	flex: 1;
}
.site-menu-list {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	list-style: none;
}
/* Liens du menu */
.site-menu-list > li {
    margin: 0;
    padding: 35px 55px;
    border-bottom: 1px solid var(--dark);
	background: transparent;
	opacity: 0;
	transform: translateY(-15px);
	transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease;
}
.site-menu-list > li:hover {
    background: var(--dark);
}
body.site-menu-open .site-menu-list > li {
	opacity: 1;
	transform: translateY(0);
}
body.site-menu-open .site-menu-list > li:nth-child(1) {
	transition-delay: 100ms, 100ms, 0ms;
}
body.site-menu-open .site-menu-list > li:nth-child(2) {
	transition-delay: 200ms, 200ms, 0ms;
}
body.site-menu-open .site-menu-list > li:nth-child(3) {
	transition-delay: 300ms, 300ms, 0ms;
}
body.site-menu-open .site-menu-list > li:nth-child(4) {
	transition-delay: 400ms, 400ms, 0ms;
}
body.site-menu-open .site-menu-list > li:nth-child(5) {
	transition-delay: 500ms, 500ms, 0ms;
}
body.site-menu-open .site-menu-list > li:nth-child(6) {
	transition-delay: 600ms, 600ms, 0ms;
}
body.site-menu-open .site-menu-list > li:nth-child(7) {
	transition-delay: 700ms, 700ms, 0ms;
}

.site-menu-list > li > a {
    display: block;
    color: var(--dark);
    font-size: clamp(40px, 5vw, 90px);
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
    padding-top: 5px;
	transform: translateX(0px);
}
.site-menu-list > li:hover > a {
    color: var(--light);
	transform: translateX(12px);
}
/* Pied du menu */
.site-menu-footer {
	display: flex;
	align-items: flex-end;
	padding: 55px;
}
body.site-menu-open {
	overflow: hidden;
}


/* CONTACT */
/* Coordonnées */
.site-contact {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 30px;
	width: 100%;
}
.site-contact-item {
	display: block;
}
.site-contact-item b {
	text-transform: uppercase;
}
html[lang="fr-CA"] .site-contact-item b.en, html[lang="en-CA"] .site-contact-item b.fr {
	display:none;
}
.site-contact-item a {
	text-decoration: none;
	overflow-wrap: anywhere;
}
.site-contact-item a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1px;
}


/* CONTACT */
.contact-section {
    padding-bottom: 0;
}
.contact-section::before {
    z-index: 1!important;
}
.contact-section p {
    padding-bottom: 1.5em;
    max-width: 550px;
}
.contact-section.darkBg h2 {
    color: var(--light);
}
.contact-section.darkBg h2 strong {
    color: var(--green);
}
.contact-section.darkBg h3 {
	text-transform:none;
}
.contact-cta {
    margin-top: 60px;
}
.contact-cta > div {
    border: 1px solid #fff6e473;
    text-align: center;
    padding: 50px;
    border-radius: 40px;
}


/* CONTACT */
body .wpb_gmaps_widget .wpb_wrapper {
    background-color: transparent;
    padding: 0;
}
body .wpb_gmaps_widget .wpb_map_wraper iframe, .contact iframe {
    border-radius: 50px;
	margin-top: 125px;
}
.contact {
	border-radius: 25px 25px 0 0;
}
.contact h5 a {
    color: var(--dark);
    line-height: 1.2;
	display:inline-block;
	padding-top:10px;
}
.contact h5 a:hover {
    color: var(--dark);
}
.contact h5.first {
    padding-bottom: 0;
}
.contact h5.sec a {
    padding-top: 0;
}
.contact h5:last-child {
	padding-bottom:0px;
}
.contact .right p {
    padding-bottom: 30px;
}
.contact h6 {
    font-weight: 600;
    color: var(--dark);
}
.contact-info p {
    font-size: 27px;
    padding-bottom: 30px;
}
.contact-info p strong {
    color: var(--green);
    font-weight: 700;
    font-size: 17px;
}
.contact-info a:hover {
    color:var(--green);
}


/* HERO SECTION */
.hero-section {
	position: relative;
	height: 100vh;
	height: var(--fullHeight);
	background: var(--light);
	overflow: hidden;
	align-items: center;
	justify-content: center;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index:1;
}
.hero-section > .wpb_column {
	position: relative;
	z-index: 1;
	width: auto;
	max-width: 100%;
}
.hero-section .wpb_text_column.quote {
	margin-bottom: 0;
	text-align: left;
}
.hero-section .wpb_text_column.quote p {
	margin: 0 0 30px;
	color: var(--dark);
	font-size: var(--h1);
	font-weight: 400;
	cursor: default;
	line-height: 1.05;
}
.hero-section .wpb_text_column.quote p:last-child {
	margin-bottom: 0;
	padding-left: clamp(40px, 5vw, 80px);
}
.hero-section .hero-topo-canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: 0;
	pointer-events: none;
}


/* ACCUEIL */
.hero-section {
    position: relative;
}
.hero-video-button {
    position: absolute;
    bottom: 35px;
    left: 35px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 65px;
    height: 65px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--green);
    color: var(--dark);
    cursor: pointer;
    transition: transform .3s ease, background .3s ease;
}
.hero-video-button svg {
    width: 45px;
    height: 45px;
    margin-left: 0px;
    fill: currentColor;
}
.hero-video-button::before,
.hero-video-button::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 15px solid var(--green);
    border-radius: 50%;
    pointer-events: none;
    animation: hero-video-pulse 2.5s ease-out infinite;
}
.hero-video-button::after {
    animation-delay: 1.25s;
}
.hero-video-button:hover {
    transform: scale(1.1);
}
.hero-video-button:hover, .hero-video-button:focus {
	background: var(--green);
}
@keyframes hero-video-pulse {
    0% {
        transform: scale(1);
        opacity: .8;
    }
    100% {
        transform: scale(1.9);
        opacity: 0;
    }
}
@media (prefers-reduced-motion: reduce) {
    .hero-video-button::before,
    .hero-video-button::after {
        animation: none;
    }
}
/*Scroll*/
.hero-section > .scroll {
    position: absolute;
    right: 35px;
    bottom: 35px;
    z-index: 10;
}
.scroll {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--dark);
    font-weight: 500;
    text-decoration: none;
    transition: opacity .3s ease;
    line-height: 1;
    text-transform: uppercase;
}
.scroll i {
    font-size: 25px;
    transition: transform .3s ease;
    font-weight: 400;
}
.scroll:hover {
    color: var(--dark);
}
.scroll:hover i {
    transform: translate(-4px, 4px);
}
.home-about p {
    padding-bottom: 1.5em;
}
.home-about p:last-child {
    padding-bottom: 0;
}
.home-about .vc_btn3-container {
    margin-top:60px;
}
.home-about {
    display: flex;
    align-items: stretch;
}
.home-about > .wpb_column {
    float: none;
}
.home-about > .wpb_column:last-child {
    position: relative;
}
.home-about > .wpb_column:last-child .vc_column-inner {
    height: 100%;
}
.home-about > .wpb_column:last-child .wpb_wrapper {
    height: 100%;
}
.home-about #gallery {
    position: absolute;
    inset: 0;
}
.home-about #gallery .slick-list,
.home-about #gallery .slick-track,
.home-about #gallery .gallery-slide,
.home-about #gallery .gallery-single-photo {
    height: 100%;
}
.home-about .gallery-single-photo {
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
body .slick-dots {
    bottom: 0;
    background: linear-gradient(0deg, var(--dark), transparent);
    height: 125px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 45px;
}
body .slick-dots li.slick-active button:before {
    opacity: 1;
	color: var(--green);
}
body .slick-dots li button:before {
    font-size: 18px;
    opacity: 1;
	color: var(--light);
}
body .slick-initialized .slick-slide {
    cursor: grab;
}
body .slick-initialized .slick-slide:active {
    cursor: grabbing;
    cursor: -moz-grabbing;
    cursor: -webkit-grabbing;
}
.home-real .top h2 {
    padding-bottom:0;
}
.home-real .top {
    padding-bottom: 70px;
}
.home-real .top .vc_col-sm-6:last-child {
    text-align: right;
}
.home-real .realisations-list {
    margin-top: 0;
}


/* À PROPOS */
/*Hero*/
.hero-about {
    background-size: cover !important;
    background-position: center !important;
    color: var(--light);
    padding: 0 10%;
}
.hero-about::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(00deg, var(--dark) 0%, transparent 100%);
    opacity: .75;
    pointer-events: none;
    width: 100%;
    height: 100%;
}
.hero-about > div > div {
    height: 100vh;
    height: var(--fullHeight);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    width: 100%;
    padding-bottom: 70px;
	text-align:center;
}
.hero-about .vc_btn3-container.vc_btn3-inline {
    margin: 0 10px;
}
.hero-about p {
    padding: 25px 0 50px;
    max-width: 1200px;
}
/*Clients*/
.clients, .collaborateurs {
	border-top:1px solid;
}
.clients-slider {
	width: calc(100% + 180px);
	max-width: calc(100% + 180px);
	min-width: 0;
	overflow: hidden;
	margin: 60px -90px 0;
	position: relative;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.clients-track {
	display: flex;
	width: max-content;
	animation: clients-scroll 60s linear infinite;
}
.clients-group {
	display: flex;
	align-items: center;
	gap: 70px;
	padding-right: 70px;
	flex: none;
}
.clients-logo img {
	display: block;
	width: auto;
	height: auto;
	max-width: 150px;
	max-height: 90px;
	object-fit: contain;
	filter: grayscale(1);
	transition: filter .3s;
}
.clients-logo:hover img {
	filter: none;
}
.clients-slider:hover .clients-track {
	animation-play-state: paused;
}
@keyframes clients-scroll {
from {
	transform: translateX(0);
}
to {
	transform: translateX(-50%);
}
}
/* Partenaires */
.partenaires-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 50px;
	align-items: center;
	margin-top:60px;
}
.partenaire-item {
	display: flex;
	align-items: center;
	justify-content: center;
}
.partenaire-item a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
}
.partenaire-item img {
	display: block;
	width: auto;
	height: auto;
	max-width: 220px;
	max-height: 100px;
	object-fit: contain;
	transition: filter .3s ease;
	filter: grayscale(1);
}
.partenaire-item a:hover img {
	filter: none;
}


/* SERVICES */
.services {
	color: var(--light);
}


/* SERVICES */
.services-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 60px;
	margin-top:60px;
	width: 100%;
}
.service-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: 0;
	border: 0;
}
.service-card:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	right: -30px;
	width: 1px;
	background: rgba(255, 255, 255, .3);
}
.service-image {
	width: 100%;
	aspect-ratio: 1.5 / 1;
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, .3);
}
.service-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}
.service-card:has(.service-toggle:hover) .service-image img {
	transform: scale(1.04);
}
.service-number {
	position: relative;
	z-index: 1;
	margin-top: 20px;
	margin-bottom: 5px;
	color: var(--green);
	font-weight: 100;
	line-height: 1;
}
.service-title {
	color: var(--green);
	font-size: clamp(22px, 2.5vw, 34px);
	font-weight: 700;
	line-height: 1;
	text-transform: uppercase;
}
.service-excerpt {
	font-size: clamp(15px, 1.2vw, 18px);
	line-height: 1.35;
}
.service-excerpt p {
	margin: 0 0 15px;
}
.service-excerpt p:last-child {
	margin-bottom: 0;
}
.service-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	width: 38px;
	height: 38px;
	margin-top: auto;
	padding: 0;
	border: 1px solid var(--green);
	border-radius: 50%;
	background: transparent;
	color: var(--green);
	font-size: 19px;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, transform .25s ease;
}
.service-excerpt + .service-toggle {
	margin-top: 12px;
}
.service-toggle:hover {
	background: var(--green);
	color: var(--dark);
	transform: rotate(90deg);
}


/* SERVICES POPUP */
.services-popup {
	position: fixed;
	inset: 0;
	z-index: 999999;
	visibility: hidden;
	pointer-events: none;
	transition: visibility .45s;
}
.services-popup.is-open {
	visibility: visible;
	pointer-events: auto;
}
.services-popup-backdrop {
	position: absolute;
	inset: 0;
    background: var(--blur);
	backdrop-filter: blur(5px);
	opacity: 0;
	transition: opacity .45s ease;
}
.services-popup.is-open .services-popup-backdrop {
	opacity: 1;
}
.services-popup-panel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	max-height: 85svh;
	padding: 70px max(6%, calc((100vw - 1500px) / 2)) 55px;
	border-radius: 0;
	background: var(--light);
	color: var(--dark);
	overflow-y: auto;
	overscroll-behavior: contain;
	transform: translateY(100%);
	transition: transform .55s cubic-bezier(.76, 0, .24, 1);
}
.services-popup.is-open .services-popup-panel {
	transform: translateY(0);
}
.services-popup-close, .staff-popup-close {
    position: absolute;
    top: 25px;
    right: 35px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    padding: 0;
    background: transparent;
    color: var(--dark);
    font-size: 55px;
    cursor: pointer;
    transition: background .25s, color .25s;
    font-weight: 100;
}
.services-popup-close:hover {
	color: var(--green);
}
.services-popup-close i, .staff-popup-close i {
	font-weight: 100;
}
.services-popup-body {
	width: 100%;
}


/* SERVICES POPUP CONTENT */
.service-popup-content {
	display: flex;
	column-gap: 70px;
	row-gap: 30px;
	align-items: start;
}
.service-popup-title {
    margin: 0;
    font-size: clamp(36px, 5vw, 70px);
    font-weight: 700;
	color: var(--green);
    line-height: 1;
    text-transform: uppercase;
    overflow-wrap: anywhere;
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    padding: 0;
}
.service-popup-description {
	grid-column: 2;
	font-size: clamp(17px, 1.5vw, 21px);
	line-height: 1.4;
}
.service-popup-description p {
	margin: 0 0 1em;
}
.service-popup-description p:last-child {
	margin-bottom: 0;
}
.service-popup-tags {
	grid-column: 2;
	display: flex;
	align-items: flex-start;
	align-content: flex-start;
	flex-wrap: wrap;
	gap: 10px;
}
.service-tag {
    display: inline-flex;
    align-items: center;
    padding: 8px 15px 7px;
    border: 1px solid var(--dark);
    border-radius: 50px;
    color: var(--dark);
    font-size: 13px;
    line-height: 1.2;
}


/* STAFF */
.collab h4 {
    padding-top: 60px;
    padding-bottom: 20px;
}
.collab-list p {
    font-size: var(--fontSm);
}
.staff {
	color: var(--dark);
}
.staff-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
	align-items: stretch;
}
.staff-item {
	display: flex;
	min-width: 0;
}
.staff-card {
	position:relative;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	border: 1px solid;
	color: inherit;
	text-align: left;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	height: 100%;
}
.staff-card-info {
	display: flex;
	flex-direction: column;
	flex: 1;
}
.staff-card-photo {
	display: block;
	position: relative;
	aspect-ratio: 1 / 1.2;
	overflow: hidden;
	background: var(--dark);
}
.staff-card-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
/* Staff badge */
.staff-card-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--green);
    color: var(--dark);
    font-size: 19px;
    transition: background .25s ease, color .25s ease, transform .25s ease;
    margin: -7px 15px 15px !important;
}
.staff-card:hover .staff-card-badge {
	background: var(--dark);
	color: var(--light);
	transform: rotate(90deg);
}
.staff-card:hover .staff-card-photo img {
	transform: scale(1.04);
}
.staff-card-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 15px;
}
.staff-card-info strong {
	font-size: clamp(18px, 2vw, 25px);
	line-height: 1.1;
}
.staff-card-info > span {
	font-size: var(--fontSm);
}


/* STAFF POPUP */
.staff-popup {
	position: fixed;
	inset: 0;
	z-index: 999999;
	visibility: hidden;
	pointer-events: none;
	transition: visibility .4s;
}
.staff-popup.is-open {
	visibility: visible;
	pointer-events: auto;
}
.staff-popup-backdrop {
    position: absolute;
    inset: 0;
    background: var(--blur);
    opacity: 0;
    transition: opacity .4s;
    backdrop-filter: blur(5px);
}
.staff-popup.is-open .staff-popup-backdrop {
	opacity: 1;
}
.staff-popup-panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 80%;
	height: 100svh;
	background: var(--light);
	color: var(--dark);
	overflow: hidden;
	transform: translateX(100%);
	transition: transform .5s cubic-bezier(.76, 0, .24, 1);
}
.staff-popup.is-open .staff-popup-panel {
	transform: translateX(0);
}
.staff-popup-body {
	height: 100%;
}
.staff-profile {
	display: grid;
	grid-template-columns: 40% minmax(0, 1fr);
	height: 100vh;
    height: var(--fullHeight);
	overflow: hidden;
}
.staff-profile-photo {
	position: relative;
	height: 100vh;
    height: var(--fullHeight);
	overflow: hidden;
	background: #ded7ce;
}
.staff-profile-photo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-right: 1px solid;
}
.staff-profile-content {
    display: flex;
    flex-direction: column;
    height: 100vh;
    height: var(--fullHeight);
    min-height: 0;
    padding: 50px;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.staff-profile-top {
	padding-right: 20px;
}
.staff-profile-title {
	margin-bottom: 15px;
	font-size: var(--fontSm);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.staff-profile-name {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	font-size: var(--h1);
	font-weight: 700;
	line-height: .92;
	letter-spacing: 0;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.staff-profile-description {
	max-width: 720px;
	font-size: clamp(18px, 2vw, 24px);
	line-height: 1.1;
}
.staff-profile-description p {
	margin: 0 0 1em;
}
.staff-profile-skills {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: 100%;
	max-width: 285px;
	margin-top: 50px;
}
.staff-skill-label {
    margin-bottom: 7px;
    font-size: 0.9em;
    line-height: 1.2;
    font-weight: 500;
}
.staff-skill-track {
	position: relative;
	height: 42px;
	overflow: hidden;
	border: 2px solid var(--green);
	border-radius: 50px;
}
.staff-skill-fill {
	display: block;
	width: var(--skill-width);
	height: 100%;
	border-radius: inherit;
	background: var(--green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .9s cubic-bezier(.2, .8, .2, 1);
}
.staff-popup.is-open .staff-skill-fill {
	transform: scaleX(1);
}
.staff-profile-contact {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 12px;
    margin-top: auto;
    color: var(--dark);
    line-height: 1.1;
    text-decoration: none;
    background: var(--green);
    position: absolute;
    left: 0;
    bottom: 0;
    width: 40%;
    border-right: 1px solid var(--dark);
    justify-content: center;
    padding: 20px;
    border-top: 1px solid var(--dark);
}
.staff-profile-contact i {
	font-size: 30px;
}
.staff-profile-contact:hover {
    background: var(--dark);
    color: var(--light);
}
html:has(body.staff-popup-active),
body.staff-popup-active {
	overflow: hidden;
}
html:has(body.staff-popup-active) {
	padding-right: 15px;
}
body.staff-popup-active .vertical-sidebar-right {
    right: 15px;
}


/* RÉALISATIONS */
.realisations-section {
	padding-top: var(--row);
}
.realisations-section h1 {
	color: var(--green);
}
.realisations-list {
	width: 100%;
	margin-top: var(--row);
	border-top: 1px solid var(--light);
}
.realisations-list h2 {
    color: var(--light);
    padding: 0;
    font-weight: 600;
}
.realisation-item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 115px;
    padding: 32px var(--grid);
    border-bottom: 1px solid var(--light);
    background: transparent;
    color: var(--light);
    text-decoration: none;
    transition: background .3s ease, color .3s ease;
}
.realisation-item:hover,
.realisation-item:focus-visible {
	background: var(--green);
	color: var(--dark);
}
.realisation-item-info {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.realisation-item-title {
	margin: 0;
	color: inherit;
	font-size: clamp(28px, 3vw, 48px);
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	transition: color .3s ease;
}
.realisation-item-category {
	display: block;
	margin-top: 4px;
	margin-left: 45px;
	color: var(--green);
	font-size: clamp(15px, 1.5vw, 23px);
	line-height: 1.1;
	text-transform: uppercase;
	transition: color .3s ease;
}
.realisation-item-category::before {
	content: "/ ";
}
.realisation-item:hover .realisation-item-category,
.realisation-item:focus-visible .realisation-item-category {
	color: var(--dark);
}
.realisation-item-cover {
	position: absolute;
	z-index: 3;
	top: 50%;
	left: 50%;
	width: min(30%, 390px);
	aspect-ratio: 1.5 / 1;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
	transform: translate(-50%, -45%) scale(.93);
	transition: opacity .3s ease, transform .4s ease;
}
.realisation-item-cover img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.realisation-item:hover .realisation-item-cover,
.realisation-item:focus-visible .realisation-item-cover {
	opacity: 1;
	transform: translate(-50%, -50%) scale(1);
}
.realisation-item-button {
	position: relative;
	z-index: 4;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 110px;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateX(-10px);
	transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
.realisation-item:hover .realisation-item-button,
.realisation-item:focus-visible .realisation-item-button {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}
.realisation-item:hover .realisation-item-title {
	color: var(--dark);
}


/* RÉALISATION SINGLE */
.realisation-single {
	width: 100%;
	color: var(--dark);
}
.realisation-hero {
	position: relative;
	width: 100%;
	height: 60vh;
	height: calc(var(--vh, 1vh) * 60);
	max-height: 850px;
	min-height: 380px;
	overflow: hidden;
}
.realisation-hero img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}
.realisation-wrap {
	width: 100%;
	position:relative;
}
.realisation-wrap::before {
    content: "";
    background: url(/wp-content/uploads/topo_bg.webp);
    background-size: cover;
    background-position: center;
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
    opacity: 0.15;
    filter: brightness(0);
}
.realisation-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 80px;
    align-items: start;
    position: relative;
    z-index: 1;
}
.realisation-intro-heading {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
.realisation-lead h4 {
	padding:0;
}
.realisation-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.realisation-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px 5px;
    border: 1px solid var(--dark);
    border-radius: 100px;
    font-size: 12px;
    line-height: 1;
}
.realisation-description {
    max-width: 100%;
}
.realisation-description p {
	margin: 0 0 1.5em;
}
.realisation-description p:last-child {
	margin-bottom: 0;
}
.realisation-informations {
	display: flex;
	flex-direction: column;
	border-top: 1px solid;
}
.realisation-info-item {
	padding:12px 0;
	border-bottom: 1px solid;
}
.realisation-info-label {
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
}
.realisation-info-value {
	font-size: 17px;
	line-height: 1.35;
}
.realisation-info-value p {
    margin: 0 0 10px;
    font-size: var(--fontSm);
}
.realisation-info-value p:last-child {
	margin-bottom: 0;
}
/* GALERIE */
.realisation-gallery {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}
.realisation-gallery-item {
	position: relative;
	display: block;
	aspect-ratio: 1.5 / 1;
	overflow: hidden;
	background: #e4e4df;
}
.realisation-gallery-item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}
.realisation-gallery-item:hover img {
	transform: scale(1.04);
}
.realisation-gallery-icon {
	position: absolute;
	right: 20px;
	bottom: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--green);
	color: var(--dark);
	font-size: 20px;
}
/* DÉTAILS SUPPLÉMENTAIRES */
.realisation-details {
	display: grid;
	grid-template-columns: 35% minmax(0, 1fr);
	gap: 60px;
	padding-top: 35px;
	border-top: 1px solid var(--dark);
}
.realisation-details-text p {
	margin: 0 0 1.3em;
}
.realisation-details-text p:last-child {
	margin-bottom: 0;
}
.realisation-back {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: var(--dark);
    font-size: 15px;
    text-decoration: none;
    width: 100%;
    text-align: center;
    justify-content: flex-start;
}

/* LIGHTBOX */
.lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s ease, visibility .3s;
}
.lightbox.is-open {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}
.lightbox-backdrop {
    position: absolute;
    inset: 0;
    background: var(--blur);
    backdrop-filter: blur(5px);
}
.lightbox-content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: calc(100% - 180px);
    max-height: 90svh;
}
.lightbox-content img {
    display: block;
    max-width: 100%;
    max-height: 82svh;
    width: auto;
    height: auto;
    object-fit: contain;
}
.lightbox-count {
    margin-top: 15px;
    color: var(--light);
    font-size: 14px;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .5);
    border-radius: 50%;
    background: transparent;
    color: var(--light);
    font-size: 22px;
    cursor: pointer;
    transition: background .25s, color .25s;
}
.lightbox-prev:hover,
.lightbox-next:hover {
    background: var(--green);
    color: var(--dark);
}
.lightbox-close {
    top: 25px;
    right: 25px;
    font-size: 50px;
    border: 0;
}
.lightbox-close:hover {
    color: var(--green);
}
.lightbox-close i {
    font-weight: 100;
}
.lightbox-prev {
    top: 50%;
    left: 25px;
    transform: translateY(-50%);
}
.lightbox-next {
    top: 50%;
    right: 25px;
    transform: translateY(-50%);
}
/*html:has(body.lightbox-active),
body.lightbox-active {
    overflow: hidden;
}*/


/* LIGHTBOX - MP4 VIDEO */
.lightbox-content.is-video {
    width: min(1100px, calc(100% - 100px));
    max-width: none;
}
.lightbox-content.is-video video {
    display: block;
    width: 100%;
    max-height: 85svh;
    aspect-ratio: 16 / 9;
    object-fit: contain;
    background: #000;
}
.lightbox:has(.is-video) .lightbox-prev,
.lightbox:has(.is-video) .lightbox-next,
.lightbox:has(.is-video) .lightbox-count,
.lightbox:has(.is-video) [data-lightbox-img] {
    display: none;
}


/* COOKIES */
.politique h1 {
	padding-bottom:60px;
}
.politique h4 {
	padding: 40px 0 15px;
}
.politique .wpb_wrapper h4:first-child {
	padding-top:0;
}
.politique ul {
	margin-bottom: 0;
}
.politique a {
	color: var(--green);
}
.politique a:hover {
	text-decoration: underline;
}


/* FOOTER */
.site-footer {
    width:100%;
	float:left;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: var(--dark);
    z-index: -1;
}
.site-footer::before, .contact-section::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 90%;
	height: 90%;
	background: url('/wp-content/uploads/canvas-coin.png') no-repeat top right;
	background-size: contain;
	opacity: 0.3;
	z-index: -1;
	pointer-events: none;
}
.page-id-209:not(.site-menu-open) .site-footer::before, .page-id-1061:not(.site-menu-open) .site-footer::before {
	display:none;
}
.site-footer .footer-widgets-container .inside-footer-widgets {
    margin-left: 0;
}
.site-footer .footer-widgets-container .inner-padding {
    padding: 0;
}
.footer-widget-2 {
	display:none;
}
.footer-widgets-container {
    text-align: left;
    padding-top: var(--row);
    padding-bottom: var(--row);
}
.inside-footer-widgets>div:first-child {
    width:100%;
	margin:0;
}
.inside-footer-widgets * {
    font-size: var(--font);
	color: var(--light);
}
.footer-widgets {
    background-color: transparent;
}
.site-info {
    color: var(--light);
    background-color: transparent;
}
.footer-bar .textwidget p:last-child, .footer-bar a {
    font-size: var(--fontSm);
}
.site-info a:hover, .site-footer .widget a:hover, .site-info .widget_text a:hover {
    color: var(--green);
}
.site-info .widget_text a {
    position:relative;
}
.site-info .widget_text a:before {
    content: ' ';
    pointer-events: none;
    position: absolute;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform .58s cubic-bezier(.38, 0, 0, 1);
    width: calc(100% - 0px);
    background-color: var(--green);
    bottom: -4px;
    content: "";
    height: 1px;
    left: 0;
}
.site-info .widget_text a:hover:before{
    transform: scaleX(1);
    transform-origin: left center;
}
.footer-bar .textwidget p:last-child {
    text-align: right;
}
.site-info a, .site-footer .widget a, .footer-bar .widget_nav_menu .current-menu-item a {
    color: var(--light);
}
.footer-bar .widget_nav_menu .current-menu-item a:hover {
    color: var(--green);
}
.footer-widgets .widget {
    margin-bottom: 0;
}
.site-footer .copyright-bar {
    display:none;
}
.inside-site-info {
    padding-bottom: 30px;
    margin-top: -1px;
}
.site-footer h5 strong {
    color: var(--dark);
    font-weight: 800;
    padding-right: 0;
    width: 29px;
    display: inline-block;
}
.footer-bar-align-center .footer-bar {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	width: 100%;
	gap: 60px;
}
.footer-bar-align-center .footer-bar > :first-child {
	grid-column: 1 / -1;
}
.footer-bar-align-center .footer-bar > :nth-child(2) {
	justify-self: start;
}
.footer-bar-align-center .footer-bar > :nth-child(3) {
	justify-self: end;
}
.footer-bar img {
	width:100vw;
}
a.generate-back-to-top {
    display:none;
}


/* RESPONSIVE */

@media (max-width: 1024px) {
.footer-bar .widget_nav_menu>div>ul {
    align-items: flex-start;
    flex-direction: column;
	gap: 15px;
}
.footer-bar .widget_nav_menu li:first-child {
	margin-left: 0!important;
}
.footer-bar .widget_nav_menu li {
    margin: 0;
    padding: 0;
}
.realisation-item {
	padding: 25px var(--grid);
}
.realisation-item-cover {
	width: 32%;
}
.realisation-name {
	font-size: clamp(50px, 7vw, 85px);
}
.hero-section {
	padding: 50px;
}
.hero-section .wpb_text_column.quote p {
	font-size: clamp(30px, 5vw, 55px);
}
.staff-profile-content {
	padding: 90px 35px 35px;
}
.staff-profile-name {
	font-size: clamp(42px, 6vw, 70px);
}
.staff-popup-close {
	top: 25px;
	right: 25px;
	width: 45px;
	height: 45px;
}
.service-title {
	font-size: 25px;
}
.service-popup-content {
	column-gap: 35px;
}
/* Structure et espacement */
:root {
	--row: 100px;
	--grid: 55px;
	--font: 20px;
}
/* Menu */
.site-menu-list > li {
	padding: 26px 35px;
}
.site-menu-footer {
	padding: 35px;
}
/* Services : préserver des images égales */
.services-grid {
	gap: 35px;
}
.service-card {
	padding: 0;
}
.service-card:not(:last-child)::after {
	right: -18px;
}
/* Popups */
.staff-popup-panel {
	width: 90%;
}
.staff-profile {
	grid-template-columns: 40% minmax(0, 1fr);
}
.staff-profile-contact {
	width: 40%;
}
/* Projets */
.realisation-intro {
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 40px;
}
/* Footer et bandeau clients */
.clients-slider {
	width: calc(100% + 110px);
	max-width: calc(100% + 110px);
	margin-left: -55px;
	margin-right: -55px;
}
}

@media (max-width: 768px) {
.lightbox-content,
.lightbox-content.is-video {
	width: 100%;
	max-width:100%;
}
.lightbox-prev {
    left: 20px;
}
.lightbox-next {
    right: 20px;
}
.lightbox-close, .lightbox-prev, .lightbox-next {
    width: 40px;
    height: 40px;
    font-size: 17px;
}
.lightbox-prev, .lightbox-next {
    top:90%;
}
.lightbox-close {
    top: 12px;
    right: 12px;
    font-size: 38px;
}
.home-real .top .vc_col-sm-6:last-child {
    text-align: left;
    margin-top: 30px;
}
.hero-section .wpb_text_column.quote {
    margin-top: -50px;
}
.home-about {
	display: block;
}
.home-about #gallery {
	position: relative;
	height: 450px;
}
.hero-section > .scroll {
	right: 20px;
	bottom: 20px;
}
.hero-video-button {
	bottom: 20px;
	left: 20px;
	width: 55px;
	height: 55px;
}
.hero-video-button svg {
	width: 36px;
	height: 36px;
}
.realisation-item {
	min-height: 100px;
	padding: 20px var(--grid);
}
.realisation-item-title {
	font-size: clamp(23px, 5vw, 36px);
}
.realisation-item-category {
	margin-left: 20px;
	font-size: 15px;
}
.realisation-item-cover {
	display: none;
}
.realisation-item-button {
	min-width: auto;
	padding: 10px 15px;
	opacity: 1;
	visibility: visible;
	transform: none;
}
.realisation-hero {
	height: 50vh;
	height: calc(var(--vh, 1vh) * 50);
	min-height: 300px;
}
.realisation-intro {
	grid-template-columns: 1fr;
	gap: 50px;
}
.realisation-name {
	font-size: clamp(45px, 10vw, 75px);
}
.realisation-details {
	grid-template-columns: 1fr;
	gap: 0;
}
.realisation-lightbox-image {
	max-width: 100%;
}
.realisation-lightbox-image img {
	max-height: 75svh;
}
.realisation-lightbox-prev,
.realisation-lightbox-next {
	top: auto;
	bottom: 20px;
	transform: none;
}
.realisation-lightbox-close {
	top: 15px;
	right: 15px;
}
.site-menu-list > li > a {
	font-size: 30px;
}
.hero-section {
	padding: 35px;
}
.hero-section .wpb_text_column.quote p {
	font-size: clamp(26px, 6vw, 45px);
}
.staff-profile-photo img {
	object-position: center 25%;
}
.staff-profile-name {
	font-size: clamp(42px, 10vw, 70px);
}
.staff-profile-description {
	font-size: 19px;
	line-height: 1.25;
}
.staff-profile-skills {
	max-width: 100%;
}
.staff-popup-close {
	top: 20px;
	right: 20px;
	width: 45px;
	height: 45px;
	z-index: 9;
	border-radius: 50px;
	font-size: 30px;
}
.staff-popup-close, .staff-popup-close:focus {
	background: var(--green);
}
.services-grid {
	grid-template-columns: 1fr;
	gap: 35px;
}
.service-card,
.service-card:first-child,
.service-card:last-child {
	border-right: 0;
	border-bottom: 1px solid rgba(255, 255, 255, .3);
}
.service-card:last-child {
	border-bottom: 0;
}
.service-image {
	aspect-ratio: 2 / 1;
}
.service-title {
	font-size: 30px;
}
.service-excerpt {
	font-size: 17px;
}
.services-popup-panel {
	max-height: 90svh;
	padding: 75px 25px 40px;
	border-radius: 20px 20px 0 0;
}
.service-popup-heading,
.service-popup-image,
.service-popup-description,
.service-popup-tags {
	grid-column: 1;
	grid-row: auto;
}
.service-popup-image {
	aspect-ratio: 1.7 / 1;
}
.services-popup-close {
	top: 15px;
	right: 20px;
	width: 42px;
	height: 42px;
	font-size: 23px;
}

/* Variables et menu vertical*/
:root {
	--vertical-width: 64px;
	--logo: 150px;
	--row: 75px;
	--grid: 32px;
	--font: 18px;
	--fontSm: 15px;
}
dotlottie-player {
    width: 340px;
    height: 340px;
}
body {
	padding: var(--vertical-width) 0;
}
.vertical-sidebar {
	left: 0;
	right: 0;
	width: 100%;
	height: var(--vertical-width);
	padding: 0;
}
.vertical-sidebar-left {
	top: 0;
	bottom: auto;
	border-right: 0;
	border-bottom: 1px solid var(--dark);
}
.vertical-sidebar-right {
	top: auto;
	bottom: 0;
	border-left: 0;
	border-top: 1px solid var(--dark);
}
.vertical-sidebar .vertical-widget,
.vertical-sidebar .custom-html-widget {
	min-width: 0;
	height: 100%;
}
.vertical-sidebar .custom-html-widget {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 15px;
	width: 100%;
	padding: 0 20px;
	height: var(--vertical-width);
}
.vertical-sidebar-left .logo-inner {
	width: var(--logo);
	height: 100%;
}
.vertical-sidebar-left .site-logo {
	width: var(--logo);
	margin: 0;
	transform: translate(-50%, -50%);
}
.vertical-sidebar-left .site-logo-svg {
	width: var(--logo);
	margin: 0;
}
.vertical-sidebar-left .main-menu {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: 20px;
	margin-left: auto;
}
.vertical-sidebar-left .main-menu .site-menu-toggle {
	order: 1;
}
.vertical-sidebar-left .main-menu .lang-switch {
	order: 2;
}
.site-menu-toggle,
.site-menu-toggle span {
	width: 34px;
}
.site-menu-toggle {
	height: 36px;
}
.vertical-sidebar-right .social-icons {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 18px;
	margin: 0;
	transform: none;
}
.vertical-sidebar-right .social-icons a {
	font-size: 18px;
}
.vertical-sidebar-right .site-courriel {
	flex-direction: row;
	gap: 12px;
	margin-left: auto;
}
.vertical-sidebar-right .site-courriel i {
	font-size: 20px;
}
.vertical-sidebar-right .site-courriel span {
	writing-mode: horizontal-tb;
	transform: none;
	font-size: 20px;
}
.site-menu-overlay {
	top: var(--vertical-width);
	bottom: var(--vertical-width);
	left: 0;
	right: 0;
}
.site-menu-inner {
	padding: 0;
}
.site-menu-list > li {
	padding: 18px 25px;
}
.site-menu-list > li > a {
	font-size: clamp(27px, 5.5vw, 45px);
}
.site-menu-footer {
	padding: 25px;
}
.site-contact {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
/* Espacements et typographie */
h2 {
	font-size: clamp(34px, 6vw, 48px);
}
h3 {
	font-size: clamp(28px, 5vw, 38px);
}
h4 {
	font-size: 25px;
}
.flex {
	gap: 25px;
}
/* Hero */
.hero-section,
.hero-about > div > div {
	height: calc(var(--fullHeight) - 2 * var(--vertical-width));
}
.hero-about {
	padding: 0 6%;
}
.hero-about > div > div {
	padding: 55px 0;
}
.hero-about p {
	padding: 20px 0 30px;
}
/* Services */
.services-grid {
	gap: 30px;
	margin-top: 50px;
}
.equipe.flex {
	gap: 50px;
}
.service-card,
.service-card:first-child,
.service-card:last-child {
	padding: 0 0 30px;
}
.service-card:not(:last-child)::after {
	display: none;
}
.service-popup-content {
	display: flex;
	flex-direction: column;
	gap: 22px;
}
.service-popup-title {
	writing-mode: horizontal-tb;
	transform: none;
	font-size: clamp(32px, 7vw, 52px);
}
.service-popup-heading,
.service-popup-description,
.service-popup-tags {
	width: 100%;
}
.services-popup-close {
	font-size: 38px;
}
/* Équipe : un seul défilement vertical */
.staff-popup-panel {
	width: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
}
.staff-popup-body {
	height: auto;
	min-height: 100%;
}
.staff-profile {
	display: flex;
	flex-direction: column;
	height: auto;
	min-height: 100svh;
	overflow: visible;
}
.staff-profile-photo {
	flex: none;
	height: min(52svh, 440px);
	min-height: 270px;
}
.staff-profile-photo img {
	position: absolute;
	inset: 0;
	height: 100%;
	border-right: 0;
}
.staff-profile-content {
	flex: 1;
	height: auto;
	min-height: 0;
	padding: 35px 30px;
	overflow: visible;
}
.staff-profile-top {
	padding-right: 0;
}
.staff-profile-skills {
	margin-top: 30px;
}
.staff-profile-contact {
	position: static;
	align-self: stretch;
	width: auto;
	margin-top: 35px;
	border: 1px solid var(--dark);
}
html:has(body.staff-popup-active) {
	padding-right: 0;
}
body.staff-popup-active .vertical-sidebar-right {
	right: 0;
}
/* Réalisations */
.realisation-intro {
	grid-template-columns: 1fr;
}
.realisation-description {
	margin-top: 0;
}
.realisation-gallery {
	gap: 12px;
}
/* Contact */
.contact-cta {
	margin-top: 35px;
}
.contact-cta > div {
	padding: 30px;
	border-radius: 25px;
}
body .wpb_gmaps_widget .wpb_map_wraper iframe,
.contact iframe {
	margin-top: 50px;
	border-radius: 25px;
}
/* Clients et footer */
.clients-slider {
	width: calc(100% + 64px);
	max-width: calc(100% + 64px);
	margin: 40px -32px 0;
}
.clients-group {
	gap: 40px;
	padding-right: 40px;
}
.clients-logo img {
	max-width: 120px;
	max-height: 70px;
}
.footer-bar-align-center .footer-bar {
	gap: 25px;
}
.footer-bar img {
	height: auto;
	margin-bottom:30px;
}
.footer-widgets-container {
    padding-bottom: 30px;
}
}

@media (max-width: 641px) {
dotlottie-player {
    width: 280px;
    height: 280px;
}
.partenaires-grid {
	margin-top:30px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 35px 20px;
}
.partenaire-item img {
	max-width: 130px;
	max-height: 80px;
}
.site-footer::before, .contact-section::before {
    width: 120%;
    height: 120%;
}
h2, h3, h4, h5, h6 {
    padding-bottom: 28px;
}
.contact-section.darkBg h3 {
    padding-bottom: 15px;
}
.contact-section .flex:not(.contact-cta) {
	gap: 0;
}
.contact-cta {
	margin-top: 15px;
}
.services-popup-panel {
	padding: 55px 20px 40px;
}
.realisation-item {
	gap: 15px var(--grid);
}
.realisation-item-title {
	font-size: 23px;
	overflow-wrap: anywhere;
}
.realisation-item-category {
	margin-left: 0;
	font-size: 13px;
}
.realisation-item-button {
	font-size: 13px;
}
.realisation-hero {
	height: 40vh;
	height: calc(var(--vh, 1vh) * 40);
	min-height: 250px;
}
.realisation-name {
	font-size: clamp(40px, 11vw, 60px);
}
.realisation-lead {
	font-size: 24px;
}
.realisation-gallery {
	grid-template-columns: 1fr;
	gap: 12px;
}
.realisation-gallery-item {
	aspect-ratio: 1.4 / 1;
}
.realisation-pill {
	font-size: 12px;
	padding: 7px 11px;
}
.realisation-description {
	font-size: 19px;
}
.realisation-lightbox-close, .realisation-lightbox-prev, .realisation-lightbox-next {
	width: 42px;
	height: 42px;
	font-size: 18px;
}
.realisation-lightbox-close {
	font-size: 35px;
}
.hero-section .wpb_text_column.quote p {
	font-size: clamp(30px, 8vw, 42px);
	margin-bottom: 25px;
}
.staff-grid {
	grid-template-columns: 1fr;
	gap: 25px;
}
.staff-skill-track {
	height: 36px;
}
.service-popup-description {
	font-size: 17px;
}
.service-popup-tags {
	gap: 8px;
}
.service-tag {
	padding: 7px 12px;
	font-size: 13px;
}
/* Variables */
:root {
	--vertical-width: 58px;
	--logo: 125px;
	--grid: 20px;
	--font: 17px;
	--fontSm: 14px;
}
.vertical-sidebar-left .social-icons {
	gap: 10px;
}
.vertical-sidebar-left .social-icons a {
	font-size: 16px;
}
.vertical-sidebar-right .site-courriel span {
	font-size: 16px;
}
.site-menu-list > li {
	padding: 18px 20px 19px;
}
.site-menu-list > li > a {
	font-size: clamp(25px, 8vw, 36px);
}
.site-menu-footer {
	padding: 20px;
}
.site-contact {
	grid-template-columns: 1fr;
}
h2 {
	font-size: clamp(30px, 8vw, 42px);
}
h3 {
	font-size: 28px;
}
h4 {
	font-size: 23px;
}
a.button, button.button, body .vc_btn3.vc_btn3-color-grey.vc_btn3-style-modern, body .gform_wrapper .gform_footer button, .main-navigation .main-nav ul li.menu-soumission a, body #mobmenuright li.menu-soumission a, .widget_nav_menu ul li.menu-soumission a {
	min-height: 44px;
	padding: 0 18px;
	font-size: 16px;
	padding-top:2px;
}
button.realisation-item-button {
    font-size: 13px;
    min-height: 35px;
	padding: 0 12px;
}
.flex {
	flex-direction: column;
	gap: 20px;
}
.hero-section {
	padding: 25px 20px;
}
.hero-about {
	padding: 0 20px;
}
.hero-about > div > div {
	padding: 40px 0;
}
.hero-about .vc_btn3-container.vc_btn3-inline {
	margin: 5px;
}
.service-image {
	aspect-ratio: 1.6 / 1;
}
.staff-card-badge {
	width: 38px;
	height: 38px;
	font-size: 19px;
}
.staff-profile-content {
	padding: 30px 20px;
}
.staff-profile-name {
	font-size: clamp(38px, 11vw, 60px);
}
.staff-profile-contact {
	font-size: 17px;
	padding: 16px;
}
.realisation-item-button {
	padding: 10px 12px;
}
.contact-cta > div {
	padding: 25px 18px;
}
.contact-info p {
	font-size: 21px;
}
.clients-slider {
	width: calc(100% + 40px);
	max-width: calc(100% + 40px);
	margin: 30px -20px 0;
}
.clients-group {
	gap: 30px;
	padding-right: 30px;
}
.clients-logo img {
	max-width: 100px;
	max-height: 60px;
}
.footer-bar-align-center .footer-bar {
	grid-template-columns: 1fr;
	gap: 15px;
}
.footer-bar-align-center .footer-bar > :first-child,
.footer-bar-align-center .footer-bar > :nth-child(2),
.footer-bar-align-center .footer-bar > :nth-child(3) {
	grid-column: 1;
	justify-self: start;
}
.inside-site-info {
	padding-bottom: 20px;
}
}

@media (prefers-reduced-motion: reduce) {
.word-reveal .word-inner {
	opacity: 1;
	transform: none;
	transition: none;
}
.site-menu-list > li {
	opacity: 1;
	transform: none;
	transition: none;
}
.realisation-item,
.realisation-item-cover,
.realisation-item-button,
.realisation-item-category {
	transition: none;
}
.realisation-gallery-item img {
	transition: none;
}
.site-menu-overlay,
.site-menu-toggle span,
.site-logo-svg path {
	transition: none;
}
.staff-popup,
.staff-popup-backdrop,
.staff-popup-panel,
.staff-skill-fill,
.staff-card-photo img {
	transition: none;
}
.services-popup,
.services-popup-backdrop,
.services-popup-panel,
.service-image img,
.service-toggle {
	transition: none;
}
.clients-track {
	animation: none;
}
}
