/* Hors Sentiers — états et animations sans équivalent natif dans Elementor V4.
   Les styles de base de chaque bloc sont dans les classes globales d'Elementor (mêmes noms qu'ici) ;
   ce fichier ne porte que ce qui dépend d'un état : survol d'un parent, question ouverte, en-tête sur photo, défilements. */

/* En-tête collant : Elementor enveloppe le gabarit d'en-tête, c'est l'enveloppe qui doit coller */
.elementor-location-header{position:sticky;top:0;z-index:60}
.admin-bar .elementor-location-header{top:32px}
@media (max-width:782px){.admin-bar .elementor-location-header{top:0}}

/* En-tête posé sur la photo d'ouverture (classe « clair » mise par ahs-maquette.js en haut des pages à bandeau) */
body.clair .elementor .hd{background-color:transparent;box-shadow:none}
body.clair .elementor .marque,body.clair .elementor .hd__nav a,body.clair .elementor .hd__tel{color:var(--blanc)}
body.clair .elementor .hd__nav a:hover{background-color:rgba(255,255,255,.16)}
body.clair .elementor .marque .v{display:none}
body.clair .elementor .marque .b{display:block}
body.clair .elementor .hd__sel,body.clair .elementor .hd__menu{background-color:rgba(255,255,255,.14);border-color:rgba(255,255,255,.5);color:var(--blanc)}
body.clair .elementor .hd__cta{background-color:rgba(255,255,255,.16);border-color:rgba(255,255,255,.64);color:var(--blanc);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body.clair .elementor .hd__cta:hover{background-color:var(--ardoise);border-color:var(--ardoise)}

/* En-tête entre 960 et 1439 px : Elementor n'a que trois largeurs et son « bureau » a été relevé à 1440 px. La maquette masquait
   le téléphone sous 1280 px et remplaçait le menu par le bouton à trois traits sous 1120 px (sinon le logo est écrasé). Depuis les
   onglets « Base nature » et « Blog » (retours du client, 19/10/2026), le menu compte 7 onglets : bouton à trois traits sous
   1200 px, téléphone masqué sous 1360 px, onglets resserrés (8 px de chaque côté au lieu de 12) sous 1440 px. */
@media (min-width:960px) and (max-width:1359px){.elementor .hd .hd__tel{display:none}}
@media (min-width:960px) and (max-width:1199px){.elementor .hd .hd__nav{display:none}.elementor .hd .hd__menu{display:inline-grid}}
@media (min-width:1200px) and (max-width:1439px){.elementor .hd .hd__nav{gap:0}.elementor .hd .hd__nav-a{padding-inline:8px}}

/* Menu mobile : ouvert par le bouton à trois traits */
.elementor .hd__panel.is-open{display:grid}
@media (min-width:1200px){.elementor .hd__panel.is-open{display:none}}
/* Menu ouvert sur tablette et mobile : voile ardoise sur le reste de la page (Louis, 20/10/2026 : « moins voir le reste »). Pas
   d'équivalent natif pour ce volet maison ; le voile part du bas de l'en-tête collant, un toucher dessus referme le menu (ahs-maquette.js). */
@media (max-width:1199px){.elementor .hd:has(.hd__panel.is-open)::after{content:"";position:absolute;top:100%;left:0;right:0;height:100vh;background-color:color-mix(in srgb,var(--ardoise) 60%,transparent)}}

/* « Ils nous font confiance » (accueil) : un élément par client (type de contenu Clients, 97-clients-logos.php). Taille, gris et
   opacité du logo : réglages de l'image dans l'élément de liste « Logo client » (Elementor). Ici, seulement ce qui n'a pas
   d'équivalent natif : la place du bloc dans la rangée défilante, et le nom affiché seulement quand le client n'a pas de logo. */
.elementor [data-ahs-client]{display:flex;flex:none;align-items:center;width:auto;padding:0} /* un bloc V4 prend 100 % de largeur par défaut */
.elementor [data-ahs-client] img:not([src]),.elementor [data-ahs-client] img[src=""]{display:none}
/* le nom reste lisible par les lecteurs d'écran quand le logo s'affiche (le logo a un texte alternatif vide) */
.elementor [data-ahs-client]:has(img[src]:not([src=""])) .defilant-li{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Défilements continus : logos clients, mur d'avis */
@keyframes ahs-defile{to{transform:translateX(-50%)}}
.elementor .defilant-ul{animation:ahs-defile 36s linear infinite}
.elementor .defilant .defilant-ul{padding-right:56px} /* -50 % = un tour exact si le dernier nom est suivi du même écart (56 px) qu'entre deux noms ; sans lui, le bandeau sautait de 28 px à chaque tour */
.elementor .mur__r{animation:ahs-defile 64s linear infinite}
.elementor .mur__r--inv,.elementor .mur__r+.mur__r{animation-direction:reverse;animation-duration:80s} /* la 2e rangée défile dans l'autre sens (sa classe s'est perdue à la transposition) */
.elementor .mur:hover .mur__r{animation-play-state:paused}

/* Survol d'une carte : la photo grossit légèrement */
.elementor .sortie:hover .ph img,.elementor .presta:hover img,.elementor .dest a:hover .ph img,.elementor .une:hover .ph img,.elementor .billet:hover .ph img,.elementor .art-act:hover .ph img{transform:scale(1.04)}
@media (min-width:768px){.elementor .gal__p .ph:hover img{transform:scale(1.04)}}
.elementor .conseil:hover .btn{background-color:var(--nuit);border-color:var(--nuit);color:var(--blanc)}
.elementor .une:hover .lire .ic{transform:translateX(4px)}

/* Questions fréquentes : le « + » devient « − » quand la question est ouverte */
.elementor .qr__l details[open] .qr__s::after{transform:none}
.elementor .qr__l summary::-webkit-details-marker{display:none}
.elementor .qr__l summary{list-style:none}

/* Tracés qui se dessinent à l'arrivée dans l'écran (classes posées par ahs-maquette.js) */
@media (min-width:960px){
  .elementor .trace.anim svg{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}
  .elementor .trace.anim.is-vu svg{-webkit-clip-path:inset(0);clip-path:inset(0);transition:clip-path 2s ease}
}

:where(.elementor) :focus-visible{outline:2px solid var(--encre);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.elementor *{transition:none!important;animation:none!important}.elementor .mur{overflow-x:auto}}

/* ===== Panneaux par-dessus la page : « Mon devis », filtres, photos, message d'ajout, confirmation =====
   Fermés tant que le script ne les ouvre pas. Dans l'éditeur Elementor ils restent visibles, posés dans la page, pour pouvoir être modifiés. */
body:not(.elementor-editor-active) :is(#tiroir,#filtres,#visio,#toast,#merci):not(.is-ouvert){display:none!important}
body.elementor-editor-active :is(#tiroir,#filtres,#visio,#toast){position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;height:auto!important;z-index:1!important;margin:24px 0!important}
body.elementor-editor-active :is(#tiroir,#filtres) .pan{position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;height:auto!important;max-height:none!important;margin-left:auto!important}
body.elementor-editor-active :is(#tiroir,#filtres) .tiroir__f{display:none!important}
body.elementor-editor-active #visio{min-height:560px!important}
html.fige{overflow:hidden}
@keyframes ahs-toast{from{opacity:0;transform:translateY(-8px)}}
.elementor #toast.is-ouvert{animation:ahs-toast .25s ease}

/* « Mon devis » : pastille du nombre d'activités, bouton « + » une fois l'activité ajoutée */
.elementor .hd__sel.is-on #sel-n{display:inline-grid}
@keyframes ahs-saute{50%{transform:scale(1.4)}}
.elementor .hd__sel.saute #sel-n{animation:ahs-saute .4s ease}
.elementor .ajout[aria-pressed="true"]{background-color:var(--blanc);color:var(--encre)}
.elementor .resa .ajout:hover{background-color:var(--blanc)}
.elementor .resa .ajout[aria-pressed="true"]{background-color:transparent;box-shadow:inset 0 0 0 1px rgba(255,255,255,.64);color:var(--blanc)}
.elementor .art-act .btn[aria-pressed="true"]{border-color:var(--ligne);background-color:var(--blanc);color:var(--encre)}
.elementor .pan__vide{display:grid;gap:8px;justify-items:start;padding-block:8px}
.elementor .pan__vide b{font:700 18px/24px "Cabinet Grotesk",sans-serif;color:var(--encre)}
.elementor .pan__vide a{font-weight:600;color:var(--encre);text-decoration:underline;text-underline-offset:4px}

/* Pastilles à cocher (options du devis) et boutons « − / + » */
.elementor .opt,.elementor .opts-label{cursor:pointer}
.elementor .opt:hover{border-color:var(--encre)}
.elementor .opt.is-on{border-color:var(--ardoise);background-color:var(--ardoise);color:var(--blanc)}
.elementor .pas button:hover{border-color:var(--encre)}
.elementor .pas button:disabled{border-color:#b9b8b1;opacity:.32;cursor:default}
.elementor .resa .pas button:hover{border-color:var(--blanc)}
.elementor .resa .pas button:disabled{border-color:rgba(255,255,255,.4)}

/* Texte dépliable « Voir plus / Voir moins » de la fiche */
.elementor .depli.is-ouvert .depli__tx{max-height:none}
.elementor .depli.is-ouvert .depli__tx::after{display:none}
.elementor .depli__b[aria-expanded="true"] .ic{transform:rotate(180deg)}

/* Sommaire de l'article : replié sur tablette et mobile, ouvert par son titre */
@media (max-width:959px){.elementor .som.is-ouvert > :last-child{display:grid}.elementor .som.is-ouvert .som__t .ic{transform:rotate(180deg)}}

/* Zone de sécurité des téléphones (encoche, barre d'accueil) : Elementor refuse env() dans ses classes */
.elementor .mbar{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
.elementor .pan__ft{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
@media (max-width:767px){.elementor .visio__hd{padding-top:calc(16px + env(safe-area-inset-top,0px))}.elementor .visio__p-figure{margin-bottom:calc(24px + env(safe-area-inset-bottom,0px))}}

/* ===== Gabarits dynamiques (JetEngine) ===== */
/* Les grilles de liste JetEngine s'effacent : leurs cartes deviennent les enfants directs du bloc de la maquette, qui garde sa mise en page */
.ahs-flux,.ahs-flux>.elementor-widget-container,.ahs-flux .jet-listing-grid,.ahs-flux .jet-listing-grid__items,.ahs-flux .jet-listing-grid__item,.ahs-flux .jet-listing-grid__item>.elementor,.ahs-flux .jet-listing-grid__item>.elementor>.e-con-inner{display:contents}
.ahs-flux .jet-listing-not-found{display:none}
/* À la racine d'un élément de liste, Elementor borne la largeur des blocs ; dans une grille de la maquette, chaque carte doit occuper toute sa case */
.ahs-flux .jet-listing-grid__item>.elementor>.e-con{max-width:none;justify-self:stretch;--margin-left:0px;--margin-right:0px}
.elementor .gal__p .gal__p-ph{width:100%}
/* Fil d'Ariane de Rank Math dans le bloc .fil de la maquette */
.elementor .fil .rank-math-breadcrumb p{margin:0;display:flex;flex-wrap:wrap;gap:0 8px}
.elementor .fil .rank-math-breadcrumb a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:currentColor}
.elementor .fil .rank-math-breadcrumb .separator{opacity:.64}
/* Texte « Au programme » saisi dans l'éditeur WordPress */
.elementor .ahs-texte p{margin:0 0 12px}.elementor .ahs-texte p:last-child{margin-bottom:0}
.elementor .ahs-texte ul{margin:0 0 12px;padding-left:20px}.elementor .ahs-texte h3{margin:16px 0 8px;font:700 20px/28px "Cabinet Grotesk",sans-serif;color:var(--encre)}
/* Texte « Au programme » : un seul style d'intertitre quel que soit le niveau d'origine (h2, h3, h4), espacements réguliers, listes alignées */
.elementor .ahs-texte :is(p,ul,ol){margin:0 0 12px}
.elementor .ahs-texte :is(h2,h3,h4,h5,h6){margin:16px 0 8px;padding:0;font:700 20px/28px "Cabinet Grotesk",sans-serif;letter-spacing:normal;text-transform:none;color:var(--encre)}
.elementor .ahs-texte :is(.elementor-widget-container,.elementor-widget-theme-post-content)>:first-child,.elementor .ahs-texte>:first-child{margin-top:0}
.elementor .ahs-texte :is(.elementor-widget-container,.elementor-widget-theme-post-content)>:last-child,.elementor .ahs-texte>:last-child{margin-bottom:0}
.elementor .ahs-texte :is(ul,ol){padding-left:20px}
.elementor .ahs-texte li{margin:0 0 4px}
.elementor .ahs-texte li::marker{color:var(--ardoise)}
/* Pas d'équivalent natif : le widget Contenu de l'article n'a pas de couleur de lien ; sans cette règle, liens rose du thème (#c36) */
.elementor .ahs-texte a{color:var(--encre);text-decoration:underline;text-underline-offset:4px}
.elementor .qr__r-p p{margin:0 0 12px}.elementor .qr__r-p p:last-child{margin-bottom:0}
/* Mosaïque de la fiche : la première photo occupe deux rangées, seules les cinq premières sont visibles (toutes défilent sur mobile) */
.elementor .gal__p .jet-listing-grid__item:first-child .gal__p-ph{grid-row:1 / 3}
.elementor .gal__p .jet-listing-grid__item:nth-child(n+6) .gal__p-ph{display:none}
@media (max-width:767px){.elementor .gal__p .jet-listing-grid__item:first-child .gal__p-ph{grid-row:auto}.elementor .gal__p .jet-listing-grid__item:nth-child(n+6) .gal__p-ph{display:block}}
/* Mosaïque d'une fiche avec moins de 5 photos, sans case vide : 1 photo en pleine largeur ; 2 photos, deux grandes ;
   3 photos, la grande puis deux verticales ; 4 photos, la quatrième en bandeau sous les deux petites */
@media (min-width:768px){
  .elementor .gal__p:has(.jet-listing-grid__item:only-child) .gal__p-ph{grid-column:1 / -1;grid-row:1 / 3}
  .elementor .gal__p:has(.jet-listing-grid__item:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .elementor .gal__p:has(.jet-listing-grid__item:nth-child(2):last-child) .gal__p-ph,.elementor .gal__p:has(.jet-listing-grid__item:nth-child(3):last-child) .gal__p-ph{grid-row:1 / 3}
  .elementor .gal__p:has(.jet-listing-grid__item:nth-child(4):last-child) .jet-listing-grid__item:nth-child(4) .gal__p-ph{grid-column:2 / 4}
}
/* Pages de rubrique : une section sans contenu (pas de cartes, pas de sous-rubriques, pas de questions) ne s'affiche pas */
body:not(.elementor-editor-active) .elementor .sec--nuit:not(:has(.atouts-li)):has(.atouts),body:not(.elementor-editor-active) .elementor .sec--dest:not(:has(.dest-li)){display:none}
/* Page de liste sans FAQ : la section FAQ ne garde qu'un espace (48 px, 32 px sous 960 px) ; avec le bas des destinations (48 / 32 px),
   le bandeau final reste à 96 / 64 px, comme sous une FAQ. (Pas de :has() dans :has(), que le navigateur ignore.) */
body:not(.elementor-editor-active) .elementor .sec--der:not(:has(details,.jet-accordion__item)):has(.qr__l){padding-block:48px 0}
body:not(.elementor-editor-active) .elementor .sec--der:not(:has(details,.jet-accordion__item)):has(.qr__l)>*{display:none}
@media (max-width:959px){body:not(.elementor-editor-active) .elementor .sec--der:not(:has(details,.jet-accordion__item)):has(.qr__l){padding-block:32px 0}}

/* ---------- Filtres des pages de liste (JetSmartFilters) ----------
   Pas d'équivalent natif en V4 : ce sont des widgets V3 au HTML imposé par JetSmartFilters. Ils reprennent ici l'aspect des
   pastilles, du curseur de prix et des filtres actifs de la maquette (mêmes valeurs que les classes .opt, .prix__r, .prix__c, .actif). */
.elementor .f__pop fieldset{display:flex;flex-wrap:wrap;gap:8px;min-width:0;margin:0;padding:0;border:0}
.elementor .f__pop .jet-radio-list-wrapper,.elementor .f__pop .jet-filter-row,.elementor .f__pop .jet-checkboxes-list__button,.elementor .f__pop .jet-radio-list__button{display:contents}
.elementor .f__pop .jet-checkboxes-list__item,.elementor .f__pop .jet-radio-list__item{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:40px;margin:0;padding:8px 16px;border:1px solid var(--ligne);border-radius:999px;background:var(--blanc);color:var(--encre);font:500 14px/20px "Switzer",sans-serif;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}
.elementor .f__pop .jet-checkboxes-list__item:hover,.elementor .f__pop .jet-radio-list__item:hover{border-color:var(--encre)}
.elementor .f__pop label input{display:block;position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.elementor .f__pop .jet-checkboxes-list__label,.elementor .f__pop .jet-radio-list__label{padding:0;font:inherit;color:inherit}
.elementor .f__pop .jet-filters-counter{margin:0;padding:0;font:400 13px/20px "Switzer",sans-serif;color:#6b6a63}
.elementor .f__pop label:has(input:checked){border-color:var(--ardoise);background:var(--ardoise);color:var(--blanc)}
.elementor .f__pop label:has(input:checked) .jet-filters-counter{color:rgba(255,255,255,.72)}
.elementor .f__pop label:has(input:focus-visible){outline:2px solid var(--encre);outline-offset:2px}
.elementor .f__pop .jet-filter-row-disable label,.elementor .f__pop label:has(input:disabled){border-color:var(--ligne);opacity:.4;cursor:default}
.elementor .f__pop .jet-filter-row-disable input,.elementor .f__pop input:disabled{cursor:default}
/* Budget : histogramme (barres posées par ahs-maquette.js), curseur à deux poignées, champs « Minimum » et « Maximum » */
.elementor .prix__h i{position:absolute;bottom:0;left:calc(16px + (100% - 32px)*var(--t));width:calc((100% - 32px)/var(--n) - 8px);height:calc(var(--h)*100%);border-radius:2px 2px 0 0;background:var(--ligne);transform:translateX(-50%);transition:height .2s,background-color .15s}
.elementor .prix__h i.on{background:var(--ardoise)}
.elementor .f--prix .jet-range{margin:0}
.elementor .f--prix .jet-range__slider{position:relative;height:32px;min-width:0;margin:-16px 0 0;padding:0;border:0}
.elementor .f--prix .jet-range__slider__track{position:absolute;top:15px;left:16px;right:16px;height:2px;margin:0;border-radius:0;background:var(--ligne)}
.elementor .f--prix .jet-range__slider__track__range{position:absolute;top:0;left:var(--low);right:calc(100% - var(--high));width:auto;height:2px;border-radius:0;background:var(--ardoise)}
.elementor .f--prix .jet-range__slider__input{position:absolute;top:0;left:0;z-index:1;width:100%;height:32px;transform:none;margin:0;padding:0;border:0;background:none;-webkit-appearance:none;appearance:none;pointer-events:none}
.elementor .f--prix .jet-range__slider__input:focus{outline:0}
.elementor .f--prix .jet-range__slider__input::-webkit-slider-runnable-track{height:32px;background:none;border:0}
.elementor .f--prix .jet-range__slider__input::-moz-range-track{height:32px;background:none;border:0}
.elementor .f--prix .jet-range__slider__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:32px;height:32px;margin:0;border:1px solid var(--ligne);border-radius:999px;background:var(--blanc);box-shadow:0 2px 8px rgba(27,27,26,.16);pointer-events:auto;cursor:grab}
.elementor .f--prix .jet-range__slider__input::-moz-range-thumb{box-sizing:border-box;width:32px;height:32px;border:1px solid var(--ligne);border-radius:999px;background:var(--blanc);box-shadow:0 2px 8px rgba(27,27,26,.16);pointer-events:auto;cursor:grab}
.elementor .f--prix .jet-range__slider__input:hover::-webkit-slider-thumb,.elementor .f--prix .jet-range__slider__input:focus-visible::-webkit-slider-thumb{border-color:var(--encre)}
.elementor .f--prix .jet-range__slider__input:hover::-moz-range-thumb,.elementor .f--prix .jet-range__slider__input:focus-visible::-moz-range-thumb{border-color:var(--encre)}
.elementor .f--prix .jet-range__inputs{margin:16px 0 0;padding:0}
.elementor .f--prix .jet-range__inputs__container{display:flex;justify-content:space-between;gap:16px;min-width:0;margin:0;padding:0;border:0}
.elementor .f--prix .jet-range__inputs__group{position:relative;overflow:visible;display:inline-flex;align-items:center;justify-content:center;gap:4px;width:96px;height:48px;margin:24px 0 0;padding:0;border:1px solid var(--ligne);border-radius:999px;background:var(--blanc);font:500 16px/24px "Switzer",sans-serif;color:var(--encre)}
.elementor .f--prix .jet-range__inputs__group::before{content:"Minimum";position:absolute;bottom:100%;left:-16px;right:-16px;margin-bottom:4px;text-align:center;font:400 14px/20px "Switzer",sans-serif;color:#6b6a63}
.elementor .f--prix .jet-range__inputs__group+.jet-range__inputs__group::before{content:"Maximum"}
.elementor .f--prix .jet-range__inputs__group:focus-within{border-color:var(--encre)}
.elementor .f--prix .jet-range__inputs__group input{width:3ch;min-width:0;height:auto;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;font:inherit;color:inherit;text-align:right;outline:0;-moz-appearance:textfield;appearance:textfield}
.elementor .f--prix .jet-range__inputs__group input::-webkit-inner-spin-button,.elementor .f--prix .jet-range__inputs__group input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.elementor .f--prix .jet-range__inputs__group__text{margin:0;padding:0;border:0;background:none;font:inherit;color:inherit} /* sans la bordure que JetSmartFilters met devant « € » */
/* Filtres actifs sous la barre : pastilles grises, « Tout effacer » souligné ; le tri n'y figure pas (comme dans la maquette) */
.elementor .actifs:not(:has(.jet-active-filter:not(.is-tri))){display:none}
.elementor .actifs:has(.jet-active-filter:not(.is-tri)){display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px} /* la classe de la maquette a été relevée vide, donc masquée */
.elementor .actifs .jet-active-filters,.elementor .actifs .jet-active-filters__list,.elementor .actifs .jet-remove-all-filters{display:contents}
.elementor .actifs .jet-active-filters__title,.elementor .actifs .jet-active-filter__label,.elementor .actifs .jet-active-filter.is-tri,.elementor .actifs .hide-widget,.elementor .actifs .jet-remove-all-filters.hide{display:none}
.elementor .actifs .jet-active-filter{display:inline-flex;align-items:center;gap:4px;min-height:32px;margin:0;padding:4px 8px 4px 12px;border:0;border-radius:999px;background:var(--fond);color:var(--encre);font:600 14px/20px "Switzer",sans-serif;cursor:pointer}
.elementor .actifs .jet-active-filter__val{padding:0;font:inherit;color:inherit}
.elementor .actifs .jet-active-filter__remove{position:static;display:block;width:14px;height:14px;margin:0;padding:0;border:0;border-radius:0;background:var(--encre);line-height:0;color:transparent;overflow:hidden;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/contain no-repeat}
.elementor .actifs .jet-remove-all-filters__button{display:inline-flex;align-items:center;min-height:32px;margin:0;padding:4px 8px;border:0;border-radius:999px;background:none;color:var(--encre);font:600 14px/20px "Switzer",sans-serif;text-decoration:underline;white-space:nowrap;cursor:pointer}
/* Pastille du nombre de filtres sur le bouton « Filtres » (posée par ahs-maquette.js) */
.elementor .barre__ouvrir{position:relative}
.elementor .barre__ouvrir .n{position:absolute;top:-4px;right:-4px;display:inline-grid;place-items:center;min-width:20px;height:20px;padding-inline:4px;border-radius:999px;background:var(--ardoise);color:var(--blanc);font:700 13px/20px "Switzer",sans-serif}
.elementor .barre__ouvrir .n[hidden]{display:none}
/* Liste d'activités : tuile « Besoin d'un conseil ? » après la 7e activité, seulement au-delà de 7 (comme la maquette) ;
   « Afficher plus » disparaît avec son bouton ; liste vide = message de la maquette */
.elementor .resultats .jet-listing-grid__item:nth-child(n+8)>.elementor>*{order:2} /* l'enveloppe s'efface (display:contents) : c'est la carte qui se range */
.elementor .resultats>.conseil{order:1}
.elementor .resultats:not(:has(.jet-listing-grid__item:nth-child(8)))>.conseil{display:none}
.elementor .suite:has(#cat-plus[style*="none"]){display:none}
.elementor .resultats .ahs-flux .jet-listing-not-found{display:contents}
.elementor .vide{grid-column:1/-1;display:grid;gap:16px;justify-items:center;padding:64px 16px;background:linear-gradient(90deg,rgba(27,27,26,.36) 50%,transparent 0) left top/16px 1px repeat-x,linear-gradient(90deg,rgba(27,27,26,.36) 50%,transparent 0) left bottom/16px 1px repeat-x;text-align:center}
.elementor .vide .h3{margin:0;font:700 20px/28px "Cabinet Grotesk",sans-serif;color:var(--encre)}
.elementor .vide p{max-width:52ch;margin:0;font:400 16px/24px "Switzer",sans-serif;color:#4a4a46}
.elementor .vide .vide__b{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;width:100%;max-width:none}
.elementor .vide .vide__b a.btn,.elementor .ahs-tiers .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border:1px solid transparent;border-radius:999px;background:var(--ardoise);color:var(--blanc);font:700 16px/24px "Cabinet Grotesk",sans-serif;text-decoration:none;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s}
.elementor .vide .vide__b a.btn:hover,.elementor .ahs-tiers .btn:hover{background:#1f2d3a;color:var(--blanc)}
@media (max-width:959px){.elementor .vide .vide__b .btn,.elementor .ahs-tiers .btn{width:100%}}
@media (min-width:960px){.elementor .vide .h3{font-size:24px;line-height:32px}}
.elementor .jet-listing-grid.jet-listing-grid--loading,.elementor .resultats .jet-listing-grid__loader{opacity:.5}

/* ---------- Accueil et grilles de cartes ---------- */
/* Entre 960 et 1199 px, la maquette range les cartes sur trois colonnes (Elementor n'a pas cette largeur : son « bureau » est relevé à 1440 px) */
@media (min-width:960px) and (max-width:1199px){.elementor .e-con.resultats,.elementor .e-con.grille8{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Activités préférées : Été ou Hiver selon le bouton (ahs-maquette.js ; Été sans script) ; 8 cartes, la 9e seulement sur trois colonnes */
.elementor .grille8:not([data-saison="h"]) .ahs-saison-h,.elementor .grille8[data-saison="h"] .ahs-saison-e{display:none}
.elementor .grille8 .jet-listing-grid__item:nth-child(9)>.elementor>*{display:none}
@media (min-width:960px) and (max-width:1199px){.elementor .grille8 .jet-listing-grid__item:nth-child(9)>.elementor>*{display:grid}}
.elementor .segm .segm-button[aria-pressed="true"]{background:var(--blanc);color:var(--encre);box-shadow:0 1px 4px rgba(27,27,26,.16)}
.elementor .segm .segm-button[aria-pressed="false"]{background:transparent;color:#4a4a46;box-shadow:none}
/* Mur d'avis : chaque élément de liste porte un avis et la photo de la sortie ; son enveloppe s'efface pour que les tuiles défilent en ligne */
.elementor .mur__r .jet-listing-grid__item>.elementor>.e-con{display:contents}
/* Recherche (JetSmartFilters) : listes déroulantes et bouton « Rechercher » de la maquette */
.elementor .cherche__c .jet-select{grid-column:2;min-width:0;margin:0}
.elementor .cherche__c .jet-select__control{-webkit-appearance:none;appearance:none;width:100%;min-height:28px;height:auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;font:400 16px/24px "Switzer",sans-serif;color:#4a4a46;cursor:pointer}
.elementor .cherche__c .jet-select__control:focus-visible{outline:2px solid var(--encre);outline-offset:4px;border-radius:4px}
.elementor .cherche .apply-filters{display:block;margin:0}
.elementor .cherche .apply-filters__button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;margin:0;padding:12px 24px;border:1px solid transparent;border-radius:999px;background:var(--ardoise);color:var(--blanc);font:700 16px/24px "Cabinet Grotesk",sans-serif;white-space:nowrap;cursor:pointer;transition:background-color .15s}
.elementor .cherche .apply-filters__button:hover{background:#1f2d3a;color:var(--blanc)}
.elementor .cherche .apply-filters__button::before{content:"";flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.75' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='M16 16l4.5 4.5'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- Article ---------- */
/* Texte de l'article (blocs WordPress dans le widget « Contenu de l'article ») : mêmes valeurs que le texte d'article de la maquette ;
   la taille du texte courant est réglée dans le widget */
.elementor .ahs-article :is(p,ul,ol,figure,h2,h3,h4,blockquote){margin:16px 0 0}
.elementor .ahs-article :is(.elementor-widget-container,.elementor-widget-theme-post-content)>:first-child,.elementor .ahs-article>:first-child{margin-top:0}
.elementor .ahs-article h2{margin-top:56px;font:700 24px/32px "Cabinet Grotesk",sans-serif;color:var(--encre);scroll-margin-top:104px}
.elementor .ahs-article h3{margin-top:32px;font:700 20px/28px "Cabinet Grotesk",sans-serif;color:var(--encre);scroll-margin-top:104px}
.elementor .ahs-article h2+h3{margin-top:8px;font:500 20px/28px "Switzer",sans-serif;color:#4a4a46}
.elementor .ahs-article a{color:var(--encre);text-decoration:underline;text-underline-offset:4px}
.elementor .ahs-article h2 a,.elementor .ahs-article h3 a{text-decoration-thickness:1px}
.elementor .ahs-article :is(ul,ol){display:grid;gap:8px;padding-left:24px}
.elementor .ahs-article ul{list-style:disc}
.elementor .ahs-article li::marker{color:var(--ardoise)}
.elementor .ahs-article figure{margin-top:32px}
.elementor .ahs-article figure img{display:block;width:100%;height:auto;border-radius:16px}
.elementor .ahs-article strong{font-weight:600;color:var(--encre)}
/* Sommaire : lignes posées par ahs-maquette.js d'après les intertitres ; sans intertitre, il ne s'affiche pas */
.elementor .som:not(:has(.som-li:not([hidden]))){display:none}
.elementor .som .som-li[hidden]{display:none}
.elementor .som .som-li .ahs-ici{border-left-color:var(--ardoise);font-weight:500;color:var(--encre)}
/* Pages de liste : blocs de texte de la rubrique (champ rub_blocs, widget Dynamic Repeater de JetEngine, 61-gabarit-blocs.php) en
   colonne de lecture au style des articles ; pas d'équivalent natif pour masquer la section quand la rubrique n'a aucun bloc */
.elementor.elementor .e-con>.elementor-widget.ahs-blocs{max-width:720px;margin-inline:auto}
.elementor.elementor .ahs-blocs .jet-listing-dynamic-repeater__item,.elementor.elementor .ahs-blocs .jet-listing-dynamic-repeater__item>*{display:block;width:auto}
.elementor .ahs-blocs .jet-listing-dynamic-repeater__item:first-child>h2:first-child{margin-top:0}
body:not(.elementor-editor-active) .elementor [data-ahs-blocs]:not(:has(.jet-listing-dynamic-repeater__item)){display:none}
/* Pages destination, Formation, Base nature (gabarit 93-gabarits-seminaires.php) : « Nos offres à découvrir » masqué quand la
   rubrique n'a encore aucune activité (ex. Samoëns) ; pas d'équivalent natif pour masquer une section dont la grille est vide */
body:not(.elementor-editor-active) .elementor [data-ahs-offres]:not(:has(.jet-listing-grid__item)){display:none}
/* FAQ en accordéon JetTabs (fiches, pages de liste) : contenu des réponses au style des textes du site (liens à l'encre soulignés,
   12 px entre paragraphes et listes, puces ardoise) ; pas de réglage JetTabs pour les liens ni les marges du contenu */
.elementor .ahs-faq .jet-toggle__content-inner a{color:var(--encre);text-decoration:underline;text-underline-offset:4px}
.elementor .ahs-faq .jet-toggle__content-inner :is(p,ul,ol){margin:0}
.elementor .ahs-faq .jet-toggle__content-inner :is(p,ul,ol)+:is(p,ul,ol){margin-top:12px}
.elementor .ahs-faq .jet-toggle__content-inner :is(ul,ol){display:grid;gap:4px;padding-left:24px}
.elementor .ahs-faq .jet-toggle__content-inner li::marker{color:var(--ardoise)}
/* Page simple (mentions légales…) : le texte garde une longueur de ligne lisible */
.elementor .ahs-page-simple{max-width:720px}
.elementor .ahs-page-simple h2{margin-top:40px;font-size:20px;line-height:28px}
/* Page introuvable : sur ordinateur, le bouton garde sa largeur (pleine largeur sur tablette et mobile) */
@media (min-width:960px){.elementor .blog__hd>.btn{justify-self:start}}
/* Champ piège du formulaire de devis (anti-spam) : hors de l'écran, invisible et inaccessible au clavier */
.elementor [data-ahs-piege]{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
/* Vidéo intégrée dans un texte (programme, article) : à la largeur de la colonne, au format 16:9, coins arrondis */
.elementor :is(.ahs-texte,.ahs-article,.ahs-video) :is(iframe,video,.wp-block-embed__wrapper iframe){display:block;width:100%;max-width:100%;height:auto;aspect-ratio:16/9;border:0;border-radius:16px}
.elementor :is(.ahs-texte,.ahs-article) p:has(>iframe){margin-bottom:12px}
/* Page de demande de devis : pas d'appel final « Demander un devis » (la maquette le masquait sur cette page) */
body:has(.elementor #form) .elementor #final{display:none}
/* Vidéo YouTube et carte Google Maps en attente d'accord (inc/ahs-tiers.php) : le message prend la place de l'iframe, à ses dimensions
   (vidéo 16:9 comme ci-dessus ; carte de 240 px, 320 px dès 768 px comme le widget de la fiche). Pas d'équivalent natif : Cookiez ne bloque que les scripts. */
.elementor .ahs-tiers{display:grid;align-content:center;justify-items:center;gap:16px;box-sizing:border-box;width:100%;margin:0;padding:24px 16px;border-radius:16px;background:var(--fond);text-align:center}
.elementor .ahs-tiers--youtube{aspect-ratio:16/9}
.elementor :is(.ahs-texte,.ahs-article) .ahs-tiers{margin-bottom:12px}
.elementor .ahs-tiers--google-maps{min-height:240px}
@media (min-width:768px){.elementor .ahs-tiers--google-maps{min-height:320px}}
.elementor .ahs-tiers p{max-width:44ch;margin:0;font:400 16px/24px "Switzer",sans-serif;color:#4a4a46}
.elementor .ahs-tiers__b{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 24px}
.elementor .ahs-tiers .btn{margin:0;cursor:pointer}
.elementor .ahs-tiers .ahs-tiers__lien{min-height:48px;margin:0;padding:12px 0;border:0;background:none;font:500 16px/24px "Switzer",sans-serif;color:var(--encre);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
@media (max-width:959px){.elementor .ahs-tiers__b{flex-direction:column;align-self:stretch;width:100%}}
/* Vidéo d'une fiche (champ activite_video, sous les points forts) : bloc masqué sans vidéo ; vignette de consentement sans marge */
body:not(.elementor-editor-active) .elementor [data-ahs-video]:not(:has(iframe,.ahs-tiers)){display:none}
.elementor .ahs-video .ahs-tiers{margin:0}
/* Encart activité des articles (élément de liste JetEngine #6304, classes art-act de la maquette). Pas d'équivalent natif : rendu par le
   bloc JetEngine dans le contenu de l'article, l'encart ne reçoit pas la feuille des classes globales d'Elementor ; règles de la maquette. */
.elementor .ahs-article .art-act{position:relative;display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:center;margin:32px 0 0;padding:16px;border:0;border-radius:16px;background:var(--fond);transition:background-color .15s}
.elementor .ahs-article .art-act:hover{background:var(--ligne)}
.elementor .ahs-article .art-act .art-act-ph{position:relative;overflow:hidden;aspect-ratio:1/1;min-width:0;padding:0;border-radius:12px}
.elementor .ahs-article .art-act .ph-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform .5s}
.elementor .ahs-article .art-act:hover .ph-img{transform:scale(1.04)}
.elementor .ahs-article .art-act .art-act__tx{display:grid;gap:4px;min-width:0;padding:0}
.elementor .ahs-article .art-act .art-act__tx-b{margin:0;font:700 20px/28px "Cabinet Grotesk",sans-serif;color:var(--encre)}
.elementor .ahs-article .art-act .art-act__tx-b a{color:inherit;text-decoration:none}
.elementor .ahs-article .art-act .art-act__tx-b a::after{content:"";position:absolute;inset:0;border-radius:16px}
.elementor .ahs-article .art-act .art-act__tx-span{display:flex;flex-wrap:wrap;padding:0;font:400 14px/20px "Switzer",sans-serif;color:#6b6a63}
/* « dès X € / pers. » à sa largeur : le style par défaut des blocs Elementor (.e-con) lui donnait toute la ligne, d'où un retour forcé */
.elementor .ahs-article .art-act .art-act__tx-span>div{display:flex;flex:none;width:auto;min-width:0;padding:0;white-space:nowrap}
.elementor .ahs-article .art-act .art-act-btn{position:relative;z-index:1;grid-column:1/-1;display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin:0;padding:8px 16px;border:1px solid transparent;border-radius:999px;background:var(--ardoise);color:var(--blanc);font:600 14px/20px "Switzer",sans-serif;white-space:nowrap;cursor:pointer}
.elementor .ahs-article .art-act .art-act-btn[aria-pressed="true"]{border-color:var(--ligne);background:var(--blanc);color:var(--encre)}
/* La ligne « lieu · durée · dès X € / pers. » reste sur une ligne (Louis, 15/10/2026 : « Faut pas passer à la ligne le prix »). La mise
   en page suit la largeur de l'encart, pas celle de l'écran (à 1024 px, la colonne de l'article ne fait que 480 px) : la ligne la plus
   longue fait 278 px. Moins de 480 px : la ligne passe sous la photo et le nom, sur toute la largeur. De 480 à 679 px : photo, texte,
   bouton dessous. À partir de 680 px : bouton à droite. */
.elementor .ahs-article :has(>.art-act){container:ahs-encart/inline-size}
@container ahs-encart (max-width:479px){.elementor .ahs-article .art-act .art-act__tx{display:contents}.elementor .ahs-article .art-act .art-act__tx-span{grid-column:1/-1}}
@container ahs-encart (min-width:480px){.elementor .ahs-article .art-act{grid-template-columns:128px minmax(0,1fr);gap:24px}.elementor .ahs-article .art-act .art-act-ph{aspect-ratio:4/3}}
@container ahs-encart (min-width:680px){.elementor .ahs-article .art-act{grid-template-columns:128px minmax(0,1fr) auto}.elementor .ahs-article .art-act .art-act-btn{grid-column:auto}}
/* Blog et pages de catégorie (gabarit 6313) : la section « Les autres articles » disparaît quand la catégorie n'a qu'un article
   (sinon un trait seul et 100 px de vide avant le pied de page) */
.elementor .blog__s:not(:has(.jet-listing-grid__item)){display:none}
