/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.4
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Styles communs Jardin & Creation — Logia. */

.jc-highlight{background:linear-gradient(180deg,rgba(160,202,98,.80) 0%,rgba(160,202,98,.20) 100%) 0 100%/100% 40% no-repeat!important;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.jc-eyebrow .elementor-heading-title::before{content:"";display:inline-block;width:.45em;height:.45em;margin-inline-end:.65em;border-radius:50%;background:var(--e-global-color-secondary);vertical-align:middle}
.jc-trust{backdrop-filter:blur(9px)}

/* Alignement commun des boutons hero et presentation. */
.jc-button-aligned svg{width:35px}
.jc-button-aligned span{align-self:center}

/* Fleches vertes : etat commun aux cartes et aux boutons, deplacement doux au survol. */
.jc-prestation-hover .jc-card-arrow svg path,
.jc-prestations .elementor-button-icon svg path,
.jc-next-button .elementor-button-icon svg path{fill:currentColor;color:var(--e-global-color-primary);transition:color 250ms ease,transform 250ms ease}
.jc-prestation-hover:is(:hover,:focus-within) .jc-card-arrow svg path,
.jc-prestations .elementor-button:is(:hover,:focus-visible) .elementor-button-icon svg path,
.jc-next-button .elementor-button:is(:hover,:focus-visible) .elementor-button-icon svg path{color:var(--e-global-color-accent);transform:translate(2px,-2px)}

/* Boutons avec fleche : alignement et taille de l'icone. */
.jc-next-button .elementor-button-content-wrapper{align-items:center}
.jc-next-button .elementor-button-icon{display:inline-flex;flex-shrink:0}
.jc-next-button .elementor-button-icon svg{width:35px;height:35px}
.jc-next-button .elementor-button-text{text-align:left}

/* Qui sommes-nous : compositions propres aux widgets de la maquette. */
.jc-value-box .elementor-icon-box-wrapper{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:18px;row-gap:24px;align-items:start}
.jc-value-box .elementor-icon-box-content{display:contents}
.jc-value-box .elementor-icon-box-title{grid-column:1/-1;grid-row:1}
.jc-value-box .elementor-icon-box-icon{grid-column:1;grid-row:2;margin:0}
.jc-value-box .elementor-icon-box-description{grid-column:2;grid-row:2}
.jc-history-timeline .lt-item{display:grid;grid-template-columns:max-content 18px minmax(0,1fr);column-gap:12px;row-gap:20px;align-content:start;align-items:start}
.jc-history-timeline .lt-head,.jc-history-timeline .lt-body{display:contents}
.jc-history-timeline .lt-line-zone{grid-column:1/-1;grid-row:1}
.jc-history-timeline .lt-date{grid-column:1;grid-row:2}
.jc-history-timeline .lt-icon{grid-column:2;grid-row:2;align-self:center}
.jc-history-timeline .lt-title{grid-column:3;grid-row:2}
.jc-history-timeline .lt-desc{grid-column:1/-1;grid-row:3}
.jc-history-timeline .lt-item:first-child .lt-line-zone::before{border-image:linear-gradient(90deg,var(--e-global-color-secondary),rgba(148,183,101,.3)) 1}
.jc-history-timeline .lt-item:last-child .lt-line-zone::before{border-top-style:dashed}
.jc-history-timeline .lt-item:last-child .lt-marker{opacity:.5}
.jc-history-timeline .lt-swiper{padding-top:10px}
.jc-history-timeline .lt-nav{top:10px}
.jc-about-decoration{pointer-events:none}
/* Methode elagage : numeros et connecteurs de la composition a cinq etapes. */
.elementor .jc-elagage-method .jc-methode-badge{transform:translateX(-60px)}
@media(min-width:1025px){.elementor .e-con.jc-elagage-method > .e-con{z-index:0}.elementor .e-con.jc-elagage-method > .e-con:not(:first-child)::before{left:calc(-50% - 28px);right:auto;width:calc(100% + 28px);top:55px;z-index:-1}.elementor .jc-elagage-method .jc-methode-circle{position:relative;z-index:1;background:#F7F6F3}.elementor .jc-elagage-method .jc-methode-badge{z-index:2}}

/* Composants reutilises sur les pages de prestations. */
.elementor .jc-city-list > .elementor-widget-icon-list .elementor-icon-list-icon{width:0;flex:0 0 auto;overflow:hidden;opacity:0;padding:0;margin:0;transition:width 250ms ease,margin 250ms ease,opacity 250ms ease}
.elementor .jc-city-list > .elementor-widget-icon-list .elementor-icon-list-icon svg{width:16px;min-width:16px;height:16px;fill:#593923}
.elementor .jc-city-list > .elementor-widget-icon-list .elementor-icon-list-text{padding-inline-start:0;transition:color 250ms ease}
.elementor .jc-city-list > .elementor-widget-icon-list:is(:hover,:focus-within) .elementor-icon-list-icon{width:16px;margin-inline-end:8px;opacity:1}
.elementor .jc-city-list > .elementor-widget-icon-list:is(:hover,:focus-within) .elementor-icon-list-text{color:#593923}
/* Mouvement reduit : toutes les transitions et deplacements du site sont coupes ici. */
@media(prefers-reduced-motion:reduce){
  .elementor .jc-city-list > .elementor-widget-icon-list .elementor-icon-list-icon,
  .elementor .jc-city-list > .elementor-widget-icon-list .elementor-icon-list-text,
  .jc-prestation-hover .jc-card-arrow svg path,
  .jc-prestations .elementor-button-icon svg path,
  .jc-next-button .elementor-button-icon svg path,
  .elementor-location-header .elementor-element-52a517fd{transition:none}
  .jc-prestation-hover:is(:hover,:focus-within) .jc-card-arrow svg path,
  .jc-prestations .elementor-button:is(:hover,:focus-visible) .elementor-button-icon svg path,
  .jc-next-button .elementor-button:is(:hover,:focus-visible) .elementor-button-icon svg path{transform:none}
}
.elementor .e-con.jc-map-bubble-up::after{top:-34px;bottom:auto;left:72px;border-width:0 0 36px 32px;border-color:transparent transparent #3C2516 transparent}

/* Alignement du cartouche avec le contenu central sur grand ecran. */
@media(min-width:1025px){body:not(.rtl) .elementor .e-con.jc-trust.jc-about-hero-proof{right:max(70px,calc((100% - 1440px)/2))}}
/* Garder le premier repere entier dans le cadre de la frise. */
.jc-history-timeline .swiper-slide-active .lt-line-zone::after{left:8px}
.jc-history-timeline .lt-nav.swiper-button-disabled{visibility:hidden}


.jc-team-plus{color:var(--e-global-color-secondary)}

/* Encarts superposes : retour dans le flux sur mobile. */
@media(max-width:767px){
  .elementor .e-con.jc-mobile-flow{position:relative;inset:auto}
}

/* Paysagisme et entretien de jardin : sur-titres en pilule. */
.jc-eyebrow-pill .elementor-heading-title{display:inline-flex;align-items:center;gap:10px;padding:15px 16px 16px;border:1px solid var(--e-global-color-secondary);border-radius:100px;background:rgba(255,255,255,.5)}
.jc-eyebrow-pill--dark .elementor-heading-title{background:rgba(255,255,255,.06)}

/* Encart credit d'impot du hero : le chiffre garde sa largeur, le texte se replie. */
.elementor .e-con.jc-hero-card .e-con{min-width:0;max-width:100%}
.jc-hero-card .elementor-widget-heading{min-width:0}

/* Halo de la carte : rendu CSS compatible avec la sanitisation SVG WordPress. */
.jc-zone-map-visual{background:radial-gradient(ellipse at 55% 55%,rgba(148,183,101,.18),rgba(148,183,101,.07) 45%,transparent 72%)}
/* Carte de la zone d'intervention : l'export est detoure (fond transparent), donc l'ombre
   doit suivre la silhouette — le controle natif Ombre dessinerait le cadre rectangulaire. */
.jc-zone-map img{filter:drop-shadow(0 18px 30px color-mix(in srgb,var(--e-global-color-secondary) 20%,transparent))}
/* Bulle large avec la pointe vectorielle Figma, sans imposer une largeur aux autres cartes. */
.jc-map-callout::after{content:"";position:absolute;top:-64px;left:100px;width:80px;height:65px;background:url("https://jardinetcreation.fr/wp-content/uploads/2026/09/jc-zone-pointe.svg") center/contain no-repeat;pointer-events:none}
@media(max-width:767px){.jc-map-callout::after{left:60px;width:60px;height:49px;top:-48px}}
/* Bulle de la carte "zone d'intervention" : pointe. */
.jc-map-bubble{position:relative}
.jc-map-bubble::after{content:"";position:absolute;left:28px;bottom:-14px;border-width:14px 14px 0 0;border-style:solid;border-color:#3C2516 transparent transparent transparent}

/* Largeurs des encarts positionnes (le controle natif de largeur ne s'applique pas aux conteneurs absolus). */
.elementor .e-con.jc-hero-card{width:400px;max-width:100%}
.elementor .e-con.jc-map-bubble{width:330px;max-width:calc(100% - 40px)}
@media(max-width:1024px){
  .elementor .e-con.jc-hero-card{position:relative;inset:auto;width:100%;max-width:100%;margin-top:28px}
  .elementor .e-con.jc-map-bubble{position:relative;inset:auto;width:100%;max-width:100%;margin-top:16px}
}

/* Boites SVG : disposition horizontale lorsque Elementor omet ses classes conditionnelles. */
.jc-service-icon{--jc-icon-size:40px;--jc-icon-gap:24px}
.jc-service-icon.jc-theme-icon{--jc-icon-size:24px;--jc-icon-gap:12px}
.jc-service-icon .elementor-icon-box-wrapper{display:flex;flex-direction:row;align-items:center;gap:var(--jc-icon-gap)}
.jc-service-icon .elementor-icon-box-icon{flex:0 0 var(--jc-icon-size);margin:0}
.jc-service-icon .elementor-icon-box-content{min-width:0}
.jc-service-icon .elementor-icon{font-size:var(--jc-icon-size);color:var(--e-global-color-secondary);transition:color 250ms ease}
.jc-service-icon .elementor-icon svg{width:var(--jc-icon-size);height:var(--jc-icon-size)}
.jc-service-icon:hover .elementor-icon{color:var(--e-global-color-accent)}
/* Etats communs des pictogrammes de methode : fond clair puis accent au survol. */
/* Pictogrammes des étapes : conserver les couleurs et tracés du SVG Figma.
   Les nouveaux fichiers ne partagent pas tous la même structure interne. */
/* Notre methode : cercle borde autour de l'icone de chaque etape (maquette). */
.elementor .e-con.jc-methode-circle{width:110px;height:110px;min-height:110px;flex:0 0 110px;border:1px solid rgba(148,183,101,.4);border-radius:100px}
.elementor .e-con.jc-methode-circle > .e-con-inner{width:100%;height:100%;align-items:center;justify-content:center;padding:10px}

/* Notre methode : badges numerotes et connecteurs pointilles. */
.elementor .e-con.jc-methode-badge{width:36px;height:36px;min-height:36px;flex:0 0 36px}
.elementor .e-con.jc-methode-badge > .e-con-inner{width:100%;height:100%;align-items:center;justify-content:center;padding:0}
.elementor .e-con.jc-history-methode > .e-con{position:relative}
@media(min-width:1025px){
  .elementor .e-con.jc-history-methode > .e-con:not(:first-child)::before{content:"";position:absolute;top:54px;right:100%;width:100%;border-top:2px dashed rgba(148,183,101,.4);z-index:0;pointer-events:none}
}


/* Page Contact : formulaire, coordonnées et décors de la maquette. */
/* Libelles masques par le controle natif du widget Formulaire (Afficher les libelles : Non). */
.jc-contact-form input.elementor-field{min-height:58px;padding:14px 24px}
.jc-contact-form textarea.elementor-field{min-height:128px;padding:18px 24px;resize:vertical}
.jc-contact-form .elementor-field::placeholder{color:rgba(71,61,31,.5);opacity:1}
.jc-contact-form .elementor-button{min-height:46px;transition:background-color 250ms ease,color 250ms ease}
.jc-contact-form .elementor-button-icon svg{display:block;width:40px;height:40px}
/* Le SVG du bouton d'envoi conserve son tracé sombre dans son cartouche clair. */
.jc-contact-form .elementor-button-icon svg path{fill:#392212!important}
.jc-contact-form .elementor-button-icon svg path{transition:transform 250ms ease}
.jc-contact-form .elementor-button:is(:hover,:focus-visible) .elementor-button-icon svg path{transform:translate(2px,-2px)}
@media(prefers-reduced-motion:reduce){.jc-contact-form .elementor-button-icon svg path{transition:none}.jc-contact-form .elementor-button:is(:hover,:focus-visible) .elementor-button-icon svg path{transform:none}}
/* Disposition de la boite d'icone : reglages natifs du widget (Position : gauche, Espacement : 22). */
.jc-contact-detail .elementor-icon-box-icon{flex:0 0 32px;margin:0}
.jc-contact-detail .elementor-icon{font-size:32px;color:var(--e-global-color-secondary)}
.jc-contact-detail .elementor-icon-box-content{min-width:0}
.jc-contact-detail .elementor-icon-box-title,.jc-contact-detail .elementor-icon-box-description{overflow-wrap:anywhere}
.jc-contact-grass{left:50%!important;right:auto!important;bottom:0!important;top:auto!important;transform:translateX(-50%)}
.jc-contact-leaf{right:3%!important;left:auto!important;top:20px!important}
/* Pictogrammes des coordonnees : proportions d'origine (le controle natif imposerait un carre). */
.jc-contact-detail .elementor-icon svg{width:32px;height:auto;max-height:39px}

/* Page Contact sur mobile : champs compacts et degagement sous le header fixe. */
@media(max-width:767px){
  .jc-contact-form input.elementor-field{min-height:48px;padding:9px 16px}
  .jc-contact-form select.elementor-field-textual{min-height:48px;height:48px;padding:9px 16px}
  .jc-contact-form textarea.elementor-field{min-height:120px;height:120px;padding:13px 16px}
  .jc-contact-form .elementor-form-fields-wrapper{row-gap:0}
}


/* Header : transparent sur les heroes, fond brun des le debut du scroll. */
.elementor-location-header .elementor-element-52a517fd{
  background-color:transparent!important;
  box-shadow:none;
  backdrop-filter:blur(0);
  transition:background-color 280ms ease,box-shadow 280ms ease,backdrop-filter 280ms ease
}
html.jc-header-scrolled .elementor-location-header .elementor-element-52a517fd,
body.page-id-1001 .elementor-location-header .elementor-element-52a517fd{
  background-color:rgba(58,34,18,.97)!important;
  box-shadow:0 10px 30px rgba(58,34,18,.16);
  backdrop-filter:blur(12px)
}
/* Paysagisme : connecteurs limites a l'espace entre les cercles. */
@media(min-width:1025px){.elementor .e-con.jc-paysagisme-method > .e-con:not(:first-child)::before{left:calc(-50% + 27px);right:auto;width:calc(100% - 82px);top:55px}}

/* Footer global : finitions de lisibilite. */
.jc-footer-legal strong{color:#F7F6F3;font-weight:500}

/* Header mobile : barre compacte, actions alignees et menu pleine largeur. */
@media(max-width:767px){
  .elementor-location-header .elementor-element-52a517fd{
    flex-wrap:nowrap!important;
    gap:10px!important;
    min-height:68px;
    background-color:rgba(58,34,18,.98)!important;
    box-shadow:0 8px 24px rgba(58,34,18,.18);
    backdrop-filter:blur(12px)
  }
  .elementor-location-header .jc-header-logo{flex:0 0 auto;max-width:86px}
  .elementor-location-header .jc-header-logo img{display:block;width:86px;height:auto}
  /* Le bouton « Nous contacter » cede la place au bouton d'appel (masque via Elementor). */
  .elementor-location-header .jc-header-tel{order:2;flex:0 0 44px;margin-inline-start:auto}
  .elementor-location-header .jc-header-tel .elementor-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    min-height:44px;
    padding:0
  }
  .elementor-location-header .jc-header-tel .elementor-button-content-wrapper{margin:0;justify-content:center}
  .elementor-location-header .jc-header-tel .elementor-button-text{display:none}
  .elementor-location-header .jc-header-tel .elementor-button-icon{margin:0;font-size:18px;line-height:1}
  .elementor-location-header .jc-header-nav{order:3;flex:0 0 44px;width:44px!important;margin-left:0}
  .elementor-location-header .jc-header-nav .elementor-menu-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    color:#F7F6F3;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(247,246,243,.18);
    border-radius:10px
  }
  .elementor-location-header .jc-header-nav .elementor-menu-toggle:hover,
  .elementor-location-header .jc-header-nav .elementor-menu-toggle:focus-visible,
  .elementor-location-header .jc-header-nav .elementor-menu-toggle.elementor-active{
    color:#94B765;
    background:rgba(255,255,255,.12)
  }
  /* Enfant direct uniquement : le sous-menu « Nos prestations » doit rester dans le flux. */
  .elementor-location-header .jc-header-nav > .elementor-nav-menu--dropdown{
    position:fixed!important;
    top:68px!important;
    left:0!important;
    right:0!important;
    width:100vw!important;
    max-height:calc(100vh - 68px);
    margin:0!important;
    overflow:auto;
    background:#3A2212;
    border:0;
    border-top:1px solid rgba(247,246,243,.14);
    border-radius:0 0 14px 14px;
    box-shadow:0 18px 30px rgba(28,16,8,.24)
  }
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a{
    min-height:52px;
    padding:14px 22px;
    color:#F7F6F3;
    background:#3A2212;
    font-size:17px;
    font-weight:600
  }
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a:hover,
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a:focus-visible,
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown .elementor-item-active{
    color:#94B765;
    background:#3A2212
  }
  .admin-bar .elementor-location-header .jc-header-nav > .elementor-nav-menu--dropdown{top:114px!important}
}

/* Accueil : hero mobile plus lisible et composition plus naturelle. */
.elementor .jc-hero-copy-mobile{display:none}
@media(max-width:767px){
  .elementor .jc-hero-copy-desktop{display:none!important}
  .elementor .jc-hero-copy-mobile{display:block!important}
  .admin-bar .elementor-location-header .elementor-element-52a517fd{top:46px!important}
}

/* Galerie « liseuse » : le lien de la visionneuse ne doit rien changer a la disposition. */
.jc-lightbox-group .elementor-widget-image a{display:block;width:100%;cursor:zoom-in}
.jc-lightbox-group .elementor-widget-image a img{display:block}
.jc-lightbox-group .elementor-widget-image a:focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px;border-radius:16px}

/* Hero accueil : segment en italique plus leger dans le H1 (maquette). */
.jc-hero-title em{font-style:italic;font-weight:500}

.elementor-slideshow__footer {
	display:none;
}

/* Header tablette : une seule ligne, menu au burger et bouton « Nous contacter » entier. */
@media(min-width:768px) and (max-width:1024px){
  .elementor-location-header .elementor-element-52a517fd{flex-wrap:nowrap!important}
  .elementor-location-header .jc-header-logo{flex:0 0 auto}
  .elementor-location-header .jc-header-logo img{display:block;height:auto}
  .elementor-location-header .jc-header-cta{order:2;flex:0 0 auto;margin-inline-start:auto}
  .elementor-location-header .jc-header-cta .elementor-button{white-space:nowrap}
  /* position:static : le panneau se cale sur l'en-tete fixe, admin-bar comprise. */
  .elementor-location-header .jc-header-nav{order:3;flex:0 0 44px;width:44px!important;margin-left:0;position:static}
  .elementor-location-header .jc-header-nav .elementor-menu-toggle{
    display:flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    padding:0;
    color:#F7F6F3;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(247,246,243,.18);
    border-radius:10px
  }
  .elementor-location-header .jc-header-nav .elementor-menu-toggle:hover,
  .elementor-location-header .jc-header-nav .elementor-menu-toggle:focus-visible,
  .elementor-location-header .jc-header-nav .elementor-menu-toggle.elementor-active{
    color:#94B765;
    background:rgba(255,255,255,.12)
  }
  .elementor-location-header .jc-header-nav > .elementor-nav-menu--dropdown{
    position:absolute!important;
    /* 96px = min_height_tablet du conteneur 52a517fd (reglage Elementor) : faire suivre les deux. */
    top:96px!important;
    left:0!important;
    right:0!important;
    width:auto!important;
    margin:0!important;
    max-height:calc(100vh - 140px);
    overflow:auto;
    background:#3A2212;
    border:0;
    border-top:1px solid rgba(247,246,243,.14);
    border-radius:0 0 14px 14px;
    box-shadow:0 18px 30px rgba(28,16,8,.24)
  }
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a{
    min-height:52px;
    padding:14px 22px;
    color:#F7F6F3;
    background:#3A2212;
    font-size:17px;
    font-weight:600
  }
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a:hover,
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a:focus-visible,
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown .elementor-item-active{
    color:#94B765;
    background:#3A2212
  }
}

/* Sous-menu du menu de bureau : apparition douce. SmartMenus se contente de passer le bloc
   en display:block (showFunction nul), donc l'animation se rejoue a chaque ouverture.
   Les delais d'ouverture/fermeture sont regles dans le snippet « Header — sous-menu sans latence ». */
@keyframes jc-submenu-in{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:none}
}
@media(min-width:1025px){
  .elementor-location-header .jc-header-nav .elementor-nav-menu--main .sub-menu{
    animation:jc-submenu-in 180ms ease-out;
    transform-origin:top center
  }
}
@media(prefers-reduced-motion:reduce){
  .elementor-location-header .jc-header-nav .elementor-nav-menu--main .sub-menu{animation:none}
}

/* Entree « Contact » du menu : presente partout, visible seulement sur mobile — sur les autres
   vues le bouton « Nous contacter » de l'en-tete tient ce role. */
.elementor-location-header .jc-header-nav li.jc-menu-mobile-only{display:none}
@media(max-width:767px){
  .elementor-location-header .jc-header-nav li.jc-menu-mobile-only{display:block}
}

/* Sous-menu « Nos prestations » : niveau 2 en retrait dans le panneau tablette et mobile. */
@media(max-width:1024px){
  /* Accordeon dans le flux : sans cela le niveau 2 se superpose aux entrees suivantes. */
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown .sub-menu{
    position:static!important;
    top:auto!important;
    left:auto!important;
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    margin:0!important;
    box-shadow:none!important;
    background:#3A2212
  }
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a.elementor-sub-item{
    min-height:46px;
    padding-block:12px;
    padding-inline-start:44px;
    color:rgba(247,246,243,.82)
  }

  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a.elementor-sub-item:hover,
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a.elementor-sub-item:focus-visible,
  .elementor-location-header .jc-header-nav .elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active{
    color:#94B765
  }
}

/* Réalisations : galerie basique ACF, 9 visuels initiaux puis « Voir plus » par lots de 9. */
#jc-realisations-gallery .gallery{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr));
  grid-auto-rows:340px;
  gap:22px;
  margin:0!important;
}
#jc-realisations-gallery .gallery-item{
  display:none;
  float:none!important;
  width:100%!important;
  max-width:none!important;
  min-width:0;
  height:100%;
  margin:0!important;
  padding:0!important;
  justify-self:stretch;
  grid-column:span 1;
  grid-row:span 1;
}
@keyframes jc-gallery-reveal{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}
#jc-realisations-gallery .gallery-item:nth-child(-n+9),
#jc-realisations-gallery .gallery-item.is-visible{
  display:block!important;
  animation:jc-gallery-reveal 420ms ease-out both;
  animation-delay:var(--jc-reveal-delay,0ms);
}
#jc-realisations-gallery .gallery-item:nth-child(2){--jc-reveal-delay:60ms}
#jc-realisations-gallery .gallery-item:nth-child(3){--jc-reveal-delay:120ms}
#jc-realisations-gallery .gallery-item:nth-child(4){--jc-reveal-delay:180ms}
#jc-realisations-gallery .gallery-item:nth-child(5){--jc-reveal-delay:240ms}
#jc-realisations-gallery .gallery-item:nth-child(6){--jc-reveal-delay:300ms}
#jc-realisations-gallery .gallery-item:nth-child(7){--jc-reveal-delay:360ms}
#jc-realisations-gallery .gallery-item:nth-child(8){--jc-reveal-delay:420ms}
#jc-realisations-gallery .gallery-item:nth-child(9){--jc-reveal-delay:480ms}
#jc-realisations-gallery .gallery-item:nth-child(9n+3),
#jc-realisations-gallery .gallery-item:nth-child(9n+5),
#jc-realisations-gallery .gallery-item:nth-child(9n+7){grid-column:span 2}
#jc-realisations-gallery .gallery-icon,
#jc-realisations-gallery .gallery-icon a,
#jc-realisations-gallery .gallery-icon img{
  display:block;
  width:100%;
  height:100%;
}
#jc-realisations-gallery .gallery-icon img{
  object-fit:cover;
  border-radius:16px;
  transition:transform 250ms ease;
}
#jc-realisations-gallery .gallery-icon a:is(:hover,:focus-visible) img{transform:scale(1.03)}
@media(prefers-reduced-motion:reduce){
  #jc-realisations-gallery .gallery-item{animation:none}
  #jc-realisations-gallery .gallery-icon img{transition:none}
  #jc-realisations-gallery .gallery-icon a:is(:hover,:focus-visible) img{transform:none}
}
@media(max-width:1024px){
  #jc-realisations-gallery .gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:280px;
    gap:18px;
  }
  #jc-realisations-gallery .gallery-item:nth-child(n){grid-column:span 1}
}
@media(max-width:767px){
  #jc-realisations-gallery .gallery{
    grid-template-columns:1fr;
    grid-auto-rows:260px;
    gap:14px;
  }
}

/* Méthode des prestations : alternance visuelle et liserés pointillés reliant les étapes. */
@media(min-width:1025px){
  .elementor .e-con.jc-history-methode > .e-con:nth-child(odd){
    transform:translateY(30px);
  }
  .elementor .e-con.jc-history-methode > .e-con:not(:first-child)::before{
    left:calc(-50% + 27px);
    right:auto;
    width:calc(100% - 82px);
    top:55px;
    border-top:2px dashed rgba(148,183,101,.4);
    transform-origin:right center;
  }
  .elementor .e-con.jc-history-methode > .e-con:nth-child(even)::before{
    transform:rotate(-8deg);
  }
  .elementor .e-con.jc-history-methode > .e-con:nth-child(odd)::before{
    transform:rotate(8deg);
  }
}
@media(prefers-reduced-motion:reduce){
  .elementor .e-con.jc-history-methode > .e-con:nth-child(odd){
    transform:none;
  }
}

/* Méthode : un unique liseré SVG, placé derrière toutes les étapes. */
@media(min-width:1025px){
  .elementor .e-con.jc-history-methode{
    position:relative;
    isolation:isolate;
  }
  .elementor .e-con.jc-history-methode::before{
    content:"";
    position:absolute;
    top:30px;
    right:0;
    left:0;
    height:150px;
    z-index:0;
    pointer-events:none;
    background:center top/100% 150px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 160' preserveAspectRatio='none'%3E%3Cpath d='M145 91L255 61M345 61L455 91M545 91L655 61M745 61L855 91' fill='none' stroke='%2394B765' stroke-opacity='.4' stroke-width='2' stroke-dasharray='6 6'/%3E%3C/svg%3E");
  }
  /* Les anciens traits par étape sont retirés : ils ne peuvent plus recouvrir un SVG. */
  .elementor .e-con.jc-history-methode > .e-con:not(:first-child)::before{
    content:none!important;
  }
  .elementor .e-con.jc-history-methode > .e-con{
    position:relative;
    z-index:1;
  }
  /* Les SVG Figma comprennent eux-mêmes le double cercle et le pictogramme. */
  .elementor .e-con.jc-history-methode .jc-methode-composite{
    position:relative;
    z-index:2;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .elementor .e-con.jc-history-methode .jc-methode-composite > .elementor-widget-icon{
    flex:0 0 auto;
    width:auto!important;
    height:auto!important;
    margin:0!important;
  }
  .elementor .e-con.jc-history-methode .jc-methode-composite .elementor-icon-wrapper,
  .elementor .e-con.jc-history-methode .jc-methode-composite .elementor-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:0;
  }
  .elementor .e-con.jc-history-methode .jc-methode-composite .elementor-icon svg{
    display:block;
  }
  .elementor .e-con.jc-history-methode .jc-methode-badge{
    z-index:3;
  }
}

.elementor-icon{
	line-height:0;
}
