/* ============================================================
   FFK — Kit de gabarits éditeur (blocs ACF)
   Chargé côté front ET dans l'éditeur (enqueue_block_assets).
   ============================================================ */

:root{
	--ffk-navy:#101A33; --ffk-bleu:#1C3C8C; --ffk-magenta:#E4174B;
	--ffk-teal:#5EE0C0; --ffk-jaune:#FFD15C;
	--ffk-ink:#101A33; --ffk-txt:#3F4A63; --ffk-muted:#586178; --ffk-soft:#5E6880;
	--ffk-surf:#F7F9FD; --ffk-surf2:#EEF2FA; --ffk-bord:#E1E8F5;
	--ffk-sg:'Space Grotesk',system-ui,sans-serif;
	--ffk-pj:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
	--ffk-shadow:0 24px 50px -42px rgba(20,40,100,.5);
}

.ffk-b{ margin:28px 0; font-family:var(--ffk-pj); color:var(--ffk-txt); }
.ffk-b *{ box-sizing:border-box; }

/* --- Section (conteneur InnerBlocks) --- */
.ffk-b-section{ margin:0; border-radius:0; }
.ffk-b-section.is-esp-s{ padding-top:clamp(20px,3vw,32px); padding-bottom:clamp(20px,3vw,32px); }
.ffk-b-section.is-esp-m{ padding-top:clamp(32px,5vw,60px); padding-bottom:clamp(32px,5vw,60px); }
.ffk-b-section.is-esp-l{ padding-top:clamp(48px,7vw,96px); padding-bottom:clamp(48px,7vw,96px); }
.ffk-b-section.is-fond-aucun{ background:transparent; }
.ffk-b-section.is-fond-clair{ background:#fff; }
.ffk-b-section.is-fond-surface{ background:var(--ffk-surf); }
.ffk-b-section.is-fond-surface2{ background:var(--ffk-surf2); }
.ffk-b-section.is-fond-navy{ background:var(--ffk-navy); }
.ffk-b-section.is-fond-degrade{ background:linear-gradient(135deg,var(--ffk-navy) 0%,var(--ffk-bleu) 48%,var(--ffk-magenta) 100%); }
.ffk-b-section-inner{ margin:0 auto; padding-left:clamp(16px,4vw,40px); padding-right:clamp(16px,4vw,40px); }
.ffk-b-section-inner.is-normal{ max-width:760px; }
.ffk-b-section-inner.is-large{ max-width:1200px; }
.ffk-b-section-inner.is-pleine{ max-width:none; padding-left:0; padding-right:0; }
/* Texte clair sur fonds foncés */
.ffk-b-section.is-fond-navy, .ffk-b-section.is-fond-degrade{ color:#fff; }
.ffk-b-section.is-fond-navy :is(h1,h2,h3,h4,.ffk-b-title,.ffk-b-mea-titre,.ffk-b-accordion-titre),
.ffk-b-section.is-fond-degrade :is(h1,h2,h3,h4,.ffk-b-title,.ffk-b-mea-titre,.ffk-b-accordion-titre){ color:#fff; }
.ffk-b-section.is-fond-navy :is(p,.ffk-b-lead),
.ffk-b-section.is-fond-degrade :is(p,.ffk-b-lead){ color:rgba(255,255,255,.85); }

/* --- Éléments communs --- */
.ffk-b-eyebrow{ display:inline-flex; align-items:center; gap:9px; background:#fff; border-radius:100px; padding:7px 15px; margin-bottom:14px; box-shadow:0 10px 24px -16px rgba(20,40,100,.5); font-weight:800; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:#15234F; }
.ffk-b-eyebrow-dot{ width:8px; height:8px; border-radius:50%; background:linear-gradient(135deg,var(--ffk-bleu),var(--ffk-magenta)); }
.ffk-b-eyebrow--oncolor{ background:rgba(255,255,255,.16); color:#fff; box-shadow:none; }
.ffk-b-title{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(26px,3vw,42px); letter-spacing:-.02em; color:var(--ffk-ink); line-height:1.12; margin:0 0 12px; }
.ffk-b-lead{ font-weight:500; font-size:16px; line-height:1.6; color:var(--ffk-muted); max-width:680px; margin:0 0 18px; }
.ffk-b-lead--center{ margin-left:auto; margin-right:auto; text-align:center; }
.ffk-b-titre-section.is-centre{ text-align:center; }
.ffk-b-titre-section.is-centre .ffk-b-lead{ margin-left:auto; margin-right:auto; }

/* --- Boutons --- */
.ffk-b-btn{ display:inline-flex; align-items:center; gap:9px; font-family:var(--ffk-pj); font-weight:800; font-size:15px; padding:14px 26px; border-radius:100px; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; white-space:nowrap; }
.ffk-b-btn:hover{ transform:translateY(-2px); }
.ffk-b-btn--primary{ color:#fff; background:linear-gradient(135deg,var(--ffk-bleu),var(--ffk-magenta)); box-shadow:0 16px 34px -16px rgba(37,99,214,.8); }
.ffk-b-btn--ghost{ color:#fff; background:rgba(255,255,255,.14); border:1.5px solid rgba(255,255,255,.5); }
.ffk-b-btn--ghost-solid{ color:var(--ffk-bleu); background:#fff; border:1.5px solid var(--ffk-bord); }

.ffk-b-boutons{ display:flex; flex-wrap:wrap; gap:12px; }
.ffk-b-boutons.is-centre{ justify-content:center; }
.ffk-b-boutons.is-droite{ justify-content:flex-end; }

/* --- Bandeau CTA --- */
.ffk-b-cta{ border-radius:26px; padding:clamp(26px,3vw,44px); box-shadow:0 30px 60px -44px rgba(20,40,100,.7); }
.ffk-b-cta.is-gradient{ background:linear-gradient(135deg,var(--ffk-navy) 0%,var(--ffk-bleu) 48%,var(--ffk-magenta) 100%); }
.ffk-b-cta.is-navy{ background:var(--ffk-navy); }
.ffk-b-cta.is-magenta{ background:linear-gradient(135deg,#C8102E,#8E0B22); }
.ffk-b-cta.is-clair{ background:#fff; box-shadow:var(--ffk-shadow); }
.ffk-b-cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; }
.ffk-b-cta-title{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(22px,2.4vw,32px); letter-spacing:-.02em; margin:0 0 8px; color:#fff; }
.ffk-b-cta-desc{ font-weight:500; font-size:15px; line-height:1.6; color:rgba(255,255,255,.85); margin:0; max-width:620px; }
.ffk-b-cta.is-clair .ffk-b-cta-title{ color:var(--ffk-ink); }
.ffk-b-cta.is-clair .ffk-b-cta-desc{ color:var(--ffk-muted); }
.ffk-b-cta-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.ffk-b-cta.is-clair .ffk-b-btn--ghost{ color:var(--ffk-bleu); background:var(--ffk-surf2); border-color:var(--ffk-bord); }

/* --- Chiffres-clés --- */
.ffk-b-chiffres-grid{ display:grid; grid-template-columns:repeat(var(--ffk-cols,3),1fr); gap:16px; }
.ffk-b-chiffre{ background:#fff; border-radius:20px; padding:26px 22px; text-align:center; box-shadow:var(--ffk-shadow); }
.ffk-b-chiffre-val{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(34px,4vw,52px); line-height:1; letter-spacing:-.03em; background:linear-gradient(135deg,var(--ffk-bleu),var(--ffk-magenta)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ffk-b-chiffre-suf{ font-size:.55em; margin-left:2px; }
.ffk-b-chiffre-lbl{ margin-top:10px; font-weight:600; font-size:14px; color:var(--ffk-muted); }

/* --- Encadré / alerte --- */
.ffk-b-encadre{ display:flex; gap:14px; border-radius:16px; padding:18px 20px; border-left:4px solid; background:#fff; box-shadow:var(--ffk-shadow); }
.ffk-b-encadre-ico{ flex:0 0 auto; width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; }
.ffk-b-encadre-titre{ font-family:var(--ffk-sg); font-weight:600; font-size:16px; color:var(--ffk-ink); margin:0 0 4px; }
.ffk-b-encadre-texte{ font-weight:500; font-size:14.5px; line-height:1.6; color:var(--ffk-txt); }
.ffk-b-encadre-texte p{ margin:0 0 8px; } .ffk-b-encadre-texte p:last-child{ margin:0; }
.ffk-b-encadre.is-info{ border-color:var(--ffk-bleu); } .ffk-b-encadre.is-info .ffk-b-encadre-ico{ background:#EAEFFA; color:var(--ffk-bleu); }
.ffk-b-encadre.is-astuce{ border-color:#6C4BD8; } .ffk-b-encadre.is-astuce .ffk-b-encadre-ico{ background:#EDE8FB; color:#6C4BD8; }
.ffk-b-encadre.is-attention{ border-color:#E0921C; } .ffk-b-encadre.is-attention .ffk-b-encadre-ico{ background:#FDF1DC; color:#B9760F; }
.ffk-b-encadre.is-danger{ border-color:var(--ffk-magenta); } .ffk-b-encadre.is-danger .ffk-b-encadre-ico{ background:#FCE4EA; color:var(--ffk-magenta); }
.ffk-b-encadre.is-succes{ border-color:#2E9E5B; } .ffk-b-encadre.is-succes .ffk-b-encadre-ico{ background:#E7F4ED; color:#1E7A45; }

/* --- Accordéon --- */
.ffk-b-accordion-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(22px,2.4vw,32px); letter-spacing:-.02em; color:var(--ffk-ink); margin:0 0 18px; text-align:center; }
.ffk-b-accordion-list{ display:flex; flex-direction:column; gap:10px; }
.ffk-b-acc-item{ background:#fff; border-radius:16px; box-shadow:0 20px 44px -40px rgba(20,40,100,.5); overflow:hidden; }
.ffk-b-acc-btn{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; background:transparent; border:none; cursor:pointer; padding:18px 22px; text-align:left; font-family:var(--ffk-pj); }
.ffk-b-acc-btn > span:first-child{ font-family:var(--ffk-sg); font-weight:600; font-size:16.5px; color:var(--ffk-ink); }
.ffk-b-acc-btn:hover > span:first-child{ color:var(--ffk-bleu); }
.ffk-b-acc-chev{ display:inline-flex; transition:transform .25s ease; }
.ffk-b-acc-item.is-open .ffk-b-acc-chev{ transform:rotate(180deg); }
.ffk-b-acc-panel{ max-height:0; overflow:hidden; transition:max-height .28s ease; }
.ffk-b-acc-item.is-open .ffk-b-acc-panel{ max-height:600px; }
.ffk-b-acc-panel-in{ padding:0 22px 20px; font-weight:500; font-size:14.5px; line-height:1.65; color:var(--ffk-muted); }
.ffk-b-acc-panel-in p{ margin:0 0 8px; } .ffk-b-acc-panel-in p:last-child{ margin:0; }

/* --- Grille de cartes --- */
.ffk-b-cartes-grid{ display:grid; grid-template-columns:repeat(var(--ffk-cols,3),1fr); gap:16px; }
.ffk-b-carte{ display:block; background:#fff; border-radius:20px; overflow:hidden; box-shadow:var(--ffk-shadow); border-top:4px solid var(--ffk-accent,#1C3C8C); text-decoration:none; transition:transform .2s ease, box-shadow .2s ease; }
a.ffk-b-carte:hover{ transform:translateY(-4px); box-shadow:0 30px 55px -38px rgba(20,40,100,.6); }
.ffk-b-carte-img{ aspect-ratio:16/10; overflow:hidden; }
.ffk-b-carte-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.ffk-b-carte-body{ padding:22px; }
.ffk-b-carte-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:18px; color:var(--ffk-ink); margin:0 0 8px; }
.ffk-b-carte-texte{ font-weight:500; font-size:14px; line-height:1.55; color:var(--ffk-muted); margin:0 0 12px; }
.ffk-b-carte-lien{ display:inline-flex; align-items:center; gap:7px; font-weight:800; font-size:13.5px; color:var(--ffk-accent-txt,var(--ffk-accent,#1C3C8C)); } /* texte : accent assombri (teal, jaune illisibles sur blanc) */

/* --- Citation --- */
.ffk-b-citation{ position:relative; background:#fff; border-radius:22px; padding:34px 30px 28px; box-shadow:var(--ffk-shadow); margin:28px 0; }
.ffk-b-citation-mark{ position:absolute; top:6px; left:22px; font-family:var(--ffk-sg); font-size:80px; line-height:1; color:var(--ffk-surf2); }
.ffk-b-citation-texte{ position:relative; font-family:var(--ffk-sg); font-weight:500; font-size:clamp(18px,2vw,23px); line-height:1.45; color:var(--ffk-ink); margin:0 0 18px; border:none; padding:0; }
.ffk-b-citation-auteur{ display:flex; align-items:center; gap:13px; }
.ffk-b-citation-avatar{ width:46px; height:46px; border-radius:50%; object-fit:cover; }
.ffk-b-citation-auteur strong{ display:block; font-weight:800; font-size:15px; color:var(--ffk-ink); }
.ffk-b-citation-auteur em{ font-style:normal; font-weight:600; font-size:13px; color:var(--ffk-muted); }

/* --- Galerie --- */
.ffk-b-galerie-grid{ display:grid; grid-template-columns:repeat(var(--ffk-cols,3),1fr); gap:12px; }
.ffk-b-galerie-item{ margin:0; border-radius:16px; overflow:hidden; box-shadow:var(--ffk-shadow); }
.ffk-b-galerie-item img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.ffk-b-galerie-item figcaption{ padding:8px 12px; font-weight:500; font-size:12.5px; color:var(--ffk-muted); background:#fff; }

/* --- Vidéo --- */
.ffk-b-video{ margin:28px 0; }
.ffk-b-video-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:19px; color:var(--ffk-ink); margin:0 0 12px; }
.ffk-b-video-frame{ position:relative; border-radius:18px; overflow:hidden; box-shadow:var(--ffk-shadow); background:#000; aspect-ratio:16/9; }
.ffk-b-video-frame iframe, .ffk-b-video-frame video{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.ffk-b-video-legende{ margin-top:10px; font-weight:500; font-size:13px; color:var(--ffk-muted); }
.ffk-b-video-err{ color:#fff; padding:20px; }

/* --- Étapes --- */
.ffk-b-etapes-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px; }
.ffk-b-etape{ display:flex; gap:16px; background:#fff; border-radius:18px; padding:20px 22px; box-shadow:var(--ffk-shadow); }
.ffk-b-etape-num{ flex:0 0 auto; width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; font-family:var(--ffk-sg); font-weight:700; font-size:18px; color:#fff; background:linear-gradient(135deg,var(--ffk-bleu),var(--ffk-magenta)); }
.ffk-b-etape-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:17px; color:var(--ffk-ink); margin:0 0 4px; }
.ffk-b-etape-desc{ font-weight:500; font-size:14.5px; line-height:1.6; color:var(--ffk-muted); margin:0; }

/* --- Média + texte --- */
.ffk-b-mea{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px,3vw,44px); align-items:center; }
.ffk-b-mea.is-img-droite{ direction:rtl; } .ffk-b-mea.is-img-droite > *{ direction:ltr; }
.ffk-b-mea-media img{ width:100%; border-radius:22px; box-shadow:var(--ffk-shadow); display:block; }
.ffk-b-mea-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(24px,2.6vw,34px); letter-spacing:-.02em; color:var(--ffk-ink); margin:0 0 12px; }
.ffk-b-mea-texte{ font-weight:500; font-size:15.5px; line-height:1.65; color:var(--ffk-txt); margin:0 0 18px; }
.ffk-b-mea-texte p{ margin:0 0 12px; } .ffk-b-mea-texte p:last-child{ margin:0 0 12px; }

/* --- Partenaires --- */
.ffk-b-partenaires-row{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(20px,4vw,52px); }
.ffk-b-partenaire{ display:inline-flex; }
.ffk-b-partenaire img{ max-height:56px; width:auto; filter:grayscale(1); opacity:.7; transition:filter .2s ease, opacity .2s ease; }
.ffk-b-partenaire:hover img{ filter:grayscale(0); opacity:1; }

/* --- Téléchargements --- */
.ffk-b-downloads-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(20px,2.2vw,28px); color:var(--ffk-ink); margin:0 0 16px; }
.ffk-b-downloads-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.ffk-b-download a{ display:flex; align-items:center; gap:14px; background:#fff; border:1px solid var(--ffk-bord); border-radius:14px; padding:14px 16px; text-decoration:none; transition:border-color .2s ease, box-shadow .2s ease; }
.ffk-b-download a:hover{ border-color:var(--ffk-bleu); box-shadow:0 16px 30px -22px rgba(20,40,100,.5); }
.ffk-b-download-ico{ flex:0 0 auto; width:40px; height:40px; border-radius:11px; background:#EAEFFA; display:flex; align-items:center; justify-content:center; }
.ffk-b-download-body{ flex:1 1 auto; min-width:0; }
.ffk-b-download-titre{ display:block; font-weight:700; font-size:15px; color:var(--ffk-ink); }
.ffk-b-download-desc{ display:block; font-weight:500; font-size:13px; color:var(--ffk-muted); margin-top:2px; }
.ffk-b-download-meta{ flex:0 0 auto; font-weight:700; font-size:12px; letter-spacing:.04em; color:var(--ffk-soft); }

/* --- Placeholder éditeur --- */
.ffk-b-placeholder{ display:flex; flex-direction:column; gap:4px; border:2px dashed var(--ffk-bord); border-radius:14px; padding:22px; text-align:center; color:var(--ffk-muted); background:var(--ffk-surf); }
.ffk-b-placeholder strong{ font-family:var(--ffk-sg); color:var(--ffk-bleu); font-size:15px; }
.ffk-b-placeholder span{ font-size:13px; }

/* --- Responsive --- */
@media (max-width:781px){
	.ffk-b-chiffres-grid, .ffk-b-cartes-grid, .ffk-b-galerie-grid{ grid-template-columns:repeat(2,1fr); }
	.ffk-b-mea{ grid-template-columns:1fr; } .ffk-b-mea.is-img-droite{ direction:ltr; }
	.ffk-b-cta-inner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:520px){
	.ffk-b-chiffres-grid, .ffk-b-cartes-grid{ grid-template-columns:1fr; }
	.ffk-b-galerie-grid{ grid-template-columns:repeat(2,1fr); }
}

/* ============================================================
   FFK — Blocs éditeur (lot 2 : catalogue)
   ============================================================ */

/* --- En bref / À retenir --- */
.ffk-b-enbref{ background:#fff; border:1px solid var(--ffk-bord); border-left:5px solid var(--ffk-bleu); border-radius:20px; padding:24px 26px; box-shadow:var(--ffk-shadow); }
.ffk-b-enbref-head{ display:flex; align-items:center; gap:10px; margin-bottom:15px; }
.ffk-b-enbref-ico{ width:34px; height:34px; border-radius:10px; background:#EAEFFA; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ffk-b-enbref-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:18px; color:var(--ffk-ink); }
.ffk-b-enbref-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.ffk-b-enbref-list li{ display:flex; gap:11px; font-weight:600; font-size:15px; line-height:1.5; color:#39424F; }
.ffk-b-enbref-list li span{ color:var(--ffk-magenta); font-weight:800; flex:0 0 auto; }

/* --- Sommaire automatique --- */
.ffk-b-sommaire{ background:#fff; border:1px solid var(--ffk-bord); border-radius:18px; padding:20px; box-shadow:var(--ffk-shadow); }
.ffk-b-sommaire-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#5E6B85; margin-bottom:12px; }
.ffk-b-sommaire-nav{ display:flex; flex-direction:column; gap:9px; }
.ffk-b-sommaire-nav a{ font-weight:600; font-size:14px; color:#54607A; text-decoration:none; border-left:2px solid var(--ffk-bord); padding-left:12px; transition:color .15s, border-color .15s; }
.ffk-b-sommaire-nav a:hover{ color:var(--ffk-bleu); border-color:var(--ffk-bleu); }
.ffk-b-sommaire-nav a.ffk-toc-h3{ padding-left:24px; font-size:13px; }
.ffk-b-sommaire-hint{ font-weight:500; font-size:13px; color:var(--ffk-soft); }

/* --- Encadré chiffre + explication --- */
.ffk-b-ecx{ display:flex; gap:22px; align-items:center; background:#fff; border:1px solid var(--ffk-bord); border-radius:20px; padding:26px; flex-wrap:wrap; box-shadow:var(--ffk-shadow); }
.ffk-b-ecx-num{ flex:0 0 auto; font-family:var(--ffk-sg); font-weight:700; font-size:clamp(44px,7vw,64px); line-height:.9; }
.ffk-b-ecx-body{ flex:1 1 240px; min-width:0; border-left:2px solid #EDF1F8; padding-left:22px; }
.ffk-b-ecx-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:18px; color:var(--ffk-ink); margin-bottom:6px; }
.ffk-b-ecx-texte{ font-weight:500; font-size:14.5px; line-height:1.6; color:#5E6B85; margin:0; }

/* --- Highlight --- */
.ffk-b-highlight{ position:relative; overflow:hidden; border-radius:22px; background:linear-gradient(120deg,#101A33,#1C3C8C 55%,#E4174B); padding:clamp(26px,3vw,34px); color:#fff; box-shadow:0 30px 60px -34px rgba(28,60,140,.7); }
.ffk-b-highlight-orb{ position:absolute; right:-40px; top:-40px; width:180px; height:180px; border-radius:50%; background:rgba(94,224,192,.22); }
.ffk-b-highlight-badge{ position:relative; display:inline-flex; align-items:center; gap:8px; font-weight:800; font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:#101A33; background:var(--ffk-jaune); padding:6px 13px; border-radius:100px; }
.ffk-b-highlight-titre{ position:relative; font-family:var(--ffk-sg); font-weight:700; font-size:clamp(22px,2.4vw,30px); line-height:1.1; margin:14px 0 10px; max-width:24ch; }
.ffk-b-highlight-texte{ position:relative; font-weight:500; font-size:15px; line-height:1.6; color:rgba(255,255,255,.9); margin:0 0 18px; max-width:60ch; }
.ffk-b-highlight .ffk-b-btn--ghost{ position:relative; }

/* --- Bandeau signalement / écoute --- */
.ffk-b-signalement{ display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; border-radius:26px; background:linear-gradient(135deg,#C8102E,#8E0B22); padding:clamp(24px,3vw,36px); box-shadow:0 30px 60px -40px rgba(200,16,46,.7); }
.ffk-b-signalement-main{ display:flex; align-items:flex-start; gap:18px; max-width:720px; }
.ffk-b-signalement-ico{ position:relative; display:flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:16px; background:rgba(255,255,255,.16); flex:0 0 auto; }
.ffk-b-signalement-pulse{ position:absolute; inset:0; border-radius:16px; border:2px solid rgba(255,255,255,.4); animation:kiPulse 1.8s ease-in-out infinite; }
.ffk-b-signalement-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(20px,2.2vw,28px); color:#fff; margin:0 0 8px; }
.ffk-b-signalement-texte{ font-weight:500; font-size:14.5px; line-height:1.6; color:rgba(255,255,255,.88); margin:0; }
.ffk-b-signalement-actions{ display:flex; flex-direction:column; gap:10px; }
.ffk-b-signalement-btn{ display:inline-flex; align-items:center; justify-content:center; font-weight:800; font-size:15px; color:#C8102E; background:#fff; padding:15px 26px; border-radius:100px; text-decoration:none; white-space:nowrap; transition:transform .2s; }
.ffk-b-signalement-btn:hover{ transform:translateY(-2px); }
.ffk-b-signalement-horaires{ text-align:center; font-weight:600; font-size:13px; color:rgba(255,255,255,.85); }

/* --- Image légendée + crédit --- */
.ffk-b-imglg{ margin:28px 0; }
.ffk-b-imglg img{ width:100%; border-radius:18px; display:block; box-shadow:var(--ffk-shadow); }
.ffk-b-imglg figcaption{ display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:10px; }
.ffk-b-imglg-legende{ font-weight:500; font-size:13.5px; color:var(--ffk-muted); }
.ffk-b-imglg-credit{ font-weight:600; font-size:12px; color:var(--ffk-soft); white-space:nowrap; }

/* --- Citation d'expert --- */
.ffk-b-expert{ display:flex; gap:20px; align-items:flex-start; background:#fff; border:1px solid var(--ffk-bord); border-radius:22px; padding:26px 28px; box-shadow:var(--ffk-shadow); margin:28px 0; }
.ffk-b-expert-avatar{ width:64px; height:64px; border-radius:50%; object-fit:cover; flex:0 0 auto; }
.ffk-b-expert-initials{ display:flex; align-items:center; justify-content:center; font-family:var(--ffk-sg); font-weight:700; font-size:24px; color:#fff; background:linear-gradient(135deg,var(--ffk-bleu),var(--ffk-magenta)); }
.ffk-b-expert-badge{ display:inline-flex; align-items:center; gap:6px; font-weight:800; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:#1E7A45; background:#E7F4ED; padding:4px 10px; border-radius:100px; margin-bottom:10px; }
.ffk-b-expert-texte{ font-family:var(--ffk-sg); font-weight:500; font-size:clamp(17px,1.8vw,20px); line-height:1.45; color:var(--ffk-ink); margin:0 0 12px; border:none; padding:0; }
.ffk-b-expert-nom{ font-weight:700; font-size:14px; color:var(--ffk-muted); }

/* --- Comparatif / tableau --- */
.ffk-b-comparatif{ background:#fff; border:1px solid var(--ffk-bord); border-radius:18px; overflow:hidden; box-shadow:var(--ffk-shadow); }
.ffk-b-comparatif table{ width:100%; border-collapse:collapse; font-size:14px; }
.ffk-b-comparatif thead tr{ background:var(--ffk-surf25,#F4F7FD); }
.ffk-b-comparatif th{ padding:14px 18px; text-align:center; font-family:var(--ffk-sg); font-weight:700; font-size:15px; color:var(--ffk-ink); }
.ffk-b-comparatif th.ffk-b-cmp-corner{ text-align:left; font-family:var(--ffk-pj); font-weight:800; font-size:12px; color:var(--ffk-soft); }
.ffk-b-comparatif th.is-reco{ color:var(--ffk-bleu); }
.ffk-b-cmp-reco{ display:block; font-family:var(--ffk-pj); font-weight:800; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:#fff; background:var(--ffk-bleu); border-radius:100px; padding:2px 8px; margin-top:5px; }
.ffk-b-comparatif tbody tr{ border-top:1px solid #EDF1F8; }
.ffk-b-comparatif tbody tr:nth-child(even){ background:#FBFCFE; }
.ffk-b-comparatif tbody th{ text-align:left; font-weight:700; color:#39424F; padding:13px 18px; }
.ffk-b-comparatif td{ text-align:center; padding:13px 18px; color:#39424F; }
.ffk-b-comparatif td.ffk-b-cmp-yes{ color:#2E9E5B; font-weight:800; }
.ffk-b-comparatif td.ffk-b-cmp-no{ color:#C4CBD8; }

/* --- Fiche pratique --- */
.ffk-b-fiche{ background:#fff; border:1px solid var(--ffk-bord); border-radius:20px; padding:26px; box-shadow:var(--ffk-shadow); }
.ffk-b-fiche-head{ display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.ffk-b-fiche-ico{ width:38px; height:38px; border-radius:11px; background:#EAEFFA; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ffk-b-fiche-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:19px; color:var(--ffk-ink); margin:0; }
.ffk-b-fiche-etapes{ list-style:none; margin:0 0 16px; padding:0; display:flex; flex-direction:column; gap:12px; counter-reset:fp; }
.ffk-b-fiche-etapes li{ display:flex; gap:13px; align-items:flex-start; font-weight:500; font-size:15px; line-height:1.5; color:#39424F; }
.ffk-b-fiche-num{ flex:0 0 auto; width:28px; height:28px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-family:var(--ffk-sg); font-weight:700; font-size:14px; color:#fff; background:linear-gradient(135deg,var(--ffk-bleu),var(--ffk-magenta)); }
.ffk-b-fiche-pieces{ background:var(--ffk-surf); border-radius:14px; padding:16px 18px; margin-bottom:14px; }
.ffk-b-fiche-pieces-titre{ font-weight:800; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ffk-soft); margin-bottom:10px; }
.ffk-b-fiche-pieces ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.ffk-b-fiche-pieces li{ display:flex; align-items:center; gap:9px; font-weight:600; font-size:14px; color:#39424F; }
.ffk-b-fiche-bon{ font-weight:500; font-size:13.5px; line-height:1.55; color:var(--ffk-muted); background:#FDF8EC; border-left:3px solid var(--ffk-jaune); border-radius:0 10px 10px 0; padding:12px 15px; margin:0; }
.ffk-b-fiche-bon strong{ color:#B9760F; }

/* --- Frise chronologique --- */
.ffk-b-frise{ position:relative; padding-left:34px; }
.ffk-b-frise-line{ position:absolute; left:11px; top:6px; bottom:6px; width:2px; background:linear-gradient(var(--ffk-bleu),var(--ffk-magenta)); }
.ffk-b-frise-item{ position:relative; margin-bottom:20px; }
.ffk-b-frise-item:last-child{ margin-bottom:0; }
.ffk-b-frise-dot{ position:absolute; left:-34px; top:2px; width:24px; height:24px; border-radius:50%; background:#fff; border:3px solid var(--ffk-bleu); }
.ffk-b-frise-item.is-actuel .ffk-b-frise-dot{ background:var(--ffk-magenta); border-color:var(--ffk-magenta); }
.ffk-b-frise-date{ font-family:var(--ffk-sg); font-weight:700; font-size:14px; color:var(--ffk-magenta); }
.ffk-b-frise-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:16px; color:var(--ffk-ink); margin:2px 0 3px; }
.ffk-b-frise-texte{ font-weight:500; font-size:13.5px; line-height:1.55; color:#5E6B85; margin:0; }

/* --- Résultat de compétition --- */
.ffk-b-resultat{ display:flex; flex-direction:column; gap:10px; }
.ffk-b-resultat-item{ display:flex; align-items:center; gap:16px; background:#fff; border:1px solid var(--ffk-bord); border-left:5px solid; border-radius:16px; padding:16px 20px; flex-wrap:wrap; box-shadow:var(--ffk-shadow); }
.ffk-b-resultat-ico{ width:46px; height:46px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ffk-b-resultat-body{ flex:1 1 200px; min-width:0; }
.ffk-b-resultat-epreuve{ font-weight:800; font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; }
.ffk-b-resultat-athlete{ font-family:var(--ffk-sg); font-weight:700; font-size:18px; color:var(--ffk-ink); }
.ffk-b-resultat-club{ font-weight:500; font-size:13px; color:var(--ffk-soft); }
.ffk-b-resultat-compet{ font-family:var(--ffk-sg); font-weight:700; font-size:13px; color:#54607A; background:var(--ffk-surf); border-radius:100px; padding:7px 14px; flex:0 0 auto; }

/* --- À lire aussi --- */
.ffk-b-alire-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:clamp(20px,2.2vw,26px); color:var(--ffk-ink); margin:0 0 16px; }
.ffk-b-alire-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; }
.ffk-b-alire-card{ display:block; background:#fff; border:1px solid var(--ffk-bord); border-radius:16px; overflow:hidden; text-decoration:none; transition:transform .2s, box-shadow .2s; }
.ffk-b-alire-card:hover{ transform:translateY(-3px); box-shadow:0 24px 44px -34px rgba(20,40,100,.5); }
.ffk-b-alire-thumb{ display:block; aspect-ratio:16/9; background:#DCE6F5 center/cover no-repeat; }
.ffk-b-alire-body{ display:block; padding:14px 16px; }
.ffk-b-alire-cat{ display:inline-block; font-weight:800; font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--ffk-magenta); margin-bottom:6px; }
.ffk-b-alire-t{ display:block; font-family:var(--ffk-sg); font-weight:700; font-size:15px; line-height:1.25; color:var(--ffk-ink); }

/* --- Contact / coordonnées --- */
.ffk-b-contact{ background:#fff; border:1px solid var(--ffk-bord); border-radius:22px; padding:26px; box-shadow:var(--ffk-shadow); }
.ffk-b-contact-nom{ font-family:var(--ffk-sg); font-weight:700; font-size:19px; color:var(--ffk-ink); margin:0 0 18px; }
.ffk-b-contact-rows{ display:flex; flex-direction:column; gap:15px; }
.ffk-b-contact-row{ display:flex; gap:13px; align-items:flex-start; font-weight:500; font-size:14px; line-height:1.5; color:#3F4A63; }
.ffk-b-contact-ico{ width:38px; height:38px; border-radius:11px; background:#EAEFFA; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ffk-b-contact-row a{ font-weight:700; color:var(--ffk-bleu); text-decoration:none; }
.ffk-b-contact-row a:hover{ color:var(--ffk-magenta); }

/* --- Graphique --- */
.ffk-b-chart-wrap{ background:#fff; border:1px solid var(--ffk-bord); border-radius:20px; padding:22px 24px; box-shadow:var(--ffk-shadow); margin:28px 0; }
.ffk-b-chart-titre{ font-family:var(--ffk-sg); font-weight:700; font-size:17px; color:var(--ffk-ink); margin-bottom:14px; text-align:center; }
.ffk-b-chart-box{ position:relative; height:320px; }
.ffk-b-chart-box.is-pie, .ffk-b-chart-box.is-doughnut{ max-width:420px; margin:0 auto; }

@media (max-width:781px){
	.ffk-b-signalement{ flex-direction:column; align-items:flex-start; }
	.ffk-b-signalement-actions{ width:100%; }
	.ffk-b-comparatif{ overflow-x:auto; }
	.ffk-b-comparatif table{ min-width:520px; }
}

/* Section en pleine largeur (align full) : plein écran bord à bord, fiable
   même dans une colonne contrainte. */
.ffk-b-section.alignfull{
	width:100vw; max-width:100vw;
	margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}

/* ------------------------------------------------------------------ *
 * Aide éditeur (uniquement dans l'éditeur de blocs).
 * Les sélecteurs [data-type] / .is-selected n'existent que dans
 * l'éditeur : aucun effet sur le site public ni dans les vignettes
 * de compositions (pas de survol/sélection dans les aperçus statiques).
 * ------------------------------------------------------------------ */
[data-type="acf/ffk-section"]{ position:relative; }

[data-type="acf/ffk-section"]::before{
	content:"✏️ Cliquez un bloc à l’intérieur (ou via la Vue en liste ☰), puis modifiez ses textes dans « Réglages → Bloc » à droite.";
	position:absolute; top:8px; left:50%; transform:translateX(-50%) translateY(-4px);
	z-index:30; pointer-events:none;
	max-width:min(92%, 640px);
	padding:7px 14px;
	font-family:"Plus Jakarta Sans", system-ui, sans-serif;
	font-size:12.5px; font-weight:600; line-height:1.35; text-align:center;
	color:#fff; background:#1B1F3B; border:1px solid rgba(255,255,255,.14);
	border-radius:999px; box-shadow:0 6px 20px rgba(15,23,42,.28);
	white-space:normal;
	opacity:0; transition:opacity .15s ease, transform .15s ease;
}

/* Apparait au survol ou quand la Section (ou un de ses enfants) est active. */
[data-type="acf/ffk-section"].is-hovered::before,
[data-type="acf/ffk-section"].is-selected::before,
[data-type="acf/ffk-section"].has-child-selected::before,
[data-type="acf/ffk-section"]:focus-within::before{
	opacity:1; transform:translateX(-50%) translateY(0);
}

/* =========================================================================
   Bloc « Événements à venir » (ffk/ffk-evenements)
   ========================================================================= */
.ffk-b-evs { margin: clamp(24px, 3vw, 44px) 0; }
.ffk-b-evs-head {
	display: flex; align-items: baseline; justify-content: space-between;
	gap: 14px; flex-wrap: wrap; margin-bottom: 18px;
}
.ffk-b-evs-title {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: clamp(20px, 2.4vw, 28px); color: #101A33; margin: 0;
}
.ffk-b-evs-ic {
	display: inline-flex; width: 34px; height: 34px; border-radius: 10px;
	align-items: center; justify-content: center;
	background: #F1F5FC; color: #1C3C8C; flex: 0 0 auto;
}
.ffk-b-evs-all {
	font-weight: 700; font-size: 14px; color: #1C3C8C; text-decoration: none;
	border-bottom: 1.5px solid #9DB0E0; padding-bottom: 1px; white-space: nowrap;
}
.ffk-b-evs-all:hover { border-bottom-color: #1C3C8C; }
.ffk-b-evs-empty { color: #5E6880; font-weight: 500; }
.ffk-b-evs-grid {
	display: grid; gap: 14px;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.ffk-b-ev {
	display: flex; align-items: stretch; gap: 14px; text-decoration: none;
	background: #fff; border: 1px solid #EAEFF8; border-radius: 18px;
	padding: 14px; transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.ffk-b-ev:hover {
	box-shadow: 0 20px 40px -24px rgba(20, 40, 100, .5);
	transform: translateY(-2px); border-color: #D9E2F4;
}
.ffk-b-ev:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }
.ffk-b-ev-date {
	flex: 0 0 auto; width: 62px; border-radius: 13px;
	background: var(--ev-bg, color-mix(in srgb, var(--ev, #1C3C8C) 10%, #fff));
	display: flex; flex-direction: column; align-items: center; justify-content: center;
	padding: 8px 4px;
}
.ffk-b-ev-day {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 26px; line-height: 1; color: #101A33;
}
.ffk-b-ev-mon {
	font-weight: 800; font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
	color: var(--ev-txt, var(--ev, #1C3C8C)); margin-top: 3px;
}
.ffk-b-ev-body { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.ffk-b-ev-year {
	font-weight: 700; font-size: 11px; letter-spacing: .04em; color: #5E6880; margin-bottom: 3px;
}
.ffk-b-ev-t {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 15.5px; line-height: 1.2; color: #101A33;
}
.ffk-b-ev-lieu {
	display: inline-flex; align-items: center; gap: 5px;
	font-weight: 500; font-size: 12.5px; color: #5E6880; margin-top: 5px;
}
.ffk-b-ev-lieu svg { flex: 0 0 auto; color: var(--ev-txt, var(--ev, #1C3C8C)); }
