/* =====================================================================
   BDI — pont entre la charte (style.css) et Elementor
   L'importateur recrée chaque bloc de la maquette en conteneurs et
   widgets Elementor portant les MÊMES classes. Ce fichier neutralise les
   espacements par défaut d'Elementor pour que la charte gouverne, et
   adapte les règles qui supposaient un enfant direct (Elementor intercale
   ses enveloppes). Dérivé du pont du site URD.
   ===================================================================== */

/* -------- 1. Conteneurs : aucun espacement ni disposition imposés ------ */
body.bdi .elementor .e-con{
  --display:block; --flex-direction:row; --flex-wrap:nowrap;
  --justify-content:normal; --align-items:normal;
  --padding-top:0px; --padding-right:0px; --padding-bottom:0px; --padding-left:0px;
  --margin-top:0px; --margin-bottom:0px; --margin-left:0px; --margin-right:0px;
  --gap:0px 0px; --row-gap:0px; --column-gap:0px;
  --widgets-spacing:0px; --widgets-spacing-row:0px; --widgets-spacing-column:0px;
  --width:auto; --min-height:0px; --container-max-width:none; --content-width:100%;
  display:block; padding:0; margin:0; gap:0; max-width:none; width:auto; min-height:0;
  flex-direction:row; flex-wrap:nowrap;
}

/* -------- 2. Widgets : pas de marge ajoutée entre eux ------------------ */
.bdi .elementor .elementor-widget:not(:last-child){ margin-block-end:0; margin-bottom:0; }
.bdi .elementor .elementor-widget{ --kit-widget-spacing:0px; }
.bdi .elementor .elementor-widget-container{ margin:0; padding:0; }
.bdi .elementor :is(.carte,.section-intro,.article-corps,.etape,.encadre,.vide) .elementor-widget-text-editor:last-child p:last-child{ margin-bottom:0; }

/* -------- 3. Titres : la charte, pas le kit Elementor ----------------- */
.bdi .elementor .elementor-heading-title{
  font-family:var(--titre); font-weight:700; letter-spacing:-.02em;
  line-height:1.18; color:var(--vert-fonce); margin:0 0 .6em;
}
.bdi .elementor h1.elementor-heading-title{ font-size:clamp(1.9rem, 1.3rem + 2.3vw, 3rem); }
.bdi .elementor h2.elementor-heading-title{ font-size:clamp(1.45rem, 1.1rem + 1.4vw, 2.15rem); font-weight:800; letter-spacing:-.025em; }
.bdi .elementor h3.elementor-heading-title{ font-size:clamp(1.1rem, .98rem + .5vw, 1.35rem); }
.bdi .elementor :is(.hero,.section--vert,.appel,.etape,.carte--sombre,.portrait-bandeau,.double-appel--vert,.hero-portrait) .elementor-heading-title{ color:#fff; }
.bdi .elementor .double-appel--or .elementor-heading-title{ color:var(--vert-nuit); }
.bdi .elementor .hero h1.elementor-heading-title{ margin-bottom:.4em; }
.bdi .elementor .section-intro .elementor-heading-title{ margin-bottom:.45em; }
.bdi .elementor .carte h3.elementor-heading-title{ font-size:1.16rem; margin-bottom:.35em; }
.bdi .elementor .etape h3.elementor-heading-title{ font-size:1.08rem; }
.bdi .elementor .elementor-heading-title a{ color:inherit; }
.bdi .elementor .elementor-heading-title a:hover{ color:var(--terre); text-decoration:none; }
/* Titres porteurs d'une classe propre (récit, hero portrait, portrait) */
.bdi .elementor .hero-portrait-titre .elementor-heading-title{ font-size:clamp(2.3rem,1.4rem + 3.4vw,4.4rem); line-height:1.04; letter-spacing:-.03em; font-weight:800; margin:0 0 .45em; }
.bdi .elementor .recit-texte h3.elementor-heading-title{ font-size:clamp(1.45rem,1.15rem + 1.1vw,2.1rem); line-height:1.15; }
.bdi .elementor .portrait-titre .elementor-heading-title{ font-size:clamp(1.9rem,1.3rem + 2vw,3rem); color:#fff; }
.bdi .elementor .titre-section .elementor-heading-title{ margin:0; font-size:clamp(1.5rem,1.15rem + 1.3vw,2.2rem); font-weight:800; }

/* -------- 4. Photos : widget Image dans un cadre de la charte ---------- */
.bdi .elementor .e-con.visuel--photo{ position:relative; overflow:hidden; }
.bdi .elementor .e-con.visuel--photo > .elementor-widget-image{ position:absolute; inset:0; z-index:0; }
.bdi .elementor .e-con.visuel--photo > .elementor-widget-image :is(.elementor-widget-container, a){ height:100%; }
.bdi .elementor .e-con.visuel--photo > .elementor-widget-image img{
  width:100%; height:100%; object-fit:cover; display:block; max-width:none; transition:transform .6s ease;
}
.bdi .elementor .e-con.visuel--photo > :is(.elementor-widget-html,.elementor-widget-text-editor){ position:static; }
.bdi .elementor .photo-haut img{ object-position:center 22%; }
.bdi .elementor .carte--lien:hover .visuel--photo img,
.bdi .elementor .actu-carte:hover .visuel--photo img,
.bdi .elementor .frise .visuel--photo:hover img{ transform:scale(1.04); }
.bdi .elementor .e-con.duo-photo-tete{ margin-bottom:26px; }

/* Grande image de fond (hero, sections « étapes ») : widget Image + voile vert */
.bdi .elementor .e-con.a-fond-photo{ position:relative; overflow:hidden; background:var(--vert-fonce); }
.bdi .elementor .e-con.a-fond-photo > .fond-photo{ position:absolute; inset:0; z-index:0; }
.bdi .elementor .e-con.a-fond-photo > .fond-photo :is(.elementor-widget-container, a){ height:100%; }
.bdi .elementor .e-con.a-fond-photo > .fond-photo img{ width:100%; height:100%; object-fit:cover; max-width:none; }
.bdi .elementor .e-con.a-fond-photo > .fond-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(1,38,14,.96) 0%, rgba(2,70,26,.9) 38%, rgba(3,93,33,.55) 70%, rgba(3,93,33,.3) 100%);
}
.bdi .elementor .e-con.section--photo > .fond-photo::after{
  background:linear-gradient(180deg, rgba(1,38,14,.93) 0%, rgba(2,70,26,.88) 50%, rgba(1,38,14,.95) 100%);
}
.bdi .elementor .e-con.section--photo::before{ content:none; }
.bdi .elementor .e-con.hero::before{ z-index:1; }
.bdi .elementor .e-con.a-fond-photo > .e-con{ position:relative; z-index:2; }
.bdi .elementor .e-con.a-fond-photo > .elementor-widget-html{ position:static; }
@media (max-width: 760px){
  .bdi .elementor .e-con.hero.a-fond-photo > .fond-photo::after{
    background:linear-gradient(180deg, rgba(1,38,14,.86) 0%, rgba(2,70,26,.94) 60%, rgba(1,38,14,.98) 100%);
  }
}

/* Hero portrait de l'accueil : photo pleine hauteur */
.bdi .elementor .e-con.hero-portrait-photo{ position:relative; min-height:100%; }
.bdi .elementor .hero-portrait-photo > .elementor-widget-image{ position:absolute; inset:0; }
.bdi .elementor .hero-portrait-photo > .elementor-widget-image :is(.elementor-widget-container,img){ height:100%; width:100%; }
.bdi .elementor .hero-portrait-photo img{ object-fit:cover; object-position:center 18%; max-width:none; }
.bdi .elementor .e-con.hero-portrait-grille{ display:grid; }
.bdi .elementor .e-con.hero-portrait-texte{ display:flex; }

/* -------- 5. Règles d'enfant direct de la maquette ------------------- */
.bdi .elementor .carte--photo > .elementor-element:not(.carte-vignette){ margin-left:26px; margin-right:26px; }
.bdi .elementor .carte--photo > .elementor-element:last-child{ margin-bottom:26px; }
.bdi .elementor .carte--photo > .elementor-widget-heading{ margin-top:20px; }
.bdi .elementor .carte .bdi-lien{ margin-top:auto; padding-top:16px; }
.bdi .elementor .prose-photo-media{ position:sticky; top:calc(var(--header-h) + 24px); }
.bdi .elementor .e-con.carte{ display:flex; flex-direction:column; }
.bdi .elementor .e-con.recit-chapitre{ display:grid; }

/* -------- 6. Éditeur Elementor : rendre visibles les zones vides ------ */
.elementor-editor-active.bdi .e-con.visuel--photo{ min-height:120px; }

/* -------- 7. Widgets Bouton : apparence des boutons de la charte ------ */
.bdi .elementor .elementor-widget-button{ display:inline-block; width:auto; }
.bdi .elementor .groupe-btn > .elementor-widget-button{ flex:0 0 auto; }
.bdi .elementor .bdi-btn .elementor-button{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--ui); font-weight:700; font-size:.95rem; line-height:1.2;
  padding:13px 26px; border-radius:999px; border:2px solid transparent;
  background:var(--or); color:var(--vert-nuit); fill:currentColor; box-shadow:none;
  transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.bdi .elementor .bdi-btn .elementor-button:hover{ transform:translateY(-1px); text-decoration:none; }
.bdi .elementor .bdi-btn .elementor-button-text::after{ content:" ›"; font-size:.8em; }
.bdi .elementor .bdi-btn--principal .elementor-button{ background:var(--or); color:var(--vert-nuit); }
.bdi .elementor .bdi-btn--principal .elementor-button:hover{ background:var(--vert-fonce); color:#fff; }
.bdi .elementor :is(.hero,.section--vert,.appel,.portrait-bandeau,.double-appel--vert,.hero-portrait) .bdi-btn--principal .elementor-button:hover{ background:#fff; color:var(--vert-nuit); }
.bdi .elementor .bdi-btn--vert .elementor-button{ background:var(--vert); color:#fff; }
.bdi .elementor .bdi-btn--vert .elementor-button:hover{ background:var(--vert-nuit); color:#fff; }
.bdi .elementor .bdi-btn--ligne .elementor-button{ background:transparent; color:var(--vert); border-color:var(--bord-fort); }
.bdi .elementor .bdi-btn--ligne .elementor-button:hover{ border-color:var(--vert); color:var(--vert-fonce); background:var(--vert-clair); }
.bdi .elementor .bdi-btn--ligne-blanc .elementor-button{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.bdi .elementor .bdi-btn--ligne-blanc .elementor-button:hover{ background:rgba(255,255,255,.12); border-color:#fff; color:#fff; }
.bdi .elementor .bdi-btn--blanc .elementor-button{ background:#fff; color:var(--vert-fonce); }
.bdi .elementor .bdi-btn--petit .elementor-button{ padding:9px 18px; font-size:.86rem; }
/* Lien fléché */
.bdi .elementor .bdi-lien .elementor-button{
  background:none; padding:0; border:0; border-radius:0; box-shadow:none;
  font-family:var(--ui); font-weight:700; font-size:.95rem; color:var(--vert);
}
.bdi .elementor .bdi-lien .elementor-button-text::after{ content:"\00a0›"; font-size:1.2em; }
.bdi .elementor .bdi-lien .elementor-button:hover{ color:var(--terre); }
.bdi .elementor :is(.section--vert,.appel,.carte--sombre) .bdi-lien .elementor-button{ color:#fff; }
.bdi .elementor .article-liens .bdi-lien{ display:block; }

/* -------- 8. Surtitres (widget Titre, balise div) ------------------- */
.bdi .elementor .elementor-widget-heading.eyebrow .elementor-heading-title{
  font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; line-height:inherit; margin:0;
}

/* -------- 9. Fragments de texte en ligne --------------------------- */
.bdi .elementor .elementor-widget-text-editor > .statut,
.bdi .elementor .elementor-widget-text-editor .elementor-widget-container > .statut{ display:inline-flex; }
.bdi .elementor :is(.reperes,.chiffres) .elementor-widget-text-editor{ width:100%; }

/* -------- 10. Bandeau portrait : photo pleine hauteur --------------- */
.bdi .elementor .portrait-bandeau-grille{ display:grid; }
.bdi .elementor .e-con.portrait-bandeau-photo{ height:100%; position:relative; }
.bdi .elementor .portrait-bandeau-photo > .elementor-widget-image,
.bdi .elementor .portrait-bandeau-photo > .elementor-widget-image > .elementor-widget-container,
.bdi .elementor .portrait-bandeau-photo img{ height:100%; }
.bdi .elementor .portrait-bandeau .portrait-signature strong{ color:#fff; }

/* -------- 11. Grilles dont les éléments sont rendus par un seul éditeur de texte : l'enveloppe du widget s'efface -------- */
.bdi .elementor :is(.piliers,.chiffres,.reperes,.groupe-btn-texte) > .elementor-widget-text-editor,
.bdi .elementor :is(.piliers,.chiffres,.reperes) > .elementor-widget-text-editor > .elementor-widget-container{ display:contents; }

/* -------- 12. En-têtes : cadrage sur les visages ------------------- */
.bdi .elementor .e-con.a-fond-photo > .fond-photo img{ object-position:center 30%; }
