/* ==========================================================================
   Pages construites avec Elementor
   Chaque conteneur et chaque widget porte les classes du thème dans
   « Avancé › Classes CSS », précédées du repère « mjc ». Cette feuille est
   chargée après celles d'Elementor et avant style.css :
   1. elle annule, sur les éléments repérés, les réglages par défaut
      d'Elementor (flex, marges, espacements, largeurs) — à spécificité
      égale, style.css passe ensuite devant ;
   2. elle transpose au balisage d'Elementor les règles de style.css écrites
      pour les blocs (figure, bouton, enfants directs).
   Un conteneur ou un widget sans la classe « mjc » garde le comportement
   normal d'Elementor.
   ========================================================================== */

/* ----- Socle : le thème décide de la mise en page ------------------------ */

/* Spécificité (0,1,0) grâce à :where() : passe devant les règles .e-con
   d'Elementor (chargées avant), derrière celles de style.css (chargée après). */
.mjc:where(.e-con){display:block;flex-wrap:nowrap;gap:0;margin:0;padding:0;width:auto;max-width:none;
  min-width:auto;position:static;overflow:visible;z-index:auto;border-radius:0;transition:initial}
/* Elementor fixe la direction en (0,2,0) : seule sa variable est réglable */
.e-con.mjc{--flex-direction:row}
.e-con.carte-dispositif,.e-con.carte-lieu,.e-con.carte-partenaire,.e-con.rangee-texte,.e-con.tuile{--flex-direction:column}
@media (max-width:700px){.e-con.tarifs{--flex-direction:column}}
/* le calque de fond d'Elementor (::before) laisse la place aux pseudo-éléments du thème */
.mjc:where(.e-con)::before{position:static;width:auto;height:auto;top:auto;left:auto;
  border-radius:0;border-style:none;opacity:1;mix-blend-mode:normal;transition:initial}

.mjc:where(.elementor-widget){position:static}
/* Elementor anime chaque widget en (0,2,0) */
.mjc.elementor-widget{transition:initial}
.e-con .mjc.elementor-widget{min-width:auto}

/* Elementor remet à zéro la marge basse et plafonne la largeur des widgets :
   on rétablit celles du thème. */
.e-con>.elementor-widget.mjc.fil-ariane{margin-block-end:26px}
.e-con>.elementor-widget.mjc.page-hero-logo{margin-block-end:6px}
.e-con>.elementor-widget.mjc.carte-lien{margin-block-end:22px}
.elementor.elementor .e-con>.elementor-widget.mjc.chapeau{max-width:720px}
.elementor.elementor .e-con>.elementor-widget.mjc.chapeau-hero,
.elementor.elementor .e-con>.elementor-widget.mjc.chapeau-page{max-width:760px}
.elementor.elementor .e-con>.elementor-widget.mjc.chapeau-adherer{max-width:680px}
.e-con .mjc.elementor-widget.tarif{min-width:210px}
@media (max-width:700px){.e-con>.elementor-widget.mjc.carte-lien{margin-block-end:18px}}

/* Liens soulignés comme sur le reste du site (Elementor les dé-souligne) */
.elementor a:where(.mjc *){text-decoration:revert}

/* ----- Titres : le widget porte la classe, le titre en hérite ------------ */
.mjc.elementor-widget-heading .elementor-heading-title{font-size:inherit;font-weight:inherit;line-height:inherit;color:inherit}

/* ----- Textes ------------------------------------------------------------ */
.duo-texte>.elementor-widget-text-editor p{margin-top:14px;color:var(--graphite)}
.rangee-texte>.elementor-widget-text-editor:not(.rangee-num) p{margin-top:16px;color:var(--graphite)}
/* la flèche de « Découvrir » suit le texte, sur la même ligne
   (.elementor-text-editor : enveloppe ajoutée dans l'éditeur) */
.elementor-widget.carte-lien p,.elementor-widget.carte-lien .elementor-text-editor{display:inline}

/* ----- Images : le widget remplace la balise figure ---------------------- */
.mjc:where(.elementor-widget-image){text-align:inherit}
.mjc:where(.elementor-widget-image) img{display:block;vertical-align:baseline}
.mjc:where(.elementor-widget-image) a{display:block}
.bande-photos>.elementor-widget-image{height:clamp(260px,32vw,460px);overflow:hidden}
.bande-photos>.elementor-widget-image:hover img{transform:scale(1.04)}
.mosaique>.elementor-widget-image{border-radius:var(--rayon);overflow:hidden}
.galerie>.elementor-widget-image{aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:var(--trait)}
.galerie>.elementor-widget-image:nth-child(1 of .elementor-widget-image){grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.galerie>.elementor-widget-image:hover img{transform:scale(1.05)}
.galerie-egale>.elementor-widget-image:nth-child(1 of .elementor-widget-image){grid-column:auto;grid-row:auto;aspect-ratio:4/3}
.galerie>.elementor-widget-image>a{height:100%}
.mur-logos>.elementor-widget-image{display:flex;align-items:center;justify-content:center;height:170px;padding:26px 30px;
  border-right:1px solid var(--trait);border-bottom:1px solid var(--trait);transition:background .2s}
.mur-logos>.elementor-widget-image:hover{background:var(--craie)}
.tuile>.elementor-widget-image{position:absolute;inset:0;z-index:-1}
.tuile>.elementor-widget-image::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0) 30%,rgba(10,10,10,.92) 100%)}
@media (max-width:980px){
  .galerie>.elementor-widget-image:nth-child(1 of .elementor-widget-image){grid-column:span 3;grid-row:auto;aspect-ratio:16/9}
  .galerie-egale>.elementor-widget-image:nth-child(1 of .elementor-widget-image){grid-column:auto;aspect-ratio:4/3}
  .mur-logos>.elementor-widget-image{height:130px;padding:18px}
}
@media (max-width:700px){
  .galerie>.elementor-widget-image:nth-child(1 of .elementor-widget-image){grid-column:span 2}
  .galerie-egale>.elementor-widget-image:nth-child(1 of .elementor-widget-image){grid-column:auto;aspect-ratio:4/3}
  .bande-photos>.elementor-widget-image:nth-child(2 of .elementor-widget-image){grid-column:span 2;order:-1}
  .mur-logos>.elementor-widget-image{height:130px;padding:20px}
}

/* ----- Boutons : la classe est sur le widget, le style sur le lien ------- */
.elementor-widget-button.bouton{display:inline-flex;margin:0;padding:0;background:none;border:0;border-radius:0}
.elementor-widget-button.bouton .elementor-button{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:10px;
  font-weight:700;font-size:15px;line-height:1.62;letter-spacing:.08em;text-transform:uppercase;font-stretch:108%;
  text-decoration:none;text-align:left;word-break:normal;background:none;color:inherit;
  border:2px solid transparent;transition:background .2s,color .2s,border-color .2s,transform .2s}
.elementor-widget-button.bouton .elementor-button::after{content:"→";font-weight:600;transition:transform .2s}
.elementor-widget-button.bouton .elementor-button:hover::after{transform:translateX(4px)}
.elementor-widget-button.bouton .elementor-button-content-wrapper{display:block}
.elementor-widget-button.bouton .elementor-button-text{display:inline}
.elementor-widget-button.bouton-rouge .elementor-button{background:var(--rouge);color:var(--blanc)}
.elementor-widget-button.bouton-rouge .elementor-button:hover{background:var(--rouge-fonce);color:var(--blanc)}
.elementor-widget-button.bouton-noir .elementor-button{background:var(--noir);color:var(--blanc)}
.elementor-widget-button.bouton-noir .elementor-button:hover{background:var(--rouge);color:var(--blanc)}
.elementor-widget-button.bouton-contour .elementor-button{border-color:var(--noir);color:var(--noir)}
.elementor-widget-button.bouton-contour .elementor-button:hover{background:var(--noir);color:var(--blanc)}
.elementor-widget-button.bouton-contour-clair .elementor-button{border-color:rgba(255,255,255,.75);color:var(--blanc)}
.elementor-widget-button.bouton-contour-clair .elementor-button:hover{background:var(--blanc);color:var(--noir)}
@media (max-width:700px){
  .hero .boutons>.elementor-widget-button{width:100%}
  .hero .boutons>.elementor-widget-button .elementor-button{width:100%;justify-content:center;font-size:14px;letter-spacing:.05em;padding:15px 16px}
}

/* ----- Agenda : sans événement publié, l'encadré de la page prend le relais */
.e-con:has(>.elementor-widget .grille-evenements)>.evenements-vide{display:none}

/* ----- Éditeur Elementor -------------------------------------------------- */
/* les zones vides restent cliquables pendant l'édition */
.elementor-editor-active .mjc.e-con:empty{min-height:40px}
