/*
Theme Name: Hello Elementor - Divinemenciel
Template: hello-elementor
Author: Divinemenciel
Description: Thème enfant Divinemenciel
Version: 1.0.1772013801
Updated: 2026-02-25 11:03:21

*/

body {
    font-size: 1.6rem;
}

:root {
    font-size: 62.5%;
    --ee-primary-color: #372c1c;
    --ee-accent-color: #90ab0d;
}

a {
    color: var(--ee-primary-color);
}

a:hover {
    color: #90ab0d;
}

body.disable-scroll {
    overflow: hidden;
}

.btn-anime a,
.btn-anime-qty,
.e-form__buttons {
    position: relative;
}

.btn-anime a::after,
.btn-anime-qty::after,
.e-form__buttons::after {
    top: 0;
    right: 0;
}

.btn-anime a::before,
.btn-anime-qty::before,
.e-form__buttons::before {
    bottom: 0;
    left: 0;
}

/* .btn-anime a::before,
.btn-anime a::after,
.btn-anime-qty::before,
.btn-anime-qty::after {
    content: '';
    background-color: var(--e-global-color-accent);
    height: 2px;
    position: absolute;
    -moz-transition: all .3s ease;
    -webkit-transition: all .3s ease;
    -o-transition: all .3s ease;
    transition: all .3s ease;
    width: 0;
} */

/* .btn-anime a:hover::before,
.btn-anime a:hover::after,
.btn-anime-qty:hover::before,
.btn-anime-qty:hover::after,
.e-form__buttons:hover::before,
.e-form__buttons:hover::after {
    -moz-transition: all .3s ease;
    -webkit-transition: all .3s ease;
    -o-transition: all .3s ease;
    transition: all .3s ease;
    width: 100%;
} */

.frise:before {
    content: " ";
    position: absolute;
    top: -100px;
    left: 50%;
    display: block;
    background-color: var(--e-global-color-16f25b1) !important;
    margin-top: auto;
    margin-right: auto;
    margin-bottom: auto;
    margin-bottom: 30px;
    margin-left: auto;
    height: 100%;
    width: 1px;
}

.ligne:before {
    content: " ";
    position: absolute;
    top: 50%;
    left: 0px;
    display: block;
    background-color: var(--e-global-color-16f25b1) !important;
    /* margin-top: auto;
    margin-right: auto;
    margin-bottom: auto;
    margin-bottom: 30px;
    margin-left: auto; */
    height: 1px;
    width: 100%;
}

/* ******************************************************** 

HEADER ACCUEIL STICKY LOGO

******************************************************** */
/* Logo bordeaux : invisible par défaut */
.page-id-92 .logo-bordeaux,
.page-id-2511 .logo-bordeaux {
    display: none;
    pointer-events: none;
    transition: opacity 0.4s ease;
}

/* Logo blanc : visible par défaut */
.page-id-92 .logo-blanc,
.page-id-2511 .logo-blanc {
    pointer-events: auto;
    transition: opacity 0.4s ease;
}

/* Au scroll : inversion des logos */
.page-id-92 .elementor-sticky--effects .logo-blanc,
.page-id-2511 .elementor-sticky--effects .logo-blanc {
    display: none;
    pointer-events: none;
}

.page-id-92 .elementor-sticky--effects .logo-bordeaux,
.page-id-2511 .elementor-sticky--effects .logo-bordeaux {
    display: block;
    pointer-events: auto;
}

.page-id-92 .elementor-sticky--effects,
.page-id-2511 .elementor-sticky--effects{
    background-color: #F6F0E5;
}

@media screen and (min-width: 768px) {
    /* Changement de couleur des liens du menu : blanc → bordeaux */
    .page-id-92 .elementor-sticky--effects .elementor-nav-menu .elementor-item,
    .page-id-2511 .elementor-sticky--effects .elementor-nav-menu .elementor-item {
        color: var(--e-global-color-primary) !important;
        
    }
    
    /* Pseudo-élément ::after des liens (soulignement / animation) */
    .page-id-92 .elementor-sticky--effects .elementor-nav-menu .elementor-item::after,
    .page-id-2511 .elementor-sticky--effects .elementor-nav-menu .elementor-item::after {
        background-color: var(--e-global-color-primary) !important;
    }
    
    /* Hover des liens : orange (sticky et non sticky) */
    .page-id-92 .elementor-sticky--effects .elementor-nav-menu .elementor-item:hover,
    .page-id-2511 .elementor-sticky--effects .elementor-nav-menu .elementor-item:hover {
        color: var(--e-global-color-accent) !important;
    }
    
    /* After des liens au hover : orange */
    .page-id-92 .elementor-sticky--effects .elementor-nav-menu .elementor-item:hover::after,
    .page-id-2511 .elementor-sticky--effects .elementor-nav-menu .elementor-item:hover::after {
         background-color: var(--e-global-color-accent) !important;
    }
}
/* ===================== BURGER ===================== */


/* Burger : bordeaux au scroll */
.page-id-92 .elementor-sticky--effects .eenov-burger .burger__ligne,
.page-id-2511 .elementor-sticky--effects .eenov-burger .burger__ligne {
    stroke: var(--e-global-color-primary) !important;
}

/* ===================== LANGUAGE SWITCH ===================== */

.wpml-switch-mobile .wpml-ls-link {
    color: var(--e-global-color-primary) !important;
}





/* ******************************************************** 

NAVIGATION SECONDAIRE STICKY

******************************************************** */
.section-title {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    padding-bottom: 20px;
    gap: 15px;
}

.section-title::before {
    content: "";
    display: inline-block;
    width: 45px;
    height: 50px;
    background: url("https://refonte.chateau-marquis-de-terme.com/wp-content/uploads/Monogramme-O.svg") no-repeat center / contain;

}

@media (max-width: 768px) {

    .section-title::before {
        display: none;
    }

}




/* ******************************************************** 

MARGIN LEGENDES

******************************************************** */


.legende-txt p {
    margin: 0px !important;
}

/* ******************************************************** 

HERO LOGO STAMP

******************************************************** */

.hero-logo{
    position: absolute;
    bottom: 0px;
    right: 0px;
}


/* ******************************************************** 

CARTE EQUIPE SURVOL

******************************************************** */


.carte-equipe{
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease-in-out;
  }
  
  .carte-equipe-verso{
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  
  .carte-equipe:hover .carte-equipe-verso{
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

/* ******************************************************** 

GALERIE IMAGES


******************************************************** */


.galerie figure {
    height: 400px;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    object-fit: fill;
}

.galerie img {
    height: 100%;
    width: 100%;
    max-width: unset;
    object-fit: cover;
}

.galerie .swiper-slide {
    width: 800px !important;
}

.galerie-scroll {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.galerie-scroll>* {
    flex: 0 0 auto;
    scroll-snap-align: start;
}

/* ******************************************************** 

GALERIE IMAGES CHAMBRES

******************************************************** */


/* transparence carrousel */
.galerie-chambre .swiper-slide {
    opacity: 0 !important;
    visibility: hidden;
    transition-property: opacity !important;
}

.galerie-chambre .swiper-slide-active {
    opacity: 1 !important;
    visibility: visible;
}

.galerie-chambre .swiper-slide-next,
.galerie-chambre .swiper-slide-prev {
    opacity: 0 !important;
    visibility: hidden;
}

.galerie-chambre .swiper-slide img {
    display: block;
    width: 100%;
}

.galerie-chambre figure {
    height: 400px;
    overflow: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    object-fit: fill;
}

.galerie-chambre img {
    height: 100%;
    width: 100%;
    max-width: unset;
    object-fit: cover;
}



/* ******************************************************** 

ACCORDEONS EXPERIENCES


******************************************************** */

/* La carte */
.tap-container {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    /* hauteur “fermée” */
    min-height: 100px;
    display: flex;
    align-items: end;
    justify-content: center;
}

/* Les 2 titres se superposent au centre */

.tap-container .tab-title-close,
.tap-container .tab-title-hover {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -25%;
    /* ajuste la marge bas */
    top: auto;
    margin: 0;
    z-index: 2;
    transition: opacity .25s ease;
}


/* Par défaut : titre normal visible, "en savoir plus" caché */
.tap-container .tab-title-close {
    opacity: 1;
}

.tap-container .tab-title-hover {
    opacity: 0;
}

/* Au survol (seulement quand c'est fermé) */
.tap-container:not(.is-open):hover .tab-title-close {
    opacity: 0;
}

.tap-container:not(.is-open):hover .tab-title-hover {
    opacity: 1;
}

/* Quand c'est ouvert : on cache les titres */
.tap-container.is-open .tab-title-close,
.tap-container.is-open .tab-title-hover {
    opacity: 0;
    pointer-events: none;
}

/* Le contenu (accordion) */
.tap-container .tab-txt-open {
    width: 100%;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: max-height .55s ease, opacity .25s ease, transform .55s ease;
    z-index: 2;
}

/* Ouvert : visible (le max-height sera set en JS) */
.tap-container.is-open .tab-txt-open {
    opacity: 1;
    transform: translateY(0);
}

/* Optionnel : pour que le texte soit centré verticalement dans la carte */
.tap-container .tab-txt-open .elementor-container {
    /* min-height: 220px; */
    /* ajuste selon ton design */
    /* align-items: flex-end; */
}

/* Optionnel : si tu as un overlay Elementor */
.tap-container .elementor-background-overlay {
    z-index: 1;
}


.txt-no-margin {
    margin: 0px !important;
}

@media screen and (min-width: 768px) {

    /* La carte */
    .tap-container {
        min-height: 200px;
    }

    .tap-container .tab-title-close,
    .tap-container .tab-title-hover {
        bottom: -5%;
    }
}


/* ******************************************************** 

ACCORDEONS EXPERIENCES CHAMBRES CARROUSEL

******************************************************** */

/* La carte */
.tap-container-carrousel {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    /* hauteur “fermée” */
    min-height: 100px;
    display: flex;
    align-items: end;
    justify-content: center;
}

/* Les 2 titres se superposent au centre */

.tap-container-carrousel .tab-title-close-carrousel,
.tap-container-carrousel .tab-title-hover-carrousel {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -25%;
    /* ajuste la marge bas */
    top: auto;
    margin: 0;
    z-index: 2;
    transition: opacity .25s ease;
}


/* Par défaut : titre normal visible, "en savoir plus" caché */
.tap-container-carrousel .tab-title-close-carrousel {
    opacity: 1;
}

.tap-container-carrousel .tab-title-hover-carrousel {
    opacity: 0;
}

/* Au survol (seulement quand c'est fermé) */
.tap-container-carrousel:not(.is-open):hover .tab-title-close-carrousel {
    opacity: 0;
}

.tap-container-carrousel:not(.is-open):hover .tab-title-hover-carrousel {
    opacity: 1;
}

/* Quand c'est ouvert : on cache les titres */
.tap-container-carrousel.is-open .tab-title-close-carrousel,
.tap-container-carrousel.is-open .tab-title-hover-carrousel {
    opacity: 0;
    pointer-events: none;
}

/* Le contenu (accordion) */
.tap-container-carrousel .tab-txt-open-carrousel {
    width: 100%;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    transform: translateY(10px);
    transition: max-height .55s ease, opacity .25s ease, transform .55s ease;
    z-index: 2;
}

/* Ouvert : visible (le max-height sera set en JS) */
.tap-container-carrousel.is-open .tab-txt-open-carrousel {
    opacity: 1;
    transform: translateY(0);
}

/* Optionnel : pour que le texte soit centré verticalement dans la carte */
.tap-container-carrousel .tab-txt-open-carrousel .elementor-container-carrousel {
    min-height: 220px;
    /* ajuste selon ton design */
    align-items: flex-end;
}

/* Optionnel : overlay Elementor */
.tap-container-carrousel .elementor-background-overlay {
    z-index: 1;
}


.txt-no-margin {
    margin: 0px !important;
}

@media screen and (min-width: 768px) {

    /* La carte */
    .tap-container-carrousel {
        min-height: 200px;
    }

    .tap-container-carrousel .tab-title-close-carrousel,
    .tap-container-carrousel .tab-title-hover-carrousel {
        bottom: -5%;
    }
}



/* ******************************************************** 

CALENDRIER FLATPICKR


******************************************************** */

.booking-flatpickr-input {
    display: none !important;
}



.flatpickr-current-month {
    display: flex !important;
    text-align: center !important;
    align-items: center !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange:focus,
.flatpickr-day.selected:hover,
.flatpickr-day.startRange:hover,
.flatpickr-day.endRange:hover,
.flatpickr-day.selected.prevMonthDay,
.flatpickr-day.startRange.prevMonthDay,
.flatpickr-day.endRange.prevMonthDay,
.flatpickr-day.selected.nextMonthDay,
.flatpickr-day.startRange.nextMonthDay,
.flatpickr-day.endRange.nextMonthDay {
    background: var(--e-global-color-primary) !important;
    border-color: var(--e-global-color-primary) !important;
}

.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),
.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),
.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)) {
    -webkit-box-shadow: -10px 0 0 var(--e-global-color-primary) !important;
    box-shadow: -10px 0 0 var(--e-global-color-primary) !important;
}




/* ******************************************************** 

CARTE INTERACTIVE

******************************************************** */
.pin-card-1,
.pin-card-2,
.pin-card-3,
.pin-card-4,
.pin-card-5 {
    position: absolute;
    left: 0%;
    bottom: 0%;
    z-index: 10;
    max-width: 700px !important;
    max-height: 800px;
    padding: 40px;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease, visibility 0s linear .25s;
}

/* Encarts ouverts */
.pin-card-1.is-active,
.pin-card-2.is-active,
.pin-card-3.is-active,
.pin-card-4.is-active,
.pin-card-5.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .25s ease, transform .25s ease, visibility 0s;
}


.map {
    position: relative;

}

/* le chateau */
.map .pin-1 {
    width: fit-content;
    position: absolute;
    left: 70%;
    top: 24%;
    transform: translate(-50%, -100%);

}

/* le restaurant */
.map .pin-2 {
    width: fit-content;
    position: absolute;
    left: 39%;
    top: 46%;
    transform: translate(-50%, -100%);

}

/* L'estonnat */
.map .pin-3 {
    width: fit-content;
    position: absolute;
    left: 37%;
    top: 34%;
    transform: translate(-50%, -100%);

}

/* La cour */
.map .pin-4 {
    width: fit-content;
    position: absolute;
    left: 32%;
    top: 57%;
    transform: translate(-50%, -100%);

}

/* La vigne */
.map .pin-5 {
    width: fit-content;
    position: absolute;
    left: 55%;
    top: 38%;
    transform: translate(-50%, -100%);

}

.close-popup-card {
    position: absolute;
    right: 25px;
    top: 25px;
    margin: 0px !important;
    width: fit-content !important;
    pointer-events: auto;
    z-index: 10;
    cursor: pointer;
}

.pin-card-image {
    height: 200px;
}


.pin-svg svg path{
    transition: fill .25s ease;
  }
  
  /* Fond du pin */
  .pin-svg:hover svg path.cls-2{
    fill: var( --e-global-color-primary ) !important;
  }


  .pin-svg.is-active svg path.cls-2{
    fill: var( --e-global-color-primary ) !important;
  }
  

  
@media screen and (min-width: 1024px) {

    .pin-card-1,
    .pin-card-2,
    .pin-card-3,
    .pin-card-4,
    .pin-card-5 {
        left: 2%;
        bottom: 10%;
        padding: 0px;
    }


    /* le chateau */
    .map .pin-1 {
        left: 72%;
        top: 25%;

    }

    /* le restaurant */
    .map .pin-2 {
        left: 54%;
        top: 47%;

    }

    /* L'estonnat */
    .map .pin-3 {
        left: 53%;
        top: 35%;

    }

    /* La cour */
    .map .pin-4 {
        left: 50%;
        top: 58%;

    }

    /* La vigne */
    .map .pin-5 {
        left: 63%;
        top: 39%;

    }

    .close-popup-card {
        right: 50px;
        top: 50px;
    }


    .pin-card-image {
        height: unset;
    }

}



/* ******************************************************** 

GALERIE SPLIDE

******************************************************** */

  .carousel-wrapper {
    overflow: hidden;
    width: 100%;
  }
  
  .carousel-track {
    display: flex;
    gap: 50px;
    overflow-x: auto;
    scroll-behavior: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;         /* cache la scrollbar Firefox */
    cursor: grab;
    user-select: none;
  }
  
  .carousel-track::-webkit-scrollbar {
    display: none;                 /* cache la scrollbar Chrome/Safari */
  }
  
  .carousel-track:active {
    cursor: grabbing;
  }
  
  .carousel-slide {
    flex: 0 0 calc(50% - 25px);   /* 2 images visibles, ajustez le % */
    min-width: 0;
  }
  
  .carousel-slide img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
  }

  
  .carousel-track.is-dragging{
    cursor: grabbing;
  }

  
  /* Mobile : 1 image visible */
  @media (max-width: 768px) {
    .carousel-slide {
      flex: 0 0 calc(60% - 25px);
    }
    .carousel-slide img {
        height: 200px;
      }
  }


  /* ******************************************************** 

PAGE CHATEAU DEMARCHES RSE

******************************************************** */
@media (min-width: 1441px) {

    .elementor-151 .elementor-element.elementor-element-31855e1:not(.elementor-motion-effects-element-type-background)>.elementor-widget-wrap,
    .elementor-151 .elementor-element.elementor-element-31855e1>.elementor-widget-wrap>.elementor-motion-effects-container>.elementor-motion-effects-layer {
        background-size: contain;
    }

    .elementor-151 .elementor-element.elementor-element-ceb28da:not(.elementor-motion-effects-element-type-background)>.elementor-widget-wrap,
    .elementor-151 .elementor-element.elementor-element-ceb28da>.elementor-widget-wrap>.elementor-motion-effects-container>.elementor-motion-effects-layer {
        background-size: contain;
    }

    .elementor-151 .elementor-element.elementor-element-3e7f380:not(.elementor-motion-effects-element-type-background)>.elementor-widget-wrap,
    .elementor-151 .elementor-element.elementor-element-3e7f380>.elementor-widget-wrap>.elementor-motion-effects-container>.elementor-motion-effects-layer {
        background-size: contain;
    }


  .elementor-section.elementor-section-boxed > .elementor-container {
    max-width: 1300px;
  }
  
  .elementor-92 .elementor-element.elementor-element-ef4008a img {
    width: 100%;
    opacity: 0.6;
}

  .elementor-933423 .elementor-element.elementor-element-78bc2e9:not(.elementor-motion-effects-element-type-background), .elementor-933423 .elementor-element.elementor-element-78bc2e9 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-position: 55% 85%;
}

  .elementor-933423 .elementor-element.elementor-element-13b3338:not(.elementor-motion-effects-element-type-background), .elementor-933423 .elementor-element.elementor-element-13b3338 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-position: 55% 85%;
}

  .elementor-933423 .elementor-element.elementor-element-c3e2838:not(.elementor-motion-effects-element-type-background), .elementor-933423 .elementor-element.elementor-element-c3e2838 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-position: 55% 85%;
}


  .carousel-slide {
    flex: 0 0 calc(40% - 25px);   /* 2 images visibles, ajustez le % */
  }
  
  .carousel-slide img {
    height: 600px;
  }

}

