/* ——— TITRES FLUIDES PAR DÉFAUT ——— */
h1 { font-size: clamp(28px, 6vw, 48px); line-height: 1.15; }
h2 { font-size: clamp(24px, 5vw, 38px); line-height: 1.2; }
h3 { font-size: clamp(20px, 4.2vw, 30px); line-height: 1.25; }

/* Évite les coupures/mots explosés */
h1, h2, h3 {
  word-break: normal;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* ——— OVERRIDES POUR WPBAKERY ——— */
/* WPBakery met souvent des styles inline (Custom Heading). On force avec !important. */
.vc_custom_heading.vc_gitem-post-data-source-post_title,
.vc_custom_heading,
.wpb_wrapper h1,
.wpb_wrapper h2,
.wpb_wrapper h3 {
  line-height: 1.15 !important;
  letter-spacing: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: auto !important;
}

/* Tailles fluides même si WPBakery a mis un font-size en inline */
.vc_custom_heading.vc_gitem-post-data-source-post_title,
.vc_custom_heading {
  font-size: clamp(24px, 5.5vw, 44px) !important; /* équiv. H1/H2 en hero */
}

/* ——— GRILLES/COLONNES QUI NE DÉBORDENT PAS ——— */
.vc_row, .vc_section { display: flex; flex-wrap: wrap; }
.vc_column_container, .wpb_column { min-width: 0; box-sizing: border-box; }
img, video, iframe { max-width: 100%; height: auto; }

/* Empêche certains modules d’imposer des min-width absurdes */
.wpb_text_column, .wpb_content_element { min-width: 0; }

/* ——— BREAKPOINTS WPBAKERY ———
   991px = tablette, 767px = mobile dans WPBakery
——————————————————————————— */

/* Tablette et moins */
@media (max-width: 991.98px) {
  .wpb_wrapper h1 { font-size: clamp(26px, 6vw, 40px) !important; }
  .wpb_wrapper h2 { font-size: clamp(22px, 5vw, 34px) !important; }
  .wpb_wrapper h3 { font-size: clamp(19px, 4.5vw, 28px) !important; }
}

/* Mobile */
@media (max-width: 767.98px) {
  .wpb_wrapper h1,
  .vc_custom_heading { font-size: clamp(24px, 7vw, 34px) !important; line-height: 1.15 !important; }
  .wpb_wrapper h2 { font-size: clamp(21px, 6.2vw, 28px) !important; line-height: 1.2 !important; }
  .wpb_wrapper h3 { font-size: clamp(18px, 5.6vw, 24px) !important; line-height: 1.25 !important; }

  /* Boutons un peu plus discrets sur petit écran */
  .wpb_button, .vc_btn3, .wpb_single_image .wpb_wrapper a.vc_general.vc_btn3 {
    padding: 10px 14px !important;
    font-size: 15px !important;
  }
}

/* Très petits écrans */
@media (max-width: 380px) {
  .wpb_wrapper h1, .vc_custom_heading { font-size: 22px !important; }
  .wpb_wrapper h2 { font-size: 20px !important; }
  .wpb_wrapper h3 { font-size: 18px !important; }
}

/* Si le thème a mis word-break: break-all quelque part, on neutralise globalement */
*, *::before, *::after { word-break: normal; overflow-wrap: break-word; }