
:root {
    --navbar-height: 107px; /* valeur temporaire en attendant le calcul javascript, la mettre la plus proche de la valeur réelle pour éviter des glitch d'affichage */
    --espace-avant-footer: 100px; /* padding-bottom du contenu <div data-elementor-type="wp-page">, pour ne pas que le contenu touche au footer */
    --e-global-breakpoints-mobile-portrait: 576px;
    --e-global-breakpoints-mobile-landscape: 767px;
    --e-global-breakpoints-tablet-portrait: 992px;  /* breakpoint toggle */
    --e-global-breakpoints-tablet-landscape: 1024px;
    --e-global-typography-text-line-height: 1.2;
    --e-global-typography-text-font-family: "RebondGrotesque", sans-serif;
}

/* https://fonts.google.com/specimen/Literata */



/*------------------------------------------------------------------
   @section Reset du thème
------------------------------------------------------------------*/
/* #region */

html { 
    overflow-y: scroll !important; /* Pour contrer le bogue de layout shift quand le scrollbar disparait quand on ferme le off-canva */
}

body {
    /*overflow-x: hidden;*/ font-family: var(--e-global-typography-text-font-family); line-height: 1.6; color: var(--color-brun);
    background-color: var(--color-beige-tres-pale);
}

/* Main container de Elementor */
div[data-elementor-type="wp-page"], div[data-elementor-type="wp-post"], div[data-elementor-type="single-post"], div[data-elementor-type="search-results"], div[data-elementor-type="archive"], div[data-elementor-type="error-404"], #content {
    min-height: 80vh; overflow-x: clip; font-size: 1.1rem;
    /* Pour compenser la hauteur du #header qui est en position fixe et pour créer un padding pour pas que le contenu touche le footer */
    padding-bottom: var(--espace-avant-footer);
    /* Ajout de 4 rem pour les pages standards. Pour les pages avec entête-photo, on met une marge négative pour que ça touche le header */
    /* padding-top: calc(var(--navbar-height) + 100px) */
    padding-top: 68px;
}
@media (max-width: 992px) {
    div[data-elementor-type="wp-page"], div[data-elementor-type="wp-post"], div[data-elementor-type="single-post"], div[data-elementor-type="search-results"], div[data-elementor-type="archive"], div[data-elementor-type="error-404"], #content {
       padding-top: 68px;
    }
}

/* Entête sans photo */
div[data-elementor-type="single-post"], div[data-elementor-type="search-results"], div[data-elementor-type="archive"], div[data-elementor-type="error-404"] {
    padding-top: 350px;
}
@media (max-width: 992px) {
    div[data-elementor-type="single-post"], div[data-elementor-type="search-results"], div[data-elementor-type="archive"], div[data-elementor-type="error-404"] {
        padding-top: 230px;
    }
}


/* Buttons */
.elementor :where(.e-button-base, .elementor-widget-button .elementor-button, .elementor-widget-search .e-search .e-search-submit),
:root :where(.wp-element-button, .wp-block-button__link) {
    background-color: var(--e-global-color-primary); padding: 10px 30px 10px 30px; border-radius: 500px; text-decoration: none !important; 
    font-weight: 600; line-height: 1; text-transform: uppercase; color: #fff; 
    width: fit-content; 
}
.elementor :where(.e-button-base, .elementor-widget-button .elementor-button, .elementor-widget-search .e-search .e-search-submit):hover {
    background-color: var(--color-vert-fonce);
}
/* Liens */
body :where(div[data-elementor-type="wp-page"], div[data-elementor-type="wp-post"], div[data-elementor-type="single-post"], div[data-elementor-type="search-results"], div[data-elementor-type="error-404"], #content) a, .elementor .e-paragraph-link-base {
    color: var(--color-primary); text-decoration: underline;
}
body :where(div[data-elementor-type="wp-page"], div[data-elementor-type="wp-post"], div[data-elementor-type="single-post"], div[data-elementor-type="search-results"], div[data-elementor-type="error-404"], #content) a:hover, .elementor .e-paragraph-link-base:hover {
    color: var(--color-primary); text-decoration: none; 
}

/* Flexbox div */
/*.elementor :where(.e-flexbox-base) {
   align-items: start; justify-content: center;
}
*/
.elementor .e-flexbox-base:where([class*="section-"]:not(.section-marges-gauche-droite)),
.elementor .e-grid-base:where([class*="section-"]:not(.section-marges-gauche-droite)) {
   padding-left: 0; padding-right: 0;
}
/*.elementor .e-flexbox-base > :last-child {
    margin-bottom: 0;
}*/
.e-con.e-flex>.e-con-inner {
    padding-inline-start: var(--section-marges-gauche-droite);
    padding-inline-end: var(--section-marges-gauche-droite);
    z-index: 5;
}


/* Marge au-dessus d'un anchor, pour ne pas qu'il soit collé en haut de la fenêtre (exclu les accordéons) */
h1:target, h2:target, h3:target, h4:target, h5:target, div:not(.accordeon-item):target, span:target, p:target, table:target, section:target, a:target {
position: relative; border-top: 30px solid transparent; background-clip: padding-box;
    &::before {
    content: ""; position: absolute; top: -2px; left: 0; right: 0;
    }
    .small-header & {
    border-top: 100px solid transparent;
    }
}

/* Bouton scrollToTop */
#btn-scrollToTop {
    transform: translateX(140%); transition: transform 0.8s ease;
}
#btn-scrollToTop.visible {
    transform: translateX(0);
}


/*** Header du menu ***/

/* Pour le small-header */
#header {
    transition: all 500ms ease-out;
    /* Pour ce thème */
    /* padding-top: 30px; padding-bottom: 80px; */
}
.hello-elementor-default #header a {
    text-decoration: none;
}
#header.hide-header {
  transform: translateY(-100%);
}
.small-header #header {
  
}


/* Pour un effet "glass" en-dessous du Off-Canvas. Le background du Off-Canvas doit avoir une opacité. */
header .e-off-canvas__content {
    backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); background: none !important;
}

.elementor-lightbox {
    background-color: rgba(0,0,0, 0.75) !important;
}

/* Carrousel de photos */
.elementor-widget-n-carousel.photos-carrousel .swiper-pagination-bullet, .swiper-pagination-bullet .swiper-pagination-bullet-active {
    background: var(--color-secondary);
}
.elementor-widget-n-carousel .elementor-swiper-button {
    position: relative; overflow: hidden;
}
.elementor-widget-n-carousel .elementor-swiper-button svg {
    position: relative; z-index:2;
}
.elementor-widget-n-carousel .elementor-swiper-button::before {
    transition: all 300ms ease-out;
}
.elementor-widget-n-carousel .elementor-swiper-button:not(.swiper-button-disabled):hover::before {
    content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; 
    background: rgba(0, 0, 0, 0.15); z-index: 1; pointer-events: none;
}


/* Carrousel des clés de succès */
.carrousel-cles {
	counter-reset: slide-counter;
}
.carrousel-cles .e-n-carousel.swiper {
	overflow: hidden; padding: 0 0 40px 0;
}
.elementor .carrousel-cles .e-grid-base {
	height: 100%; justify-items: center; align-items: center; align-self: center; padding: 0 0 30px 0;
}
.elementor .carrousel-cles .e-grid-base .e-flexbox-base {
	counter-increment: slide-counter; position: relative; z-index: 1; min-height: 350px;
    padding: 0 20px 0 20px;
}
/* Filet blanc qui sépare les 2 slides */
.carrousel-cles .swiper-slide-active .e-grid-base .e-flexbox-base:nth-child(1)::after {
	content: ""; position: absolute; top: 0; right: 0; background-color: #fff; width: 1px; height: 100%; transform: translateX(10px);
}
@media (max-width: 767px) {
    .carrousel-cles .swiper-slide-active .e-grid-base .e-flexbox-base:nth-child(1)::after {
        display: none;
    	/*top: auto; bottom: 0; right: 0; background-color: #fff; width: 100%; height: 1px; transform: translateY(10px);*/
    }
}
.elementor .carrousel-cles .e-grid-base .e-flexbox-base .e-paragraph-base {
	color: #fff; text-align: center !important; font-size: clamp(1.22rem, 0.97727rem + 1.0303vw, 1.75rem); line-height: 1.4;
}

/* Gros chiffres en background de chaque slide */
.carrousel-cles .e-grid-base .e-flexbox-base::before {
	content: counter(slide-counter); position: absolute; top: -5%; left: 50%; transform: translate(-30%, -10%); 
    font-size: 360px; line-height: 360px; font-weight: 900; color: var(--color-primary); z-index: -1; pointer-events: none;
    width: 100%; text-align: center; opacity: 0; transition: all 0.5s ease-out 0.2s;
}
.carrousel-cles .swiper-slide-active .e-grid-base .e-flexbox-base:nth-child(1)::before {
	transform: translate(-50%, -10%); opacity: .4; transition: all 0.5s ease-out 0.2s;
}
.carrousel-cles .swiper-slide-active .e-grid-base .e-flexbox-base:nth-child(2)::before {
	transform: translate(-50%, -10%); opacity: .4; transition: all 0.5s ease-out 0.4s;
}


/* Breadcrumb */
.e-con .elementor-widget.elementor-widget.elementor-widget-breadcrumbs {
    color: #999999; margin-block-end: var(--space-medium); text-align: center;
}
@media (max-width: 992px) {
    .e-con .elementor-widget.elementor-widget.elementor-widget-breadcrumbs {
        
    }
}
.elementor-widget-breadcrumbs a {
    text-decoration: none; color: #999999;
}
.elementor-widget-breadcrumbs a:hover {
    text-decoration: underline; color: #999999;
}

.mask-coin-arrondi-gauche {
   -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1991.12 2819.27'%3E%3Cpath transform='scale(2.25)' d='M0,0h884.94s0,1253.01,0,1253.01l-798.19-1.26c-16.58-.07-32.5-8.28-44.43-22.93L0,1176.86V0Z' stroke-width='0'/%3E%3C/svg%3E"), linear-gradient(#000, #000), linear-gradient(#000, #000); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1991.12 2819.27'%3E%3Cpath transform='scale(2.25)' d='M0,0h884.94s0,1253.01,0,1253.01l-798.19-1.26c-16.58-.07-32.5-8.28-44.43-22.93L0,1176.86V0Z' stroke-width='0'/%3E%3C/svg%3E"), linear-gradient(#000, #000), linear-gradient(#000, #000); -webkit-mask-position: bottom left, top left, bottom right; mask-position: bottom left, top left, bottom right; -webkit-mask-repeat: no-repeat, no-repeat, no-repeat; mask-repeat: no-repeat, no-repeat, no-repeat; -webkit-mask-size: 1991px 2819px, 100% calc(100% - 2819px), calc(100% - 1991px) 100%; mask-size: 1991px 2819px, 100% calc(100% - 2819px), calc(100% - 1991px) 100%;
}

.mask-coin-arrondi-droite {
   -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1991.12 2819.27'%3E%3Cg transform='translate(1991.12, 0) scale(-1, 1)'%3E%3Cpath transform='scale(2.25)' d='M0,0h884.94s0,1253.01,0,1253.01l-798.19-1.26c-16.58-.07-32.5-8.28-44.43-22.93L0,1176.86V0Z' stroke-width='0'/%3E%3C/g%3E%3C/svg%3E"), linear-gradient(#000, #000), linear-gradient(#000, #000); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1991.12 2819.27'%3E%3Cg transform='translate(1991.12, 0) scale(-1, 1)'%3E%3Cpath transform='scale(2.25)' d='M0,0h884.94s0,1253.01,0,1253.01l-798.19-1.26c-16.58-.07-32.5-8.28-44.43-22.93L0,1176.86V0Z' stroke-width='0'/%3E%3C/g%3E%3C/svg%3E"), linear-gradient(#000, #000), linear-gradient(#000, #000); -webkit-mask-position: bottom right, top left, bottom left; mask-position: bottom right, top left, bottom left; -webkit-mask-repeat: no-repeat, no-repeat, no-repeat; mask-repeat: no-repeat, no-repeat, no-repeat; -webkit-mask-size: 1991px 2819px, 100% calc(100% - 2819px), calc(100% - 1991px) 100%; mask-size: 1991px 2819px, 100% calc(100% - 2819px), calc(100% - 1991px) 100%;
}

/* #endregion */





/*------------------------------------------------------------------
   @section Entête de page (page header)
------------------------------------------------------------------*/
/* #region */

#entete-page {
    position: relative;
}
#entete-page-contenu {
    position: relative; z-index: 1;
}

/* Hauteur de l'entête: photo ou slider */
.entete-page-standard .elementor-main-swiper:not(.elementor-thumbnails-swiper) {
    height: 60vh;
}
@media (max-width: 992px) {
    .entete-page-standard .elementor-main-swiper:not(.elementor-thumbnails-swiper) {
        height: 450px;
    }
}
.entete-page-accueil .elementor-main-swiper:not(.elementor-thumbnails-swiper) {
    height: 70vh;
}
@media (max-width: 992px) {
    .entete-page-accueil .elementor-main-swiper:not(.elementor-thumbnails-swiper) {
        height: 550px;
    }
}

/* Effet Ken burns effect sur les image du slider */
#entete-page .swiper-slide {
    overflow: hidden !important;
}
#entete-page .elementor-carousel-image {
    transform: scale(1); transition: transform 0s linear 0.5s;
}
#entete-page .swiper-slide-active .elementor-carousel-image,
#entete-page .swiper-slide-duplicate-active .elementor-carousel-image {
    transform: scale(1.15); transition: transform 8s ease-in-out 0s;
}



#entete-page-graphiques {
    position: absolute; top: 0px; right: 0px; width: 100%; height: 1px;
}
#entete-page-triangle {
    position: absolute; top: calc(var(--navbar-height) - 30px); right: 20px; width: 200px; height: 200px; z-index: 90; 
    transform-origin: top right; transition: all 1500ms ease-out; display: none;
    /*background: url(/images/triangle-sadc.svg) no-repeat center center; background-size: contain; display: none;*/
}

/* #endregion */





/*------------------------------------------------------------------
   @section Page d'accueil
------------------------------------------------------------------*/
/* #region */

:root {  --hauteur-entete-page-accueil: 550px; }
#entete-page.entete-page-accueil {
    
}


/* #endregion */


#masque-entete {
	-webkit-mask-image: url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20109.56%20143.85%22%3E%3Cpath%20d%3D%22M.15%2C108.87s13.8-12.24%2C22.91-16.01c0%2C0%2C10.51-5.01%2C11.58-13.3l.08-1.15s-.86.53-.82%2C1.31c0%2C0-.84-2.4%2C1.31-5.62.52-.78.49-1.79-.06-2.54-2.03-2.74-6.43-9.35-6.75-15.66%2C0%2C0-1.23%2C1.12.3%2C4.35%2C0%2C0-3.28-3.67-1.75-7.99%2C0%2C0-5.26-10.79-.27-16.64%2C0%2C0-2.7-6.48%2C6.32-11.66.55-.32.98-.82%2C1.17-1.43%2C1.16-3.84%2C6.22-18.05%2C16.41-14.34l5.42.16s-5.26-6.08-9.53-3.45c0%2C0%2C2.71-5.01%2C10.51%2C3.61l3.04.27s-4.82-6.46-4.82-8.27c0%2C0%2C5.37%2C7.56%2C6.02%2C7.72.66.16.16.16.16.16l6.73.44s1.86.11-.66-1.59c0%2C0-1.64-1.1-3.12-1.15%2C0%2C0%2C.27-.93%2C2.63-.93%2C0%2C0%2C.33-3.07-2.63-4.27%2C0%2C0%2C2.74.88%2C4.54%2C2.57%2C0%2C0%2C5.69-8.1%2C11.06.44%2C0%2C0%2C3.72%2C1.7%2C4.27%2C4.49%2C0%2C0%2C1.26.99%2C1.37%2C2.03%2C0%2C0%2C.27-3.34-1.2-6.02%2C0%2C0%2C2.74.93%2C2.3%2C6.24l3.67%2C2.85s12.59-3.23%2C12.1%2C6.08c0%2C0%2C.22-8.32-10.18-5.26%2C0%2C0%2C11.28%2C5.8%2C11.33%2C10.46%2C0%2C0-1.81-2.68-4.6-3.34%2C0%2C0%2C8.1%2C9.69%2C7.34%2C12.1%2C0%2C0%2C2.79%2C1.04%2C3.23%2C1.64%2C0%2C0-1.42-.6-2.52-.38%2C0%2C0%2C2.24%2C1.09%2C2.46%2C2.14%2C0%2C0-2.14-2.19-3.61-1.7%2C0%2C0-.82%2C6.67-4.87%2C9.09-.52.31-.74.93-.65%2C1.53.12.85.15%2C2.06-.28%2C3.18%2C0%2C0-.77%2C2.96-.05%2C4.22%2C0%2C0%2C.71.93%2C1.53.44%2C0%2C0-.22.99-1.15.71%2C0%2C0%2C.33.88%2C1.48.71%2C0%2C0-1.04.77-1.48.44%2C0%2C0%2C1.04.44%2C1.7.33%2C0%2C0-1.42.55-1.64.33%2C0%2C0%2C.44.49%2C1.15.38%2C0%2C0-1.15.44-1.37.16%2C0%2C0-.49.27-.49%2C1.37l-.6%2C3.34s2.03%2C3.07-.82%2C5.37c0%2C0-2.14%2C4.38-1.86%2C6.24.12.38.42%2C1.52-.04%2C2.83-.39%2C1.12-1.12%2C1.78-1.44%2C2.04.09.38.14.95.07%2C1.64-.1.9-.45%2C1.95-1.49%2C2.58%2C0%2C0-2.14%2C1.53-1.64%2C5.37%2C0%2C0-.27%2C7.72-8.38%2C4.71l-10.35-3.01s-13.44%2C10.46-16.23%2C20.8c0%2C0%2C15.77%2C9.03%2C19.22%2C15.27%2C0%2C0%2C4.52%2C2.96%2C4.27%2C11.83l.33%2C6.65-80.79.08.15-34.98Z%22%20stroke-width%3D%220%22%2F%3E%3C%2Fsvg%3E'); -webkit-mask-position: bottom left; -webkit-mask-size: auto 105%; -webkit-mask-repeat: no-repeat; mask-image: url('data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20109.56%20143.85%22%3E%3Cpath%20d%3D%22M.15%2C108.87s13.8-12.24%2C22.91-16.01c0%2C0%2C10.51-5.01%2C11.58-13.3l.08-1.15s-.86.53-.82%2C1.31c0%2C0-.84-2.4%2C1.31-5.62.52-.78.49-1.79-.06-2.54-2.03-2.74-6.43-9.35-6.75-15.66%2C0%2C0-1.23%2C1.12.3%2C4.35%2C0%2C0-3.28-3.67-1.75-7.99%2C0%2C0-5.26-10.79-.27-16.64%2C0%2C0-2.7-6.48%2C6.32-11.66.55-.32.98-.82%2C1.17-1.43%2C1.16-3.84%2C6.22-18.05%2C16.41-14.34l5.42.16s-5.26-6.08-9.53-3.45c0%2C0%2C2.71-5.01%2C10.51%2C3.61l3.04.27s-4.82-6.46-4.82-8.27c0%2C0%2C5.37%2C7.56%2C6.02%2C7.72.66.16.16.16.16.16l6.73.44s1.86.11-.66-1.59c0%2C0-1.64-1.1-3.12-1.15%2C0%2C0%2C.27-.93%2C2.63-.93%2C0%2C0%2C.33-3.07-2.63-4.27%2C0%2C0%2C2.74.88%2C4.54%2C2.57%2C0%2C0%2C5.69-8.1%2C11.06.44%2C0%2C0%2C3.72%2C1.7%2C4.27%2C4.49%2C0%2C0%2C1.26.99%2C1.37%2C2.03%2C0%2C0%2C.27-3.34-1.2-6.02%2C0%2C0%2C2.74.93%2C2.3%2C6.24l3.67%2C2.85s12.59-3.23%2C12.1%2C6.08c0%2C0%2C.22-8.32-10.18-5.26%2C0%2C0%2C11.28%2C5.8%2C11.33%2C10.46%2C0%2C0-1.81-2.68-4.6-3.34%2C0%2C0%2C8.1%2C9.69%2C7.34%2C12.1%2C0%2C0%2C2.79%2C1.04%2C3.23%2C1.64%2C0%2C0-1.42-.6-2.52-.38%2C0%2C0%2C2.24%2C1.09%2C2.46%2C2.14%2C0%2C0-2.14-2.19-3.61-1.7%2C0%2C0-.82%2C6.67-4.87%2C9.09-.52.31-.74.93-.65%2C1.53.12.85.15%2C2.06-.28%2C3.18%2C0%2C0-.77%2C2.96-.05%2C4.22%2C0%2C0%2C.71.93%2C1.53.44%2C0%2C0-.22.99-1.15.71%2C0%2C0%2C.33.88%2C1.48.71%2C0%2C0-1.04.77-1.48.44%2C0%2C0%2C1.04.44%2C1.7.33%2C0%2C0-1.42.55-1.64.33%2C0%2C0%2C.44.49%2C1.15.38%2C0%2C0-1.15.44-1.37.16%2C0%2C0-.49.27-.49%2C1.37l-.6%2C3.34s2.03%2C3.07-.82%2C5.37c0%2C0-2.14%2C4.38-1.86%2C6.24.12.38.42%2C1.52-.04%2C2.83-.39%2C1.12-1.12%2C1.78-1.44%2C2.04.09.38.14.95.07%2C1.64-.1.9-.45%2C1.95-1.49%2C2.58%2C0%2C0-2.14%2C1.53-1.64%2C5.37%2C0%2C0-.27%2C7.72-8.38%2C4.71l-10.35-3.01s-13.44%2C10.46-16.23%2C20.8c0%2C0%2C15.77%2C9.03%2C19.22%2C15.27%2C0%2C0%2C4.52%2C2.96%2C4.27%2C11.83l.33%2C6.65-80.79.08.15-34.98Z%22%20stroke-width%3D%220%22%2F%3E%3C%2Fsvg%3E'); mask-position: bottom left; mask-size: auto 105%; mask-repeat: no-repeat;
}



/*------------------------------------------------------------------
   @section Blog
   @description Défini ici parce que le widget "Publications" est utilisé à plusieurs endroits dans le site web
------------------------------------------------------------------*/
/* #region */


/* Posts Widget et Widget Article Carousel */
.elementor-post .elementor-post__thumbnail__link, .widget-articles .elementor-widget-theme-post-featured-image {
    margin-bottom: 20px !important;
}
.widget-articles .elementor-widget-theme-post-featured-image img {
    border-radius: var(--radius-large);
}
.elementor-post .elementor-post__text, .widget-articles .elementor-post__text {
    padding:0 15px 0 0; margin: 0 ; text-align: center;
}
.elementor-posts .elementor-post__title, .widget-articles .elementor-widget-theme-post-title .elementor-heading-title {
    font-size: var(--texte-small); font-weight: 900; line-height: 1.2; margin-bottom: 5px; position: relative;
    font-family: Gazpacho; color: var(--color-vert-secondaire);
}
.elementor-posts .elementor-post__title a, .widget-articles .elementor-widget-theme-post-title .elementor-heading-title a {
    color: var(--color-gris); text-decoration: none !important;
}
.elementor-posts .elementor-post__title a:hover, .widget-articles .elementor-widget-theme-post-title .elementor-heading-title a:hover {
    color: var(--color-primary);
}
.widget-articles .elementor-widget-theme-post-title .elementor-heading-title {
    margin-bottom: 12px;
}
.elementor-posts .elementor-post__meta-data {
    font-size: var(--texte-xxxsmall); color: #818181;
}
.elementor-posts .elementor-post__badge {
    position: absolute !important; top: auto !important; bottom:10px !important; right: 10px !important; margin: 0 !important;
}
.elementor-posts .elementor-post__excerpt p, .widget-articles .elementor-widget-theme-post-excerpt {
    display: inline-block; color: var(--color-gris); font-size: var(--texte-xxsmall); line-height: 1.3; /* font-size: inherit; */
}
.elementor-posts .elementor-post__excerpt p::after, .widget-articles .elementor-widget-theme-post-excerpt p::after {
    content: "...";
}
.elementor-posts .elementor-post__read-more, .widget-articles .elementor-post__read-more {
    font-size: var(--texte-xxsmall); color: var(--color-primary); font-weight: 700;
}
.elementor-posts--skin-classic .elementor-post {
    overflow: visible;
}


/* Single Post */
.single-post .elementor :is(h1.e-heading-base) {
    font-size: clamp(2.25rem, 1.83rem + 1.9vw, 3.25rem);
    line-height: 1.1; font-weight: 800; margin: 0 0 0 0; padding-right: 0; 
    text-align: center; color: var(--color-primary);
}
.single-post .elementor :is(h2, h3, h4) {
    font-family: Gazpacho; font-weight: 800; color: var(--color-primary);
}
.single-post .entete-page-standard #entete-page-contenu > * {
    padding-right: 100px; padding-left: 100px;
}
@media (max-width: 992px) { .single-post .entete-page-standard #entete-page-contenu > * { padding-right: 60px; padding-left: 60px; } }
@media (max-width: 576px) { .single-post .entete-page-standard #entete-page-contenu > * { padding-right: 0; padding-left: 0; } }

.elementor-widget-theme-post-content :is(p, figure, ul, ol, h2, h3, h4, h5, h6)  {
   margin: 0 0 2rem 0; line-height: 1.3;
}
.elementor-widget-theme-post-content :is(h2, h3, h4, h5, h6)  {
   margin-top: 3.5rem;
}
.elementor-widget-theme-post-content :is(figure).aligncenter  {
   margin-right: auto; margin-left: auto;
}
.elementor-widget-theme-post-content p:has(+ ul) {
    margin-bottom: .75rem;
}
@media (max-width: 576px) {
.elementor-widget-theme-post-content .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image)  {
   width: 50%;
}
}
.elementor-widget-theme-post-content .wp-block-button__link {
    color: #fff;
}
.elementor-pagination {
    margin-top: 25px;
}


/* #endregion */





/*------------------------------------------------------------------
   @section Utiles
------------------------------------------------------------------*/
/* #region */

/* Pour faire en sorte que le width d'un container soit de la même largeur que son contenu */
.fit-content { 
   width: fit-content; 
}
.content-width {
   max-width:var(--content-width);
}
/* Bouton pour les vidéos en popup */
.bouton-video-popup {
    border-radius: 0 !important; text-transform: none !important;
}

/* Lien flèche */
.lien-fleche {
  position: relative; display: inline-block;
}
.lien-fleche > a {
  text-decoration: none !important; display: flex !important; align-items: flex-start !important;
}
.lien-fleche > a::after {
  content: "> "; display: block; transition: all 500ms ease-out; margin-left: 5px; font-weight: bold;
  font-size: 1.4rem; line-height: 1; font-family: 'Trebuchet MS', sans-serif;
  display: flex; justify-content: flex-start; align-items: flex-start; flex-wrap: nowrap;
}
.lien-fleche > a:hover::after {
  transform: translateX(5px);
}

/* Mosaïque de 3 boutons */
.mosaique-boutons .mosaique-bouton-1 .bouton-vedette:nth-child(1) {
    min-height: 500px;
}
@media (max-width: 767px) {
    .mosaique-boutons .mosaique-bouton-1 .bouton-vedette:nth-child(1),
    .mosaique-boutons .mosaique-boutons-2-3 .bouton-vedette:nth-child(1),
    .mosaique-boutons .mosaique-boutons-2-3 .bouton-vedette:nth-child(2) {
        min-height: 250px;
    }
}
.mosaique-boutons .bouton-vedette:nth-child(2) {
    
}


/* Accordeon custom */
.accordeon-item-entete {
    position: relative;
}
.accordeon-item-entete:hover {
    cursor: pointer;
}
.accordeon-item-entete::after {
    content: ""; width: 30px; height: 30px; position: absolute; top: 50%; right: 0; transform: translateY(-50%); 
    transition: all 300ms ease-out;
    background: url(/images/assets/icon-fleche-droite-cercle-vert.svg) no-repeat center center; background-size: contain;
}
.is-open .accordeon-item-entete::after {
    transform: translateY(-50%) rotate(90deg);
}
.accordeon-large .accordeon-item-entete::after {
    width: 50px; height: 50px;
}
.elementor .e-flexbox-base.accordeon-item-titre {
    padding: 0 50px 0 0; 
}
.elementor .e-flexbox-base.accordeon-item-contenu {
    display: none;
}
.elementor .is-open .e-flexbox-base.accordeon-item-contenu {
    display: block;
}
.elementor-editor-active .e-flexbox-base.accordeon-item-contenu {
    display: block;
}

/* Accordeon Elementor v3 */
.elementor-widget-n-accordion .e-n-accordion-item {
    padding-block-start: 10px; padding-block-end: 10px; border-block-end-width: 1px; 
    border-bottom: 2px solid var(--color-primary); position: relative;
}
.elementor-widget-n-accordion .e-n-accordion-item-title {
    padding: 0;
}
.elementor-widget-n-accordion .e-n-accordion-item[open] .e-n-accordion-item-title-icon {
    transform: rotate(90deg); transition: all 300ms ease-out;
}

/* #endregion */





/*------------------------------------------------------------------
   @section Animations
------------------------------------------------------------------*/
/* #region */


/* Animation de type "wow fade-in" de tous les blocs direct du conteneur data-elementor-type="wp-page", 
   pour ne pas à avoir à le faire manuellement sur tous les widgets de la page */

/* État de base des containers de premier niveau */
div[data-elementor-type^="wp-"] > .elementor-element {
   position: relative; z-index: 100; will-change: transform, opacity;
}

/* Masqué initialement (uniquement si JS est activé). on peut ajouter la class .inview-anim-custom au container pour exclure */
.js-support div[data-elementor-type^="wp-"] > .elementor-element:not(#entete-page, .entete-photo, [class*="inview-anim-"], [class*="onscroll-move-"]) {
   opacity: 0; transform: translateY(2rem); transition: all 1s; visibility: hidden; /* Pour la performance */
}

/* Apparition dans le viewport */
div[data-elementor-type^="wp-"] > .elementor-element:not(#entete-page, .entete-photo, [class*="inview-anim-"], [class*="onscroll-move-"]).inviewport {
   opacity: 1; transform: translateY(0rem); visibility: visible;
}

/* Prépare ces animations */
div[data-elementor-type^="wp-"] > .elementor-element[class*="onscroll-move-"] {
   will-change: transform, opacity;
}


/* Masquage des animations spécifiques (uniquement si JS est activé) */
.js-support .inview-anim-right-left, .js-support .inview-anim-left-right, 
.js-support .inview-anim-fade-in, .js-support .inview-anim-zoom-in, .js-support .onscroll-move-right-left, 
.js-support .onscroll-move-left-right, .js-support div[data-elementor-type^="wp-"] > .elementor-element div[class*="inview-anim-"],
.js-support .active-scroll {
   opacity: 0; will-change: transform, opacity; transition: all 0s; visibility: hidden; /* Pour la performance */
}

/* Règle finale pour l'apparition des animations customisées */
.inview-anim-custom.inviewport {
   opacity: 1 !important; visibility: visible !important;
}



/* Animation Fade-in Up */
.js-support div[data-elementor-type^="wp-"] > .elementor-element div.inview-anim-fade-in-up {
    opacity: 0; transform: translateY(2rem); transition: all 1s; visibility: hidden; /* Pour la performance */
}
.js-support div[data-elementor-type^="wp-"] > .elementor-element div.inview-anim-fade-in-up.inviewport {
   opacity: 1; transform: translateY(0rem); visibility: visible;
}


/* Animation Reveal from right */
/* État initial du widget */
.inview-anim-reveal-right {
    clip-path: inset(0 100% 0 0); transition-duration: var(--e-inter-anim-duration, 1.2s) !important; transition-delay: var(--e-inter-anim-delay, 0s) !important; transition-property: clip-path !important; transition-timing-function: cubic-bezier(0.77, 0, 0.175, 1); opacity: 1 !important; 
}
/* État actif : Déclenché par le moteur d'interaction Elementor - On cible le moment où Elementor force l'opacité à 1 ou ajoute ses attributs de data-interaction */
.inview-anim-reveal-right[style*="opacity: 1"], .inview-anim-reveal-right[data-interactions*="active"], .inview-anim-reveal-right.elementor-animated {
    clip-path: inset(0 0 0 0) !important; visibility: visible !important;
}




/* Animations Fade-in en Stagger (apparait un après l'autre avec un décalage) - https://gemini.google.com/app/78bb11f66676bfe3 */

@keyframes staggerFadeIn { 
   from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } 
}

.js-support div[data-elementor-type^="wp-"] > .elementor-element div[class*="inview-anim-fade-in-up-stagger"] {
    opacity: 1; transform: none; visibility: visible;
}
.js-support div[data-elementor-type^="wp-"] > .elementor-element div[class*="inview-anim-fade-in-up-stagger"] > *, 
.js-support div[data-elementor-type^="wp-"] > .elementor-element div[class*="inview-anim-fade-in-up-stagger"] .swiper-slide { 
   opacity: 0; 
}

.js-support div[data-elementor-type^="wp-"] > .elementor-element div[class*="inview-anim-fade-in-up-stagger"].inviewport > *, 
.js-support div[data-elementor-type^="wp-"] > .elementor-element div[class*="inview-anim-fade-in-up-stagger"].inviewport .swiper-slide { 
   animation: staggerFadeIn 0.8s ease forwards; 
}

.inview-anim-fade-in-up-stagger > *:nth-child(1), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(1) { animation-delay: 0.2s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(2), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(2) { animation-delay: 0.4s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(3), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(3) { animation-delay: 0.6s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(4), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(4) { animation-delay: 0.8s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(5), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(5) { animation-delay: 1.0s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(6), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(6) { animation-delay: 1.2s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(7), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(7) { animation-delay: 1.4s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(8), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(8) { animation-delay: 1.6s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(9), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(9) { animation-delay: 1.8s !important; }
.inview-anim-fade-in-up-stagger > *:nth-child(10), .inview-anim-fade-in-up-stagger .swiper-slide:nth-child(10) { animation-delay: 2.0s !important; }


/* Animation du cercle pointillé svg */
.inview-anim-cercle-pointille-masque {
	opacity: 1 !important;
}
.inview-anim-cercle-pointille-masque .masque-cercle {
	stroke-dasharray: 613; stroke-dashoffset: 613; transition: stroke-dashoffset 2s ease-out; opacity: 1 !important;
}
.inview-anim-cercle-pointille-masque[style*="opacity: 1"] {
	visibility: visible !important;
}
.inview-anim-cercle-pointille-masque[style*="opacity: 1"] .masque-cercle {
	stroke-dashoffset: 0;
}

/* Animation effet de transition sur le carrousel de photo : photos qui apparaissent une après l'autre */
/*.swiper-wrapper {
    transition-duration: 0ms !important;
}*/
.e-n-carousel.swiper {
    overflow: visible;
}
.e-n-carousel .swiper-slide .carrousel-photo-1, .e-n-carousel .swiper-slide .carrousel-photo-2, .e-n-carousel .swiper-slide .carrousel-photo-3 {
  transform: translateX(50px); opacity: 0; transition: all .5s ease-out;
}
.e-n-carousel .swiper-slide-active .carrousel-photo-1 {
  transform: translateX(0); opacity: 1; transition-delay: 0ms;
}
.e-n-carousel .swiper-slide-active .carrousel-photo-2 {
  transform: translateX(0); opacity: 1; transition-delay: 300ms;
}
.e-n-carousel .swiper-slide-active .carrousel-photo-3 {
  transform: translateX(0); opacity: 1; transition-delay: 600ms;
}


/* Pour voir les widgets avec animation dans le page builder */
.elementor-editor-active .inview-anim-fade-in-up, .elementor-editor-active .inview-anim-reveal-right,
.elementor-editor-active .inview-anim-fade-in-up-stagger > *, .elementor-editor-active .inview-anim-fade-in-up-stagger .swiper-slide {
    clip-path: inset(0 0 0 0) !important; opacity: 1 !important; transform: none !important;
}


/* #endregion */





/*------------------------------------------------------------------
   @section Plugin Forminator
------------------------------------------------------------------*/
/* #region */

body .forminator-ui.forminator-custom-form .forminator-custom-form {
    
}
/* Row */
body .forminator-ui.forminator-custom-form:not(.forminator-size--small)[data-grid=open] .forminator-row:not(:last-child) {
    margin-bottom: 50px;
}

body .forminator-ui.forminator-custom-form .forminator-label {
    font-size: 1rem !important; line-height: 1.2 !important; font-weight: 400 !important;
    display: inline-block !important; margin-bottom: 10px !important;
}
body .forminator-ui.forminator-custom-form .forminator-description {
    display: inline-block; float: right;
}
body .forminator-ui.forminator-custom-form .forminator-input, body .forminator-ui.forminator-custom-form .forminator-textarea {
    border: 1px solid var(--color-vert-tres-pale); border-radius: 10px !important;
}

/* Supprimer le contour bleu de focus sur le quiz Forminator */
body .forminator-ui.forminator-custom-form .forminator-ui:focus, 
body .forminator-ui.forminator-custom-form .forminator-ui:focus-within, 
body .forminator-ui.forminator-custom-form .forminator-ui:focus-visible, 
body .forminator-ui.forminator-custom-form .forminator-quiz:focus {
   outline: none !important; box-shadow: none !important;
}

/* Field group */
body .forminator-ui.forminator-custom-form .forminator-repeater-field {
    background: none !important; border-radius: 0 !important; box-shadow: none !important; padding: 0 !important;
}
/* Titre du Field group */
body .forminator-ui.forminator-custom-form .forminator-repeater-label {
    color: var(--color-primary) !important; font-size: 1.2rem !important; margin: 20px 0 20px 0 !important;
}
body .forminator-ui.forminator-custom-form:not(.forminator-size--small)[data-grid=open] .forminator-repeater-field .forminator-row:not(:last-child) {
    margin-bottom: 20px;
}

/* Bouton Submit */
body .forminator-ui.forminator-custom-form .forminator-row-last {
    text-align: center;
}
body .forminator-ui.forminator-custom-form .forminator-button-submit {
    font-size: 1rem !important; text-transform: uppercase; font-weight: 800 !important; border-radius: 500px !important; padding: 10px 30px !important; background-color: var(--color-primary);
}
body .forminator-ui.forminator-custom-form .forminator-button-submit:hover {
    box-shadow: none !important; background-color: var(--color-vert-fonce) !important;
}

/* Mise en page compact */
body .forminator-compact .forminator-ui.forminator-custom-form:not(.forminator-size--small)[data-grid=open] .forminator-row:not(:last-child) {
    margin-bottom: 25px;
}

/* #endregion */







/* Ici temporairement le temps que la V4 soit plus stable */

.texte-xxxlarge { font-size: var(--texte-xxxlarge); line-height: 1.1; }
.texte-xxlarge { font-size: var(--texte-xxlarge); line-height: 1.1; }
.texte-xlarge { font-size: var(--texte-xlarge); line-height: 1.1; }
.texte-large { font-size: var(--texte-large); line-height: 1.2; }
.texte-xmedium { font-size: var(--texte-xmedium); line-height: 1.2; }
.texte-medium { font-size: var(--texte-medium); line-height: 1.2; }
.texte-small { font-size: var(--texte-small); line-height: 1.2; }
.texte-xsmall { font-size: var(--texte-xsmall); line-height: 1.2; }
.texte-standard { font-size: var(--texte-standard); line-height: 1.2; }
.texte-xxsmall { font-size: var(--texte-xxsmall); line-height: 1.2; }

.gap-xxlarge { gap: var(--space-xxlarge); }
.gap-xlarge { gap: var(--space-xlarge); }
.gap-large { gap: var(--space-large); }
.gap-medium { gap: var(--space-medium); }
.gap-standard { gap: var(--space-standard); }
.gap-small { gap: var(--space-small); }
.gap-xsmall { gap: var(--space-xsmall); }
.gap-xxsmall { gap: var(--space-xxsmall); }

.section-standard { padding-top: var(--section-standard); padding-bottom: var(--section-standard); }
.section-medium { padding-top: var(--section-medium); padding-bottom: var(--section-medium); }
.section-small { padding-top: var(--section-small); padding-bottom: var(--section-small); }
.section-marges-gauche-droite { padding-right: var(--section-marges-gauche-droite); padding-left: var(--section-marges-gauche-droite); }


.radius-large { border-radius: var(--radius-large); }
.radius-small { border-radius: var(--radius-small); }

