/* =====================================================================
   Bloc – Hero Section  |  bloc.css
   ===================================================================== */
.bloc-hero-wrapper *, .bloc-hero-wrapper *::before, .bloc-hero-wrapper *::after { box-sizing: border-box; }

.bloc-hero-wrapper  { background: #fff; width: 100%; overflow: hidden; }
.bloc-inner         { display: flex; flex-direction: row; align-items: stretch; width: 100%; }

/* ── Colonne image ─────────────────────────────────────────────────── */
.bloc-image-col         { flex: 0 0 45%; max-width: 45%; position: relative; min-height: 620px; overflow: hidden; }
.bloc-image-container   { width: 100%; height: 100%; min-height: 620px; background-size: cover; background-repeat: no-repeat; background-position: center center; display: block; }
.bloc-image-placeholder { width: 100%; height: 100%; min-height: 620px; background: #f3f4f6; display: flex; align-items: center; justify-content: center; color: #9ca3af; font-size: 15px; font-style: italic; border: 2px dashed #d1d5db; }

/* ── Colonne contenu ───────────────────────────────────────────────── */
.bloc-content-col { flex: 0 0 55%; max-width: 55%; padding: 60px 50px 60px 55px; display: flex; flex-direction: column; justify-content: center; }

/* ── Titre ─────────────────────────────────────────────────────────── */
.bloc-title { font-size: 42px; font-weight: 800; color: #1a2744; line-height: 1.15; letter-spacing: -.5px; margin: 0 0 24px; padding: 0; word-break: break-word; }

/* ── Blocs ──────────────────────────────────────────────────────────── */
.bloc-block            { margin-bottom: 20px; }
.bloc-block:last-child { margin-bottom: 0; }

/* ── Corps de texte ─────────────────────────────────────────────────── */
.bloc-body-text, .bloc-body-text p { font-size: 16px; color: #333; line-height: 1.65; margin: 0; }
.bloc-body-text > *:first-child    { margin-top: 0; }
.bloc-body-text > *:last-child     { margin-bottom: 0; }

/* ── Labels gras inline ─────────────────────────────────────────────── */
.bloc-inline-label { font-weight: 700; color: #333; font-size: 16px; }

/* ── Titres de section ───────────────────────────────────────────────── */
.bloc-section-label         { font-size: 16px; font-weight: 700; color: #333; line-height: 1.65; margin: 0 0 12px; padding: 0; }
.bloc-section-label strong  { font-weight: 700; }

/* ── Listes ──────────────────────────────────────────────────────────── */
.bloc-list              { list-style: disc; padding-left: 20px; margin: 0; }
.bloc-list-item         { font-size: 16px; color: #333; line-height: 1.65; margin-bottom: 12px; padding-left: 4px; }
.bloc-list-item:last-child { margin-bottom: 0; }
.bloc-list-item::marker { color: #333; }
.bloc-item-label        { font-weight: 700; color: #333; display: inline; }
.bloc-list-item strong  { font-weight: 700; color: #333; }

/* =====================================================================
   TABLET  ≤ 1024px
   ===================================================================== */
@media (max-width: 1024px) {
    .bloc-title { font-size: 32px; }
    .bloc-image-col, .bloc-image-container, .bloc-image-placeholder { flex: 0 0 42%; max-width: 42%; min-height: 500px; }
    .bloc-content-col { flex: 0 0 58%; max-width: 58%; padding: 40px 30px 40px 35px; }
    .bloc-body-text, .bloc-body-text p, .bloc-list-item, .bloc-section-label { font-size: 15px; }
}

/* =====================================================================
   MOBILE  ≤ 767px
   ===================================================================== */
@media (max-width: 767px) {
    .bloc-inner         { flex-direction: column; }
    .bloc-image-col     { flex: 0 0 100%; max-width: 100%; min-height: 280px; order: 1; }
    .bloc-image-container, .bloc-image-placeholder { min-height: 280px; }
    .bloc-content-col   { flex: 0 0 100%; max-width: 100%; padding: 32px 20px 40px; order: 2; justify-content: flex-start; }
    .bloc-title         { font-size: 26px; margin-bottom: 18px; letter-spacing: -.3px; }
    .bloc-body-text, .bloc-body-text p, .bloc-list-item, .bloc-section-label, .bloc-inline-label { font-size: 15px; line-height: 1.6; }
    .bloc-block         { margin-bottom: 16px; }
    .bloc-list          { padding-left: 18px; }
    .bloc-list-item     { margin-bottom: 10px; }
}

/* =====================================================================
   SMALL MOBILE  ≤ 480px
   ===================================================================== */
@media (max-width: 480px) {
    .bloc-title       { font-size: 23px; }
    .bloc-content-col { padding: 24px 16px 32px; }
}
