/*
Theme Name: Fluvio YC
Description: A custom theme for Fluvio
Author: Yukon Cloud
Author URI: https://yukoncloud.com
Author Email: contact@yukoncloud.om
Version: 1.0.0
Text Domain: theme-fluvio
Template: hello-elementor
*/

strong{
    font-weight: 500;
}

.elementor-widget-theme-post-content ul{
    margin-bottom: 1em;    
}

.cookies-per-purpose * {
    color: #000000 !important;
}
.cmplz-show-banner {
    cursor: pointer;
}

/* Remove Safari focus ring from Elementor popup wrappers only */
.elementor-popup-modal:focus,
.elementor-popup-modal:focus-visible,
.elementor-popup-modal .dialog-widget-content:focus,
.elementor-popup-modal .dialog-widget-content:focus-visible,
.elementor-popup-modal .dialog-message:focus,
.elementor-popup-modal .dialog-message:focus-visible,
.elementor-popup-modal [tabindex="-1"]:focus {
  outline: none !important;
  box-shadow: none !important;
}

*:focus {
  outline: none;
}

.elementor-button {
    border: none !important;
    background: none !important;
    text-decoration: none !important;
}
.elementor-button::after {
    content: '';
    display: block;
    width: 100%;
    height: 9px; /* adjust to your SVG height */
    margin-top: 2px;
    background-image: url('/wp-content/themes/fluvio-yc/layout/button-three-waves.svg');
    background-repeat: repeat-x;
    background-position: center center;
    background-size: auto 100%;
}

.footer-cta .elementor-button::after {
    content: '';
    display: block;
    width: 100%;
    height: 15px;
    background-image:
        url("/wp-content/themes/fluvio-yc/layout/button-wave-cta.svg"),
        url("/wp-content/themes/fluvio-yc/layout/button-wave-cta.svg"),
        url("/wp-content/themes/fluvio-yc/layout/button-wave-cta.svg");
    background-repeat: no-repeat;
    background-position: center top, center center, center bottom;
    background-size: 100% 5px;
    overflow: hidden;
}

@media (max-width: 1024px) {
    .footer-cta .elementor-button::after {
        height: 13px;
        background-size: 100% 4.333px;
    }
}

.elementor-widget-text-editor p a,
.ico-list-contact a .elementor-icon-list-text{
    text-decoration: none!important;
    display: inline-block;
    color: #B6CBC6;
    border-bottom: 1px solid #B6CBC6;
}
.elementor-widget-text-editor p a span{
    text-decoration: none!important;
}

.p-large-intro{
    max-width: 768px!important;
}

.ratio-img-grid img{
    aspect-ratio: 400/266;
    object-fit: cover;
}


.off-canvas-close-btn{
    position: absolute;
    top: 80px;
    right: 80px;
}
@media (max-width: 1024px) {
    .off-canvas-close-btn{
        top: 20px;
        right: 20px;
    }   
}
@media (max-width: 767px) {
    .off-canvas-close-btn{
        top: 15px;
        right: 15px;
    }   
}


/** HEADER */

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


/* NAVIGATION */

#main-navigation{
    position: relative;
    z-index: 100;
}
#main-navigation a{
    display: block;
    text-decoration: none;
    min-height: 30px
}
#main-navigation a:hover::after{
    content: '';
    display: block;
    width: 100%;
    height: 4px;
    top: 2px;
    background-image: url('/wp-content/themes/fluvio-yc/layout/button-wave.svg');
    background-repeat: none ;
    background-position: center center;
    background-size: cover;
}
    


.popup-dynamic-menu {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	position: absolute;
	inset: 0;
	width: 100%;
	transition: opacity 0.8s ease, visibility 0s linear 0.8s;
}

.popup-dynamic-menu.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	position: relative;
	transition: opacity 0.8s ease, visibility 0s linear 0s;
}

.elementor-location-header.popup-menu-open #main-navigation .e-n-menu-title-text {
	color: #1B4F7A;
}
.elementor-location-header:not(.popup-menu-open) #main-navigation .e-n-menu-title-text {
	color: inherit;
}

.elementor-location-header.popup-menu-open #main-navigation .popup-trigger-active .e-n-menu-title-text {
	color: #7695AF;
}
.elementor-location-header:not(.popup-menu-open) #main-navigation .popup-trigger-active .e-n-menu-title-text {
	color: inherit;
}


.popup-nav .dialog-lightbox-message{
    overflow-x: hidden!important;
}

/* Keep the desktop popup content clear of the fixed header */
@media (min-width: 768px) and (max-height: 900px) {
    #elementor-popup-modal-1184.popup-nav .dialog-lightbox-message {
        --fluvio-header-height: 86px;

        box-sizing: border-box;
        padding:
            calc(var(--fluvio-header-height) + 16px)
            50px
            24px !important;

        /* Center when space permits; align safely when it does not */
        align-items: safe center !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }
}

/* Fallback for extremely short windows */
@media (min-width: 768px) and (max-height: 700px) {
    #elementor-popup-modal-1184.popup-nav .dialog-lightbox-message {
        align-items: flex-start !important;
    }
}


.popup-menu ul::before{
    content:'';
    display: block;
    position: absolute;
    left: -450px;
    top: 150px;
    width: 800px;
    height: 1px;
    background: linear-gradient(90deg, rgba(193, 186, 174, 0) 0%, #c1baae 50%, rgba(193, 186, 174, 0) 100%);
    transform: rotate(90deg);
}
.popup-menu ul li{
    margin-top: 0.5em;
}
.popup-menu ul li::before{
    content:'';
    display: block;
    position: absolute;
    left: -250px;
    width: 200%;
    height: 1px;
    background: linear-gradient(90deg, rgba(193, 186, 174, 0) 0%, #c1baae 50%, rgba(193, 186, 174, 0) 100%);
}
.popup-menu a{
    text-decoration: none;
}

@media (max-width: 767px) {
  .hero-header {
    -webkit-hyphens: manual;
    hyphens: manual;
    overflow-wrap: break-word;
    word-break: normal;
  }
}

.hero-banner{
    aspect-ratio: 1440/834;
}
@media (max-width: 1024px) {
    .hero-banner{
        aspect-ratio: 4/3;
    }
}
@media (max-width: 767px) {
    .hero-banner{
        aspect-ratio: 0.8;
    }
}
.hero-banner::before{
    content: '';
    background: linear-gradient(0deg, rgba(0, 46, 68, 0.00) 0%, rgba(0, 46, 68, 0.00) 100%), 
    linear-gradient(180deg, rgba(0, 46, 68, 0.60) 0%, rgba(0, 0, 0, 0.00) 20.67%),
    linear-gradient(180deg, rgba(0, 46, 68, 0.00) 40%, #002E44 95.06%);
}





/** FADE-IN ANIMATION */
/* Initial state */
.ap-fade-in{
  opacity: 0;
  transform: translateY(40px);
  will-change: opacity, transform;
}

.ap-fade-in.ap-visible{
  animation: apFadeInUp 1s cubic-bezier(.16, 1, .3, 1) forwards;
}

@keyframes apFadeInUp {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }

  50% {
    opacity: 0;
    transform: translateY(28px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}



/** HOME CAROUSELS */

.home-slider{
    aspect-ratio: 1332/916;
    width: 100%;
}
    .home-slider a{
        text-decoration: none;
    }
    @media (max-width: 1330px) {
        .home-slider .elementor-slides-wrapper,
        .home-slider .swiper-pagination,
        .home-slider .elementor-swiper-button{
            margin-left: 50px;
            margin-right: 50px;
        }
    }
    @media (max-width: 767px) {
        .home-slider .elementor-slides-wrapper,
        .home-slider .swiper-pagination,
        .home-slider .elementor-swiper-button{
            margin-left: 0;
            margin-right: 0;
        }
    }
    .home-slider .elementor-slides-wrapper,
    .home-slider .elementor-slides-wrapper .swiper-slide{
        height:100%!important;
        border-radius: 30px;
    }
    .home-slider .swiper-slide-bg{
        border-radius: 30px;
    }
    .home-slider .swiper-slide-bg::before{
        content: '';
        background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 30%, rgba(0, 0, 0, 0.50) 100%);
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        top: 0;
        border-radius: 30px;
    }
    /*
    @media (max-width: 767px) {
        .home-slider .swiper-slide-bg::before{
            background: linear-gradient(180deg, rgba(0, 0, 0, 0.00) 30%, rgba(0, 0, 0, 0.50) 100%);
        }
    }*/
    .home-slider .swiper-pagination-bullets{
        bottom: -20px!important;
    }

@media (max-width: 767px) {
    .home-slider{
        aspect-ratio: 0.65;
    }
    .home-slider .elementor-slide-button{
        font-size: 10px!important;
    }
    .elementor-slide-description{
        display: none;
    }
    .home-slider .swiper-pagination-bullets{
        bottom: -30px!important;
    }
}


.home-slider-nav .swiper-pagination-bullets{
    text-align: left;
}

.home-slider-nav .elementor-swiper-button-prev,
.home-slider-nav .elementor-swiper-button-next {
    bottom: -35px !important;
    top: auto !important;
    left: auto !important;
    position: absolute !important;
    z-index: 9999 !important;
    pointer-events: auto !important;
    width: 48px !important;
    height: 48px !important;
    background: transparent url("/wp-content/themes/fluvio-yc/layout/slider-arrow.svg") no-repeat center center;
    background-size: contain;
    display: block !important;
    transform: none !important;
}

.home-slider-nav .elementor-swiper-button-prev {
    right: 60px !important;
    transform: rotate(180deg) !important;
}

.home-slider-nav .elementor-swiper-button-next {
    right: 0 !important;
    transform: none !important;
}
.home-slider-nav .elementor-swiper-button-prev svg,
.home-slider-nav .elementor-swiper-button-next svg {
    display: none;
}

@media (max-width: 767px) {
    .home-slider-nav .swiper {
        padding-bottom: 5px!important;
    }
    .home-slider-nav .elementor-swiper-button-prev,
    .home-slider-nav .elementor-swiper-button-next {
        width: 28px !important;
        height: 28px !important;
    }
    .home-slider-nav .elementor-swiper-button-prev {
        right: 40px !important;
    }
}


/* Fluvio Waves Loop + Elementor Nested Carousel */

.fluvio-waves-carousel {
  --dot-color: #98AB93;
  --carousel-bg: #002E44;

  --rail-top: 26px;
  --rail-clearance: 72px;
  --wave-height: 5px;

  --dot-size: 18px;
  --dot-gap: 18px;
  --slide-gap: 13px;

  --nav-edge: 24px;
  --nav-size: 32px;
  --nav-wave-gap: 0px;
  --rail-mask-height: 48px;
  --rail-mask-top: 4.5px; /* 26px + 2.5px - 24px */
  --nav-wave-gap: 12px; /* optional breathing room */
  position: relative;
}

/* Side masks: prevent waves from running behind nav buttons */
.fluvio-waves-carousel::before,
.fluvio-waves-carousel::after {
  content: "";
  position: absolute;
  top: var(--rail-mask-top) !important;
  bottom: auto !important;
  width: calc(var(--nav-edge) + var(--nav-size) + var(--nav-wave-gap));
  height: var(--rail-mask-height);
  background: var(--carousel-bg);
  z-index: 15;
  pointer-events: none;
}

.fluvio-waves-carousel::before {
  left: 0;
}

.fluvio-waves-carousel::after {
  right: 0;
}

/* Swiper container: Loop Carousel + Nested Carousel */
.fluvio-waves-carousel .elementor-loop-container.swiper,
.fluvio-waves-carousel .e-n-carousel.swiper {
  position: relative;
  z-index: 1;
  padding-top: var(--rail-clearance);
  overflow: hidden;
}

.fluvio-waves-carousel .swiper-wrapper,
.fluvio-waves-carousel .swiper-slide,
.fluvio-waves-carousel .swiper-slide > .e-con {
  overflow: visible;
}

.fluvio-waves-carousel .swiper-slide > .e-con {
  position: relative;
  padding-left: 32px;
  padding-right: 32px;
}

/* Two complete waves between each dot */
.fluvio-waves-carousel .swiper-slide > .e-con::after {
  content: "";
  position: absolute;
  top: calc(var(--rail-top) - var(--rail-clearance));
  left: calc(50% + (var(--dot-size) / 2) + var(--dot-gap));
  width: calc(100% + var(--slide-gap) - var(--dot-size) - (var(--dot-gap) * 2));
  height: var(--wave-height);
  z-index: 2;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg width='196' height='5' viewBox='0 0 196 5' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M195.304 2.92842C191.993 4.3167 187.928 5.01085 183.864 5.01085C179.8 5.01085 175.735 4.3167 172.423 2.92842C166.574 0.477223 158.101 0.477223 152.274 2.92842C145.629 5.70499 136.016 5.70499 129.393 2.92842C123.544 0.488069 115.092 0.488069 109.265 2.92842C102.641 5.70499 93.0286 5.70499 86.3837 2.92842C80.556 0.488069 72.0832 0.488069 66.2555 2.92842C59.6321 5.70499 49.998 5.70499 43.3746 2.92842C37.5469 0.488069 29.0741 0.488069 23.2463 2.92842C16.6444 5.69414 7.0104 5.69414 0.386999 2.91757C-0.0645966 2.72234 -0.12911 2.38612 0.236467 2.15835C0.623549 1.93059 1.29019 1.89805 1.74179 2.08243C7.56952 4.52278 16.0423 4.52278 21.8701 2.08243C28.4935 -0.694143 38.106 -0.694143 44.7509 2.08243C50.5786 4.52278 59.0514 4.52278 64.8792 2.08243C71.5026 -0.694143 81.1151 -0.694143 87.76 2.08243C93.5878 4.52278 102.061 4.52278 107.888 2.08243C114.512 -0.694143 124.124 -0.694143 130.769 2.08243C136.597 4.52278 145.07 4.52278 150.897 2.08243C157.542 -0.694143 167.155 -0.694143 173.778 2.08243C179.628 4.52278 188.079 4.52278 193.907 2.08243C194.358 1.8872 195.046 1.91974 195.412 2.15835C195.799 2.38612 195.734 2.73319 195.261 2.91757L195.304 2.92842Z' fill='%237695AF'/%3E%3C/svg%3E");
  background-repeat: repeat-x;
  background-size: 50% var(--wave-height);
}

/* Dot above the waves */
.fluvio-waves-carousel .swiper-slide > .e-con::before {
  content: "";
  position: absolute;
  top: calc(
    var(--rail-top) -
    var(--rail-clearance) -
    ((var(--dot-size) - var(--wave-height)) / 2)
  );
  left: 50%;
  width: var(--dot-size);
  height: var(--dot-size);
  border-radius: 50%;
  background: var(--dot-color);
  box-shadow: 0 0 0 var(--dot-gap) var(--carousel-bg);
  transform: translateX(-50%);
  z-index: 5;
  pointer-events: none;
}

/* Keep Elementor arrows above everything and clickable */
.fluvio-waves-carousel .elementor-swiper-button {
  position: absolute !important;
  top: calc(var(--rail-top) + (var(--wave-height) / 2)) !important;
  transform: translateY(-50%);
  z-index: 50 !important;
  pointer-events: auto !important;
}

.fluvio-waves-carousel .elementor-swiper-button svg {
  pointer-events: none;
}

.fluvio-waves-carousel .elementor-swiper-button-prev {
  left: var(--nav-edge) !important;
}

.fluvio-waves-carousel .elementor-swiper-button-next {
  right: var(--nav-edge) !important;
}




/* SOLUTIONS IMG LEFT/RIGHT */

.img-right-of-txt,
.img-left-of-txt{
  overflow: hidden;
}
.img-left-of-txt{
    border-radius: 0 200px 200px 0!important;
}
.img-right-of-txt{
    border-radius: 200px 0 0 200px!important;
}

.elementor .img-left-of-txt,
.elementor .img-right-of-txt{
    width: 50%;
    flex: 0 0 50%;
    aspect-ratio: 704/656;
    object-fit: cover;
}
.img-left-of-txt > img,
.img-right-of-txt > img{
  width: 100%;
  height: 100%;
  aspect-ratio: 704/656;
  object-fit: cover;
}

.section-text-image h2 a{
    text-decoration: none;
}

.text-right-of-img{
    width: 50%;
    flex-direction: column !important;
    margin-right: 115px;
}
.text-right-of-img img,
.text-left-of-img img{
    width: 100%;
    max-width: 400px;
}
@media (max-width: 1023px) {
    .img-left-of-txt,
    .img-right-of-txt{
        width: 60%;
    }
    .text-right-of-img,
    .text-left-of-img{
        width: auto!important;
        margin-right:0;
        margin-left: 50px;
        padding-left: 0!important;
        padding-right: 20px!important;
    }
}
@media (max-width: 767px) {
    .elementor .img-left-of-txt,
    .elementor .img-right-of-txt{
        width: 92%;
        order: 3;
    }
    .text-right-of-img,
    .text-left-of-img{
        margin: 10px 0 10px 30px;
    }
    .img-left-of-txt{
        border-radius: 0 100px 100px 0!important;
}
    .img-right-of-txt{
        border-radius: 100px 0 0 100px!important;
    }
}
.text-right-of-img .sub-heading,
.text-left-of-img .sub-heading{
    margin: -20px 0 0 -20px;
}
.text-right-of-img div{
    padding: 0;
}



/* PROJETS PORTEURS LOOP ITEM */

.projets-carousel .projets-porteurs-loop-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.projets-carousel .projets-porteurs-loop-category {
  margin-top: auto !important;
}

.projets-porteurs-loop-img img{
    aspect-ratio: 30/29;
    object-fit: cover;
}
.projets-porteurs-loop-main-page .projets-porteurs-loop-img img{
    aspect-ratio: 620/465;
    object-fit: cover;
}

.projets-porteurs-loop-title a{
    text-decoration: none;
}

/* Loop grid: equal-height cards */
.projets-porteurs-loop-main-page .elementor-loop-container {
  align-items: stretch;
}
.projets-porteurs-loop-main-page .e-loop-item {
  height: 100%;
}
.projets-porteurs-loop-main-page .elementor-element-d244320,
.projets-porteurs-loop-main-page .elementor-element-d244320 > .e-con-inner {
  height: 100%;
  display: flex;
  flex-direction: column;
}
.projets-porteurs-loop-main-page .projets-porteurs-loop-img a,
.projets-porteurs-loop-main-page .projets-porteurs-loop-img img {
  display: block;
  width: 100%;
  height: 100%;
}

/* Make content fill remaining height */
.projets-porteurs-loop-main-page .projets-porteurs-loop-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}
/* Push category badge to bottom */
.projets-porteurs-loop-main-page .projets-porteurs-loop-category {
  margin-top: auto !important;
}


.projets-porteurs-loop-category .elementor-post-info__terms-list-item{
    padding: 4px 10px;
    border-radius: 100px;
    border: 0.5px solid var(--Color-Highland-Light, #98AB93);
}

.projets-carousel{
    width: 115%!important;
    max-width: none!important;
}
.projets-carousel .elementor-post-info__terms-list-item{
    margin-bottom: 5px;
    display: inline-block!important;
}

.elementor .e-a20d9c4-db7254d,
.elementor-element-059e274{
    overflow: visible!important;
}
.projets-carousel .elementor-swiper-button-prev,
.projets-carousel .elementor-swiper-button-next {
    bottom: -65px !important;
    top: auto !important;
    right: auto !important;
    position: absolute !important;
    z-index: 9999 !important;
    pointer-events: auto !important;
    width: 48px !important;
    height: 48px !important;
    background: transparent url("/wp-content/themes/fluvio-yc/layout/slider-arrow.svg") no-repeat center center;
    background-size: contain;
    display: block !important;
    transform: none !important;
}

.projets-carousel {
    --carousel-arrow-left: 80%;
    --carousel-arrow-gap: 60px;
}

.projets-carousel .elementor-swiper-button-prev {
    left: var(--carousel-arrow-left) !important;
    transform: rotate(180deg) !important;
}

.projets-carousel .elementor-swiper-button-next {
    left: calc(var(--carousel-arrow-left) + var(--carousel-arrow-gap)) !important;
    transform: none !important;
}

.projets-carousel .elementor-swiper-button-prev svg,
.projets-carousel .elementor-swiper-button-next svg {
    display: none;
}
@media (max-width: 1500px) {
    .projets-carousel {
        --carousel-arrow-left: 77%;
    }
}

@media (max-width: 1023px) {
    .projets-carousel .elementor-swiper-button-prev,
    .projets-carousel .elementor-swiper-button-next {
        bottom: -55px !important;
    }
    .projets-carousel {
        --carousel-arrow-left: 75%;
        --carousel-arrow-gap: 50px; 
    }
    .projets-carousel .elementor-swiper-button-prev,
    .projets-carousel .elementor-swiper-button-next {
        width: 38px !important;
        height: 38px !important;
    }
}
@media (max-width: 767px) {
    .projets-carousel .elementor-swiper-button-prev,
    .projets-carousel .elementor-swiper-button-next {
        bottom: -55px !important;
    }
    .projets-carousel {
        --carousel-arrow-left: 42%;
        --carousel-arrow-gap: 40px; 
        width: 180%!important;
    }
    .projets-carousel .elementor-swiper-button-prev,
    .projets-carousel .elementor-swiper-button-next {
        width: 28px !important;
        height: 28px !important;
    }
}


/* PROJETS PORTEURS IMAGE HOVER EFFECT */

.projets-porteurs-loop-img {
  --projet-image-ratio: 30 / 29;
  aspect-ratio: var(--projet-image-ratio);
  overflow: hidden;
  border-radius: 30px 30px 0 0;
  isolation: isolate;
  line-height: 0;
}

.projets-porteurs-loop-main-page .projets-porteurs-loop-img {
  --projet-image-ratio: 620 / 465;
}

.projets-porteurs-loop-img a,
.projets-porteurs-loop-img picture {
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: inherit;
}

.projets-porteurs-loop-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transform-origin: center center;
  transition: transform 1.05s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  backface-visibility: hidden;
}

.projet_porteur:hover .projets-porteurs-loop-img img,
.projet_porteur:focus-within .projets-porteurs-loop-img img {
  transform: scale(1.08);
}

@media (prefers-reduced-motion: reduce) {
  .projets-porteurs-loop-img img {
    transition: none;
  }
}


/* PROJETS PORTEUR SINGLE TEMPLATE */

.projet-list-travaux ul{
    list-style-type: none;
    padding: 0;
}
.projet-list-services ul{
    padding: 0;
}
    .projet-list-services ul li{
        margin-bottom: 5px;
    }

.projet-list-faits-saillants{
    width: 100%;
}
.projet-list-faits-saillants ul{
    padding: 0;
    width: 100%;
}
.projet-list-faits-saillants ul li{
    margin-left: 25px;
}
.projet-list-faits-saillants ul li::after{
    content:'';
    position: relative;
    left: -20px;
    display: block;
    margin: 10px 0;
    width: calc(100%+20px);
    max-width: 931px;
    height: 1px;
    background: linear-gradient(90deg, rgba(118, 149, 175, 0) 0%, #7695af 50%, rgba(118, 149, 175, 0) 100%);
}

.projet-list-objectifs ul{
    padding: 0;
}
.projet-list-objectifs ul li{
    margin: 0 0 8px 25px;
}

.projet-list-approche ol,
.projet-list-approche ul{
    padding: 0;
}
.projet-list-approche ol li{
    margin: 0 0 8px 25px;
}
.projet-list-approche ol li::marker{
    font-weight: 500;
}
.projet-list-approche ul li{
    margin: 0 0 8px 25px;
}
.projet-list-approche ul li:first-child{
    margin-top: 8px;
}


/* Project Image Carousel */

#avant-travaux:not(:has(.swiper-slide img)),
#pendant-travaux:not(:has(.swiper-slide img)),
#apres-travaux:not(:has(.swiper-slide img)),
#galerie-generale:not(:has(.swiper-slide img)){
  display: none !important;
}

.projet-img-carousel img{
    aspect-ratio: 302/201;
    object-fit: cover;
    border-radius: 40px;
}
.projet-img-carousel .elementor-swiper-button-prev{
    left: -50px!important;
}
.projet-img-carousel .elementor-swiper-button-next{
    right: -50px!important;
}
@media (max-width: 1024px) {
    #avant-travaux,
    #pendant-travaux,
    #apres-travaux,
    #galerie-generale{
        min-width: 0;
        max-width: 90%;
    }
    .projet-img-carousel .elementor-swiper-button-prev{
        left: -30px!important;
    }
    .projet-img-carousel .elementor-swiper-button-next{
        right: -30px!important;
    }
}
@media (max-width: 767px) {
    .projet-img-carousel .swiper,
    .projet-img-carousel .swiper {
        width: 99%!important;
    }
    .projet-img-carousel .elementor-swiper-button{
        font-size: 20px!important;
    }
}




/* Project Solutions Carousel */

.projet-loop-solutions img{
    width: 100%!important;
}

.projet-loop-solutions .elementor-swiper-button-prev svg *,
.projet-loop-solutions .elementor-swiper-button-next svg *{
    fill: #C1BAAE;
    stroke: #C1BAAE;
}
.projet-loop-solutions .elementor-swiper-button-prev{
    left: -50px!important;
}
.projet-loop-solutions .elementor-swiper-button-next{
    right: -50px!important;
}
@media (max-width: 1024px) {
    .projet-loop-solutions .elementor-swiper-button-prev{
        left: -10px!important;
}
    .projet-loop-solutions .elementor-swiper-button-next{
        right: -10px!important;
    }
}





/** FLUVIO LOGOS CAROUSEL */

#fluvio-logos-carousel {
    --fluvio-slides-visible: 6;
    --fluvio-slide-width: 16.666667vw;
    --fluvio-start-offset: -8.333333vw;
    --fluvio-cycle-width: 83.333333vw;
    --fluvio-carousel-height: clamp(170px, 14vw, 292px);
    --fluvio-logo-scale: 1.02;
    --fluvio-logo-max-width: 76%;
    --fluvio-logo-max-height: clamp(62px, 5.4vw, 126px);
    --fluvio-line-top: 17%;
    --fluvio-line-bottom: 87%;
    --fluvio-marquee-duration: 26s;
    --fluvio-vertical-line-top: 10%;
    --fluvio-vertical-line-bottom: 93%;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  overflow: hidden;
}

#fluvio-logos-carousel .elementor-image-carousel-wrapper,
#fluvio-logos-carousel .swiper,
#fluvio-logos-carousel .swiper-container {
  width: 100%;
  overflow: hidden !important;
}

#fluvio-logos-carousel .swiper-wrapper {
  display: flex !important;
  align-items: stretch;
  width: max-content !important;
  transition: none !important;
  animation: fluvioLogosMarquee var(--fluvio-marquee-duration) linear infinite;
  will-change: transform;
}

#fluvio-logos-carousel .swiper-slide {
  position: relative;
  flex: 0 0 var(--fluvio-slide-width) !important;
  width: var(--fluvio-slide-width) !important;
  height: var(--fluvio-carousel-height);
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
}

#fluvio-logos-carousel .swiper-slide::before {
  content: "";
  position: absolute;
  top: var(--fluvio-vertical-line-top);
  right: 0;
  bottom: calc(100% - var(--fluvio-vertical-line-bottom));
  z-index: 2;
  width: 1px;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(118, 149, 175, 0) 0%,
    #7695af 50%,
    rgba(118, 149, 175, 0) 100%
  );
}

#fluvio-logos-carousel .swiper-slide-inner {
  position: relative;
  width: 100%;
  height: 100%;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#fluvio-logos-carousel .swiper-slide-inner::before,
#fluvio-logos-carousel .swiper-slide-inner::after {
  content: "";
  position: absolute;
  left: 0;
  z-index: 2;
  width: 100%;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(118, 149, 175, 0) 0%,
    #7695af 50%,
    rgba(118, 149, 175, 0) 100%
  );
}

#fluvio-logos-carousel .swiper-slide-inner::before {
  top: var(--fluvio-line-top);
}

#fluvio-logos-carousel .swiper-slide-inner::after {
  top: var(--fluvio-line-bottom);
}

#fluvio-logos-carousel .swiper-slide-image {
  position: relative;
  z-index: 1;
  width: auto !important;
  height: auto !important;
  max-width: var(--fluvio-logo-max-width) !important;
  max-height: var(--fluvio-logo-max-height) !important;
  object-fit: contain;
  display: block;
  transform: scale(var(--fluvio-logo-scale));
  transform-origin: center;
}

@keyframes fluvioLogosMarquee {
  from {
    transform: translate3d(var(--fluvio-start-offset), 0, 0);
  }

  to {
    transform: translate3d(calc(var(--fluvio-start-offset) - var(--fluvio-cycle-width)), 0, 0);
  }
}

@media (max-width: 1024px) {
  #fluvio-logos-carousel {
    --fluvio-slides-visible: 4;
  }
}

@media (max-width: 767px) {
  #fluvio-logos-carousel {
    --fluvio-slides-visible: 2;
  }
}



/** REVIEWS CAROUSEL **/

.reviews-auto-height .swiper-wrapper {
  align-items: flex-start !important;
}

.reviews-auto-height .swiper-slide {
  height: auto !important;
}

.reviews-auto-height .swiper-pagination,
.reviews-auto-height .swiper-pagination.swiper-pagination-horizontal,
.reviews-auto-height .elementor-swiper .swiper-pagination {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  transform: none !important;
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
}


/* STAFF */

.staff-card a{
    text-decoration: none;
}



/** CONTACT FORM */

.contact-form INPUT,
.contact-form TEXTAREA{
    padding: 0;
}

.contact-form .elementor-field-group:not(.elementor-field-type-submit)::after{
    content:'';
    display: block;
    margin-top: 5px;
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, rgba(193, 186, 174, 0) 0%, #7695AF 25%, #7695AF 75%, rgba(193, 186, 174, 0) 100%);
}




/* MOBILE/TABLET NAVIGATION */

#mobile-menu {
  position: relative;
  overflow: hidden;
  --mobile-menu-panel-height: 0px;
}

#mobile-menu .elementor-nav-menu > li > a.elementor-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0;
}

#mobile-menu .elementor-nav-menu > li.menu-item-has-children > a.elementor-item::after {
  content: "";
  position: relative;
  opacity: 1 !important;
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url("/wp-content/uploads/2026/06/ico-menu-back.svg") no-repeat center / contain;
  flex-shrink: 0;
  transform: translateX(0) rotate(180deg);
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  margin: 5px 0 0 10px;
}
#mobile-menu .elementor-nav-menu > li.menu-item-has-children:hover > a.elementor-item::after,
#mobile-menu .elementor-nav-menu > li.menu-item-has-children > a.elementor-item:hover::after,
#mobile-menu .elementor-nav-menu > li.menu-item-has-children > a.elementor-item:focus::after {
  transform: translateX(10px) rotate(180deg) !important;
}

#mobile-menu .elementor-nav-menu > li:not(.submenu-open, :last-child)::after,
#mobile-menu .elementor-nav-menu > li ul li:not(.submenu-back-item, :last-child)::after
{
    content: '';
    display: block;
    height: 1px;
    background: linear-gradient(90deg, rgba(193, 186, 174, 0) 0%, #c1baae 50%, rgba(193, 186, 174, 0) 100%);
    margin: 20px 0 0 0;
}




/* SUBMENU MOBILE */

#mobile-menu .submenu-back-arrow {
  display: inline-block;
  width: 20px;
  height: 20px;
  background: url("/wp-content/uploads/2026/06/ico-menu-back.svg") no-repeat center / contain;
}

#mobile-menu > .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  display: none !important;
}

#mobile-menu .elementor-nav-menu--main {
  position: relative;
  overflow: visible !important;
}

#mobile-menu.is-submenu-open .elementor-nav-menu--main {
  min-height: var(--mobile-menu-panel-height);
}

#mobile-menu a {
  text-decoration: none !important;
}

#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#mobile-menu.is-submenu-open .elementor-nav-menu--main > ul.elementor-nav-menu {
  min-height: var(--mobile-menu-panel-height);
}

/* Level 1 items */
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li {
  transition: opacity .35s ease, transform .35s ease;
}

#mobile-menu.is-submenu-open .elementor-nav-menu--main > ul.elementor-nav-menu > li {
  opacity: 0;
  transform: translateX(-40px);
  pointer-events: none;
}

/* Keep the active branch alive only for its submenu */
#mobile-menu.is-submenu-open .elementor-nav-menu--main > ul.elementor-nav-menu > li.submenu-open {
  opacity: 1;
  transform: none;
}

/* Hide the level 1 trigger text itself */
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children.submenu-open > a.has-submenu {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Parent item should not create positioning context */
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children {
  position: static !important;
}

/* Submenu panel */
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu {
  display: flex !important;
  flex-direction: column;
  gap: 20px;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: auto !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateX(100%) !important;
  transition: transform 1.3s ease, opacity .2s ease !important;
  z-index: 30 !important;
  justify-content: flex-start !important;
}

/* Active submenu visible */
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children.submenu-open > .sub-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateX(0) !important;
  min-height: var(--mobile-menu-panel-height);
}

/* Back row */
#mobile-menu .submenu-back-item {
  display: block !important;
  width: 100% !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  list-style: none !important;
}

#mobile-menu .submenu-back {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
  color: #fff !important;
  font: inherit;
  cursor: pointer;
  box-shadow: none;
}

/* Submenu items */
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li > a {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--e-global-color-0d8a95c) !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-decoration: none !important;
  font-family: "the-seasons", Sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2em;
  letter-spacing: -0.72px;
}

#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li > a:hover,
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li > a:focus,
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li > a.elementor-item-active,
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li.current-menu-item > a,
#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > .sub-menu > li.current_page_item > a {
  color: var(--e-global-color-8b968b7) !important;
  background: transparent !important;
}

/* Hide Elementor arrow */
#mobile-menu .sub-arrow {
  display: none !important;
}

#mobile-menu .elementor-nav-menu--main > ul.elementor-nav-menu > li.menu-item-has-children > a.has-submenu {
  cursor: pointer;
}



/** SHOW HEADER ON SCROLL BACK UP */

header.elementor-location-header > .elementor-element-fe815b2 {
  will-change: transform;
  isolation: isolate;
  overflow: visible;
}

header.elementor-location-header.mobile-scroll-header-ready > .elementor-element-fe815b2 {
  transition: transform 0.35s ease;
}

header.elementor-location-header > .elementor-element-fe815b2::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 150%;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  background:
    linear-gradient(0deg, rgba(0, 46, 68, 0.00) 0%, rgba(0, 46, 68, 0.00) 100%),
    linear-gradient(180deg, rgba(0, 46, 68, 0.86) 0%, rgba(0, 46, 68, 0.62) 52%, rgba(0, 46, 68, 0.00) 100%);
  transition: opacity 0.35s ease;
}

header.elementor-location-header > .elementor-element-fe815b2 > * {
  position: relative;
  z-index: 1;
}

header.elementor-location-header.mobile-scroll-header-fixed > .elementor-element-fe815b2 {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  z-index: 9998 !important;
}

header.elementor-location-header.mobile-scroll-header-hidden > .elementor-element-fe815b2 {
  transform: translate3d(0, -110%, 0) !important;
  pointer-events: none;
}

header.elementor-location-header.mobile-scroll-header-visible > .elementor-element-fe815b2,
header.elementor-location-header.mobile-menu-popup-open > .elementor-element-fe815b2,
header.elementor-location-header.popup-menu-open > .elementor-element-fe815b2 {
  transform: translate3d(0, 0, 0) !important;
  pointer-events: auto;
}

header.elementor-location-header.mobile-scroll-header-fixed.mobile-scroll-header-visible:not(.mobile-menu-popup-open):not(.popup-menu-open) > .elementor-element-fe815b2::before {
  opacity: 1;
}

body.admin-bar header.elementor-location-header.mobile-scroll-header-fixed > .elementor-element-fe815b2 {
  top: 32px !important;
}

@media (max-width: 782px) {
  body.admin-bar header.elementor-location-header.mobile-scroll-header-fixed > .elementor-element-fe815b2 {
    top: 46px !important;
  }
}




/* FOOTER */

.footer-shape {
  --shape-height: clamp(140px, 13vw, 260px);
  position: relative;
  padding-top: calc(var(--shape-height) + 32px) !important;
  overflow: visible;
  background:
    linear-gradient(
      to bottom,
      transparent 0 var(--shape-height),
      var(--footer-bg) var(--shape-height) 100%
    );
}

.footer-shape::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 50%;
  width: 100vw;
  height: var(--shape-height);
  transform: translateX(-50%);
  background: var(--footer-bg);
  -webkit-mask-image: var(--footer-mask);
  mask-image: var(--footer-mask);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-position: center top;
  mask-position: center top;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  pointer-events: none;
}

.footer-shape > .elementor-element {
  position: relative;
  z-index: 1;
}

/* Desktop masks */

.footer-shape--green,
.footer-shape-mobile--green {
  --footer-bg: #6e8765;
  --footer-mask: url("layout/footer-shape-green.svg");
}

.footer-shape--cream,
.footer-shape-mobile--cream {
  --footer-bg: #F2E9DA;
  --footer-mask: url("layout/footer-shape-cream.svg");
}

/* Mobile masks */

@media (max-width: 767px) {
  .footer-shape {
    --shape-height: clamp(150px, 42vw, 260px);
  }

  .footer-shape--green,
  .footer-shape-mobile--green {
    --footer-mask: url("layout/footer-shape-mobile-green.svg");
  }

  .footer-shape--cream,
  .footer-shape-mobile--cream {
    --footer-mask: url("layout/footer-shape-mobile-cream.svg");
  }
}
.footer-shape--cream a{
    text-decoration: none;   
}
.footer-col-links ul{
    list-style-type: none;
    padding: 0;
}
.footer-col-links ul li{
    margin-bottom: 15px;
}
.footer-width{
    overflow: hidden;
}
.footer-width .footer-col-links:nth-of-type(2)::before {
    content:'';
    position: absolute;
    left: -150px;
    top: 60px;
    display: block;
    width: 1100px;
    height: 1px;
    background: linear-gradient(90deg, rgba(193, 186, 174, 0) 0%, #c1baae 50%, rgba(193, 186, 174, 0) 100%);
}
@media (max-width: 1024px) {
    .footer-width .footer-col-links:nth-of-type(2)::before {
        left: -90px;
        width: calc(99vw);
    }    
}
@media (max-width: 767px) {
    .footer-width .footer-col-links:nth-of-type(2)::before {
        display: none;
    }  
}

.footer-col-links::after{
    content:'';
    position: absolute;
    left: -130px;
    top: 100px;
    display: block;
    width: 200px;
    max-width: 899px;
    height: 1px;
    background: linear-gradient(90deg, rgba(193, 186, 174, 0) 0%, #c1baae 50%, rgba(193, 186, 174, 0) 100%);
    transform: rotate(90deg);
}

.footer-list-policies ul{
    list-style-type: none;    
    padding: 0;
}
.footer-list-policies ul li{
    display: inline-block;
    margin-left: 20px;
}








/** DYNAMIC MODAL **/

html.fl-cpt-modal-open,
body.fl-cpt-modal-open {
  overflow: hidden;
}

.fl-cpt-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: none;
}

.fl-cpt-modal.is-open {
  display: block;
}

.fl-cpt-modal__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #00384e;
}

.fl-cpt-modal__dialog {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: 50%;
  width: min(1278px, calc(100vw - 96px));
  max-height: calc(100dvh - 64px);
  transform: translate(-50%, -50%);
  background: #f2eadc;
  border-radius: 30px;
  overflow: hidden;
}

.fl-cpt-modal__viewport {
  width: 100%;
  max-height: calc(100dvh - 64px);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.fl-cpt-modal__content {
  position: relative;
  min-height: 240px;
}

.fl-cpt-modal__elementor-scope {
  width: 100%;
}

.fl-cpt-modal__close,
.fl-cpt-modal__nav {
  position: absolute;
  z-index: 5;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  box-shadow: none;
  line-height: 1;
  -webkit-tap-highlight-color: transparent;
  outline: none!important;
}

.fl-cpt-modal__close {
  top: clamp(24px, 4vw, 70px);
  right: clamp(24px, 5vw, 90px);
  width: 24px;
  height: 24px;
}

.fl-cpt-modal__close img {
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.fl-cpt-modal__nav {
  top: 42%;
  width: 24px;
  height: 24px;
  transform: translateY(-50%);
}

.fl-cpt-modal__nav--prev {
  left: 48px;
}

.fl-cpt-modal__nav--next {
  right: 48px;
}

.fl-cpt-modal__nav img {
  display: block;
  width: 15px;
  height: auto;
  margin: 0 auto;
  pointer-events: none;
}

.fl-cpt-modal__nav[hidden] {
  display: none !important;
}

.fl-cpt-modal__loader {
  position: absolute;
  z-index: 4;
  top: 50%;
  left: 50%;
  display: none;
  width: 42px;
  height: 42px;
  margin: -21px 0 0 -21px;
  border: 2px solid rgba(0, 56, 78, 0.18);
  border-top-color: #00384e;
  border-radius: 999px;
  animation: flCptModalSpin 0.8s linear infinite;
}

.fl-cpt-modal.is-loading .fl-cpt-modal__loader {
  display: block;
}

.fl-cpt-modal.is-loading .fl-cpt-modal__dialog {
  min-height: min(760px, calc(100dvh - 64px));
}

.fl-cpt-modal.is-loading .fl-cpt-modal__viewport,
.fl-cpt-modal.is-loading .fl-cpt-modal__content {
  min-height: inherit;
}

.fl-cpt-modal.is-loading .fl-cpt-modal__content {
  visibility: hidden;
}

@keyframes flCptModalSpin {
  to {
    transform: rotate(360deg);
  }
}

@media (max-width: 1024px) {
  .fl-cpt-modal__dialog {
    width: calc(100vw - 32px);
    max-height: calc(100dvh - 32px);
    border-radius: 24px;
  }

  .fl-cpt-modal__viewport {
    max-height: calc(100dvh - 32px);
  }

  .fl-cpt-modal__close {
    top: 20px;
    right: 20px;
    width: 28px;
    height: 28px;
  }

  .fl-cpt-modal__nav {
    width: 46px;
    height: 46px;
  }
  .fl-cpt-modal__nav--prev {
    left: -5px!important;
  }

  .fl-cpt-modal__nav--next {
    right: -5px!important;
  }

  .fl-cpt-modal__nav img {
    width: 18px;
  }
  .fl-cpt-modal.is-loading .fl-cpt-modal__dialog {
    min-height: min(620px, calc(100dvh - 32px));
  }
}

@media (max-width: 767px) {
  .fl-cpt-modal__dialog {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
    border-radius: 18px;
  }

  .fl-cpt-modal__viewport {
    max-height: calc(100dvh - 20px);
  }

  .fl-cpt-modal__close {
    top: 14px;
    right: 14px;
    width: 15px;
    height: 15px;
  }

  .fl-cpt-modal__nav {
    width: 38px;
    height: 48px;
  }

  .fl-cpt-modal__nav--prev {
    left: -7px!important;
  }

  .fl-cpt-modal__nav--next {
    right: -7px!important;
  }

  .fl-cpt-modal__nav img {
    width: 10px;
  }
  
  .fl-cpt-modal.is-loading .fl-cpt-modal__dialog {
    min-height: min(520px, calc(100dvh - 20px));
  }
}

body .fl-cpt-modal button.fl-cpt-modal__close,
body .fl-cpt-modal button.fl-cpt-modal__close:hover,
body .fl-cpt-modal button.fl-cpt-modal__close:focus,
body .fl-cpt-modal button.fl-cpt-modal__close:active,
body .fl-cpt-modal button.fl-cpt-modal__nav,
body .fl-cpt-modal button.fl-cpt-modal__nav:hover,
body .fl-cpt-modal button.fl-cpt-modal__nav:focus,
body .fl-cpt-modal button.fl-cpt-modal__nav:active {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
  min-width: 0 !important;
}

body .fl-cpt-modal button.fl-cpt-modal__close::before,
body .fl-cpt-modal button.fl-cpt-modal__close::after,
body .fl-cpt-modal button.fl-cpt-modal__nav::before,
body .fl-cpt-modal button.fl-cpt-modal__nav::after {
  display: none !important;
}

body .fl-cpt-modal button.fl-cpt-modal__close:focus-visible,
body .fl-cpt-modal button.fl-cpt-modal__nav:focus-visible {
  outline: 2px solid #1f567d;
  outline-offset: 6px;
}

body .fl-cpt-modal .fl-cpt-modal__nav {
  position: absolute;
  transform: translateY(-50%) !important;
}

@media (max-width: 767px) {
  body .fl-cpt-modal .fl-cpt-modal__nav {
    top: 50% !important;
  }
}





/** PROJECT FILTERS **/


.fluvio-project-filters {
	--fluvio-filter-color: var(--Color-Opal, #B6CBC6);
	color: var(--fluvio-filter-color);
	margin: 0 0 44px;
}

.fluvio-project-filters__controls {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 18px 34px;
}

.fluvio-project-filters__meta {
	align-items: center;
	color: var(--fluvio-filter-color);
	display: flex;
	flex-wrap: wrap;
	font-family: inherit;
	font-size: 14px;
	gap: 12px 18px;
	line-height: 1.4;
	margin-top: 18px;
}

.fluvio-project-filters__reset {
	color: currentColor;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.fluvio-project-filters__reset.is-disabled {
	cursor: default;
	opacity: 0.45;
	text-decoration: none;
}

.fluvio-project-filters.is-loading {
	pointer-events: none;
}

.elementor-widget-loop-grid.is-loading {
	opacity: 0.55;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.fluvio-project-filters__select-wrap {
	color: var(--fluvio-filter-color);
	display: inline-flex;
	position: relative;
	width: max-content;
	max-width: min(360px, 86vw);
}

.fluvio-project-filters__select-wrap::after {
  content: "";
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 50%;
  width: 16px;
  height: 16px;
  transform: translateY(-50%);
  background-color: var(--fluvio-filter-color);
  -webkit-mask: url("/wp-content/uploads/2026/06/ico-arrow-bottom.svg") no-repeat center / contain;
  mask: url("/wp-content/uploads/2026/06/ico-arrow-bottom.svg") no-repeat center / contain;
}
.fluvio-filter-dropdown__arrow {
  display: inline-block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  line-height: 1;
  background-color: currentColor;
  -webkit-mask: url("/wp-content/uploads/2026/06/ico-arrow-bottom.svg") no-repeat center / contain;
  mask: url("/wp-content/uploads/2026/06/ico-arrow-bottom.svg") no-repeat center / contain;
}

.fluvio-project-filters select {
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	color: var(--fluvio-filter-color);
	cursor: pointer;
	font-family: "the-seasons", serif;
	font-size: 24px;
	font-style: normal;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 140%;
	margin: 0;
	width: auto;
	max-width: min(320px, 78vw);
	padding: 0 30px 0 0;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fluvio-project-filters.has-custom-dropdowns .fluvio-project-filters__select-wrap::after {
	display: none;
}

.fluvio-project-filters.has-custom-dropdowns select {
	height: 1px;
	opacity: 0;
	pointer-events: none;
	position: absolute;
	width: 1px;
}

.fluvio-filter-dropdown {
	display: inline-block;
	max-width: min(360px, 86vw);
	position: relative;
	width: max-content;
}

.fluvio-filter-dropdown.is-open::after {
	content: "";
	height: 10px;
	left: 0;
	position: absolute;
	top: 100%;
	width: 100%;
}

.fluvio-filter-dropdown__button {
	align-items: center;
	background: transparent!important;
	background-color: transparent!important;
	border: 0;
	box-shadow: none;
	color: var(--fluvio-filter-color);
	cursor: pointer!important;
	display: inline-flex;
	font-family: "the-seasons", serif!important;
	font-size: 24px!important;
	font-style: normal;
	font-weight: 700!important;
	gap: 12px;
	letter-spacing: 0!important;
	line-height: 140%!important;
	text-transform: none!important;
	margin: 0;
	max-width: min(360px, 86vw);
	padding: 0!important;
	text-align: left;
}

.fluvio-filter-dropdown__button:hover,
.fluvio-filter-dropdown__button:focus,
.fluvio-filter-dropdown__button:active,
.fluvio-filter-dropdown.is-open .fluvio-filter-dropdown__button {
	background: transparent!important;
	background-color: transparent!important;
	border-color: transparent!important;
	box-shadow: none!important;
	color: #6D8765!important;
	text-decoration: none!important;
}

.fluvio-filter-dropdown__button:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 6px;
}

.fluvio-filter-dropdown__label {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fluvio-filter-dropdown__arrow {
	flex: 0 0 auto;
	line-height: 1;
}

.fluvio-filter-dropdown__menu {
	background: #6D8765;
	border: none;
	border-radius: 30px;
	box-shadow: 0 18px 45px rgba(0, 0, 0, 0.22);
	left: 0;
	min-width: 100%;
	overflow: visible;
	padding: 40px;
	position: absolute;
	top: calc(100% + 10px);
	width: max-content;
	/* max-width: min(360px, 86vw); */
	z-index: 20;
}

.fluvio-filter-dropdown__option {
	background: transparent;
	border: 0;
	color: #F5EFE5!important;
	cursor: pointer;
	display: block;
	font-size: 18px!important;
	font-style: normal;
	font-weight: 300!important;
	letter-spacing: 0!important;
	line-height: 150%!important;
	margin: 0 0 10px 0;
	padding: 10px 16px;
	text-align: left;
	width: 100%;
	text-transform: none!important;
	text-wrap: auto;
}

.fluvio-filter-dropdown__option:hover,
.fluvio-filter-dropdown__option:focus-visible,
.fluvio-filter-dropdown__option.is-selected {
	background: rgba(182, 203, 198, 0);
	outline: 0;
	font-weight: 600!important;
}

.fluvio-project-filters select:focus-visible {
	outline: 1px solid currentColor;
	outline-offset: 6px;
}

.fluvio-project-filters select option {
	background: #f4ecdd;
	color: #12384a;
	font-family: inherit;
	font-size: 18px;
}

.fluvio-project-filters__submit {
	background: transparent;
	border: 1px solid currentColor;
	color: inherit;
	cursor: pointer;
	font: inherit;
	padding: 8px 14px;
}

.fluvio-sr-only {
	border: 0;
	clip: rect(0, 0, 0, 0);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
}

@media (max-width: 767px) {
	.fluvio-project-filters {
		margin-bottom: 32px;
	}

	.fluvio-project-filters__controls {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
	}

	.fluvio-project-filters select {
		font-size: 23px;
		max-width: 100%;
	}

	.fluvio-project-filters__select-wrap,
	.fluvio-filter-dropdown,
	.fluvio-filter-dropdown__button {
		max-width: 100%;
	}

	.fluvio-filter-dropdown__button {
		font-size: 23px;
	}

	.fluvio-filter-dropdown__menu {
		max-width: calc(100vw - 32px);
	}

	.fluvio-filter-dropdown__option {
		font-size: 18px;
	}
}




/* FLUVIO DYNAMIC RIVER BACKGROUNDS */

.elementor-widget-theme-post-content.fluvio-river-backgrounds-ready,
.elementor-location-single[data-elementor-type="single-post"].type-projet_porteur.fluvio-river-backgrounds-ready {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.elementor-widget-theme-post-content.fluvio-river-backgrounds-ready > .fluvio-river-content,
.elementor-location-single[data-elementor-type="single-post"].type-projet_porteur.fluvio-river-backgrounds-ready > :not(.fluvio-river-backgrounds) {
  position: relative;
  z-index: 1;
}

.fluvio-river-backgrounds {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.fluvio-river-bg-layer {
  position: absolute;
  display: block;
  width: clamp(980px, 126vw, 1760px);
  aspect-ratio: 841.7 / 595.2;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translateZ(0);
}

.fluvio-river-bg-layer--right {
  right: 0;
  background-position: center right;
}

.fluvio-river-bg-layer--left {
  left: 0;
  background-position: center left;
}

.fluvio-river-bg-layer--image-6 {
  width: clamp(260px, 44vw, 640px);
  aspect-ratio: 180 / 538.73;
}

@media (max-width: 1024px) {
  .fluvio-river-bg-layer {
    width: clamp(820px, 152vw, 1380px);
  }

  .fluvio-river-bg-layer--image-6 {
    width: clamp(220px, 56vw, 520px);
  }
}

@media (max-width: 767px) {
  .fluvio-river-bg-layer {
    width: 188vw;
    max-width: none;
  }

  .fluvio-river-bg-layer--image-6 {
    width: 68vw;
  }

  .fluvio-river-bg-layer--image-6.fluvio-river-bg-layer--right {
    right: 0;
  }

  .fluvio-river-bg-layer--image-6.fluvio-river-bg-layer--left {
    left: 0;
  }
}


