/* ═══════════════════════════════════════════════════════════
   LAYOUT COMMUN
═══════════════════════════════════════════════════════════ */
.page-body {
  min-width: 0;
  background: #fff;
  border-radius: 20px;
  padding: 40px;
  box-shadow: 0 34px 70px -26px rgba(0,0,3,.2);
}

/* ─── Légende photo ─── */
.page-hero-caption {
  padding: 9px 14px;
  font-size: 12px;
  font-weight: 500;
  color: #fff;
  font-style: normal;
  letter-spacing: .02em;
  background: rgba(11,61,46,.82);
  text-align: center;
  line-height: 1.4;
}

/* ─── Image flottante gauche (styles classique + institutionnel) ─── */
.page-hero-img {
  float: left;
  width: 45%;
  margin: 4px 44px 28px 0;
  padding: 0;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #DCE9E3;
  box-shadow: 0 8px 32px -8px rgba(11,61,46,.18);
  shape-outside: margin-box;
}
.page-hero-photo {
  display: block;
  width: 100%;
  height: 420px;
  object-fit: cover;
  object-position: center top;
  transition: transform .6s cubic-bezier(.2,.7,.2,1);
}
.page-hero-img:hover .page-hero-photo {
  transform: scale(1.04);
}
/* ═══════════════════════════════════════════════════════════
   BLOCS DE L'ÉDITEUR — styles séparés (modifiables ici)
   Chaque bloc rendu par le builder utilise ces classes.
   Les couleurs choisies dans l'éditeur passent par var(--c).
═══════════════════════════════════════════════════════════ */

/* Espacement entre les blocs */
.cms-bloc { margin-bottom: 22px; }

/* ── Grilles & cartes (hors .cms-content) ── */
.cms-bloc .grid { display: grid; gap: 20px; }
.cms-bloc .g2 { grid-template-columns: 1fr 1fr; }
.cms-bloc .g3 { grid-template-columns: repeat(3,1fr); }
.cms-bloc .g4 { grid-template-columns: repeat(4,1fr); }
.cms-bloc .card { background:#fff; border:1px solid #EAE5DB; border-radius:16px; padding:24px; }
.cms-bloc .ico { display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:14px; background:linear-gradient(145deg,#E8F5F1,#D6EDE6); color:#008774; margin-bottom:14px; font-size:24px; }
.b-card-titre { font-size:17px; font-weight:700; color:#0B3D2E; margin-bottom:8px; }
.b-card-txt   { color:#5A6560; font-size:14.5px; line-height:1.65; }
.b-card-lien  { text-decoration:none; }

/* ── Titre de section ── */
.b-titresec--centre { text-align:center; }
.b-titresec--droite { text-align:right; }
.b-titresec .kicker { color:#E8871E; font-weight:600; letter-spacing:.09em; text-transform:uppercase; font-size:13px; margin-bottom:8px; }
.b-titresec-h2  { font-size:32px; font-weight:700; color:#0B3D2E; margin:0 0 10px; }
.b-titresec-sub { font-size:17px; color:#5A6560; }

/* ── Citation ── */
.b-citation { border-left:5px solid #008774; padding:20px 24px; background:#F0FDF9; border-radius:0 12px 12px 0; margin:20px 0; }
.b-citation-quote  { font-size:56px; color:#C8E6E0; line-height:.4; font-weight:700; margin-bottom:10px; }
.b-citation-txt    { font-size:18px; color:#0B3D2E; font-style:italic; line-height:1.7; margin:0; }
.b-citation-auteur { margin-top:16px; font-weight:700; color:#0B3D2E; }
.b-citation-role   { color:#7A8A82; font-size:14px; }

/* ── Image + Texte ── */
.b-imgtxt { gap:28px; align-items:center; }
.b-imgtxt--centre { max-width:720px; margin:0 auto; }
.b-imgtxt--centre .b-imgtxt-txt { margin-top:20px; }
.b-imgtxt-img { border-radius:14px; overflow:hidden; border:1px solid #DCE9E3; }
.b-imgtxt-img img { width:100%; height:auto; display:block; }
.b-imgtxt-caption { background:rgba(11,61,46,.82); color:#fff; padding:8px 14px; font-size:12.5px; }
.b-imgtxt-ph { background:#E4EBE7; height:200px; display:flex; align-items:center; justify-content:center; color:#7A8A82; }

/* ── Documents ── */
.b-docs { background:#fff; border:1px solid #EAE5DB; border-radius:14px; overflow:hidden; }
.b-docs-titre { font-size:18px; font-weight:700; color:#0B3D2E; margin-bottom:14px; }
.cms-bloc .doc { display:flex; align-items:center; gap:14px; padding:15px 18px; border-bottom:1px solid #F0ECE2; color:#2B2F33; text-decoration:none; }
.cms-bloc .doc:hover { background:#FAF8F3; }
.cms-bloc .doc:last-child { border-bottom:none; }
.cms-bloc .di { display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:10px; background:#E8F5F1; color:#008774; flex-shrink:0; }
.b-doc-nom  { font-weight:600; color:#0B3D2E; }
.b-doc-meta { font-size:12.5px; color:#7A8A82; }

/* ── CTA ── */
.b-cta { border-radius:18px; padding:44px 40px; display:grid; grid-template-columns:1.3fr .7fr; gap:32px; align-items:center; }
.b-cta--fonce  { background:#0B3D2E; }
.b-cta--vert   { background:#008774; }
.b-cta--orange { background:#E8871E; }
.b-cta-titre { color:#fff; font-size:26px; font-weight:700; margin-bottom:10px; }
.b-cta-txt   { color:rgba(255,255,255,.85); }
.b-cta-btnwrap { display:flex; justify-content:flex-end; }

/* ── Statistiques ── */
.b-stats-titre { text-align:center; font-size:26px; font-weight:700; color:#0B3D2E; margin-bottom:32px; }
.b-stat { text-align:center; padding:28px 20px; background:#fff; border:1px solid #EAE5DB; border-radius:16px; }
.b-stat-ico { font-size:32px; margin-bottom:8px; }
.b-stat-num { font-size:36px; font-weight:800; color:#008774; line-height:1; }
.b-stat-lbl { font-size:14px; color:#5A6560; margin-top:6px; }

/* ── FAQ / Accordéon ── */
.b-faq-titre { font-size:24px; font-weight:700; color:#0B3D2E; margin-bottom:20px; }
.b-faq { display:flex; flex-direction:column; gap:8px; }
.b-faq-item { background:#fff; border:1px solid #EAE5DB; border-radius:12px; overflow:hidden; }
.b-faq-q { padding:14px 20px; font-weight:600; cursor:pointer; list-style:none; display:flex; align-items:center; gap:12px; color:var(--ct,#0B3D2E); background:var(--cf,#fff); }
.b-faq-ico { width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; background:var(--ci,#EAF5F1); }
.b-faq-plus { color:#008774; font-size:20px; flex-shrink:0; }
.faq-rep { padding:6px 20px 18px 66px; color:#5A6560; line-height:1.7; }
.faq-rep ul { list-style:none; padding-left:6px; margin:10px 0; }
.faq-rep ul li { position:relative; padding-left:24px; margin:7px 0; }
.faq-rep ul li::before { content:'❯'; position:absolute; left:2px; top:0; color:#E8871E; font-weight:700; font-size:13px; }
.faq-rep ol { padding-left:22px; margin:10px 0; }
.faq-rep ol li { margin:7px 0; padding-left:4px; }
.faq-rep ol li::marker { color:#008774; font-weight:700; }

/* ── Séparateur ── */
.b-sep-espace { height:48px; }
.b-sep-decore { display:flex; align-items:center; gap:14px; margin:24px 0; }
.b-sep-decore > div { flex:1; height:1px; background:#E4EBE7; }
.b-sep-decore > span { color:#008774; font-size:18px; }
.b-sep-ligne { border:none; border-top:1.5px solid #E4EBE7; margin:24px 0; }

/* ── Encadré / Alerte ── */
.b-alert { border-radius:12px; padding:18px 20px; border:1.5px solid; }
.b-alert--info      { background:#EFF6FF; border-color:#BFDBFE; }
.b-alert--info      .b-alert-titre { color:#1D4ED8; }
.b-alert--attention { background:#FFFBEB; border-color:#FDE68A; }
.b-alert--attention .b-alert-titre { color:#92400E; }
.b-alert--important { background:#FFF1F2; border-color:#FECDD3; }
.b-alert--important .b-alert-titre { color:#BE123C; }
.b-alert--conseil   { background:#F0FDF9; border-color:#A7F3D0; }
.b-alert--conseil   .b-alert-titre { color:#065F46; }
.b-alert-inner { display:flex; align-items:flex-start; gap:12px; }
.b-alert-ico   { font-size:20px; flex-shrink:0; }
.b-alert-titre { font-weight:700; margin-bottom:4px; }
.b-alert-txt   { color:#374151; font-size:14.5px; line-height:1.65; }

/* ── Timeline ── */
.b-tl-titre { font-size:24px; font-weight:700; color:#0B3D2E; margin-bottom:28px; }
.b-tl { position:relative; padding-left:36px; }
.b-tl-line { position:absolute; left:16px; top:8px; bottom:8px; width:2px; background:linear-gradient(180deg,#008774,#E8871E); border-radius:1px; }
.b-tl-item { position:relative; margin-bottom:24px; padding-left:24px; }
.b-tl-dot { position:absolute; left:-5px; top:8px; width:14px; height:14px; border-radius:50%; border:3px solid #fff; background:var(--c,#008774); box-shadow:0 0 0 2px var(--c,#008774); }
.b-tl-card { background:#fff; border:1px solid #E4EBE7; border-radius:10px; padding:14px 16px; border-left:4px solid var(--c,#008774); }
.b-tl-date { font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px; color:var(--c,#008774); }
.b-tl-t    { font-weight:700; color:#0B3D2E; font-size:15px; margin-bottom:4px; }
.b-tl-desc { font-size:14px; color:#5A6560; line-height:1.6; }

/* ── Liste avec icônes ── */
.b-li { display:grid; grid-template-columns:1fr; gap:14px; }
.b-li--2col { grid-template-columns:1fr 1fr; }
.b-li--compact { gap:6px; }
.b-li-titre { font-size:22px; font-weight:700; color:#0B3D2E; margin-bottom:20px; }
.b-li-item { display:flex; align-items:flex-start; gap:14px; padding:12px 0; border-bottom:1px solid #F0F4F2; }
.b-li-item .b-li-ico { width:42px; height:42px; border-radius:11px; display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0; background:color-mix(in srgb, var(--c,#008774) 14%, transparent); }
.b-li-t    { font-weight:700; color:#0B3D2E; font-size:15px; margin-bottom:3px; }
.b-li-desc { color:#5A6560; font-size:13.5px; line-height:1.6; }
.b-li-carte { background:#fff; border:1px solid #EAE5DB; border-radius:14px; padding:20px; border-top:4px solid var(--c,#008774); }
.b-li-carte .b-li-ico { font-size:26px; margin-bottom:8px; background:transparent; width:auto; height:auto; }
.b-li-cpt { display:flex; align-items:center; gap:10px; padding:7px 0; border-bottom:1px solid #F0F4F2; }
.b-li-cpt span:first-child { font-size:15px; flex-shrink:0; }
.b-li-cpt span:last-child { font-weight:600; color:#0B3D2E; font-size:14px; }

/* ── Étapes ── */
.b-et-titre { font-size:22px; font-weight:700; color:#0B3D2E; margin-bottom:24px; text-align:center; }
.b-et-h { display:flex; align-items:flex-start; flex-wrap:wrap; }
.b-et-h-item { flex:1; min-width:130px; text-align:center; position:relative; }
.b-et-num { width:44px; height:44px; border-radius:50%; background:#008774; color:#fff; font-size:18px; font-weight:800; display:flex; align-items:center; justify-content:center; margin:0 auto 10px; }
.b-et-link { position:absolute; top:22px; left:calc(50% + 22px); right:0; height:2px; background:#E4EBE7; }
.b-et-v { display:flex; flex-direction:column; gap:14px; }
.b-et-v-item { display:flex; gap:18px; align-items:flex-start; }
.b-et-v-num { width:38px; height:38px; border-radius:50%; background:#008774; color:#fff; font-size:16px; font-weight:800; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.b-et-body { flex:1; padding-top:6px; padding-bottom:12px; border-bottom:1px solid #F0F4F2; }
.b-et-t    { font-weight:700; color:#0B3D2E; font-size:15px; margin-bottom:3px; }
.b-et-desc { color:#5A6560; font-size:13.5px; line-height:1.6; }
.b-et-h-item .b-et-t { font-size:14.5px; margin-bottom:5px; }
.b-et-h-item .b-et-desc { font-size:13px; line-height:1.55; }

/* ── Témoignage ── */
.b-tm { border-radius:16px; padding:32px 24px; text-align:left; background:#F0FDF9; }
.b-tm--fond   { background:linear-gradient(135deg,#0B3D2E,#008774); }
.b-tm--centre { padding:32px 40px; text-align:center; }
.b-tm-quote { font-size:52px; line-height:.4; font-weight:900; margin-bottom:10px; color:#C8E6E0; }
.b-tm--fond .b-tm-quote { color:rgba(255,255,255,.25); }
.b-tm-txt { font-size:17px; font-style:italic; line-height:1.75; margin:0 0 18px; color:#0B3D2E; }
.b-tm--fond .b-tm-txt { color:#fff; }
.b-tm-foot { display:flex; align-items:center; gap:12px; }
.b-tm--centre .b-tm-foot { justify-content:center; }
.b-tm-av { width:40px; height:40px; border-radius:50%; background:#D6EDE6; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.b-tm--fond .b-tm-av { background:rgba(255,255,255,.2); }
.b-tm-nom { font-weight:700; font-size:14.5px; color:#0B3D2E; }
.b-tm--fond .b-tm-nom { color:#fff; }
.b-tm-role { font-size:13px; color:#5A6560; }
.b-tm--fond .b-tm-role { color:rgba(255,255,255,.75); }

/* ── Responsive blocs ── */
@media (max-width: 900px) {
  .cms-bloc .g3, .cms-bloc .g4 { grid-template-columns: 1fr 1fr; }
  .b-cta { grid-template-columns: 1fr; padding: 30px 24px; }
  .b-cta-btnwrap { justify-content: flex-start; }
  .b-li--2col { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .cms-bloc .g2, .cms-bloc .g3, .cms-bloc .g4 { grid-template-columns: 1fr; }
  .b-imgtxt { grid-template-columns: 1fr !important; }
  .faq-rep { padding-left: 20px; }
}

/* ── Documents en grille ── */
.b-docgrid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.b-docgrid--3 { grid-template-columns:repeat(3,1fr); }
.b-docg-card { display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; background:#fff; border:1px solid #EAE5DB; border-radius:16px; padding:26px 18px 20px; text-decoration:none; transition:.18s; position:relative; overflow:hidden; }
.b-docg-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:linear-gradient(90deg,#008774,#E8871E); opacity:0; transition:.18s; }
.b-docg-card:hover { box-shadow:0 10px 28px -8px rgba(11,61,46,.18); border-color:#008774; transform:translateY(-2px); }
.b-docg-card:hover::before { opacity:1; }
.b-docg-ico { font-size:40px; line-height:1; margin-bottom:4px; }
.b-docg-nom { font-weight:700; color:#0B3D2E; font-size:14.5px; line-height:1.4; }
.b-docg-meta { font-size:12px; color:#7A8A82; letter-spacing:.03em; }
.b-docg-btn { margin-top:10px; display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:#008774; border:1.5px solid #008774; border-radius:999px; padding:6px 16px; transition:.15s; }
.b-docg-card:hover .b-docg-btn { background:#008774; color:#fff; }

@media (max-width: 900px) {
  .b-docgrid--3 { grid-template-columns:1fr 1fr; }
}
@media (max-width: 600px) {
  .b-docgrid, .b-docgrid--3 { grid-template-columns:1fr; }
}

/* ── Documents : liste moderne ── */
.b-docs-mod { display:flex; flex-direction:column; gap:10px; }
.docm { display:flex; align-items:center; gap:16px; background:#fff; border:1px solid #EAE5DB; border-left:4px solid #008774; border-radius:12px; padding:14px 18px; text-decoration:none; transition:.18s; }
.docm:hover { border-left-color:#E8871E; box-shadow:0 8px 24px -8px rgba(11,61,46,.16); transform:translateX(3px); }
.docm-ico { font-size:30px; line-height:1; flex-shrink:0; }
.docm-body { flex:1; min-width:0; }
.docm-nom { font-weight:700; color:#0B3D2E; font-size:14.5px; }
.docm-meta { font-size:12px; color:#7A8A82; margin-top:2px; letter-spacing:.03em; }
.docm-btn { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; color:#008774; border:1.5px solid #008774; border-radius:999px; padding:6px 14px; white-space:nowrap; transition:.15s; flex-shrink:0; }
.docm:hover .docm-btn { background:#008774; color:#fff; }

/* ── Documents : grille bandeaux ── */
.b-docband { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.b-docband--3 { grid-template-columns:repeat(3,1fr); }
.b-docb-card { display:flex; align-items:center; gap:14px; background:linear-gradient(135deg,#F8FAF9,#fff); border:1px solid #EAE5DB; border-radius:14px; padding:16px 18px; text-decoration:none; transition:.18s; }
.b-docb-card:hover { border-color:#008774; box-shadow:0 8px 24px -8px rgba(11,61,46,.18); }
.b-docb-ico { width:48px; height:48px; border-radius:12px; background:#EAF5F1; display:flex; align-items:center; justify-content:center; font-size:24px; flex-shrink:0; }
.b-docb-body { flex:1; min-width:0; }
.b-docb-nom { font-weight:700; color:#0B3D2E; font-size:14px; line-height:1.35; }
.b-docb-meta { font-size:11.5px; color:#7A8A82; margin-top:2px; letter-spacing:.03em; }
.b-docb-dl { width:34px; height:34px; border-radius:50%; border:1.5px solid #008774; color:#008774; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:700; flex-shrink:0; transition:.15s; }
.b-docb-card:hover .b-docb-dl { background:#008774; color:#fff; }

/* ── Icône emoji dans la liste classique ── */
.di--emoji { font-size:22px; background:#EAF5F1; }

@media (max-width: 900px) { .b-docband--3 { grid-template-columns:1fr 1fr; } }
@media (max-width: 600px) { .b-docband, .b-docband--3 { grid-template-columns:1fr; } .docm-btn { display:none; } }

/* ── Bloc Liste d'articles ── */
.b-arts-titre { font-size:24px; font-weight:700; color:#0B3D2E; margin-bottom:22px; }
.b-arts { display:grid; gap:20px; }
.b-arts--c1 { grid-template-columns:1fr; }
.b-arts--c2 { grid-template-columns:repeat(2,1fr); }
.b-arts--c3 { grid-template-columns:repeat(3,1fr); }
.b-arts--c4 { grid-template-columns:repeat(4,1fr); }
.b-arts--c5 { grid-template-columns:repeat(5,1fr); gap:16px; }
.b-arts--c6 { grid-template-columns:repeat(6,1fr); gap:14px; }

/* Carte article */
.b-art-card { display:flex; flex-direction:column; background:#fff; border:1px solid #EAE5DB; border-radius:14px; overflow:hidden; text-decoration:none; transition:.2s; }
.b-art-card:hover { box-shadow:0 12px 30px -10px rgba(11,61,46,.2); transform:translateY(-3px); border-color:#008774; }
.b-art-img { height:150px; background:#EAF5F1; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.b-arts--c5 .b-art-img, .b-arts--c6 .b-art-img { height:110px; }
.b-art-img img { width:100%; height:100%; object-fit:cover; }
.b-art-img-ph { font-size:34px; opacity:.4; }
.b-art-body { padding:14px 16px 16px; display:flex; flex-direction:column; gap:7px; flex:1; }
.b-art-cats { display:flex; gap:4px; flex-wrap:wrap; }
.b-art-cats span { font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#008774; background:#EAF5F1; padding:2px 8px; border-radius:999px; }
.b-art-t { font-size:14.5px; font-weight:700; color:#0B3D2E; line-height:1.4; }
.b-arts--c5 .b-art-t, .b-arts--c6 .b-art-t { font-size:13px; }
.b-art-ex { font-size:12.5px; color:#5A6560; line-height:1.55; flex:1; }
.b-art-meta { display:flex; gap:10px; font-size:11px; color:#9AA49E; border-top:1px solid #F0F4F2; padding-top:8px; }

/* Style compact (liste de lignes) */
.b-arts--compact { display:flex; flex-direction:column; gap:0; border:1px solid #EAE5DB; border-radius:14px; overflow:hidden; background:#fff; }
.b-art-ligne { display:flex; align-items:center; gap:16px; padding:13px 18px; text-decoration:none; border-bottom:1px solid #F0ECE2; transition:.15s; }
.b-art-ligne:last-child { border-bottom:none; }
.b-art-ligne:hover { background:#F8FAF9; padding-left:24px; }
.b-art-ligne-date { font-size:12px; color:#9AA49E; font-family:monospace; flex-shrink:0; }
.b-art-ligne-titre { flex:1; font-size:14px; font-weight:600; color:#0B3D2E; }
.b-art-ligne-fleche { color:#008774; font-weight:700; }

/* Bouton "Voir tous" */
.b-arts-plus { text-align:center; margin-top:22px; }
.b-arts-plus-btn { display:inline-block; padding:10px 26px; border:1.5px solid #008774; border-radius:999px; color:#008774; font-size:13.5px; font-weight:700; text-decoration:none; transition:.15s; }
.b-arts-plus-btn:hover { background:#008774; color:#fff; }

/* Responsive grilles articles */
@media (max-width: 1100px) {
  .b-arts--c5, .b-arts--c6 { grid-template-columns:repeat(4,1fr); }
}
@media (max-width: 900px) {
  .b-arts--c3, .b-arts--c4, .b-arts--c5, .b-arts--c6 { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 600px) {
  .b-arts--c2, .b-arts--c3, .b-arts--c4, .b-arts--c5, .b-arts--c6 { grid-template-columns:1fr; }
  .b-art-ligne-date { display:none; }
}

/* ── Bloc Articles : style MAGAZINE (1er article en hero) ── */
.b-arts--mag .b-art-card:first-child { grid-column:1/-1; flex-direction:row; min-height:240px; }
.b-arts--mag .b-art-card:first-child .b-art-img { width:48%; height:auto; flex-shrink:0; }
.b-arts--mag .b-art-card:first-child .b-art-body { justify-content:center; padding:26px 30px; }
.b-arts--mag .b-art-card:first-child .b-art-t { font-size:22px; line-height:1.35; }
.b-arts--mag .b-art-card:first-child .b-art-ex { font-size:14px; -webkit-line-clamp:3; }
@media (max-width:700px) {
  .b-arts--mag .b-art-card:first-child { flex-direction:column; }
  .b-arts--mag .b-art-card:first-child .b-art-img { width:100%; height:180px; }
  .b-arts--mag .b-art-card:first-child .b-art-t { font-size:17px; }
}

/* ── Bloc Articles : style SUPERPOSITION (titre sur image) ── */
.b-art-ov { position:relative; display:flex; align-items:flex-end; min-height:230px; border-radius:16px; overflow:hidden; text-decoration:none; background-size:cover; background-position:center; transition:.25s; }
.b-art-ov:hover { transform:translateY(-3px); box-shadow:0 16px 38px -12px rgba(11,61,46,.35); }
.b-art-ov-grad { position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgba(6,30,22,.88) 100%); transition:.25s; }
.b-art-ov:hover .b-art-ov-grad { background:linear-gradient(180deg,rgba(6,30,22,.15) 0%,rgba(6,30,22,.94) 100%); }
.b-art-ov-body { position:relative; padding:18px 20px; width:100%; }
.b-art-cats--clair span { background:rgba(255,255,255,.18); color:#fff; backdrop-filter:blur(4px); }
.b-art-ov-t { font-size:16px; font-weight:800; color:#fff; line-height:1.35; margin-top:7px; text-shadow:0 1px 6px rgba(0,0,0,.3); }
.b-arts--c5 .b-art-ov-t, .b-arts--c6 .b-art-ov-t { font-size:13.5px; }
.b-art-ov-meta { font-size:11.5px; color:rgba(255,255,255,.85); margin-top:7px; }
.b-arts--ov.b-arts--c1 .b-art-ov { min-height:320px; }

/* ── Bloc Articles : style LISTE MODERNE (média horizontal) ── */
.b-arts--listemod { display:flex; flex-direction:column; gap:14px; }
.b-art-lm { display:flex; gap:18px; background:#fff; border:1px solid #EAE5DB; border-radius:14px; overflow:hidden; text-decoration:none; transition:.2s; }
.b-art-lm:hover { border-color:#008774; box-shadow:0 10px 26px -10px rgba(11,61,46,.18); }
.b-art-lm-img { width:210px; flex-shrink:0; background:#EAF5F1; display:flex; align-items:center; justify-content:center; }
.b-art-lm-img img { width:100%; height:100%; object-fit:cover; }
.b-art-lm-body { padding:16px 18px 16px 0; display:flex; flex-direction:column; gap:7px; flex:1; }
.b-art-lm:not(:has(.b-art-lm-img)) .b-art-lm-body { padding-left:18px; }
.b-art-lm-t { font-size:16px; font-weight:700; color:#0B3D2E; line-height:1.4; }
@media (max-width:640px) {
  .b-art-lm { flex-direction:column; }
  .b-art-lm-img { width:100%; height:160px; }
  .b-art-lm-body { padding:0 16px 16px; }
}

/* ── Bloc Articles : pagination ── */
.b-arts-pagin { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:26px; }
.b-arts-pg { padding:9px 20px; border:1.5px solid #008774; border-radius:999px; color:#008774; font-size:13px; font-weight:700; text-decoration:none; transition:.15s; }
.b-arts-pg:hover { background:#008774; color:#fff; }
.b-arts-pg--off { border-color:#E4EBE7; color:#C0CCC5; cursor:default; }
.b-arts-pg--off:hover { background:transparent; color:#C0CCC5; }
.b-arts-pg-info { font-size:13px; color:#5A6560; font-weight:600; }


/* =====================================================================
   Bloc « Galerie photo » (avec Fancybox)
   Une carte par article : image à la une comme vignette, clic → ouvre
   toutes les photos de la galerie de cet article dans Fancybox.
   ===================================================================== */
.b-gal-titre { font-size:24px; font-weight:700; color:#0B3D2E; margin-bottom:22px; }

.b-gal-card { position:relative; display:flex; flex-direction:column; }
.b-gal-hidden { display:none; }

.b-gal-cover { position:relative; display:block; overflow:hidden; border-radius:12px; background:#EAF5F1; text-decoration:none; flex:none; width:100%; }
.b-gal-cover img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
.b-gal-cover:hover img { transform:scale(1.06); }
.b-gal-count { position:absolute; top:10px; right:10px; background:rgba(11,61,46,.78); color:#fff; font-size:11px; font-weight:700;
  padding:3px 10px; border-radius:999px; backdrop-filter:blur(2px); }
.b-gal-titre-lien { display:block; margin-top:9px; font-size:13.5px; font-weight:700; color:#0B3D2E; text-decoration:none; line-height:1.35; }
.b-gal-titre-lien:hover { color:#008774; text-decoration:underline; }

/* Ratios (s'appliquent à la vignette de couverture) */
.b-gal-rcarre .b-gal-cover { aspect-ratio:1/1; }
.b-gal-r43 .b-gal-cover    { aspect-ratio:4/3; }
.b-gal-r169 .b-gal-cover   { aspect-ratio:16/9; }
.b-gal-rport .b-gal-cover  { aspect-ratio:3/4; }
.b-gal-rauto .b-gal-cover img { height:auto; }

/* Style : grilles régulières */
.b-gal--grille { display:grid; gap:20px; }
.b-gal--grille.b-gal--c2 { grid-template-columns:repeat(2,1fr); }
.b-gal--grille.b-gal--c3 { grid-template-columns:repeat(3,1fr); }
.b-gal--grille.b-gal--c4 { grid-template-columns:repeat(4,1fr); }

/* Style : mosaïque — grille plus dense (5 colonnes), toutes les vignettes à la même taille */
.b-gal--mosaique { display:grid; gap:14px; grid-template-columns:repeat(5,1fr); }

/* Style : carrousel horizontal défilant — toutes les vignettes à la même largeur */
.b-gal--carrousel { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -ms-overflow-style:none; padding:4px 2px; }
.b-gal--carrousel::-webkit-scrollbar { display:none; }
.b-gal--carrousel .b-gal-card { flex:0 0 240px; scroll-snap-align:start; }

/* Style : mur (grille à colonnes égales, toutes les vignettes à la même taille) */
.b-gal--mur { display:grid; gap:12px; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); }

@media (max-width:900px) {
  .b-gal--grille.b-gal--c3, .b-gal--grille.b-gal--c4 { grid-template-columns:repeat(2,1fr); }
  .b-gal--mosaique { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:560px) {
  .b-gal--grille.b-gal--c2, .b-gal--grille.b-gal--c3, .b-gal--grille.b-gal--c4 { grid-template-columns:repeat(2,1fr); }
  .b-gal--mosaique { grid-template-columns:repeat(2,1fr); }
  .b-gal--mur { grid-template-columns:repeat(2,1fr); }
}

/* Surcharges Fancybox pour rester dans la charte de l'institution */
.fancybox__caption { font-family:'Poppins',sans-serif; }
.carousel__button.is-close svg { color:#fff; }

/* =====================================================================
   Bloc « Vidéo » — même structure de carte que la Galerie photo
   (b-gal-card / b-gal-cover), avec un bouton lecture superposé.
   ===================================================================== */
.b-vid-cover { background:#0B3D2E; }
.b-vid-noposter { width:100%; height:100%; background:linear-gradient(135deg, #0B3D2E, #016830); }
.b-vid-play {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.92);
  color:#0B3D2E; font-size:18px; display:flex; align-items:center; justify-content:center;
  padding-left:3px; /* recentrer visuellement le triangle ▶ */
  transition:transform .2s ease, background .2s ease;
}
.b-vid-cover:hover .b-vid-play { transform:translate(-50%,-50%) scale(1.08); background:#fff; }

/* Style : liste (vignette 16:9 à gauche, titre à droite) */
.b-vid--liste { display:flex; flex-direction:column; gap:14px; }
.b-vid--liste .b-vid-card { display:grid; grid-template-columns:220px 1fr; gap:16px; align-items:center; }
.b-vid--liste .b-gal-cover { width:220px; }
.b-vid--liste .b-gal-titre-lien { margin-top:0; font-size:15px; }
@media (max-width:640px) {
  .b-vid--liste .b-vid-card { grid-template-columns:1fr; }
  .b-vid--liste .b-gal-cover { width:100%; }
}

/* =====================================================================
   Bloc « Formulaire » (Nous contacter, Formulaire de plainte, etc.)
   ===================================================================== */
.cf-formulaire { max-width:720px; margin:0 auto; }
.cf-description { font-size:14px; color:#5A6560; margin:0 0 20px; }
.cf-alerte { padding:14px 18px; border-radius:10px; font-size:13.5px; margin-bottom:20px; }
.cf-alerte--succes { background:#E8F5EE; color:#0B3D2E; border:1px solid #B7E0C8; }
.cf-alerte--erreur { background:#FDECEC; color:#8A1F1F; border:1px solid #F3B9B9; }

.cf-form { display:flex; flex-direction:column; gap:18px; }
.cf-champ { display:flex; flex-direction:column; gap:6px; }
.cf-champ label { font-size:13px; font-weight:700; color:#0B3D2E; }
.cf-requis { color:#C0392B; margin-left:2px; }
.cf-champ input[type=text], .cf-champ input[type=email], .cf-champ input[type=tel],
.cf-champ input[type=date], .cf-champ input[type=file], .cf-champ textarea, .cf-champ select {
  padding:11px 14px; border:1px solid #DCE3DE; border-radius:9px; font-size:14px; font-family:inherit;
  background:#fff; transition:.15s;
}
.cf-champ input:focus, .cf-champ textarea:focus, .cf-champ select:focus {
  outline:none; border-color:#016830; box-shadow:0 0 0 3px rgba(1,104,48,.1);
}
.cf-champ textarea { resize:vertical; }
.cf-options { display:flex; flex-direction:column; gap:8px; }
.cf-option { display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:400; color:#233029; }
.cf-option input { accent-color:#016830; }
.cf-erreur { font-size:12px; color:#C0392B; }
.cf-honeypot { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.cf-champ--captcha { margin-top:-4px; }
.cf-submit {
  align-self:flex-start; padding:13px 32px; background:#016830; color:#fff; border:none; border-radius:999px;
  font-size:14.5px; font-weight:700; cursor:pointer; transition:.2s;
}
.cf-submit:hover { background:#014D24; }
.cf-indisponible { font-size:13.5px; color:#9AA49E; font-style:italic; }
@media (max-width:640px) { .cf-submit { width:100%; text-align:center; } }
