/*---------------------------------------------------------------------------------------
|   ALIOKI – Les Noyers de Gaudelle : bouton « carré-icône + libellé » (réf. Velaa)       |
|   Réglages natifs (Style du thème) : fond transparent, Instrument Sans 16, padding 0.   |
|   Les widgets Bouton héritent par défaut des globales « Accent » (fond + majuscules) :  |
|   on les neutralise ici, puis carré 40px, double flèche glissante, variante .btn-dark   |
----------------------------------------------------------------------------------------*/
.elementor-kit-5 .elementor-widget-button .elementor-button,
.elementor-kit-5 .elementor-button {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background-color: transparent;
    box-shadow: none;
    color: var(--e-global-color-primary, #373F1D);
    font-family: "instrument-sans-variable", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
    transition: color .32s cubic-bezier(.22, 1, .36, 1);
}
.elementor-kit-5 .elementor-widget-button .elementor-button:hover,
.elementor-kit-5 .elementor-widget-button .elementor-button:focus-visible,
.elementor-kit-5 .elementor-button:hover,
.elementor-kit-5 .elementor-button:focus-visible {
    background-color: transparent;
    color: var(--e-global-color-secondary, #5C6E21);
}
.elementor-button .elementor-button-content-wrapper {
    display: inline-flex;
    align-items: center;
    gap: 12px;
}
.elementor-kit-5 .elementor-button .elementor-button-icon {
    position: relative;
    flex: none;
    width: 40px;
    height: 40px;
    border-radius: 4px;
    background: rgba(55, 63, 29, 0.08);
    color: var(--e-global-color-primary, #373F1D);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 !important;
    transition: background-color .32s cubic-bezier(.22, 1, .36, 1);
}
.elementor-kit-5 .elementor-button .elementor-button-icon svg,
.elementor-kit-5 .elementor-button .elementor-button-icon img,
.elementor-kit-5 .elementor-button .elementor-button-icon::before {
    position: absolute;
    top: 10px;
    left: 10px;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    transition: transform .32s cubic-bezier(.22, 1, .36, 1);
}
.elementor-kit-5 .elementor-button .elementor-button-icon::before {
    content: "";
    left: -20px;
    background-color: currentColor;
    -webkit-mask: url(/wp-content/uploads/icons/fleche-bouton.svg) center / 20px 20px no-repeat;
    mask: url(/wp-content/uploads/icons/fleche-bouton.svg) center / 20px 20px no-repeat;
}
.elementor-kit-5 .elementor-button:hover .elementor-button-icon,
.elementor-kit-5 .elementor-button:focus-visible .elementor-button-icon {
    background: rgba(55, 63, 29, 0.16);
}
.elementor-kit-5 .elementor-button:hover .elementor-button-icon svg,
.elementor-kit-5 .elementor-button:hover .elementor-button-icon img,
.elementor-kit-5 .elementor-button:hover .elementor-button-icon::before,
.elementor-kit-5 .elementor-button:focus-visible .elementor-button-icon svg,
.elementor-kit-5 .elementor-button:focus-visible .elementor-button-icon::before {
    transform: translateX(30px);
}
/* Variante sur fond sombre : classe CSS « btn-dark » sur le widget Bouton ou son conteneur */
.elementor-kit-5 .btn-dark .elementor-button.elementor-button,
.elementor-kit-5 .elementor-button.btn-dark.btn-dark {
    color: var(--e-global-color-72e7240f, #F5EEE9);
}
.elementor-kit-5 .btn-dark .elementor-button.elementor-button:hover,
.elementor-kit-5 .elementor-button.btn-dark.btn-dark:hover {
    color: #FFFFFF;
}
.elementor-kit-5 .btn-dark .elementor-button .elementor-button-icon,
.elementor-kit-5 .elementor-button.btn-dark .elementor-button-icon {
    background: #FFFFFF;
    color: var(--e-global-color-primary, #373F1D);
}
.elementor-kit-5 .btn-dark .elementor-button:hover .elementor-button-icon,
.elementor-kit-5 .elementor-button.btn-dark:hover .elementor-button-icon {
    background: var(--e-global-color-e83f325d, #E3E1D4);
}
/* Flèche à droite du libellé : classe « btn-icon-right » */
.btn-icon-right .elementor-button .elementor-button-content-wrapper,
.elementor-button.btn-icon-right .elementor-button-content-wrapper {
    flex-direction: row-reverse;
}
@media (prefers-reduced-motion: reduce) {
    .elementor-kit-5 .elementor-button,
    .elementor-kit-5 .elementor-button .elementor-button-icon,
    .elementor-kit-5 .elementor-button .elementor-button-icon svg,
    .elementor-kit-5 .elementor-button .elementor-button-icon::before { transition: none; }
}

/*---------------------------------------------------------------------------------------
|   Labels sur image (réf. Velaa) : cartouche posé sur la photo, visible en permanence.   |
|   Tout est en réglages natifs Elementor (fond, padding, rayon, position absolue) ;      |
|   seul le flou d'arrière-plan n'existe pas en natif, d'où cette unique règle.           |
----------------------------------------------------------------------------------------*/
.alk-label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/*---------------------------------------------------------------------------------------
|   Cartes « alk-card » (réf. Tengile) : photo en léger sur-échantillonnage (1.12)        |
|   pour la parallaxe au défilement (translation posée par js/animations.js sur le        |
|   widget image), zoom à 1.18 au survol de la carte, le tout clippé par le conteneur     |
|   media en overflow hidden (réglage natif).                                             |
----------------------------------------------------------------------------------------*/
.alk-card .elementor-widget-image{will-change:transform}
.alk-card .elementor-widget-image img{transform:scale(1.12);transition:transform .5s ease-in-out}
.alk-card:hover .elementor-widget-image img{transform:scale(1.18)}

/* Apparitions (js/animations.js pose les classes ; sans JS, rien n'est masqué) */
.alk-reveal{opacity:0;transform:translateY(24px)}
.alk-reveal.alk-in{opacity:1;transform:none;transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--alk-d,0ms)}
.alk-fade{opacity:0;transform:translateY(16px)}
.alk-fade.alk-in{opacity:1;transform:none;transition:opacity .9s ease-out,transform .9s ease-out;transition-delay:var(--alk-d,0ms)}

/* Titre hero lettre à lettre (réf. Tengile : translateY + blur, 1.6s, 50 ms par lettre) */
.alk-chw{display:inline-block;overflow:hidden;vertical-align:top}
.alk-ch{display:inline-block;transform:translateY(115%);filter:blur(5px)}
.alk-in .alk-ch{transform:none;filter:blur(0);transition:transform 1.6s cubic-bezier(.19,1,.22,1),filter 1.2s cubic-bezier(.19,1,.22,1);transition-delay:var(--alk-d,0ms)}

@media (prefers-reduced-motion: reduce){
  .alk-card .elementor-widget-image img{transform:none;transition:none}
  .alk-card:hover .elementor-widget-image img{transform:none}
  .alk-reveal,.alk-fade{opacity:1;transform:none}
  .alk-ch{transform:none;filter:none}
}

/*---------------------------------------------------------------------------------------
|   Menu latéral : fenêtre modale Elementor « Menu latéral » (Modèles > Fenêtres modales). |
|   Natif : taille, position, marges 8 px, rayon 4 px, fond, menus WordPress, couleurs.   |
|   Ici (réf. Tengile) : le panneau se déploie depuis l'angle supérieur droit (contenu   |
|   fixe, dévoilé par un masque qui grandit), puis les liens montent hors d'un masque.  |
|   L'animation « zoomIn » choisie dans Elementor sert de support : Elementor pose ses    |
|   classes et sa durée à l'ouverture comme à la fermeture (sens inverse).               |
----------------------------------------------------------------------------------------*/
.alk-menu-popup .dialog-widget-content.animated.zoomIn{animation-name:alk-menu-deploy;animation-timing-function:cubic-bezier(.77,0,.175,1)}
@keyframes alk-menu-deploy{from{clip-path:inset(0 100% 100% 0 round 4px)}to{clip-path:inset(0 0 0 0 round 4px)}}
.alk-menu-popup .dialog-widget-content{overflow:hidden}
/* Fondu crème en haut du panneau quand le contenu défile (réf. Tengile) */
.alk-menu-popup .dialog-message{position:relative}
.alk-menu-popup .dialog-message::before{content:"";position:absolute;inset:0 0 auto 0;height:80px;background:linear-gradient(#F5EEE9 0%,rgba(245,238,233,0) 100%);pointer-events:none;z-index:2}
.alk-menu [data-id="menu-close"]{position:relative;z-index:3}
/* Liens : montée hors d'un masque, en cascade, après le déploiement */
.alk-menu .elementor-nav-menu > li{overflow:hidden}
.alk-menu .elementor-nav-menu > li > a{transform:translateY(110%);animation:alk-menu-rise .9s cubic-bezier(.19,1,.22,1) forwards}
.alk-menu [data-id="menu-main"] .elementor-nav-menu > li:nth-child(1) > a{animation-delay:.45s}
.alk-menu [data-id="menu-main"] .elementor-nav-menu > li:nth-child(2) > a{animation-delay:.5s}
.alk-menu [data-id="menu-main"] .elementor-nav-menu > li:nth-child(3) > a{animation-delay:.55s}
.alk-menu [data-id="menu-main"] .elementor-nav-menu > li:nth-child(4) > a{animation-delay:.6s}
.alk-menu [data-id="menu-main"] .elementor-nav-menu > li:nth-child(5) > a{animation-delay:.65s}
.alk-menu [data-id="menu-sec"] .elementor-nav-menu > li:nth-child(1) > a{animation-delay:.7s}
.alk-menu [data-id="menu-sec"] .elementor-nav-menu > li:nth-child(2) > a{animation-delay:.74s}
.alk-menu [data-id="menu-sec"] .elementor-nav-menu > li:nth-child(3) > a{animation-delay:.78s}
.alk-menu [data-id="menu-sec"] .elementor-nav-menu > li:nth-child(4) > a{animation-delay:.82s}
.alk-menu [data-id="menu-close"]{opacity:0;animation:alk-menu-fade .6s ease-out .5s forwards}
@keyframes alk-menu-rise{to{transform:none}}
@keyframes alk-menu-fade{to{opacity:1}}
/* À la fermeture, le contenu reste en place pendant que le panneau se replie */
.alk-menu-popup .dialog-widget-content.reverse .elementor-nav-menu > li > a,.alk-menu-popup .dialog-widget-content.reverse [data-id="menu-close"]{animation:none;transform:none;opacity:1}
/* Mobile (réf. Tengile < 486 px) : plein écran, sans marge ni arrondi */
@media (max-width:767px){
  .alk-menu-popup .dialog-widget-content{margin:0!important;border-radius:0!important}
  .alk-menu-popup .dialog-message{height:100dvh!important}
  @keyframes alk-menu-deploy{from{clip-path:inset(0 0 100% 100%)}to{clip-path:inset(0)}}
}
@media (prefers-reduced-motion: reduce){
  .alk-menu-popup .dialog-widget-content.animated.zoomIn{animation-name:alk-menu-fade}
  .alk-menu .elementor-nav-menu > li > a,.alk-menu [data-id="menu-close"]{animation:none;transform:none;opacity:1}
}
/*---------------------------------------------------------------------------------------
|   Sections Domaine / Restauration / Environs (réf. Tengile OUR STORY, Velaa)            |
|   Mise en page, typographies, dégradés et positions : réglages natifs Elementor.        |
|   Ici uniquement les états d'animation (posés par js/animations.js).                   |
----------------------------------------------------------------------------------------*/
/* Médias en parallaxe : image sur-échantillonnée, translation posée par le script */
.alk-par .elementor-widget-image{will-change:transform}
.alk-par .elementor-widget-image img{display:block;transform:scale(1.12)}
/* Dévoilement des médias (réf. Velaa) : le cadre s'ouvre de haut en bas (dans le sens du défilement), l'image se pose */
/* le masque est posé sur l'image elle-même : sur le cadre, l'IntersectionObserver l'ignorerait ;
   sur le widget, il rognerait la marge de sur-échantillonnage et la parallaxe laisserait une bande vide */
.alk-uv .elementor-widget-image img{clip-path:inset(0 0 100% 0);transform:scale(1.28)}
.alk-uv.alk-in .elementor-widget-image img{clip-path:inset(0 0 0 0);transform:scale(1.12);transition:clip-path 1.15s cubic-bezier(.22,1,.36,1),transform 1.8s cubic-bezier(.19,1,.22,1);transition-delay:var(--alk-d,0ms)}
/* Titres mot à mot : chaque mot monte hors d'un masque */
.alk-ww{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .06em .14em;margin:0 -.06em -.14em}
.alk-w{display:inline-block;transform:translateY(105%);opacity:0}
.alk-in .alk-w{transform:none;opacity:1;transition:transform 1.3s cubic-bezier(.19,1,.22,1),opacity .9s ease-out;transition-delay:var(--alk-d,0ms)}
@media (prefers-reduced-motion: reduce){
  .alk-par .elementor-widget-image img,.alk-uv .elementor-widget-image img{transform:none;transition:none}
  .alk-uv .elementor-widget-image img{clip-path:none}
  .alk-w{transform:none;opacity:1}
}

/* Médias « alk-fill » (desktop et tablette) : la photo remplit toute la hauteur de son cadre (portrait du Domaine, grande photo des Environs),
   pour que le bouton s'aligne sur son bas (réf. Tengile). Pas d'équivalent natif. */
@media (min-width:768px){
  .alk-fill .elementor-widget-image{position:absolute;inset:0}
  .alk-fill .elementor-widget-image img{height:100%!important}
}

/*---------------------------------------------------------------------------------------
|   Cartes entièrement cliquables (« alk-stretch ») : le lien du titre s'étend à toute    |
|   la carte ; le bouton « En savoir plus » reste au-dessus. Pas d'équivalent natif.      |
----------------------------------------------------------------------------------------*/
.alk-stretch .elementor-widget-heading:has(.elementor-heading-title a){position:static}
.alk-stretch .elementor-heading-title a::after{content:"";position:absolute;inset:0;z-index:1}
.alk-stretch .elementor-widget-button{position:relative;z-index:2}

/*---------------------------------------------------------------------------------------
|   Avis (réf. Tengile) : citations superposées dans une grille native 1×1, une seule     |
|   visible ; la rotation est pilotée par js/animations.js.                              |
----------------------------------------------------------------------------------------*/
.alk-quote{opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1),visibility 0s linear .9s}
.alk-quote.is-active{opacity:1;visibility:visible;transform:none;transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.alk-q-prev,.alk-q-next{cursor:pointer}
.alk-q-prev .elementor-heading-title,.alk-q-next .elementor-heading-title{transition:color .32s cubic-bezier(.22,1,.36,1)}
.alk-q-prev:hover .elementor-heading-title,.alk-q-next:hover .elementor-heading-title,.alk-q-prev:focus-visible .elementor-heading-title,.alk-q-next:focus-visible .elementor-heading-title{color:#373F1D}
@media (prefers-reduced-motion: reduce){.alk-quote,.alk-quote.is-active{transition:none;transform:none}}

/* Accueil (ref. Tengile) : la photo du hero reste en place pendant que la section suivante remonte dessus.
   .alk-clip sur le hero (rogne le calque photo sans casser le sticky), .alk-stick sur le conteneur photo. */
.elementor .e-con.alk-clip{overflow:hidden}
@supports (overflow:clip){.elementor .e-con.alk-clip{overflow:clip}}
.elementor .e-con.alk-stick{position:sticky;top:0}

/* Appel a reserver (ref. Velaa) : le cadre s'ouvre en pleine largeur au defilement (masque calcule par animations.js) */
.alk-grow-js{will-change:margin-left,width;max-width:none!important}

/* Avis : boutons fleches precedent / suivant (icone seule, sans libelle) ; la fleche precedente est retournee */
.alk-q-nav{line-height:0}
.alk-q-nav .elementor-button{gap:0}
.alk-q-nav .elementor-button-text{display:none}
.alk-q-prev .elementor-button-icon{transform:scaleX(-1)}

/* Transition entre les pages (ref. Velaa) : fondu enchaine natif du navigateur (View Transitions),
   l'en-tete reste en place pendant le changement de page. Sans effet sur les navigateurs non compatibles. */
@view-transition{navigation:auto}
.elementor-location-header [data-id="hero-header"]{view-transition-name:alk-header}
::view-transition-old(root){animation:.35s cubic-bezier(.4,0,.2,1) both alk-vt-out}
::view-transition-new(root){animation:.6s cubic-bezier(.22,1,.36,1) .1s both alk-vt-in}
@keyframes alk-vt-out{to{opacity:0}}
@keyframes alk-vt-in{from{opacity:0;transform:translateY(16px)}}
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}

/* Variante compacte « btn-sm » (bas du menu : itineraires) : carre 28 px, fleche 14 px */
.elementor-kit-5 .btn-sm .elementor-button,.elementor-kit-5 .btn-sm .elementor-button .elementor-button-content-wrapper{gap:10px}
.elementor-kit-5 .btn-sm .elementor-button .elementor-button-icon{width:28px;height:28px}
.elementor-kit-5 .btn-sm .elementor-button .elementor-button-icon svg,.elementor-kit-5 .btn-sm .elementor-button .elementor-button-icon img,.elementor-kit-5 .btn-sm .elementor-button .elementor-button-icon::before{top:7px;left:7px;width:14px;height:14px}
.elementor-kit-5 .btn-sm .elementor-button .elementor-button-icon::before{left:-14px;-webkit-mask-size:14px 14px;mask-size:14px 14px}
.elementor-kit-5 .btn-sm .elementor-button:hover .elementor-button-icon svg,.elementor-kit-5 .btn-sm .elementor-button:hover .elementor-button-icon::before,.elementor-kit-5 .btn-sm .elementor-button:focus-visible .elementor-button-icon svg,.elementor-kit-5 .btn-sm .elementor-button:focus-visible .elementor-button-icon::before{transform:translateX(21px)}

/* Ancres : une seule ligne defilante sur tablette et mobile */
@media (max-width:1024px){.e-con.alk-anchors{--overflow:auto;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}.alk-anchors::-webkit-scrollbar{display:none}.alk-anchors>.elementor-element{flex-shrink:0}.alk-anchors .elementor-heading-title{white-space:nowrap}}

/* Titres : pas de retour a la ligne force sur mobile, le texte suit son cours */
@media (max-width:767px){.elementor-widget-heading .elementor-heading-title br{display:none}}

/* ===== En-tete (deplace depuis le widget HTML du modele d'en-tete) ===== */
/* En-tete du site (ref. Tengile) : fixe, se retracte des le premier defilement vers le bas,
   revient au defilement vers le haut, fond creme et contenu olive au-dela de 100 px. */
.alk-hdr{transition:transform .45s cubic-bezier(.25,.46,.45,.94),background-color .3s ease,padding .35s cubic-bezier(.25,.46,.45,.94)}
.elementor .alk-hdr.alk-hdr.is-scrolled{background-color:#F5EEE9;padding-top:10px;padding-bottom:10px}
.alk-hdr.is-hidden{transform:translateY(-100%)}
.alk-hdr .elementor-widget-heading .elementor-heading-title,.alk-hdr .elementor-widget-heading .elementor-heading-title a{transition:color .3s ease}
.elementor .alk-hdr.alk-hdr.is-scrolled .elementor-widget-heading .elementor-heading-title,.elementor .alk-hdr.alk-hdr.is-scrolled .elementor-widget-heading .elementor-heading-title a{color:#373F1D}
.elementor .alk-hdr.alk-hdr.is-scrolled .elementor-widget-heading .elementor-heading-title a:hover,.elementor .alk-hdr.alk-hdr.is-scrolled .elementor-widget-heading .elementor-heading-title a:focus-visible{color:#5C6E21}
.alk-hdr .elementor-widget-icon .elementor-icon svg{transition:height .35s cubic-bezier(.25,.46,.45,.94),fill .3s ease}

.alk-hdr .elementor-widget-icon .elementor-icon-wrapper{line-height:0}
.elementor .alk-hdr.alk-hdr.is-scrolled .elementor-widget-icon .elementor-icon svg{fill:#373F1D}
.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-logo-svg"] .elementor-icon svg{height:60px}
@media (max-width:1024px){.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-logo-svg"] .elementor-icon svg{height:48px}}
@media (max-width:767px){.elementor .alk-hdr.alk-hdr.is-scrolled{padding-top:12px;padding-bottom:5px}.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-logo-svg"] .elementor-icon svg{height:40px}}
@media (prefers-reduced-motion:reduce){.alk-hdr,.alk-hdr *{transition:none!important}}

/* Defilement du libelle au survol (ref. Velaa) : le texte monte et son double arrive par le bas */
.alk-rollw{display:inline-block;overflow:hidden;vertical-align:top;padding:.2em 0;margin:-.2em 0}
.alk-rollt{display:block;position:relative;transition:transform .5s cubic-bezier(.65,0,.35,1)}
.alk-rollt>span{display:block}
.alk-rollt>span+span{position:absolute;left:0;top:calc(100% + .4em)}
a:hover .alk-rollt,a:focus-visible .alk-rollt{transform:translateY(calc(-100% - .4em))}
/* Reserver : bouton sombre floute sur la photo, olive plein sur l'en-tete creme */
[data-id="hero-enquire"] .elementor-button{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-enquire"] .elementor-button{background-color:#373F1D;color:#F5EEE9;-webkit-backdrop-filter:none;backdrop-filter:none}
.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-enquire"] .elementor-button:hover,.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-enquire"] .elementor-button:focus-visible{background-color:#5C6E21}
/* Langue : variables du widget IKO Lingo passees en olive sur l'en-tete creme */
.elementor .alk-hdr.alk-hdr.is-scrolled .elementor-widget .iko-lingo-sw{--iko-texte:#373F1D;--iko-texte-survol:#5C6E21;--iko-panneau:#F5EEE9;--iko-actif:rgba(55,63,29,.1);--iko-texte-actif:#373F1D;--iko-survol:rgba(55,63,29,.06)}
@media (prefers-reduced-motion:reduce){.alk-rollt{transition:none}a:hover .alk-rollt,a:focus-visible .alk-rollt{transform:none}}

/* Separateur MENU | liens (ref. Velaa) */
.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hdr-links"]{border-color:rgba(55,63,29,.25)}
/* Mobile : Reserver en simple libelle, aligne sur la marge comme MENU */
@media (max-width:767px){[data-id="hero-enquire"] .elementor-button,.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-enquire"] .elementor-button{background:none!important;-webkit-backdrop-filter:none;backdrop-filter:none;border:0!important;border-radius:0;padding:0}.elementor .alk-hdr.alk-hdr.is-scrolled [data-id="hero-enquire"] .elementor-button{color:#373F1D}}

/* Galeries des gites (carrousel natif) : la photo remplit toute la hauteur de la colonne, son bas s'aligne sur le bouton (ordinateur et tablette) */
@media (min-width:768px){.alk-gal-fill>.elementor-widget-n-carousel{position:absolute;inset:0;margin:0;z-index:1;height:auto!important;min-height:0}.alk-gal-fill .e-n-carousel,.alk-gal-fill .e-n-carousel>.swiper-wrapper{height:100%}.alk-gal-fill .swiper-slide{height:100%}.alk-gal-fill .swiper-slide>.e-con{height:100%!important}.alk-gal-fill .swiper-slide .elementor-widget-image{height:100%}.alk-gal-fill .swiper-slide .elementor-widget-image img{height:100%!important}}

/* Texte masque sur mobile (ex. pied de page : Tourisme dans le Lot) */
@media (max-width:767px){.alk-hide-m{display:none}}

/* Grands blocs photo + bouton (accueil : Le Domaine, Aux environs) : un lien transparent
   couvre tout le cadre, donc la photo entiere est cliquable, et le survol du cadre joue
   l'animation du bouton pose en surimpression. Le cartouche lui-meme n'intercepte rien. */
.alk-imglink{position:relative}
.alk-imglink>.e-con{pointer-events:none}
.alk-imglink .alk-stretch{position:static}
.alk-imglink .alk-stretch a{position:absolute;inset:0;z-index:3;display:block;text-indent:-9999px;overflow:hidden}
.elementor-kit-5 .alk-imglink:hover .elementor-button{color:var(--e-global-color-secondary,#5C6E21)}
.elementor-kit-5 .alk-imglink:hover .btn-dark .elementor-button,.elementor-kit-5 .alk-imglink:hover .elementor-button.btn-dark{color:#FFFFFF}
.elementor-kit-5 .alk-imglink:hover .elementor-button .elementor-button-icon{background:rgba(55,63,29,0.16)}
.elementor-kit-5 .alk-imglink:hover .btn-dark .elementor-button .elementor-button-icon,.elementor-kit-5 .alk-imglink:hover .elementor-button.btn-dark .elementor-button-icon{background:var(--e-global-color-e83f325d,#E3E1D4)}
.elementor-kit-5 .alk-imglink:hover .elementor-button .elementor-button-icon svg,.elementor-kit-5 .alk-imglink:hover .elementor-button .elementor-button-icon img,.elementor-kit-5 .alk-imglink:hover .elementor-button .elementor-button-icon::before{transform:translateX(30px)}

/*---------------------------------------------------------------------------------------
|   Formulaire d'inscription a la lettre d'information (Brevo) : le plugin ne propose     |
|   aucun reglage de style, l'habillage est donc entierement repris ici, dans le registre |
|   du site (Instrument Sans, filet olive, bouton plein aux angles a 4 px).               |
----------------------------------------------------------------------------------------*/
.elementor-kit-5 .alk-nl-wrap .sib_signup_form,.elementor-kit-5 .alk-nl-wrap form{margin:0;padding:0;max-width:260px}
.elementor-kit-5 .alk-nl-wrap .alk-nl p{margin:0 0 8px}
.elementor-kit-5 .alk-nl-wrap .alk-nl p:first-child{margin-top:0}
.elementor-kit-5 .alk-nl-wrap .sib_signup_form{margin-top:0!important}
.elementor-kit-5 .alk-nl-wrap .alk-nl p:last-child{margin:0}
.elementor-kit-5 .alk-nl-wrap .alk-nl label{display:block;margin-bottom:6px;font-family:'instrument-sans-variable',sans-serif;font-size:12px;letter-spacing:.04em;color:rgba(55,63,29,.6)}
.elementor-kit-5 .alk-nl-wrap input[type=email]{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid rgba(55,63,29,.3);border-radius:4px;background:transparent;font-family:'instrument-sans-variable',sans-serif;font-size:14px;color:#373F1D;transition:border-color .32s cubic-bezier(.22,1,.36,1)}
.elementor-kit-5 .alk-nl-wrap input[type=email]::placeholder{color:rgba(55,63,29,.4)}
.elementor-kit-5 .alk-nl-wrap input[type=email]:focus{outline:none;border-color:#5C6E21}
.elementor-kit-5 .alk-nl-wrap input[type=submit]{display:inline-flex;align-items:center;padding:8px 16px;border:0;border-radius:4px;background:#373F1D;color:#F5EEE9;font-family:'instrument-sans-variable',sans-serif;font-size:13px;line-height:1;cursor:pointer;transition:background-color .32s cubic-bezier(.22,1,.36,1)}
.elementor-kit-5 .alk-nl-wrap input[type=submit]:hover,.elementor-kit-5 .alk-nl-wrap input[type=submit]:focus-visible{background:#5C6E21}
.elementor-kit-5 .alk-nl-wrap .sib_msg_disp,.elementor-kit-5 .alk-nl-wrap .sib-form-message-panel{margin-top:10px;font-family:'instrument-sans-variable',sans-serif;font-size:13px;line-height:1.45em;color:#373F1D}
.elementor-kit-5 .alk-nl-wrap .sib_loader{display:none}
/* le badge reCAPTCHA est masque : la mention Google figure dans la page (politique de confidentialite) */
.grecaptcha-badge{visibility:hidden}

/* Galeries des gites : pagination chiffree (1/7) posee en bas a gauche sur la photo,
   comme les anciennes puces ; Elementor ne propose aucun reglage de couleur pour ce type. */
.alk-gal-fill{--e-n-carousel-fraction-color:#FFFFFF}
.alk-gal-fill .elementor-widget-n-carousel .swiper-pagination-fraction{left:16px;right:auto;bottom:14px;top:auto;width:auto;transform:none;text-align:left;font-family:'instrument-sans-variable',sans-serif;font-size:13px;letter-spacing:.04em;text-shadow:0 1px 6px rgba(17,17,17,.45);z-index:2}

/* Lettre d'information : gabarit compact (le reglage global des champs du kit prime sinon) */
.elementor-kit-5 .alk-nl-wrap .alk-nl input[type=email]{padding:9px 12px;font-size:14px;line-height:1.2;height:auto}
.elementor-kit-5 .alk-nl-wrap .alk-nl input[type=submit]{padding:9px 16px;font-size:13px;line-height:1.2;height:auto}
/* le reglage global des boutons du kit repasse le libelle en olive au survol : il disparaitrait sur le fond plein */
.elementor-kit-5 .alk-nl-wrap .alk-nl input[type=submit]:hover,.elementor-kit-5 .alk-nl-wrap .alk-nl input[type=submit]:focus-visible{background:#5C6E21;color:#F5EEE9}
/* alk-nl-compact */

/* Pied de page : reseaux sociaux sur une ligne, separes par un filet vertical */
.alk-pipe{color:rgba(55,63,29,.35);margin:0 6px}

/* Logo du pied de page : leger agrandissement au survol. Le reglage natif d'Elementor
   depend de sa feuille d'animations, qui n'est pas chargee sur ce gabarit. */
[data-id="pied-logo"] .elementor-icon{display:inline-block;transition:transform .45s cubic-bezier(.22,1,.36,1)}
[data-id="pied-logo"] .elementor-icon:hover,[data-id="pied-logo"] .elementor-icon:focus-visible{transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){[data-id="pied-logo"] .elementor-icon{transition:none}[data-id="pied-logo"] .elementor-icon:hover{transform:none}}

/* Menu : accordeon Newsletter sous Infos pratiques. Le libelle reprend exactement
   l'apparence des entrees du menu secondaire ; le panneau s'ouvre en hauteur. */
.alk-nl-toggle .elementor-heading-title a{display:inline-flex}
.elementor-element.alk-nl-panel{flex-wrap:nowrap;overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1),opacity .3s ease-out,margin-top .4s cubic-bezier(.22,1,.36,1)}


@media (prefers-reduced-motion:reduce){.elementor-element.alk-nl-panel{transition:none}}

/* Menu deploye : le panneau defile pour lui-meme quand son contenu depasse l'ecran.
   Le defilement fluide de la page est suspendu pendant l'ouverture, d'ou data-lenis-prevent. */
.elementor-popup-modal .dialog-message{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* ===== Titres : devoilement par masque, sans decoupe du texte (compatible traduction) ===== */
.alk-mask .elementor-heading-title{-webkit-mask-image:linear-gradient(104deg,#000 0 42%,rgba(0,0,0,.35) 58%,transparent 74%);mask-image:linear-gradient(104deg,#000 0 42%,rgba(0,0,0,.35) 58%,transparent 74%);-webkit-mask-size:250% 100%;mask-size:250% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:100% 0;mask-position:100% 0;opacity:0;transform:perspective(680px) translateY(.26em) rotateX(-58deg) rotateY(9deg) skewX(5deg);transform-origin:0% 100%;filter:blur(5px)}
.alk-mask.alk-in .elementor-heading-title{-webkit-mask-position:0 0;mask-position:0 0;opacity:1;transform:none;filter:blur(0);transition:opacity .45s ease-out,filter .7s ease-out,-webkit-mask-position 1.25s cubic-bezier(.33,.82,.3,1),mask-position 1.25s cubic-bezier(.33,.82,.3,1),transform 1.65s cubic-bezier(.26,.78,.26,1);transition-delay:var(--alk-d,0ms)}
@media (prefers-reduced-motion:reduce){.alk-mask .elementor-heading-title{-webkit-mask-image:none;mask-image:none;opacity:1;transform:none;filter:none}}

/* Galeries des gites : l'agrandissement residuel du devoilement doit rester dans la diapositive */
.alk-gal-fill .swiper-slide{overflow:hidden}
.alk-gal-fill .e-n-carousel{padding-bottom:0!important}

/* Conteneurs sur fond olive : classe CSS « alk-on-dark » sur le conteneur ; les liens des textes reprennent la couleur du texte (liens invisibles) */
.alk-on-dark .elementor-widget-text-editor a,.alk-on-dark .elementor-widget-text-editor a:hover{color:inherit}
