/*
 * Correctifs d'affichage mobile — TG BAT
 * Chargé après tous les styles WordPress/Elementor. N'agit que sous 768 px : le rendu desktop reste identique.
 *
 * Règles appliquées :
 *  1. Une seule marge latérale (gouttière) de 20 px pour tout le contenu, l'en-tête et le pied de page.
 *  2. Alignement à gauche des titres, textes et boutons (plus de mélange centré / gauche).
 *     Les cartes (icône + texte) et les compteurs gardent un contenu centré dans leur bloc.
 *  3. Rythme vertical régulier : 56 px entre les blocs, 16 px entre un titre et son contenu,
 *     20 px entre deux éléments d'un même bloc.
 *  4. Aucun débordement horizontal.
 */
@media (max-width: 767px) {
  :root { --m-gutter: 20px; --m-section: 28px; }

  html, body { overflow-x: hidden; }

  /* ---------- 1. Gouttière unique ---------- */

  /* Grille du thème : supprime les marges négatives / paddings de 15 px */
  .mkdf-content .mkdf-grid-row { margin-left: 0 !important; margin-right: 0 !important; }
  .mkdf-content .mkdf-page-content-holder,
  .mkdf-content .mkdf-grid-col-12 { padding-left: 0 !important; padding-right: 0 !important; }
  .mkdf-content .mkdf-grid,
  .mkdf-content .mkdf-container-inner { width: auto !important; margin-left: 0 !important; margin-right: 0 !important; }

  /* Gabarits sans Elementor (articles, fiches projet, archives) : la gouttière est portée par le conteneur du thème */
  .mkdf-content .mkdf-container > .mkdf-container-inner {
    padding-left: var(--m-gutter) !important; padding-right: var(--m-gutter) !important;
  }
  /* …et les sections Elementor qu'il contient n'ajoutent pas de seconde gouttière */
  .mkdf-content .mkdf-container-inner .elementor-top-section:not(.elementor-section-stretched) > .elementor-container {
    padding-left: 0 !important; padding-right: 0 !important;
  }
  .mkdf-content .mkdf-container-inner [class*="mkdf-grid-col-"] { padding-left: 0 !important; padding-right: 0 !important; }

  /* Sections Elementor de premier niveau : la gouttière est portée par le conteneur */
  .mkdf-content .elementor-top-section > .elementor-container {
    width: auto !important; max-width: none !important;
    margin-left: 0 !important; margin-right: 0 !important;
    padding-left: var(--m-gutter) !important; padding-right: var(--m-gutter) !important;
  }
  /* Sections imbriquées : pas de gouttière supplémentaire */
  .mkdf-content .elementor-inner-section > .elementor-container {
    width: auto !important; max-width: none !important;
    margin-left: 0 !important; margin-right: 0 !important;
    padding-left: 0 !important; padding-right: 0 !important;
  }
  .mkdf-content .elementor-section { margin-left: 0 !important; margin-right: 0 !important; }
  .mkdf-content .elementor-section.elementor-inner-section { padding-left: 0 !important; padding-right: 0 !important; }

  /* Colonnes et widgets : plus de marges/paddings horizontaux hérités du desktop */
  .mkdf-content .elementor-column { width: 100% !important; }
  .mkdf-content .elementor-column > .elementor-widget-wrap,
  .mkdf-content .elementor-column > .elementor-element-populated {
    padding-left: 0 !important; padding-right: 0 !important;
    margin-left: 0 !important; margin-right: 0 !important;
  }
  .mkdf-content .elementor-widget > .elementor-widget-container {
    margin-left: 0 !important; margin-right: 0 !important;
    margin-top: 0 !important; margin-bottom: 0 !important;
  }
  .mkdf-content .elementor-widget:not(.elementor-widget-mkdf_icon_with_text) > .elementor-widget-container {
    padding-left: 0 !important; padding-right: 0 !important;
  }
  .mkdf-content .elementor-widget-text-editor p,
  .mkdf-content .elementor-widget-text-editor .elementor-widget-container > * { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }

  /* Titres de section du thème (avec grand texte en filigrane) */
  .mkdf-content .mkdf-section-title-holder,
  .mkdf-content .mkdf-st-inner { padding-left: 0 !important; padding-right: 0 !important; text-align: left !important; }
  .mkdf-content .mkdf-row-has-background-text .mkdf-row-background-text-holder { display: none !important; }

  /* ---------- 2. Alignement à gauche ---------- */
  .mkdf-content .elementor-widget-heading .elementor-heading-title,
  .mkdf-content .elementor-widget-text-editor,
  .mkdf-content .elementor-widget-text-editor *,
  .mkdf-content .elementor-widget-mkdf_section_title,
  .mkdf-content .elementor-widget-mkdf_section_title *,
  .mkdf-content .elementor-widget-mkdf_button,
  .mkdf-content .elementor-widget-mkdf_button .elementor-widget-container,
  .mkdf-content .elementor-widget-button .elementor-button-wrapper { text-align: left !important; }
  .mkdf-content .elementor-widget-image { text-align: left !important; }
  .mkdf-content .elementor-widget-image img { width: 100%; height: auto; }

  /* Cartes icône + texte : bloc pleine largeur, contenu centré */
  .mkdf-content .elementor-widget-mkdf_icon_with_text > .elementor-widget-container { width: 100% !important; }
  .mkdf-content .mkdf-iwt { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }

  /* Listes icône à gauche + texte (coordonnées) : colonne d'icône fixe → textes alignés entre eux */
  .mkdf-content .elementor-widget-mkdf_icon_with_text:has(.mkdf-iwt-icon-left) > .elementor-widget-container { padding-left: 0 !important; padding-right: 0 !important; }
  .mkdf-content .mkdf-iwt.mkdf-iwt-icon-left { display: flex !important; align-items: flex-start; gap: 12px; padding: 0 !important; }
  .mkdf-content .mkdf-iwt.mkdf-iwt-icon-left::before,
  .mkdf-content .mkdf-iwt.mkdf-iwt-icon-left::after { display: none !important; } /* clearfix : sinon compté comme élément flex */
  .mkdf-content .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-icon { flex: 0 0 24px; width: 24px !important; display: flex; justify-content: center; float: none !important; margin: 2px 0 0 !important; padding: 0 !important; }
  .mkdf-content .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-content { padding-left: 0 !important; margin-left: 0 !important; flex: 1; text-align: left !important; }
  .mkdf-content .mkdf-iwt.mkdf-iwt-icon-left .mkdf-iwt-content * { text-align: left !important; }

  /* Compteurs : deux colonnes alignées sur la même grille */
  .mkdf-content .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-mkdf_counter) { width: 50% !important; }
  .mkdf-content .mkdf-counter-holder { text-align: left !important; padding: 0 !important; margin: 0 !important; }
  .mkdf-content .mkdf-counter-inner { display: block !important; text-align: left !important; }
  .mkdf-content .mkdf-counter-number { display: block !important; float: none !important; margin: 0 0 4px !important; text-align: left !important; }
  .mkdf-content .mkdf-counter-content { display: block !important; float: none !important; margin: 0 !important; padding: 0 !important; text-align: left !important; }
  .mkdf-content .mkdf-counter-background { display: none !important; }
  .mkdf-content .mkdf-counter.mkdf-shadow-counter { position: static !important; transform: none !important; left: auto !important; top: auto !important; font-size: 44px !important; line-height: 1.1 !important; }
  .mkdf-content .mkdf-counter-holder { display: block !important; }
  .mkdf-content .mkdf-counter-text { margin: 0 0 2px !important; line-height: 1.35 !important; font-size: 12px !important; }
  .mkdf-content .mkdf-counter-title { margin: 0 !important; line-height: 1.2 !important; }
  .mkdf-content .elementor-section:has(.mkdf-counter-holder) > .elementor-container { flex-wrap: wrap !important; row-gap: 28px; }
  .mkdf-content .elementor-column:has(.mkdf-counter-holder) + .elementor-column { margin-top: 0 !important; }

  /* Bloc orange "Entrer en contact" (accueil) — préfixe body : doit primer sur les règles génériques plus bas — comme sur le site d'origine : fond orange pleine largeur,
     textes blancs alignés sur la gouttière, espacements resserrés */
  body .mkdf-content .elementor-element-7ee81a6 { padding-bottom: 0 !important; }
  body .mkdf-content .elementor-element-7ee81a6 > .elementor-container { padding-left: 0 !important; padding-right: 0 !important; }
  body .mkdf-content .elementor-element-2bf9d98 > .elementor-widget-wrap { padding: 0 var(--m-gutter) 24px !important; }
  body .mkdf-content .elementor-element-1fc7f2a { margin-top: 0 !important; }
  body .mkdf-content .elementor-element-1fc7f2a > .elementor-widget-wrap { padding: 48px var(--m-gutter) 48px !important; display: block !important; }
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget > .elementor-widget-container { padding: 0 !important; }
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget:not(:last-child) { margin-bottom: 8px !important; }
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-mkdf_section_title { margin-bottom: 24px !important; }
  body .mkdf-content .elementor-element-1fc7f2a .mkdf-st-intro-title { margin: 0 0 6px !important; }
  body .mkdf-content .elementor-element-1fc7f2a .mkdf-st-title { font-size: 44px !important; line-height: 1.05 !important; }
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-text-editor,
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-text-editor *,
  body .mkdf-content .elementor-element-1fc7f2a a { color: #fff !important; line-height: 1.6 !important; }
  body .mkdf-content .elementor-element-729a80a { margin-bottom: 16px !important; } /* adresse */
  body .mkdf-content .elementor-element-9bd6d41 { margin: 20px 0 12px !important; } /* "Suivez nous" */
  /* Icônes sociales : boîtes identiques 24×24, même ligne, même espacement (aucune marge verticale, y compris la dernière) */
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget.elementor-widget-mkdf_icon {
    display: inline-block !important; width: 24px !important; height: 24px !important;
    margin: 0 20px 0 0 !important; vertical-align: top !important;
  }
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-mkdf_icon .elementor-widget-container,
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-mkdf_icon .mkdf-icon-animation-holder,
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-mkdf_icon .mkdf-icon-shortcode,
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-mkdf_icon a {
    display: flex !important; align-items: center; justify-content: center;
    width: 24px !important; height: 24px !important; margin: 0 !important; padding: 0 !important; line-height: 1 !important;
  }
  body .mkdf-content .elementor-element-1fc7f2a .elementor-widget-mkdf_icon .mkdf-icon-font-elegant {
    display: block !important; font-size: 22px !important; line-height: 24px !important; width: 24px; height: 24px; text-align: center;
  }

  /* Bloc "À propos" de l'accueil (Revolution Slider) : la grille mobile du slider (300 px, centrée) place les textes
     à 30–50 px selon la largeur du téléphone → calques texte recalés sur la gouttière (l'illustration reste centrée) */
  .elementor-element-f334000 rs-layer-wrap:has(#slider-11-slide-23-layer-5),
  .elementor-element-f334000 rs-layer-wrap:has(#slider-11-slide-23-layer-7),
  .elementor-element-f334000 rs-layer-wrap:has(#slider-11-slide-23-layer-8),
  .elementor-element-f334000 rs-layer-wrap:has(#slider-11-slide-23-layer-9) { left: var(--m-gutter) !important; }
  .elementor-element-f334000 #slider-11-slide-23-layer-7,
  .elementor-element-f334000 #slider-11-slide-23-layer-8 { max-width: calc(100vw - 2 * var(--m-gutter)) !important; }

  /* Carrousel clients : logos carrés avec beaucoup de blanc → bande centrée de 160 px */
  .mkdf-content .mkdf-clients-carousel-holder .mkdf-cc-item img { height: 160px !important; width: 100% !important; object-fit: cover; object-position: center; }

  /* ---------- 3. Rythme vertical ---------- */
  .mkdf-content .elementor-top-section {
    padding-top: var(--m-section) !important; padding-bottom: var(--m-section) !important;
    margin-top: 0 !important; margin-bottom: 0 !important;
  }
  /* Section ne contenant qu'un titre : collée à son contenu */
  .mkdf-content .elementor-top-section:has(.mkdf-row-has-background-text),
  .mkdf-content .elementor-top-section:has(> .elementor-container > .elementor-column:only-child > .elementor-widget-wrap > .elementor-widget-heading:only-child) {
    padding-top: calc(var(--m-section) * 2) !important; padding-bottom: 0 !important;
  }
  .mkdf-content .elementor-top-section:has(.mkdf-row-has-background-text) + .elementor-top-section,
  .mkdf-content .elementor-top-section:has(> .elementor-container > .elementor-column:only-child > .elementor-widget-wrap > .elementor-widget-heading:only-child) + .elementor-top-section {
    padding-top: 16px !important;
  }
  /* Titres de section : supprime les marges internes héritées du desktop (43 px + 25 px) */
  .mkdf-content .mkdf-row-has-background-text .elementor-widget-container { padding-top: 0 !important; padding-bottom: 0 !important; }
  .mkdf-content .mkdf-row-has-background-text h1,
  .mkdf-content .mkdf-row-has-background-text h2,
  .mkdf-content .mkdf-row-has-background-text h3,
  .mkdf-content .mkdf-row-has-background-text p { margin-top: 0 !important; margin-bottom: 0 !important; }
  .mkdf-content .elementor-widget-text-editor > .elementor-widget-container > :first-child { margin-top: 0 !important; }
  .mkdf-content .elementor-widget-text-editor > .elementor-widget-container > :last-child { margin-bottom: 0 !important; }

  /* Sections vides (séparateurs desktop) */
  .mkdf-content .elementor-top-section:not(:has(.elementor-widget)) { display: none !important; }
  /* Sections à image de fond : un peu plus d'air */
  .mkdf-content .elementor-top-section.elementor-section-stretched[data-settings*="background_background"] { padding-top: 56px !important; padding-bottom: 56px !important; }
  .mkdf-content .elementor-container { min-height: 0 !important; }
  .mkdf-content .elementor-column > .elementor-widget-wrap { padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; }
  /* Colonnes à fond coloré (encadrés) : marge intérieure régulière */
  .mkdf-content .elementor-element-be38566 > .elementor-widget-wrap { padding: 24px 20px !important; }
  /* "Projet en cours" : l'image de fond n'a de photo que sur sa moitié gauche (moitié droite blanche) → recadrage */
  .mkdf-content .elementor-element-99bcede { background-size: 213% auto !important; background-position: left center !important; padding-top: 56px !important; padding-bottom: 56px !important; }
  .mkdf-content .elementor-column + .elementor-column { margin-top: 20px; }
  .mkdf-content .elementor-widget:not(:last-child) { margin-bottom: 20px !important; }
  .mkdf-content .elementor-spacer-inner { height: 16px !important; }

  /* Bouton "retour en haut" : plus discret, hors du texte */
  #mkdf-back-to-top { right: 16px !important; bottom: 16px !important; transform: scale(.8); transform-origin: bottom right; }

  /* ---------- En-tête mobile et pied de page sur la même gouttière ---------- */
  .mkdf-mobile-header .mkdf-mobile-header-holder > .mkdf-vertical-align-containers { padding-left: var(--m-gutter) !important; padding-right: var(--m-gutter) !important; width: auto !important; }
  .mkdf-mobile-header .mkdf-vertical-align-containers .mkdf-vertical-align-containers { padding-left: 0 !important; padding-right: 0 !important; width: auto !important; }
  .mkdf-mobile-header .mkdf-mobile-nav .mkdf-grid,
  .mkdf-mobile-header .mkdf-mobile-nav > ul { padding-left: var(--m-gutter) !important; padding-right: var(--m-gutter) !important; width: auto !important; }
  .mkdf-page-footer .mkdf-grid,
  .mkdf-page-footer .mkdf-footer-top-inner,
  .mkdf-page-footer .mkdf-footer-bottom-inner { width: auto !important; padding-left: var(--m-gutter) !important; padding-right: var(--m-gutter) !important; margin: 0 !important; }
  .mkdf-page-footer .mkdf-grid-row { margin-left: 0 !important; margin-right: 0 !important; }
  .mkdf-page-footer .mkdf-footer-top-inner { padding-top: 48px !important; padding-bottom: 32px !important; }
  .mkdf-page-footer .mkdf-footer-top-inner .mkdf-column-content { margin: 0 0 36px !important; }
  .mkdf-page-footer .mkdf-footer-top-inner .mkdf-column-content:last-child { margin-bottom: 0 !important; }
  .mkdf-page-footer .mkdf-footer-top-inner .mkdf-column-content > .widget:last-child { margin-bottom: 0 !important; }
  .mkdf-page-footer .mkdf-footer-bottom-inner { padding-top: 20px !important; padding-bottom: 20px !important; }
  .mkdf-page-footer .mkdf-column-content,
  .mkdf-page-footer [class*="mkdf-grid-col-"] { padding-left: 0 !important; padding-right: 0 !important; }
  /* Coordonnées : icônes de largeur fixe pour aligner les textes entre eux */
  .mkdf-page-footer .mkdf-icon-widget-holder { display: flex !important; align-items: flex-start; gap: 12px; margin: 0 0 14px 0 !important; }
  .mkdf-page-footer .mkdf-icon-widget-holder .mkdf-icon-element { flex: 0 0 24px; width: 24px; text-align: center; }
  .mkdf-page-footer .mkdf-icon-widget-holder .mkdf-icon-text { padding-left: 0 !important; font-size: 16px !important; line-height: 1.5; }
  .mkdf-page-footer .mkdf-footer-bottom-holder * { text-align: left !important; }

  /* Bandeau de titre des pages internes */
  .mkdf-title-holder .mkdf-grid,
  .mkdf-title-holder .mkdf-title-inner > .mkdf-grid { width: auto !important; padding-left: var(--m-gutter) !important; padding-right: var(--m-gutter) !important; }
}
