: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));
} 

/*
 *
 * LENIS 
 *
 */

html.lenis {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

/*
 *
 * INITIALISATION 
 *
 */

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

body{
    position: relative;
}

#noise{
    content: "";
    z-index: 9999;
    pointer-events: none;
    background-image: url(../images/noise.png);
    background-position: 50%;
    background-size: 31.25rem 31.25rem;
    width: 100%;
    height: 100%;
    position: absolute;
    inset: 0%;
}

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

footer{
    width: auto;
}

footer .elementor-widget-image a img[src$=".svg"]{
    width: auto;
}
[data-elementor-type="wp-page"] svg, [data-elementor-type="footer"] 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 */

@media screen and (min-width : 768px){
    .full-height{
        height: 100%!important;
    }
}


.separator .elementor-icon{
    width: 100%;
}

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

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

.background-img{
    overflow: hidden;
    --parallax-amplitude: 3rem;
    --parallax-progress: 0;
}

.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;
    left: 0;
    width: 100%;
    object-fit: cover;
    font-family: 'object-fit: cover;';
    object-position: center;
    min-height: 100%;
}

.squared-img img{
    top: 0;
    height: 100%;
}

/* Image surdimensionnée + transform (jamais de "top: 0/height: 100%" ici) pour que
   le glissement au scroll reste toujours couvert par l'overflow:hidden du wrapper,
   sans jamais laisser de vide. */
.background-img img{
    top: calc(-1 * var(--parallax-amplitude));
    height: calc(100% + 2 * var(--parallax-amplitude));
    transform: translate3d(0, calc(var(--parallax-progress, 0) * var(--parallax-amplitude)), 0);
    will-change: transform;
}

.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;
    }
}

.bolder{
    font-weight : 900!important;
}

/* LIST BULLET */
.elementor-widget-text-editor ul{
    padding :0;
    padding-left: 1rem;
}

.elementor-widget-text-editor ul li{
    position: relative;
    list-style-type: disc;
}

.elementor-widget-text-editor ul li:not(:last-child){
    margin-bottom: .25rem;
}


/*
 *
 * HEADER 
 *
 */

#main-header{
    position: fixed;
    transition: all .3s ease;
    z-index: 10;
}

#main-header .elementor-widget-theme-site-logo{
    transition: all .3s ease;
}

/*
 *
 * MAIN MENU
 *
 */

/* STICKED */
#main-header.sticked{
    position: fixed;
    left: 0;
    width: 100%;
    z-index: 5;
    background-color: #fff;
    padding-top : 1rem;
    padding-bottom: 1rem;
	transform : translateY(-100%);
	transition : transform .3s ease;
}

#main-header.sticked .elementor-widget-theme-site-logo{
    transform-origin: 50% 0%;
    transform: scale(.8) translate(-50%, -50%);
}

#main-header.sticked.active{
	transform : translateY(0);
}

#main-header li a span.d-sm-none{
    padding-right : 0.3rem;
}

#main-header #main-menu .e-n-menu-item .e-n-menu-content > .elementor-element > .e-con-inner{
    gap: .5rem;
}

#main-header #main-menu .e-n-menu-item .e-n-menu-content > .elementor-element a{
    display: block;
}

#main-header #main-menu .e-n-menu-item .e-n-menu-content > .elementor-element{
    position: relative;
    border-radius: 1rem;
    padding: 1rem 1.5rem;
    box-shadow: 75px 0px 34px #9c7f6200, 0 0px 31px #9c7f6203, 0 0px 26px #9c7f620d, 0 0px 19px #9c7f6217, 0 0px 11px #9c7f621a;
}

#main-header #main-menu .e-n-menu-item .e-n-menu-content > .elementor-element:before{
    content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 26.6 26.6"><rect x="2.8" y="2.8" width="20.9" height="20.9" rx="3.6" ry="3.6" transform="translate(-5.5 13.3) rotate(-45)" fill="%23fff"/></svg>');
    width : 1rem;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    top: -.4rem;
    z-index: 0;
}

#main-header #main-menu .e-n-menu-dropdown-icon{
    width: .5rem;
}

@media screen and (max-width: 1024px){
    #main-header #main-menu .e-n-menu-item:nth-child(2){
        margin-right: 13rem;
    }
}

@media screen and (max-width: 880px){
    #main-header #main-menu .e-n-menu-item:nth-child(2){
        margin-right: 0rem;
    }

    #main-header {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    #main-header > .e-con-inner{
        position: relative;
        z-index: 25;
    }

    #main-header .elementor-widget-image {
        position: absolute;
        left: 2rem;
        transform: translate(0%, -50%);
        top: 50%;
        z-index: 5;
    }

    #main-header.sticked {
        padding-top: 1.5rem!important;
        padding-bottom: 1.5rem!important;
    }

    #main-header.sticked .elementor-widget-theme-site-logo {
        transform: scale(.8) translate(-0%, -50%);
    }

     #main-header .e-n-menu-wrapper{
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgb(255, 255, 255);
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: -1;
        opacity: 0;
        pointer-events: none;
        transition: .3s all ease;
    }

    #main-header .e-n-menu-toggle[aria-expanded="true"] + .e-n-menu-wrapper{
        z-index: 250;
        opacity: 1;
        pointer-events: all;
    }

    #main-header .e-n-menu-wrapper{
        position: fixed;
        height: 100vh;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rgb(255, 255, 255);
        display: flex;
        justify-content: center;
        align-items: center;
        z-index: -1;
        opacity: 0;
        pointer-events: none;
    }

    #main-header .e-n-menu-wrapper .e-n-menu-heading{
        display: flex;
        width: auto;
        flex-direction: column;
        justify-content: center;
        align-items: center;
    }

    #main-header #main-menu .e-n-menu-wrapper .e-n-menu-heading .e-n-menu-item{
        align-items: center;
    }

    #main-header .e-n-menu-wrapper .e-n-menu-heading .e-n-menu-content{
        align-items: center;
    }

    #main-header .e-n-menu-wrapper .e-n-menu-heading .e-n-menu-content .elementor-element{
        padding: 1rem 0rem 0rem 0rem;
    }

    #main-menu .e-n-menu-toggle{
        z-index: 500;
    }
}

/*
 *
 * TESTIMONIAL CAROUSEL
 *
 */

.testimonial-carousel{
    position: relative;
}

.testimonial-carousel:before{
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width : 35%;
    height: 100%;
    background: #F7F3EB;
    background: linear-gradient(90deg, rgba(247, 243, 235, 0) 0%, rgba(247, 243, 235, 1) 90%, rgba(247, 243, 235, 1) 100%);
    z-index: 2;
}

.testimonial-carousel .elementor-swiper-button:hover svg rect,
.testimonial-carousel .elementor-swiper-button:focus svg rect,
.testimonial-carousel .elementor-swiper-button:hover svg path,
.testimonial-carousel .elementor-swiper-button:focus svg path{
    transition: all .3s ease;
}

.testimonial-carousel .elementor-swiper-button:hover svg rect,
.testimonial-carousel .elementor-swiper-button:focus svg rect{
    fill : var(--bleu-fonce)!important;
}

.testimonial-carousel .elementor-swiper-button:hover svg path,
.testimonial-carousel .elementor-swiper-button:focus svg path{
    fill : var(--blanc-casse)!important;
}


/*
 *
 * STEP WRAPPER
 *
 */

.step-wrapper{
    position: relative;
    --step-progress: 0;
}

.step-wrapper:before{
    content: "";
    z-index: -2;
    position: absolute;
    left: 1.75rem;
    width: 1px;
    height: 100%;
    background-color: var(--beige);
    -webkit-mask-image: linear-gradient(#000 0%, #000 80%, #0000 100%);
    mask-image: linear-gradient(#000 0%, #000 80%, #0000 100%);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: cover;
    mask-size: cover;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.step-wrapper:after{
    content: "";
    z-index: -1;
    position: absolute;
    left: 1.75rem;
    width: 1px;
    height: calc(var(--step-progress, 0) * 100%);
    background-color: var(--bleu-fonce);
    -webkit-mask-image: linear-gradient(#000 0%, #000 80%, #0000 100%);
    mask-image: linear-gradient(#000 0%, #000 80%, #0000 100%);
    -webkit-mask-position: 50%;
    mask-position: 50%;
    -webkit-mask-size: cover;
    mask-size: cover;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

.elementor-widget-post-navigation .elementor-post-navigation__separator-wrapper{
    padding-left: 2rem;
    padding-right: 2rem;
}

.elementor-widget-post-navigation .elementor-post-navigation__link{
    overflow: visible;
    text-overflow:unset;
    white-space:wrap;
}

.elementor-widget-post-navigation .elementor-post-navigation__link:hover svg rect,
.elementor-widget-post-navigation .elementor-post-navigation__link:focus svg rect{
    fill : var(--bleu-fonce)!important;
}

.elementor-widget-post-navigation .elementor-post-navigation__link:hover svg path,
.elementor-widget-post-navigation .elementor-post-navigation__link:focus svg path{
    fill : var(--blanc-casse)!important;
}


/*
 *
 * FOOTER
 *
 */

 @media screen and (max-width : 575px){
    footer .elementor-nav-menu .menu-item {
        text-align: center;
    }

    footer .elementor-nav-menu .menu-item a{
        display: inline-block;
    }
 }
