:root {
    --max-width: 1340px;
    --min-margin: 3rem;
    --dynamic-width: min(var(--max-width), calc(100% -(2* var(--min-margin))));
    --dynamic-margin: max(calc(50% - 0.5* var(--max-width)), var(--min-margin));
} 

/*
 *
 * INITIALISATION 
 *
 */

html, body{
    width : 100%;
    overflow: hidden;
    overflow-y: auto;
}

header .elementor-widget-image a img[src$=".svg"]{
    width: auto;
}

footer .elementor-widget-image a img[src$=".svg"]{
    width: auto;
}


/* DISPLAY NONE */
.d-none{
    display: none!important;
}

@media screen and (min-width:768px){
    .d-sm-only{
        display: none!important;
    }
}

@media screen and (max-width:767px){
    .d-sm-none{
        display: none!important;
    }
}

@media screen and (min-width:1024px){
    .d-md-only{
        display: none!important;
    }
}

@media screen and (max-width:1023px){
    .d-md-none{
        display: none!important;
    }
}

@media screen and (min-width:1200px){
    .d-lg-only{
        display: none!important;
    }
}

@media screen and (max-width:1199px){
    .d-lg-none{
        display: none!important;
    }
}

/* RECAPTCHA */
.grecaptcha-badge{
	display : none!important;
	opacity : 0;
	z-index : -99999;
}

/*
 *
 * GENERAL 
 *
 */


/* Full height */
.full-height{
    height: 100%!important;
}

/* Offset left wrapper */
@media screen and (min-width:768px){
    .offset-left-wrapper{
        position: relative;
        padding-left: var(--dynamic-margin);
    }
}

/* Offset left wrapper */
@media screen and (min-width:768px){
    .offset-right-wrapper{
        position: relative;
        padding-right: var(--dynamic-margin);
    }
}

/* Background image & squared background image */
.background-img, .squared-img{
    position: relative;
}

.background-img:before, .squared-img:before{
    z-index: 2;
}

.squared-img{
    aspect-ratio: 1 / 1;
}

.squared-img > div, .background-img > div{
    position: static;
}

.squared-img img, .background-img img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
    object-position: center;
    min-height: 100%;
}

.squared-img .elementor-widget-image, .background-img .elementor-widget-image{
    height: 100%;
}

.squared-img.top img, .background-img.top img{
    object-position: center top;
}

.squared-img.bottom img, .background-img.bottom img{
    object-position: center bottom;
}

@media screen and (max-width:767px){
    .background-img.full-height, .squared-img.full-height{
        height: auto!important;
    }
}


/* Not clickable */
.not-clickable{
    pointer-events: none;
}

/*  */
.elementor-widget-text-editor ul{
    margin-bottom: 1rem;
}

.short-list ul{
    padding-left: 1rem;
}

.check-list ul li{
    position: relative;
    list-style-type: none;
}

.check-list ul{
    padding-left: 0;
}

.check-list ul li{
    padding-left: 1.5rem;
}

.check-list ul li:before{
    content : url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 -960 960 960" width="16px" fill="%23E2007A"><path d="M382-240 154-468l57-57 171 171 367-367 57 57-424 424Z"/></svg>');
    position: absolute;
    left: 0;
    top: 3px;
}


/*
 *
 * MENU 
 *
 */

header.elementor-location-header{
    position: relative;
    z-index: 10;
}

@media screen and (max-width:1024px){
    #burger-menu-wrapper.active #burger-menu{
        overflow: scroll;
    }

    .elementor-nav-menu--main .elementor-nav-menu ul.sub-menu{
        margin: 0!important;
        position: relative!important;
    }

    .elementor-nav-menu--main .elementor-nav-menu ul.sub-menu li a{
        justify-content: center!important;
    }

    #burger-menu-wrapper .menu-separator{
        padding-top: 1rem;
        margin-top: 1rem;
        border-top: 1px solid #cccccc;
    }
}

/* Burger menu icon */
#burger-menu-wrapper, #burger-menu-wrapper *{
    cursor: pointer;
    pointer-events: all;
}

#burger-menu-icon, #burger-menu-icon *{
    pointer-events: none;
}

.elementor-icon-wrapper {
    pointer-events: auto;
}

#burger-menu-icon #top-line,
#burger-menu-icon #middle-line,
#burger-menu-icon #bottom-line{
    transition: all .3s ease;
}

#burger-menu-icon #top-line, #burger-menu-icon #bottom-line{
    transform-origin: top left;
}

#burger-menu-wrapper.active > .elementor-widget-icon{
    z-index: 25;
}

#burger-menu-wrapper.active #burger-menu-icon{
    z-index: 10;
}

#burger-menu-wrapper.active #burger-menu-icon #top-line{
    transform: rotate(45deg) scale(1.2) translateX(0.2rem) translateY(-0.7rem);
}

#burger-menu-wrapper.active #burger-menu-icon #bottom-line{
    transform: rotate(-45deg) scale(1.2) translateX(-1.2rem) translateY(-0.6rem);
}

#burger-menu-wrapper.active #burger-menu-icon #middle-line{
    opacity: 0;
}

/* menu-burger */
#burger-menu{
    position: fixed;
    top: 0;
    left: auto;
    right: 0;
    bottom: 0;
    background-color: var(--e-global-color-text);
    padding: 8rem 2rem 2rem 2rem;
    z-index: -1;
    opacity: 0;
    pointer-events: none;
    width: 40rem;
    transform: translateX(100%);
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);
}

#burger-menu:before{
    content : "";
    position: absolute;
    top: 0;
    right : 100%;
    left: auto;
    background-color: #ffffff20;
    width: 100vw;
    height: 100vh;
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);
}

#burger-menu-wrapper.active #burger-menu{
    z-index: 6;
    opacity: 1;
    pointer-events: all;
    transform: translateX(0);
}

#burger-menu-wrapper #burger-menu nav > ul{
    overflow: clip;
}

#burger-menu-wrapper #burger-menu nav > ul > li{
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-items: flex-start;
}
    
#burger-menu-wrapper #burger-menu nav > ul > li a{
    line-height: 1.2;
}

#burger-menu-wrapper #burger-menu nav > ul > li > a{
    position: relative;
    text-transform: uppercase;
}

#burger-menu-wrapper #burger-menu nav > ul > li > a:before{
    content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 105.35 48.29"><polygon points="105.35 23.65 2.33 23.65 31.07 .78 30.44 0 .59 23.75 .59 23.75 0 24.24 30.21 48.29 30.83 47.51 2.1 24.65 105.35 24.65 105.35 23.65" fill="%23e2007a"/></svg>');
    position: absolute;
    left: 120%;
    width: 5rem;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    transition: all 2s cubic-bezier(.77,0,.18,1) forwards;;
}

#burger-menu-wrapper #burger-menu nav > ul > li:hover > a:before,
#burger-menu-wrapper #burger-menu nav > ul > li:focus > a:before,
#burger-menu-wrapper #burger-menu nav > ul > li > a[aria-expanded="true"]:before{
    left: 105%;
    opacity: 1;
}


#burger-menu-wrapper #burger-menu nav > ul > li > ul{
    padding-left : 2rem;
}

#burger-menu-wrapper #burger-menu nav > ul > li > ul > li > a{
    font-size: 1.5rem;
    font-weight: 300;
    padding: 0;
}

@media screen and (max-width: 1024px){
    #burger-menu-wrapper #burger-menu nav > ul > li > ul > li > a{
        font-size: 1.2rem;
        font-weight: 300;
        padding: 0;
    }
}

@media screen and (max-width: 880px){
    #burger-menu {
        width: 25rem;
        padding: 7rem 2rem 2rem 2rem;
    }

    #burger-menu-wrapper #burger-menu nav > ul > li > a:before {
        width: 3rem;
    }

    #burger-menu-wrapper #burger-menu nav > ul > li > ul {
        padding-left: 1rem;
    }
}

@media screen and (max-width: 768px){
    #burger-menu {
        width: 100%;
        padding: 7rem 2rem 2rem 2rem;
    }

    #burger-menu-wrapper #burger-menu nav > ul > li > ul > li > a{
        font-size: 1rem;
        font-weight: 300;
        padding: 0;
    }
}


.separation-box .separation-element{
    position: relative;
}

.separation-box .separation-element:before{
    content: "";
    position: absolute;
    top: 50%;
    right: 100%;
    height: 1px;
    width: 100vw;
    transform: translateY(-50%);
    right: 100%;
    background-color: #fff;
}

/* Complianz Fix */
.cmplz-hidden{display:none!important;}

/*
 *
 * HOME 
 *
 */

/* Home title style */
/*.home-title span{
    position: relative;
    overflow: hidden;
    display: inline-block;
    line-height: 1.2;
}

.home-title span::after{
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: var(--e-global-color-accent);
    animation: a-ltr-after 2s cubic-bezier(.77,0,.18,1) forwards;
    transform: translateX(-101%);
}

.home-title span::before{
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background: var(--e-global-color-accent);
    animation: a-ltr-before 2s cubic-bezier(.77,0,.18,1) forwards;
    transform: translateX(0);
}

.home-title span:nth-of-type(1)::before,
.home-title span:nth-of-type(1)::after{
    animation-delay: 1s;
}

.home-title span:nth-of-type(2)::before,
.home-title span:nth-of-type(2)::after{
    animation-delay: 1.5s;
}

@keyframes a-ltr-after{
    0% {transform: translateX(-100%)}
    100% {transform: translateX(101%)}
}

@keyframes a-ltr-before{
    0% {transform: translateX(0)}
    100% {transform: translateX(200%)}
}*/


/* Sectors section */

.sector-wrapper:before{
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);
}

.sector-wrapper:hover:before, .sector-wrapper:focus:before{
    background-color: #1A1B3600!important;
}

.sector-wrapper .elementor-widget-image > img{
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);
}

.sector-wrapper:hover .elementor-widget-image > img, .sector-wrapper:focus .elementor-widget-image > img{
    transform: scale(1.1);
    transition: all 1s cubic-bezier(0.77, 0, 0.175, 1);
}

.sector-wrapper .sector-title > *{
    position: relative;
    transition: all 0.3s cubic-bezier(0.77, 0, 0.175, 1);
    z-index: 3;
}
 
.sector-wrapper:hover .sector-title > *, .sector-wrapper:focus .sector-title > *{
    color: #fff!important;
}

.sector-wrapper .sector-image{
    height: auto;
}

@media screen and (max-width : 768px){
    .eael_vto-vertical-lr{
        position: relative;
    }
    .eael_vto-vertical-lr, .eael_vto-vertical-lr > *{
        position: relative;
        writing-mode: initial!important;
        transform: rotate(0deg)!important;
        -webkit-hyphens: auto;
        hyphens: auto;
        line-height: 1!important;
    }

    .hyphened-text{
         -webkit-hyphens: auto;
        hyphens: auto;
    }
}

/* Realisations Loop */

.real-wrapper > div, .real-wrapper > div > div {
    height: 100%;
}

.real-wrapper > div > div{
    overflow: hidden;
}

.real-wrapper > div > div img{
    transition: transform .3s cubic-bezier(0.77, 0, 0.175, 1);
}

.real-wrapper > div > div:hover img, .real-wrapper > div > div:focus img{
    transform: scale(1.1);
    transition: transform 1s cubic-bezier(0.77, 0, 0.175, 1);
}

@media screen and (max-width:768px){
    .real-wrapper{
        height: 20rem;
    }
}

/* Flip box */

.flip-box {
  height: 100%;
  background-color: transparent;
  perspective: 1000px;
}

.flip-box-inner {
  position: relative;
  width: 100%;
  height: 100%;
  text-align: center;
  transition: transform 0.8s;
  transform-style: preserve-3d;
}

.flip-box:hover .flip-box-inner {
  transform: rotateY(180deg);
}

.flip-box-front, .flip-box-back {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden; /* Safari */
  backface-visibility: hidden;
}

.flip-box-front {
  background-color: #bbb;
  color: black;
}

.flip-box-back {
  background-color: dodgerblue;
  color: white;
  transform: rotateY(180deg);
}

@media screen and (max-width:768px){
    .real-wrapper, .flip-box{
        height: 20rem;
    }
}


/*
 *
 * REALISATIONS 
 *
 */

.search-checkboxes .search-filter-input-group{
    display: flex;
    gap: 2rem;
}

.search-checkboxes .search-filter-input-group label .search-filter-input-checkbox__label{
    font-size: .9rem;
    letter-spacing: 2px;
    font-weight: 300;
    text-transform: uppercase;
    color: #fff;
}

.search-checkboxes .search-filter-input-group label .search-filter-input-checkbox__label .search-filter-input-checkbox__count{
    display: none;
}

.search-checkboxes .search-filter-input-group input:checked + label .search-filter-input-checkbox__label{
    color: var(--e-global-color-accent);
}

.search-checkboxes .search-filter-input-group input:checked + label  .search-filter-input-checkbox__control svg{
    fill: var(--e-global-color-accent);
    color : var(--e-global-color-accent);
}

/* Lightbox (visionneuse) */

.elementor-lightbox.dialog-type-lightbox{
    background-color: rgba(26, 27, 54, .5);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
}

.elementor-lightbox .elementor-slideshow__footer{

}

/*
 *
 * REALISATIONS
 *
 */

@media screen and (max-width:768px){
    .search-filter-input-group{
        flex-wrap: wrap;
        gap: 0.5rem!important;
    }

    .search-filter-input-group > .search-filter-input-checkbox{
        white-space: nowrap;
    }
}

.cmplz-cookiebanner{
    z-index: 50!important;
}