/* FFK — surcouches non gérables en theme.json */

/* Pill de catégorie (article + cartes) */
.ffk-category-pill a,
.ffk-category-pill {
	display: inline-block;
	background: var(--wp--preset--color--accent);
	color: #fff !important;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	text-decoration: none;
	line-height: 1;
}

/* Byline article : avatar + nom alignés */
.ffk-byline .wp-block-post-author {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0;
}
.ffk-byline .wp-block-post-author__avatar img { border-radius: 999px; }

/* ============================================================
   HEADER — porté depuis FFK-Header.dc.html (fidélité maquette)
   ============================================================ */

/* --- Bandeau utilitaire (promo) --- */
.ffk-utilbar {
	background: linear-gradient(90deg, #1C3C8C, #1C3C8C 50%, #E4174B);
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 7px clamp(16px, 4vw, 40px);
	flex-wrap: wrap;
	color: #fff;
}
.ffk-alert-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	flex: 0 0 auto;
	text-decoration: none;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 800;
	font-size: 11.5px;
	letter-spacing: 0.03em;
	color: #fff;
	background: #E4174B;
	border: 1.5px solid #fff;
	padding: 5px 14px 5px 9px;
	border-radius: 100px;
	box-shadow: 0 0 0 2px rgba(228,23,75,.35), 0 6px 16px -6px rgba(228,23,75,.9);
	animation: ffkAlerteGlow 2.2s ease-in-out infinite;
	transition: transform 0.18s ease;
}
.ffk-alert-pill:hover { transform: scale(1.05); }
.ffk-alert-ring {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}
.ffk-alert-ring::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 1.5px solid rgba(255,255,255,.75);
	animation: kiPulse 1.8s ease-in-out infinite;
}
.ffk-util-center {
	flex: 1 1 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	min-width: 0;
}
.ffk-util-promo {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-weight: 800;
	font-size: 11.5px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #fff;
}
.ffk-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #fff;
	animation: kiPulse 2s ease-in-out infinite;
}
.ffk-billetterie {
	font-weight: 700;
	font-size: 11.5px;
	color: #fff;
	text-decoration: none;
	background: rgba(255,255,255,.2);
	padding: 4px 12px;
	border-radius: 100px;
}
.ffk-billetterie:hover { background: rgba(255,255,255,.32); }
.ffk-socials { display: flex; align-items: center; gap: 15px; flex: 0 0 auto; }
.ffk-socials a { display: inline-flex; color: #fff; opacity: 0.85; text-decoration: none; transition: opacity 0.2s ease; }
.ffk-socials a:hover { opacity: 1; }

/* --- Barre principale : frosted glass, sticky --- */
.ffk-headerbar {
	position: sticky;
	top: 0;
	z-index: 90;
	background: rgba(238,242,250,.86);
	-webkit-backdrop-filter: blur(18px) saturate(1.4);
	backdrop-filter: blur(18px) saturate(1.4);
	border-bottom: 1px solid rgba(37,99,214,.12);
}
.wp-admin .ffk-headerbar { top: 32px; }
.ffk-headerbar-inner {
	padding: 12px clamp(20px, 4vw, 60px);
	flex-wrap: nowrap;
	gap: clamp(16px, 2.5vw, 40px);
}
.ffk-logo { display: flex; align-items: center; text-decoration: none; flex: 0 0 auto; }
.ffk-logo img { height: 58px; width: auto; display: block; }

/* Nav principale */
.ffk-nav { flex: 1 1 auto; }
.ffk-nav .wp-block-navigation-item__content { color: #16264F; padding-block: 0.35rem; text-transform: uppercase; font-weight: 700; letter-spacing: .03em; }
.ffk-nav .wp-block-navigation-item__content:hover { color: #1C3C8C; }
.ffk-nav .wp-block-navigation__submenu-container {
	background: rgba(255,255,255,.98);
	border: 1px solid rgba(37,99,214,.12);
	border-radius: 14px;
	box-shadow: 0 20px 44px -22px rgba(16,26,51,.5);
	padding: 0.5rem;
	min-width: 250px;
	margin-top: 0.6rem;
}
.ffk-nav .wp-block-navigation__submenu-container .wp-block-navigation-item a { border-radius: 9px; font-weight: 500; font-size: 0.95rem; }
.ffk-nav .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover { background: #F4F7FD; color: #1C3C8C; }

/* Actions à droite */
.ffk-actions { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
.ffk-search-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #fff;
	border: 1.5px solid rgba(37,99,214,.18);
	text-decoration: none;
	flex: 0 0 auto;
	animation: ffkSearchPulse 2.6s ease-out infinite;
	transition: border-color 0.2s ease, background 0.2s ease, transform 0.2s ease;
}
.ffk-search-btn:hover { border-color: #1C3C8C; background: #F4F7FD; transform: scale(1.08); }
.ffk-cta-club {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 800;
	font-size: 13.5px;
	color: #fff;
	background: linear-gradient(135deg, #1C3C8C, #E4174B);
	border-radius: 100px;
	padding: 11px 18px;
	text-decoration: none;
	box-shadow: 0 12px 26px -12px rgba(37,99,214,.8);
	transition: transform 0.2s;
	flex: 0 0 auto;
	white-space: nowrap;
}
.ffk-cta-club:hover { transform: translateY(-2px); }
.ffk-actions .ffk-icon { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; color: #1C3C8C; text-decoration: none; transition: color 0.15s; }
.ffk-actions .ffk-icon:hover { color: #E4174B; }
.ffk-actions-sep { width: 1px; height: 26px; background: rgba(37,99,214,.16); margin: 0 2px; flex: 0 0 auto; }
.ffk-account-btn { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: #fff; border: 1.5px solid #E2E8F3; text-decoration: none; flex: 0 0 auto; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.ffk-account-btn:hover { border-color: #1C3C8C; background: #F4F7FD; transform: translateY(-1px); }
.ffk-shop-btn { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: #FCE7EC; border: 1.5px solid rgba(228,23,75,.22); text-decoration: none; flex: 0 0 auto; transition: background .18s ease, border-color .18s ease, transform .18s ease; }
.ffk-shop-btn:hover { background: #F8D3DD; border-color: rgba(228,23,75,.42); transform: translateY(-1px); }
.ffk-yt-btn { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 50%; background: #fff; border: 1.5px solid #E2E8F3; text-decoration: none; flex: 0 0 auto; transition: border-color .18s ease, transform .18s ease; }
.ffk-yt-btn:hover { border-color: #FF0000; transform: translateY(-1px); }
.ffk-yt-badge { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 16px; border-radius: 5px; background: #FF0000; flex: 0 0 auto; }

/* Animations « Que cherchez-vous ? » */
.ffk-portes > a { will-change: transform; }
.ffk-portes > a:hover { transform: translateY(-6px); box-shadow: 0 30px 55px -28px rgba(20,40,90,.7); }

/* Keyframes header */
@keyframes kiPulse { 0%,100% { opacity: .5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
@keyframes ffkAlerteGlow { 0%,100% { box-shadow: 0 0 0 2px rgba(228,23,75,.35), 0 6px 16px -6px rgba(228,23,75,.9); } 50% { box-shadow: 0 0 0 4px rgba(228,23,75,.5), 0 8px 22px -6px rgba(228,23,75,1); } }
@keyframes ffkSearchPulse { 0% { box-shadow: 0 0 0 0 rgba(28,60,140,.4); } 70% { box-shadow: 0 0 0 8px rgba(28,60,140,0); } 100% { box-shadow: 0 0 0 0 rgba(28,60,140,0); } }

/* Responsive header */
@media (max-width: 640px) {
	.ffk-socials, .ffk-alerte-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
	.ffk-alert-pill, .ffk-dot, .ffk-alert-ring::before, .ffk-search-btn { animation: none; }
}

/* ============================================================
   FOOTER — porté depuis FFK-Footer.dc.html
   ============================================================ */

/* Newsletter : appel à l'action en bas de page */
.ffk-nl-cta { background: #F4F7FD; padding: clamp(36px,4.5vw,64px) clamp(16px,4vw,60px); scroll-margin-top: 90px; }
.ffk-nl-cta-card { position: relative; overflow: hidden; max-width: 1500px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: clamp(24px,4vw,64px); align-items: center; padding: clamp(30px,4vw,56px) clamp(24px,4.5vw,72px); border-radius: 28px; color: #fff; background: radial-gradient(120% 140% at 100% 0%, rgba(228,23,75,.55) 0%, rgba(228,23,75,0) 55%), linear-gradient(135deg,#101A33 0%,#15234F 45%,#1C3C8C 100%); box-shadow: 0 24px 60px -28px rgba(16,26,51,.55); }
.ffk-nl-cta-card::after { content: ""; position: absolute; right: -60px; bottom: -80px; width: 280px; height: 280px; background: url('../img/ffk-logo-mark-white.png') center/contain no-repeat; opacity: .07; pointer-events: none; }
.ffk-nl-cta-txt, .ffk-nl-cta-action { position: relative; z-index: 1; }
.ffk-nl-cta-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); border-radius: 100px; padding: 7px 14px; margin-bottom: 16px; font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.ffk-nl-cta h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,2.8vw,42px); line-height: 1.1; letter-spacing: -.02em; color: #fff; margin: 0 0 12px; }
.ffk-nl-cta-txt p { font-weight: 500; font-size: clamp(14.5px,1.1vw,16.5px); line-height: 1.6; color: rgba(255,255,255,.78); margin: 0; max-width: 560px; }
.ffk-nl-cta .ffk-nl-cta-form { background: #fff; border: none; border-radius: 16px; padding: 7px; gap: 8px; box-shadow: 0 10px 30px -12px rgba(0,0,0,.45); }
.ffk-nl-cta .ffk-nl-cta-form input { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; color: #101A33; font-size: 16px; padding: 14px 16px; }
.ffk-nl-cta .ffk-nl-cta-form input::placeholder { color: #7A849C; }
.ffk-nl-cta .ffk-nl-cta-form button { background: linear-gradient(135deg,#E4174B,#B80F3A); border-radius: 11px; padding: 14px 24px; font-size: 15px; transition: transform .15s, box-shadow .15s; }
.ffk-nl-cta .ffk-nl-cta-form button:hover { transform: translateY(-1px); box-shadow: 0 8px 20px -8px rgba(228,23,75,.7); }
.ffk-nl-cta .ffk-nl-cta-form button:disabled { opacity: .7; cursor: wait; transform: none; }
.ffk-nl-cta .ffk-nl-cta-form:focus-within { outline: 3px solid #6E9BF0; outline-offset: 3px; }
.ffk-nl-cta .ffk-newsletter-msg { font-size: 14px; }
.ffk-nl-cta-note { margin: 10px 2px 0; font-size: 12.5px; line-height: 1.5; color: rgba(255,255,255,.62); }
.ffk-nl-cta-note a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 900px) { .ffk-nl-cta-card { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .ffk-nl-cta .ffk-nl-cta-form { flex-direction: column; background: transparent; box-shadow: none; padding: 0; } .ffk-nl-cta .ffk-nl-cta-form input { background: #fff; border-radius: 12px; } .ffk-nl-cta .ffk-nl-cta-form button { width: 100%; } }

/* Partenaires & affiliations */
.ffk-partners { background: #fff; border-top: 1px solid #E6ECF7; padding: clamp(36px,4vw,56px) clamp(20px,4vw,60px); }
.ffk-partners-inner { max-width: 1500px; margin: 0 auto; }
.ffk-partners-head { text-align: center; margin-bottom: 32px; }
.ffk-partners-badge { display: inline-flex; align-items: center; gap: 9px; background: #F4F7FD; border-radius: 100px; padding: 7px 15px; margin-bottom: 14px; font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #15234F; }
.ffk-partners-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-partners-head h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,2.4vw,36px); letter-spacing: -.02em; color: #101A33; margin: 0; }
.ffk-partners-grid { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: center; gap: clamp(28px,4vw,60px); }
.ffk-partners-group { display: flex; flex-direction: column; align-items: center; gap: 16px; }
.ffk-partners-label { font-weight: 800; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: #5E6880; }
.ffk-partners-logos { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; justify-content: center; }
.ffk-partners-logos img { width: auto; object-fit: contain; }
.ffk-partners-logos a { display: inline-flex; border-radius: 8px; transition: opacity .2s, transform .2s; }
.ffk-partners-logos a:hover { opacity: .8; transform: translateY(-2px); }
.ffk-partners-logos a:focus-visible { outline: 2px solid #1C3C8C; outline-offset: 4px; }
.ffk-partners-sep { align-self: stretch; width: 1px; background: #E6ECF7; }

/* Footer sombre */
.ffk-footer { position: relative; overflow: hidden; background: linear-gradient(180deg,#0C1430,#08102A); padding: clamp(44px,5vw,68px) clamp(20px,4vw,60px) 34px; color: #fff; }
.ffk-footer-watermark { position: absolute; right: -26px; bottom: -38px; width: 330px; height: auto; opacity: .08; pointer-events: none; z-index: 0; }
.ffk-footer-inner { position: relative; z-index: 1; max-width: 1500px; margin: 0 auto; }
.ffk-footer-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr 1.3fr; gap: 34px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.12); }
.ffk-footer-brand p { font-weight: 500; font-size: 13px; line-height: 1.7; color: rgba(255,255,255,.5); max-width: 280px; margin: 18px 0 0; }
.ffk-footer-h { font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #6E9BF0; margin-bottom: 15px; }
.ffk-footer-brand .ffk-footer-h { margin: 22px 0 12px; }
.ffk-foot-social { display: flex; gap: 9px; flex-wrap: wrap; }
.ffk-foot-social a { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); text-decoration: none; transition: background .2s; }
.ffk-foot-social a:hover { background: rgba(255,255,255,.18); }
.ffk-foot-links { display: flex; flex-direction: column; gap: 10px; font-weight: 600; font-size: 13.5px; }
.ffk-foot-links a { color: rgba(255,255,255,.7); text-decoration: none; }
.ffk-foot-links a:hover { color: #fff; }
.ffk-newsletter p { font-weight: 500; font-size: 12.5px; line-height: 1.5; color: rgba(255,255,255,.55); margin-bottom: 13px; }
.ffk-newsletter-form { display: flex; gap: 7px; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 12px; padding: 6px; }
.ffk-newsletter-form input { flex: 1; background: transparent; border: none; outline: none; font-weight: 500; font-size: 13px; color: #fff; padding: 8px 9px; min-width: 40px; }
.ffk-newsletter-form input::placeholder { color: rgba(255,255,255,.5); }
.ffk-newsletter-form button { background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; color: #fff; border-radius: 8px; padding: 9px 15px; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 12.5px; cursor: pointer; white-space: nowrap; }
.ffk-footer-legal { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 20px; }
.ffk-footer-legal-links { display: flex; gap: 18px; flex-wrap: wrap; font-weight: 600; font-size: 12px; }
.ffk-footer-legal-links a { color: rgba(255,255,255,.66); text-decoration: none; }
.ffk-footer-legal-links a:hover { color: #fff; }
.ffk-footer-copy { font-weight: 500; font-size: 12px; color: rgba(255,255,255,.6); }
@media (max-width: 900px) { .ffk-footer-grid { grid-template-columns: 1fr 1fr; } .ffk-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 560px) { .ffk-footer-grid { grid-template-columns: 1fr; } .ffk-partners-sep { display: none; } }

/* ============================================================
   HERO Vision 2 (retenu) — porté depuis Hero - Vision 2 (retenue).dc.html
   ============================================================ */
.ffk-hero2 { padding: 40px; background: #EEF1F7; }
.ffk-hero2-card { position: relative; overflow: hidden; border-radius: 38px; background: radial-gradient(at 18% 18%,rgba(28,60,140,.95),transparent 48%), radial-gradient(at 85% 8%,rgba(228,23,75,.85),transparent 44%), radial-gradient(at 72% 90%,rgba(28,60,140,.95),transparent 52%), radial-gradient(at 5% 95%,rgba(37,99,214,.85),transparent 48%), linear-gradient(135deg,#0E1A40,#14275C); box-shadow: 0 48px 100px -44px rgba(20,40,100,.75); }
.ffk-hero2-photo { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .32; mix-blend-mode: luminosity; }
.ffk-hero2-glow { display: none; }
.ffk-hero2-dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.16) 1px,transparent 1px); background-size: 26px 26px; opacity: .5; }
.ffk-hero2-watermark { position: absolute; left: -30px; bottom: -44px; width: 300px; height: auto; opacity: .08; transform: rotate(10deg); pointer-events: none; }
.ffk-hero2-grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1.12fr .88fr; gap: 52px; align-items: center; padding: 58px; }
.ffk-hero2-badge { display: inline-flex; align-items: center; gap: 9px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22); border-radius: 100px; padding: 7px 15px; margin-bottom: 22px; font-weight: 800; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
.ffk-hero2-badge-dot { width: 7px; height: 7px; border-radius: 50%; background: #5EE0C0; }
.ffk-hero2-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(38px,4.4vw,54px); line-height: .98; letter-spacing: -.03em; color: #fff; margin: 0 0 18px; text-wrap: balance; }
.ffk-hero2-grad { background: linear-gradient(90deg,#FFD15C,#5EE0C0); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; }
.ffk-hero2-sub { font-weight: 500; font-size: 16.5px; line-height: 1.6; color: rgba(255,255,255,.82); max-width: 460px; margin: 0 0 26px; }
.ffk-hero2-search { background: #fff; border-radius: 100px; padding: 8px; display: flex; align-items: center; gap: 7px; max-width: 440px; box-shadow: 0 26px 60px -22px rgba(12,28,80,.6); }
.ffk-hero2-search-field { display: flex; align-items: center; gap: 9px; flex: 1; padding: 0 6px 0 18px; }
.ffk-hero2-search input { flex: 1; border: none; outline: none; background: transparent; font-weight: 600; font-size: 15px; color: #101A33; padding: 13px 0; min-width: 60px; }
.ffk-hero2-search button { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; color: #fff; border-radius: 100px; padding: 14px 24px; cursor: pointer; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 14.5px; }
.ffk-hero2-events-head { display: flex; align-items: center; justify-content: space-between; margin: 24px 0 12px; max-width: 540px; }
.ffk-hero2-events-label { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.9); }
.ffk-hero2-cal { font-weight: 700; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.7); text-decoration: none; }
.ffk-hero2-events { display: flex; gap: 11px; max-width: 540px; }
.ffk-hero2-event { flex: 1; display: flex; flex-direction: column; gap: 9px; text-decoration: none; padding: 13px; }
.ffk-hero2-date { display: flex; align-items: baseline; gap: 6px; }
.ffk-hero2-day { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 21px; line-height: 1; color: #fff; }
.ffk-hero2-mon { font-weight: 800; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.ffk-hero2-ev-title { font-weight: 600; font-size: 12px; line-height: 1.25; color: rgba(255,255,255,.9); }
.ffk-h2-tile { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.2); border-radius: 15px; transition: background .18s ease; }
.ffk-h2-tile:hover { background: rgba(255,255,255,.16); }
.ffk-hero2-right { display: flex; flex-direction: column; gap: 13px; }
.ffk-hero2-right-head { display: flex; align-items: center; justify-content: space-between; }
.ffk-hero2-aune { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #fff; }
.ffk-hero2-aune-dot { width: 7px; height: 7px; border-radius: 50%; background: #FFD15C; }
.ffk-hero2-allnews { font-weight: 700; font-size: 11.5px; letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.72); text-decoration: none; }
.ffk-hero2-feature { position: relative; display: block; text-decoration: none; border-radius: 22px; overflow: hidden; min-height: 300px; background-size: cover; background-position: center; box-shadow: 0 30px 60px -30px rgba(0,0,0,.55); }
.ffk-hero2-feature-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(10,16,44,.05) 38%,rgba(10,16,44,.92) 100%); }
.ffk-hero2-feature-tag { position: absolute; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 7px; font-weight: 800; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: #E4174B; padding: 6px 12px; border-radius: 100px; }
.ffk-hero2-feature-body { position: absolute; left: 22px; right: 22px; bottom: 20px; }
.ffk-hero2-feature-kicker { display: block; font-weight: 800; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; color: #FFD15C; margin-bottom: 7px; }
.ffk-hero2-feature-title { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 25px; line-height: 1.08; color: #fff; }
.ffk-hero2-mini { display: flex; gap: 11px; }
.ffk-hero2-mini-card { flex: 1; min-width: 0; display: flex; align-items: center; gap: 11px; text-decoration: none; padding: 9px 11px; border-radius: 16px; }
.ffk-hero2-mini-img { width: 46px; height: 46px; border-radius: 11px; background-size: cover; background-position: center; flex: 0 0 auto; }
.ffk-hero2-mini-txt { min-width: 0; }
.ffk-hero2-mini-kicker { display: block; font-weight: 800; font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; }
.ffk-hero2-mini-title { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 13.5px; line-height: 1.18; color: #fff; margin-top: 3px; }
@media (max-width: 900px) {
	.ffk-hero2 { padding: 16px; }
	.ffk-hero2-grid { grid-template-columns: 1fr; gap: 32px; padding: 32px; }
	.ffk-hero2-events { flex-wrap: wrap; }
}

/* Keyframes de la maquette (hub, cartes) */
@keyframes ffkShine { 0% { transform: translateX(-170%) skewX(-18deg); } 55%, 100% { transform: translateX(360%) skewX(-18deg); } }
@keyframes ffkArrow { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(6px); } }

/* Survols du hub disciplines (markup statique inline) */
#contenu a [data-disc-img] { transition: filter .45s ease, transform .6s ease; }
#contenu a:hover [data-disc-img] { filter: grayscale(0) !important; transform: scale(1.04); }
#contenu a:hover [data-disc-veil] { opacity: .4 !important; }
#contenu a:has([data-disc-img]):hover { transform: translateY(-3px); }
/* Carte « Toutes les disciplines » (fond #13225A) : survol soulèvement */
#contenu a[style*="#13225A"]:hover { transform: translateY(-5px); box-shadow: 0 24px 46px -22px rgba(20,40,90,.85); }

/* ===== Section « L'actualité » (bloc dynamique ffk/actualites) ===== */
.ffk-actus { padding: clamp(40px,4vw,64px) clamp(20px,4vw,60px); }
.ffk-actus-inner { max-width: 1500px; margin: 0 auto; }
.ffk-actus-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.ffk-actus-head h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(28px,3vw,44px); letter-spacing: -.02em; color: #101A33; margin: 0; }
.ffk-actus-all { font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: #1C3C8C; text-decoration: none; }
.ffk-actus-all:hover { color: #E4174B; }
.ffk-actus-filterwrap { margin-bottom: 22px; }
.ffk-actus-filters-note { margin: 0 0 8px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #666E7C; }
.ffk-actus-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ffk-actus-filter { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 13px; color: #1C3C8C; background: #EEF2FA; border: 1px solid transparent; border-radius: 100px; padding: 8px 16px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.ffk-actus-filter:hover { background: #E2E8F3; }
.ffk-actus-filter.is-active { background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; }
.ffk-actus-more { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; background: transparent; border: 1px dashed #C3CEE4; border-radius: 100px; padding: 8px 16px; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.ffk-actus-more:hover { background: #EEF2FA; border-color: #1C3C8C; }
.ffk-actus-more.is-open { background: #1C3C8C; color: #fff; border-color: #1C3C8C; }
.ffk-actus-filters-extra { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-top: 12px; border-top: 1px solid #E2E8F3; }
.ffk-actus-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.ffk-actus-card { display: flex; flex-direction: column; text-decoration: none; background: #fff; border: 1px solid #E6ECF7; border-radius: 18px; overflow: hidden; transition: transform .2s ease, box-shadow .2s ease; }
.ffk-actus-card:hover { transform: translateY(-4px); box-shadow: 0 24px 50px -28px rgba(16,26,51,.5); }
.ffk-actus-card-img { display: block; aspect-ratio: 16/10; background-size: cover; background-position: center; }
/* Balise <img> depuis l'audit perf (25/09/2026) : même cadrage que l'ancien fond. */
img.ffk-actus-card-img { width: 100%; height: auto; object-fit: cover; background: #D7DEEC; }
.ffk-actus-card-body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 20px; }
.ffk-actus-card-cat { align-self: flex-start; background: #E4174B; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; padding: 5px 11px; border-radius: 100px; }
.ffk-actus-card-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; line-height: 1.2; color: #101A33; }
.ffk-actus-card-date { font-size: 12.5px; color: #5E6880; }
@media (max-width: 900px) { .ffk-actus-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .ffk-actus-grid { grid-template-columns: 1fr; } }

/* ===== Hub Disciplines (bloc ffk/disciplines) ===== */
.ffk-disc { padding: clamp(44px,5vw,80px) clamp(20px,4vw,60px); }
.ffk-disc-inner { max-width: 1500px; margin: 0 auto; }
.ffk-disc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 30px; flex-wrap: wrap; }
.ffk-disc-badge { display: inline-flex; align-items: center; gap: 9px; background: #fff; border-radius: 100px; padding: 7px 15px; margin-bottom: 16px; 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-disc-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-disc-head h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(34px,4vw,58px); line-height: .98; letter-spacing: -.025em; color: #101A33; margin: 0; }
.ffk-disc-head p { font-weight: 500; font-size: 16px; line-height: 1.6; color: #5E6880; max-width: 340px; margin: 0; }
.ffk-disc-grid { display: grid; grid-template-columns: repeat(4,1fr); grid-auto-rows: 228px; gap: 16px; }
.ffk-disc-card { position: relative; display: block; text-decoration: none; border-radius: 22px; overflow: hidden; border-top: 4px solid var(--disc,#1C3C8C); }
.ffk-disc-card--feature { grid-column: span 2; grid-row: span 2; border-top: none; }
.ffk-disc-card-img { position: absolute; inset: 0; background-size: cover; background-position: center; filter: grayscale(1); transition: filter .45s ease, transform .6s ease; }
.ffk-disc-card:hover .ffk-disc-card-img { filter: grayscale(0); transform: scale(1.04); }
.ffk-disc-card-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(10,16,40,0) 40%,rgba(10,16,40,.6) 100%); }
.ffk-disc-card--feature .ffk-disc-card-shade { background: linear-gradient(180deg,rgba(10,16,40,.15) 30%,rgba(10,16,40,.85) 100%); }
.ffk-disc-card-label { position: absolute; left: 13px; right: 13px; bottom: 13px; background: var(--disc,#1C3C8C); border-radius: 13px; padding: 10px 14px; }
.ffk-disc-card--feature .ffk-disc-card-label { left: 24px; right: 24px; bottom: 24px; padding: 16px 20px; }
.ffk-disc-card-title { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 21px; color: #fff; }
.ffk-disc-card--feature .ffk-disc-card-title { font-size: clamp(30px,3vw,44px); line-height: .95; }
.ffk-disc-card-tag { display: block; font-weight: 500; font-size: 11.5px; line-height: 1.3; color: rgba(255,255,255,.85); margin-top: 3px; }
.ffk-disc-card--feature .ffk-disc-card-tag { font-size: 14px; margin-top: 8px; max-width: 420px; }
@media (max-width: 900px) { .ffk-disc-grid { grid-template-columns: repeat(2,1fr); grid-auto-rows: 200px; } .ffk-disc-card--feature { grid-column: span 2; grid-row: span 2; } }
@media (max-width: 560px) { .ffk-disc-grid { grid-template-columns: 1fr; } .ffk-disc-card--feature { grid-column: span 1; grid-row: span 1; } }

/* ===== Vitrine compétition (bloc ffk/vitrine) ===== */
.ffk-vit { padding: clamp(20px,2.4vw,36px) clamp(20px,4vw,60px) clamp(44px,5vw,72px); }
.ffk-vit-card { position: relative; overflow: hidden; max-width: 1500px; margin: 0 auto; border-radius: 34px; background: radial-gradient(at 12% 16%,rgba(37,99,214,.7),transparent 46%), radial-gradient(at 90% 90%,rgba(228,23,75,.6),transparent 48%), linear-gradient(135deg,#0C1430,#08102A); padding: clamp(34px,4vw,58px); box-shadow: 0 44px 90px -44px rgba(12,28,80,.8); }
.ffk-vit-dots-bg { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.1) 1px,transparent 1px); background-size: 28px 28px; opacity: .4; }
.ffk-vit-body { position: relative; z-index: 2; }
.ffk-vit-head { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; flex-wrap: wrap; }
.ffk-vit-coq { height: 54px; width: auto; display: block; flex: 0 0 auto; }
.ffk-vit-head h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(28px,3vw,46px); line-height: 1; letter-spacing: -.02em; color: #fff; margin: 0; }
.ffk-vit-head h2 span { color: rgba(255,255,255,.5); }
.ffk-vit-live { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: #E4174B; padding: 7px 13px; border-radius: 100px; }
a.ffk-vit-live { text-decoration: none; transition: background .15s ease, transform .15s ease; }
a.ffk-vit-live:hover { background: #C8102E; transform: translateY(-1px); }
a.ffk-vit-live:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.ffk-vit-all { display: inline-block; margin-top: 14px; font-weight: 700; font-size: 13px; color: #fff; opacity: .85; text-decoration: none; }
.ffk-vit-all:hover { opacity: 1; text-decoration: underline; }
.ffk-vit-vide { color: rgba(255,255,255,.75); font-size: 14px; margin: 14px 0 0; }
.ffk-vit-live-dot { width: 7px; height: 7px; border-radius: 50%; background: #fff; animation: kiPulse 1.8s ease-in-out infinite; }
.ffk-vit-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; }
.ffk-vit-video { position: relative; display: block; text-decoration: none; border-radius: 22px; overflow: hidden; min-height: clamp(310px,30vw,400px); background-size: cover; background-position: center; }
.ffk-vit-video-shade { position: absolute; inset: 0; background: linear-gradient(180deg,rgba(15,10,40,.1) 35%,rgba(15,10,40,.92)); }
.ffk-vit-video-tag { position: absolute; top: 16px; left: 16px; background: linear-gradient(135deg,#E4174B,#1C3C8C); color: #fff; font-weight: 800; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; padding: 6px 12px; border-radius: 100px; }
.ffk-vit-play { position: absolute; left: 50%; top: 46%; transform: translate(-50%,-50%); width: 64px; height: 64px; border-radius: 50%; background: rgba(255,255,255,.18); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); border: 1.5px solid rgba(255,255,255,.4); display: flex; align-items: center; justify-content: center; }
.ffk-vit-video-body { position: absolute; left: 22px; right: 22px; bottom: 22px; }
.ffk-vit-video-title { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(22px,2.2vw,32px); line-height: 1.03; color: #fff; margin-bottom: 6px; }
.ffk-vit-video-meta { display: block; font-weight: 600; font-size: 12.5px; color: rgba(255,255,255,.6); }
.ffk-vit-panel { position: relative; overflow: hidden; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 22px; padding: 22px 22px 8px; }
.ffk-vit-tabs { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-bottom: 15px; }
.ffk-vit-tab { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 12px; padding: 7px 14px; border-radius: 100px; cursor: pointer; background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.25); transition: background .18s ease; }
.ffk-vit-tab.is-active { background: #fff; color: #0C1430; border-color: #fff; }
.ffk-vit-panel-title { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 19px; color: #fff; margin-bottom: 6px; line-height: 1.25; }
.ffk-vit-panel-sub { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: 12.5px; color: rgba(255,255,255,.62); margin-top: 3px; letter-spacing: 0; }
.ffk-vit-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; padding: 13px 0; border-top: 1px solid rgba(255,255,255,.1); }
.ffk-vit-dot { width: 9px; height: 9px; border-radius: 50%; }
.ffk-vit-epreuve { display: block; font-weight: 700; font-size: 13.5px; color: #fff; }
.ffk-vit-comp { display: block; font-weight: 500; font-size: 12px; color: rgba(255,255,255,.55); margin-top: 2px; }
.ffk-vit-medal { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .08em; color: rgba(255,255,255,.85); }
@media (max-width: 840px) { .ffk-vit-grid { grid-template-columns: 1fr; } }

/* ===== Gabarit Article (bloc ffk/article) ===== */
.ffk-art-head { padding: clamp(24px,3vw,44px) clamp(20px,4vw,60px) 0; }
.ffk-art-head-inner { max-width: 900px; margin: 0 auto; }
.ffk-art-crumb { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 20px; font-weight: 600; font-size: 12.5px; color: #5E6880; }
.ffk-art-crumb a { color: #5E6880; text-decoration: none; }
.ffk-art-crumb a:hover { color: #1C3C8C; }
.ffk-art-crumb-cur { color: #101A33; font-weight: 700; }
.ffk-art-cat { display: inline-flex; align-items: center; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: #E4174B; padding: 6px 13px; border-radius: 100px; }
.ffk-art-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(30px,4vw,52px); line-height: 1.04; letter-spacing: -.025em; color: #101A33; margin: 18px 0 20px; text-wrap: balance; }
.ffk-art-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 22px; border-bottom: 1px solid #E2E8F3; }
.ffk-art-author { display: flex; align-items: center; gap: 13px; }
.ffk-art-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; color: #fff; }
.ffk-art-author-name { display: block; font-weight: 700; font-size: 14px; color: #101A33; }
.ffk-art-author-date { display: block; font-weight: 500; font-size: 12.5px; color: #5E6880; }
.ffk-art-share { display: flex; align-items: center; gap: 8px; }
.ffk-art-share-label { font-weight: 700; font-size: 12px; color: #5E6880; margin-right: 2px; }
.ffk-art-share a, .ffk-art-copy, .ffk-art-nshare { width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 1px solid #E2E8F3; display: flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; transition: border-color .2s ease; }
.ffk-art-share a:hover, .ffk-art-copy:hover, .ffk-art-nshare:hover { border-color: #1C3C8C; }
.ffk-art-copy.is-copied { border-color: #15803D; }
.ffk-art-copy.is-copied svg { stroke: #15803D; }
.ffk-art-copy.is-copied { border-color: #2E9E5B; background: #E7F4ED; }
.ffk-art-image-wrap { padding: clamp(20px,2.4vw,32px) clamp(20px,4vw,60px) 0; }
.ffk-art-image { max-width: 1120px; margin: 0 auto; }
.ffk-art-image img { width: 100%; height: auto; border-radius: 20px; display: block; }
.ffk-art-image figcaption { margin-top: 10px; font-weight: 500; font-size: 13px; color: #5E6880; }
.ffk-art-body-wrap { padding: clamp(24px,3vw,44px) clamp(20px,4vw,60px) clamp(30px,4vw,56px); }
.ffk-art-body { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: 1fr 300px; gap: clamp(28px,4vw,60px); align-items: start; }
/* Article sans titres H2/H3 : pas de sommaire → colonne unique centrée, plus large */
.ffk-art-body.no-toc { grid-template-columns: minmax(0, 880px); justify-content: center; }
.ffk-art-body.no-toc .ffk-art-toc-col { display: none; }
.ffk-art-toc-col { position: sticky; top: 96px; }
.ffk-art-toc { background: #fff; border: 1px solid #E2E8F3; border-radius: 18px; padding: 20px; }
.ffk-art-toc-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #5E6B85; margin-bottom: 12px; }
.ffk-art-toc-nav { display: flex; flex-direction: column; gap: 9px; }
.ffk-art-toc-nav a { font-weight: 600; font-size: 14px; color: #54607A; text-decoration: none; border-left: 2px solid #E2E8F3; padding-left: 12px; transition: color .15s ease, border-color .15s ease; }
.ffk-art-toc-nav a:hover { color: #1C3C8C; border-color: #1C3C8C; }
.ffk-art-toc-nav .ffk-toc-h3 { padding-left: 24px; font-size: 13px; }
.ffk-prose { font-size: 17px; line-height: 1.75; color: #39424F; }
.ffk-prose > p:first-child { font-size: 19px; line-height: 1.7; color: #101A33; font-weight: 600; }
.ffk-prose p { margin: 0 0 1.1em; }
.ffk-prose h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 26px; color: #101A33; margin: 1.8em 0 .6em; letter-spacing: -.01em; scroll-margin-top: 96px; }
.ffk-prose h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 20px; color: #101A33; margin: 1.5em 0 .5em; scroll-margin-top: 96px; }
.ffk-prose a { color: #1C3C8C; text-decoration: underline; text-underline-offset: 2px; }
.ffk-prose ul, .ffk-prose ol { margin: 0 0 1.1em; padding-left: 1.4em; }
.ffk-prose li { margin-bottom: .4em; }
.ffk-prose blockquote { margin: 30px 0; padding: 24px 28px; background: #fff; border-left: 5px solid #E4174B; border-radius: 0 18px 18px 0; box-shadow: 0 20px 44px -38px rgba(20,40,100,.5); }
.ffk-prose blockquote p { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 21px; line-height: 1.4; color: #101A33; margin: 0; }
.ffk-prose blockquote cite { display: block; margin-top: 14px; font-style: normal; font-weight: 700; font-size: 13.5px; color: #5E6880; }
.ffk-prose img { max-width: 100%; height: auto; border-radius: 14px; }
.ffk-art-related { padding: 0 clamp(20px,4vw,60px) clamp(40px,5vw,72px); }
.ffk-art-related-inner { max-width: 1120px; margin: 0 auto; }
.ffk-art-related h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,2.6vw,34px); color: #101A33; margin: 0 0 22px; }
@media (max-width: 900px) {
	.ffk-art-body { grid-template-columns: 1fr; }
	.ffk-art-toc-col { position: static; order: -1; }
}

/* ===== Bandeau Personnaliser / cookies ===== */
.ffk-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; display: flex; justify-content: center; padding: 0 16px 18px; pointer-events: none; }
.ffk-cookie-inner { pointer-events: auto; width: 100%; max-width: 1040px; background: #fff; border-radius: 20px; box-shadow: 0 30px 70px -22px rgba(12,28,80,.55); padding: 20px 22px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; border: 1px solid rgba(37,99,214,.16); }
.ffk-cookie-txt { flex: 1; min-width: 280px; }
.ffk-cookie-head { display: flex; align-items: center; gap: 9px; margin-bottom: 6px; }
.ffk-cookie-ico { width: 30px; height: 30px; border-radius: 9px; background: linear-gradient(135deg,#1C3C8C,#E4174B); display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ffk-cookie-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 17px; color: #101A33; }
.ffk-cookie-txt p { font-weight: 500; font-size: 13.5px; line-height: 1.55; color: #54607A; margin: 0; }
.ffk-cookie-txt p a { color: #1C3C8C; font-weight: 700; text-decoration: underline; }
.ffk-cookie-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ffk-cookie-decline { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 14px; color: #54607A; background: #EEF2FA; border: 1.5px solid #DCE4F5; border-radius: 100px; padding: 13px 22px; cursor: pointer; white-space: nowrap; }
.ffk-cookie-accept { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 14px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; border-radius: 100px; padding: 14px 26px; cursor: pointer; white-space: nowrap; box-shadow: 0 12px 26px -12px rgba(37,99,214,.8); }

/* ===== Menu d'accessibilité ===== */
.ffk-a11y-btn { position: fixed; right: 22px; bottom: 118px; z-index: 140; width: 60px; height: 60px; border-radius: 50%; border: 3px solid #1C3C8C; background: #E4174B; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 14px 30px -10px rgba(12,28,80,.6); transition: transform .2s ease; }
.ffk-a11y-btn:hover { transform: translateY(-2px); }
.ffk-a11y-overlay[hidden] { display: none; }
.ffk-a11y-overlay { position: fixed; inset: 0; z-index: 310; display: flex; justify-content: flex-end; }
.ffk-a11y-backdrop { position: absolute; inset: 0; background: rgba(12,20,48,.5); }
.ffk-a11y-panel { position: relative; z-index: 2; width: min(460px,100%); height: 100%; background: #EEF2FA; box-shadow: -20px 0 60px -20px rgba(12,28,80,.5); overflow-y: auto; display: flex; flex-direction: column; }
.ffk-a11y-header { background: #E4174B; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; position: sticky; top: 0; }
.ffk-a11y-header span { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: #fff; }
.ffk-a11y-close { width: 38px; height: 38px; border-radius: 50%; border: 2px solid #fff; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ffk-a11y-header small { font-weight: 500; font-size: 13px; opacity: .85; }
.ffk-a11y-body { padding: 18px 18px 28px; }
.ffk-a11y-lead-card { display: flex; align-items: center; gap: 13px; background: #fff; border-radius: 14px; padding: 15px 16px; margin-bottom: 14px; }
.ffk-a11y-lead-ico { width: 38px; height: 38px; border-radius: 50%; background: #0C1430; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ffk-a11y-lead-card > span:last-child { flex: 1; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px; color: #101A33; }
.ffk-a11y-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.ffk-a11y-prof { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 9px; min-height: 96px; padding: 14px 8px; background: #fff; border: 1.5px solid #E1E8F4; border-radius: 15px; cursor: pointer; color: #1C3C8C; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 11.5px; line-height: 1.2; transition: border-color .15s ease, background .15s ease, color .15s ease; }
.ffk-a11y-prof:hover { border-color: #1C3C8C; background: #F4F7FD; }
.ffk-a11y-prof.is-on { background: #1C3C8C; border-color: #1C3C8C; color: #fff; }
.ffk-a11y-reset { width: 100%; margin-top: 16px; display: flex; align-items: center; justify-content: center; gap: 10px; background: #E4174B; border: none; color: #fff; border-radius: 14px; padding: 16px; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 14.5px; }
.ffk-a11y-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 18px; padding-top: 14px; border-top: 1px solid #DCE4F5; }
.ffk-a11y-foot a { font-weight: 700; font-size: 13px; color: #E4174B; text-decoration: underline; }
.ffk-a11y-foot span { font-weight: 700; font-size: 12px; color: #5E6880; }
@media (max-width: 560px) { .ffk-a11y-btn { bottom: 104px; } }

/* Profils d'accessibilité appliqués (classes sur body, ciblent #contenu) */
body.a11y-links #contenu a { outline: 2px solid #E4174B !important; text-decoration: underline !important; text-underline-offset: 2px; }
body.a11y-bigtext #contenu { zoom: 1.18; }
body.a11y-spacing #contenu * { letter-spacing: .07em !important; word-spacing: .18em !important; }
body.a11y-lineheight #contenu * { line-height: 2 !important; }
body.a11y-align #contenu :is(h1,h2,h3,p,span,div) { text-align: left !important; }
body.a11y-noanim * { animation: none !important; transition: none !important; }
body.a11y-noimg #contenu img { visibility: hidden !important; }
body.a11y-noimg #contenu [style*="background-image"] { background-image: none !important; background-color: #D7DEEC !important; }
body.a11y-dyslexia #contenu * { font-family: 'Comic Sans MS','Trebuchet MS',Verdana,sans-serif !important; letter-spacing: .03em !important; }
body.a11y-cursor, body.a11y-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='white' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 2l16 7-7 2-2 7z'/%3E%3C/svg%3E") 4 4, auto !important; }
body.a11y-contrast #contenu { filter: contrast(1.45) brightness(1.03); }
body.a11y-contrast2 #contenu { filter: contrast(1.2) saturate(1.15); }
body.a11y-saturation #contenu { filter: saturate(1.7); }

/* ============================================================ */

/* Cartes actus : image cover ratio homogène */
.wp-block-query .wp-block-post-featured-image img {
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
}

/* Titres blancs dans les sections à texte clair (hero, footer) */
.has-white-color h1, .has-white-color h2, .has-white-color h3,
.has-white-color h4, .has-white-color h5, .has-white-color h6,
.ffk-hero h1, .ffk-hero h2, .ffk-hero h3 {
	color: currentColor;
}

/* Accessibilité : focus visible net (RGAA) */
a:focus-visible,
button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* ============================================================
   PAGE CONTACT — champs de formulaire + FAQ + annuaire
   ============================================================ */
.ffk-field{
	width:100%;
	border:1.5px solid #E1E8F5;
	background:#F7F9FD;
	border-radius:13px;
	padding:14px 15px;
	font-family:'Plus Jakarta Sans',sans-serif;
	font-weight:500;
	font-size:15px;
	color:#101A33;
	outline:none;
	transition:border-color .18s ease, background .18s ease;
}
.ffk-field:focus{ border-color:#1C3C8C; background:#fff; }
.ffk-field::placeholder{ color:#5E6880; }
select.ffk-field{ cursor:pointer; appearance:none; -webkit-appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231C3C8C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 15px center; padding-right:42px;
}

/* ---- Carte + formulaire de contact (Contact Form 7) ---- */
.ffk-contact-card { background:#fff; border-radius:26px; padding:clamp(26px,3vw,40px); box-shadow:0 30px 60px -42px rgba(20,40,100,.5); }
.ffk-contact-badge { display:inline-flex; align-items:center; gap:8px; background:#EEF3FC; border-radius:100px; padding:6px 13px; margin-bottom:12px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:#15234F; }
.ffk-contact-badge-dot { width:7px; height:7px; border-radius:50%; background:linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-contact-h2 { font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(22px,2.2vw,30px); letter-spacing:-.015em; color:#101A33; margin:0 0 8px; }
.ffk-contact-lead { font-weight:500; font-size:14px; line-height:1.55; color:#5E6880; margin:0 0 24px; }
.ffk-req, .ffk-cf-l em { color:#E4174B; font-style:normal; }
.ffk-cf-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.ffk-cf-l { display:block; margin-bottom:16px; }
.ffk-cf-l > span:first-child { display:block; font-weight:700; font-size:13px; color:#3F4A63; margin-bottom:7px; }
.ffk-cf-hint { font-weight:500; color:#5E6880; }
.ffk-cf-l .wpcf7-form-control-wrap { display:block; }
.ffk-cf-accept { display:flex; align-items:flex-start; gap:11px; margin:4px 0 20px; font-weight:500; font-size:13px; line-height:1.5; color:#5E6880; }
.ffk-cf-accept a { font-weight:700; color:#1C3C8C; }
.ffk-cf-accept input[type=checkbox] { width:20px; height:20px; margin-top:2px; accent-color:#1C3C8C; flex:0 0 auto; }
.ffk-cf-submit { display:inline-flex; align-items:center; gap:9px; font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:15px; color:#fff; background:linear-gradient(135deg,#1C3C8C,#E4174B); border:none; border-radius:100px; padding:16px 30px; cursor:pointer; box-shadow:0 16px 34px -16px rgba(37,99,214,.8); transition:transform .2s ease; }
.ffk-cf-submit:hover { transform:translateY(-2px); }
.ffk-contact-fallback { background:#F7F9FD; border:1px solid #E1E8F5; border-radius:14px; padding:16px 18px; font-weight:500; font-size:14px; color:#3F4A63; }
/* Retours CF7 (validation, envoi) */
.ffk-contact-card .wpcf7 form.sent .wpcf7-response-output,
.ffk-contact-card .wpcf7-response-output { margin:16px 0 0; padding:14px 16px; border-radius:14px; border:1px solid #BCE3CC; background:#E7F4ED; color:#1E7A45; font-weight:600; font-size:14px; }
.ffk-contact-card .wpcf7 form.invalid .wpcf7-response-output,
.ffk-contact-card .wpcf7 form.failed .wpcf7-response-output { border-color:#F1C4CB; background:#FCEBEE; color:#B02033; }
.ffk-contact-card .wpcf7-not-valid-tip { color:#B02033; font-size:12.5px; font-weight:600; margin-top:5px; }
.ffk-contact-card .wpcf7-spinner { margin:0 0 0 10px; }

/* Message de confirmation (démo) : masqué */
.ffk-form-success{ display:none !important; }
.ffk-form-success.is-visible{ display:flex !important; }

/* FAQ — accordéon */
.ffk-faq-item .ffk-faq-a{
	max-height:0; overflow:hidden;
	transition:max-height .28s ease, padding .28s ease;
	padding-top:0; padding-bottom:0;
}
.ffk-faq-item.is-open .ffk-faq-a{ max-height:340px; }
.ffk-faq-item .ffk-faq-chev{ transition:transform .25s ease; display:inline-flex; }
.ffk-faq-item.is-open .ffk-faq-chev{ transform:rotate(180deg); }
.ffk-faq-item button:hover span:first-child{ color:#1C3C8C; }

/* Évite le défilement horizontal induit par les sections pleine largeur (100vw). */
#contenu { overflow-x: clip; }

/* Lien d'évitement (RGAA 12.7 / WCAG 2.4.1) : masqué, visible au focus clavier. */
.ffk-skip-link {
	position: fixed;
	left: 12px;
	top: -60px;
	z-index: 100000;
	background: #101A33;
	color: #fff;
	font-family: "Plus Jakarta Sans", system-ui, sans-serif;
	font-weight: 700;
	font-size: 14px;
	padding: 12px 20px;
	border-radius: 0 0 12px 12px;
	text-decoration: none;
	transition: top .18s ease;
}
.ffk-skip-link:focus {
	top: 0;
	outline: 3px solid #5EE0C0;
	outline-offset: 2px;
}

/* =========================================================================
   CALENDRIER FÉDÉRAL — bloc ffk/calendrier
   ========================================================================= */
.ffk-cal { max-width: 1160px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 40px) 60px; font-family: 'Plus Jakarta Sans', sans-serif; }

/* En-tête */
.ffk-cal-hero { margin: clamp(18px, 2.4vw, 32px) 0 clamp(16px, 2vw, 24px); position: relative; overflow: hidden; border-radius: 30px;
	background: radial-gradient(at 15% 20%, rgba(28,60,140,.95), transparent 52%), radial-gradient(at 90% 10%, rgba(228,23,75,.75), transparent 48%), linear-gradient(135deg, #0E1A40, #14275C);
	box-shadow: 0 36px 80px -46px rgba(20,40,100,.7); }
.ffk-cal-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.15) 1px, transparent 1px); background-size: 24px 24px; opacity: .5; }
.ffk-cal-hero-inner { position: relative; z-index: 2; padding: clamp(26px, 3.2vw, 48px); }
.ffk-cal-crumb { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 16px; font-weight: 600; font-size: 12.5px; color: rgba(255,255,255,.6); }
.ffk-cal-crumb a { color: rgba(255,255,255,.6); text-decoration: none; }
.ffk-cal-crumb a:hover { color: #fff; }
.ffk-cal-crumb-cur { color: #fff; font-weight: 700; }
.ffk-cal-kicker { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,255,255,.1); border-radius: 100px; padding: 6px 14px; margin-bottom: 14px; font-weight: 800; font-size: 11px; letter-spacing: .09em; text-transform: uppercase; color: #fff; }
.ffk-cal-kicker-dot { width: 7px; height: 7px; border-radius: 50%; background: linear-gradient(135deg, #5EE0C0, #FFD15C); }
.ffk-cal-h1 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(34px, 4.4vw, 58px); line-height: 1; letter-spacing: -.03em; color: #fff; margin: 0 0 14px; }
.ffk-cal-sub { font-weight: 500; font-size: clamp(15px, 1.2vw, 17px); line-height: 1.6; color: rgba(255,255,255,.82); max-width: 620px; margin: 0; }

/* Barre de filtres */
.ffk-cal-filterbar { position: sticky; top: 8px; z-index: 20; margin-bottom: 22px; }
.ffk-cal-filterbar-inner { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; background: #fff; border: 1px solid #E2E8F3; border-radius: 16px; padding: 12px 16px; box-shadow: 0 18px 40px -30px rgba(20,40,100,.4); }
.ffk-cal-filter-label { display: inline-flex; align-items: center; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #101A33; margin-right: 4px; }
.ffk-cal-filter-label svg { color: #1C3C8C; }
.ffk-cal-toggle { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 13.5px; color: #1C3C8C; background: #EEF2FA; border: 1px solid transparent; border-radius: 100px; padding: 9px 16px; cursor: pointer; transition: background .15s ease; }
.ffk-cal-toggle:hover { background: #E2E8F3; }
.ffk-cal-toggle[aria-expanded="true"] { background: linear-gradient(135deg, #1C3C8C, #E4174B); color: #fff; }
.ffk-cal-reset { margin-left: auto; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 13px; color: #5E6880; background: none; border: none; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.ffk-cal-reset:hover { color: #E4174B; }

/* Menus déroulants */
.ffk-cal-menu { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: #fff; border: 1px solid #E2E8F3; border-radius: 16px; padding: 18px; box-shadow: 0 30px 60px -34px rgba(20,40,100,.5); z-index: 30; }
.ffk-cal-menu-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #101A33; margin-bottom: 14px; }
.ffk-cal-seasons { display: flex; flex-wrap: wrap; gap: 8px; }
.ffk-cal-season { font-weight: 600; font-size: 13px; color: #1C3C8C; background: #EEF2FA; border: 1px solid transparent; border-radius: 100px; padding: 7px 14px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.ffk-cal-season:hover { background: #E2E8F3; }
.ffk-cal-season.is-active { background: linear-gradient(135deg, #1C3C8C, #E4174B); color: #fff; }
.ffk-cal-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px 18px; max-height: 320px; overflow-y: auto; }
.ffk-cal-cat { display: flex; align-items: center; gap: 9px; font-weight: 500; font-size: 13.5px; color: #39424F; cursor: pointer; padding: 4px 0; }
.ffk-cal-cat input { width: 16px; height: 16px; accent-color: #1C3C8C; cursor: pointer; }
.ffk-cal-menu-foot { margin-top: 14px; display: flex; justify-content: flex-end; }
.ffk-cal-dates { display: flex; flex-wrap: wrap; align-items: end; gap: 14px; }
.ffk-cal-dates label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 12.5px; color: #3F4A63; }
.ffk-cal-dates input { font-family: inherit; font-size: 14px; color: #101A33; border: 1px solid #C3CEE4; border-radius: 10px; padding: 9px 12px; }
.ffk-cal-apply, .ffk-cal-apply-dates { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #fff; background: linear-gradient(135deg, #1C3C8C, #E4174B); border: none; border-radius: 100px; padding: 10px 22px; cursor: pointer; }
.ffk-cal-apply:hover, .ffk-cal-apply-dates:hover { filter: brightness(1.06); }

/* Résumé des filtres actifs */
.ffk-cal-active { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; font-weight: 500; font-size: 13px; color: #5E6880; }
.ffk-cal-active-count { font-family: 'Space Grotesk', sans-serif; font-weight: 700; color: #101A33; }
.ffk-cal-chip { background: #EEF2FA; border-radius: 100px; padding: 5px 12px; font-weight: 600; color: #1C3C8C; }

/* Groupes par mois */
.ffk-cal-group { margin-bottom: 30px; }
.ffk-cal-month { display: flex; align-items: baseline; gap: 12px; margin: 0 0 16px; padding-bottom: 12px; border-bottom: 2px solid #E2E8F3; }
.ffk-cal-month-name { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(22px, 2.4vw, 30px); letter-spacing: -.02em; color: #101A33; }
.ffk-cal-month-year { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(16px, 1.6vw, 20px); color: #CC1342; }
.ffk-cal-month-now { margin-left: auto; align-self: center; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: #1C3C8C; background: #E7EEFB; border-radius: 999px; padding: 4px 12px; }
.ffk-cal-group.is-current .ffk-cal-month { border-bottom-color: #1C3C8C; }

/* Cartes */
.ffk-cal-cards { display: flex; flex-direction: column; gap: 14px; }
.ffk-cal-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(16px, 2.4vw, 28px); align-items: center; background: #fff; border: 1px solid #E7ECF6; border-radius: 20px; padding: clamp(18px, 2vw, 26px); box-shadow: 0 20px 44px -36px rgba(20,40,100,.45); transition: transform .18s ease, box-shadow .18s ease; }
.ffk-cal-card:hover { transform: translateY(-3px); box-shadow: 0 30px 60px -38px rgba(20,40,100,.55); }
.ffk-cal-card-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; margin-bottom: 8px; }
.ffk-cal-card-when { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.ffk-cal-card-date { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #1C3C8C; }
.ffk-cal-card-loc { display: inline-flex; align-items: center; gap: 6px; font-weight: 500; font-size: 13px; color: #5E6880; }
.ffk-cal-card-loc svg { color: #9AA8C2; flex-shrink: 0; }
.ffk-cal-card-title { margin: 0 0 14px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.2; letter-spacing: -.015em; }
.ffk-cal-card-title a { color: #101A33; text-decoration: none; }
.ffk-cal-card-title a:hover { color: #E4174B; }

/* Vignette de l'affiche dans la liste */
.ffk-cal-card.has-media { grid-template-columns: 84px minmax(0, 1fr); }
.ffk-cal-card-media { display: block; width: 84px; height: 112px; border-radius: 12px; overflow: hidden; background: #EEF2FA; box-shadow: 0 8px 20px -12px rgba(20,40,100,.5); }
.ffk-cal-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s ease; }
.ffk-cal-card:hover .ffk-cal-card-media img { transform: scale(1.05); }
.ffk-cal-pills { display: flex; flex-wrap: wrap; gap: 7px; }
.ffk-cal-pill { display: inline-flex; align-items: center; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; color: #fff; background: var(--pill, #5E6B85); padding: 5px 11px; border-radius: 100px; }

/* Rangée catégories + actions */
.ffk-cal-card-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.ffk-cal-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; margin-left: auto; }
.ffk-cal-action { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 12px; color: #1C3C8C; background: #EEF2FA; border: 1px solid transparent; border-radius: 100px; padding: 7px 12px; text-decoration: none; transition: background .15s ease, color .15s ease; }
.ffk-cal-action:hover { background: #1C3C8C; color: #fff; }
.ffk-cal-action.is-off { color: #B4BECF; background: #F4F7FD; cursor: not-allowed; }
.ffk-cal-action.is-off:hover { background: #F4F7FD; color: #B4BECF; }
.ffk-cal-maj { font-weight: 500; font-size: 11.5px; color: #5E6880; white-space: nowrap; }

/* Charger plus / vide */
.ffk-cal-more-wrap { text-align: center; margin-top: 24px; }
.ffk-cal-more { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #1C3C8C; background: #fff; border: 1.5px solid #C3CEE4; border-radius: 100px; padding: 14px 32px; cursor: pointer; transition: background .15s ease, border-color .15s ease; }
.ffk-cal-more:hover { background: #EEF2FA; border-color: #1C3C8C; }
.ffk-cal-empty, .ffk-cal-noresult { text-align: center; font-weight: 500; font-size: 15px; color: #5E6880; padding: 40px 0; }

/* ---- Fiche d'un événement (single) ---- */
.ffk-evt { padding-top: 40px; }
.ffk-evt-crumb { color: #5E6880; }
.ffk-evt-crumb a { color: #1C3C8C; text-decoration: none; }
.ffk-evt-crumb a:hover { text-decoration: underline; }
.ffk-evt-crumb-cur, .ffk-evt-crumb .ffk-cal-crumb-cur { color: #101A33; }
.ffk-evt-card { display: grid; grid-template-columns: 1fr; gap: clamp(24px, 3vw, 40px); background: #fff; border: 1px solid #E7ECF6; border-radius: 24px; padding: clamp(24px, 3.5vw, 48px); box-shadow: 0 30px 70px -50px rgba(20,40,100,.5); }
.ffk-evt-card:has(.ffk-evt-aside) { grid-template-columns: 1fr 300px; }
.ffk-evt-maj { margin: 0 0 10px; font-size: 13px; color: #666E7C; }
.ffk-evt-title { margin: 0 0 14px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(28px, 3.4vw, 42px); line-height: 1.1; letter-spacing: -.02em; color: #101A33; }
.ffk-evt-pills { margin-bottom: 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.ffk-evt-facts { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 24px; }
.ffk-evt-fact { display: inline-flex; align-items: center; gap: 12px; background: #F4F7FD; border-radius: 14px; padding: 14px 18px; }
.ffk-evt-fact-ico { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; color: #1C3C8C; box-shadow: 0 6px 16px -10px rgba(20,40,100,.5); flex-shrink: 0; }
.ffk-evt-fact-val { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; color: #1C3C8C; }
.ffk-evt-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.ffk-evt-btn { display: inline-flex; align-items: center; gap: 8px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 14px; color: #1C3C8C; background: #EEF2FA; border: 1px solid #E1E8F5; border-radius: 100px; padding: 11px 20px; text-decoration: none; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.ffk-evt-btn:hover { background: #1C3C8C; color: #fff; border-color: #1C3C8C; }
.ffk-evt-btn--primary { color: #fff; background: #E4174B; border-color: #E4174B; }
.ffk-evt-btn--primary:hover { background: #C0143C; border-color: #C0143C; color: #fff; }
.ffk-evt-desc { font-size: 16px; line-height: 1.7; color: #33405A; }
.ffk-evt-desc :is(h2,h3) { font-family: 'Space Grotesk', sans-serif; color: #101A33; }
.ffk-evt-desc img { max-width: 100%; height: auto; border-radius: 12px; }
.ffk-evt-desc a { color: #1C3C8C; }
.ffk-evt-wysiwyg { font-size: 16px; line-height: 1.7; color: #33405A; }
.ffk-evt-wysiwyg :is(h2,h3) { font-family: 'Space Grotesk', sans-serif; color: #101A33; margin: 1.4em 0 .5em; }
.ffk-evt-wysiwyg a { color: #1C3C8C; }
.ffk-evt-wysiwyg img { max-width: 100%; height: auto; border-radius: 12px; }
.ffk-evt-fig { margin: 20px 0; }
.ffk-evt-fig img { width: 100%; height: auto; border-radius: 14px; }
.ffk-evt-textimg { display: grid; grid-template-columns: 200px 1fr; gap: 20px; align-items: start; margin: 20px 0; }
.ffk-evt-textimg img { width: 100%; height: auto; border-radius: 12px; }
.ffk-evt-embed { margin: 20px 0; }
.ffk-evt-embed iframe { max-width: 100%; border-radius: 12px; }
.ffk-evt-docs { margin: 28px 0 0; padding: 24px; background: #F4F7FD; border-radius: 16px; }
.ffk-evt-docs-title { margin: 0 0 14px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: #1C3C8C; }
.ffk-evt-docs-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ffk-evt-doc { display: flex; align-items: center; justify-content: space-between; gap: 14px; background: #fff; border: 1px solid #E1E8F5; border-radius: 12px; padding: 14px 18px; font-weight: 600; font-size: 15px; color: #101A33; text-decoration: none; transition: border-color .15s ease, color .15s ease; }
.ffk-evt-doc:hover { border-color: #1C3C8C; color: #1C3C8C; }
.ffk-evt-doc svg { color: #E4174B; flex-shrink: 0; }
@media (max-width: 560px) { .ffk-evt-textimg { grid-template-columns: 1fr; } }
.ffk-evt-back { margin: 30px 0 0; }
.ffk-evt-aside { align-self: start; }
.ffk-evt-affiche { position: relative; display: block; border-radius: 16px; overflow: hidden; box-shadow: 0 20px 48px -28px rgba(20,40,100,.6); }
.ffk-evt-affiche img { width: 100%; height: auto; display: block; }
.ffk-evt-affiche-zoom { position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.94); color: #1C3C8C; box-shadow: 0 8px 20px -10px rgba(20,40,100,.6); }
@media (max-width: 820px) {
	.ffk-evt-card:has(.ffk-evt-aside) { grid-template-columns: 1fr; }
	.ffk-evt-aside { order: -1; max-width: 300px; }
}

/* ---- Stages / événements clubs (fiche + liste) ---- */
.ffk-stg-infos { margin: 20px 0 0; padding: 18px 20px; background: #F4F7FD; border-radius: 14px; font-size: 15px; line-height: 1.6; color: #33405A; }
.ffk-stg-infos p { margin: 0 0 6px; }
.ffk-stg-infos p:last-child { margin: 0; }

.ffk-stg { max-width: 1160px; margin: 0 auto; padding: clamp(28px,4vw,56px) clamp(16px,4vw,40px); font-family: 'Plus Jakarta Sans', sans-serif; }
.ffk-stg-head { margin-bottom: 22px; }
.ffk-stg-h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,2.6vw,36px); letter-spacing: -.02em; color: #101A33; margin: 0 0 6px; }
.ffk-stg-sub { font-weight: 500; font-size: 15px; color: #5E6880; margin: 0; }
.ffk-stg-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 22px; }
.ffk-stg-search { flex: 1 1 260px; min-width: 220px; }
.ffk-stg-search { border: 1.5px solid #E1E8F5; background: #F7F9FD; border-radius: 100px; padding: 11px 18px; font-family: inherit; font-size: 14px; color: #101A33; outline: none; }
.ffk-stg-search:focus { border-color: #1C3C8C; background: #fff; }
.ffk-stg-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ffk-stg-chip { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 13px; color: #1C3C8C; background: #EEF2FA; border: 1px solid transparent; border-radius: 100px; padding: 8px 16px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.ffk-stg-chip:hover { background: #E2E8F3; }
.ffk-stg-chip.is-active { background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; }
.ffk-stg-disc { max-width: 260px; }
.ffk-stg-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 16px; }
.ffk-stg-card { background: #fff; border: 1px solid #E7ECF6; border-radius: 18px; overflow: hidden; box-shadow: 0 20px 44px -36px rgba(20,40,100,.45); transition: transform .18s ease, box-shadow .18s ease; }
.ffk-stg-card:hover { transform: translateY(-3px); box-shadow: 0 30px 60px -38px rgba(20,40,100,.55); }
.ffk-stg-card-link { display: block; padding: 20px 22px; text-decoration: none; }
.ffk-stg-type { display: inline-flex; align-items: center; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; color: #fff; background: var(--t,#1C3C8C); padding: 5px 11px; border-radius: 100px; margin-bottom: 12px; }
.ffk-stg-card-t { margin: 0 0 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; line-height: 1.2; letter-spacing: -.015em; color: #101A33; }
.ffk-stg-card-d { margin: 0 0 4px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; }
.ffk-stg-card-l { margin: 0 0 10px; font-weight: 500; font-size: 13px; color: #5E6880; }
.ffk-stg-card-disc { display: inline-block; font-weight: 600; font-size: 11.5px; color: #5E6B85; background: #F4F7FD; border-radius: 100px; padding: 4px 11px; }
.ffk-stg-card-inscr { display: inline-flex; align-items: center; gap: 5px; margin-left: 6px; font-weight: 700; font-size: 11.5px; color: #247D48; background: #E7F4ED; border-radius: 100px; padding: 4px 11px; }
.ffk-stg-card-inscr::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #247D48; }

/* Section inscription sur la fiche (formulaire CF7 embarqué via code_formulaire) */
.ffk-stg-inscr { margin: 28px 0 0; padding: clamp(20px,3vw,32px); background: #F4F7FD; border-radius: 18px; scroll-margin-top: 90px; }
.ffk-stg-inscr-t { margin: 0 0 16px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 20px; color: #1C3C8C; }
.ffk-stg-inscr-form input[type=text], .ffk-stg-inscr-form input[type=email], .ffk-stg-inscr-form input[type=tel], .ffk-stg-inscr-form input[type=date], .ffk-stg-inscr-form input[type=number], .ffk-stg-inscr-form select, .ffk-stg-inscr-form textarea { width: 100%; border: 1.5px solid #E1E8F5; background: #fff; border-radius: 12px; padding: 12px 14px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; color: #101A33; outline: none; margin-top: 4px; }
.ffk-stg-inscr-form input:focus, .ffk-stg-inscr-form select:focus, .ffk-stg-inscr-form textarea:focus { border-color: #1C3C8C; }
.ffk-stg-inscr-form p { margin: 0 0 14px; }
.ffk-stg-inscr-form .wpcf7-submit, .ffk-stg-inscr-form input[type=submit], .ffk-stg-inscr-form button[type=submit] { width: auto; display: inline-flex; align-items: center; gap: 8px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; border-radius: 100px; padding: 14px 28px; cursor: pointer; margin-top: 6px; }
.ffk-stg-inscr-form .wpcf7-response-output { margin: 14px 0 0; padding: 12px 15px; border-radius: 12px; border: 1px solid #BCE3CC; background: #E7F4ED; color: #1E7A45; font-weight: 600; font-size: 14px; }
.ffk-stg-inscr-form .wpcf7 form.invalid .wpcf7-response-output, .ffk-stg-inscr-form .wpcf7 form.failed .wpcf7-response-output { border-color: #F1C4CB; background: #FCEBEE; color: #B02033; }
.ffk-stg-inscr-form .wpcf7-not-valid-tip { color: #B02033; font-size: 12.5px; font-weight: 600; }
.ffk-stg-empty, .ffk-stg-none { text-align: center; font-weight: 500; font-size: 15px; color: #5E6880; padding: 30px 0; }

/* ---- Voix des régions : CTA + modale ---- */
.ffk-vr-cta-wrap { max-width: 1160px; margin: 0 auto; padding: clamp(20px,3vw,32px) clamp(16px,4vw,40px) 0; }
.ffk-vr-cta { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; background: radial-gradient(at 12% 20%,rgba(28,60,140,.9),transparent 55%),linear-gradient(135deg,#0E1A40,#14275C); border-radius: 24px; padding: clamp(24px,3vw,36px); box-shadow: 0 34px 70px -44px rgba(20,40,100,.7); }
.ffk-vr-cta-kicker { display: inline-block; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #5EE0C0; margin-bottom: 8px; }
.ffk-vr-cta-h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(22px,2.4vw,32px); letter-spacing: -.02em; color: #fff; margin: 0 0 8px; }
.ffk-vr-cta-p { font-weight: 500; font-size: 14.5px; line-height: 1.6; color: rgba(255,255,255,.82); margin: 0; max-width: 640px; }
.ffk-vr-cta-btn { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px; color: #101A33; background: #fff; border: none; border-radius: 100px; padding: 15px 26px; cursor: pointer; box-shadow: 0 18px 40px -18px rgba(0,0,0,.5); transition: transform .18s ease; }
.ffk-vr-cta-btn:hover { transform: translateY(-2px); }

.ffk-vr-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: clamp(14px,3vw,40px); }
.ffk-vr-modal[hidden] { display: none; }
.ffk-vr-modal-backdrop { position: absolute; inset: 0; background: rgba(10,18,45,.55); backdrop-filter: blur(2px); }
.ffk-vr-modal-box { position: relative; width: 100%; max-width: 780px; max-height: 90vh; overflow: auto; background: #fff; border-radius: 22px; box-shadow: 0 50px 100px -40px rgba(10,20,60,.7); }
.ffk-vr-modal-bar { position: sticky; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; background: #fff; border-bottom: 1px solid #EEF2F9; z-index: 1; }
.ffk-vr-modal-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; color: #101A33; }
.ffk-vr-modal-x { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; border: none; background: #F4F7FD; color: #1C3C8C; cursor: pointer; transition: background .15s ease; }
.ffk-vr-modal-x:hover { background: #E2E8F3; }
.ffk-vr-modal-body { padding: clamp(20px,3vw,32px); }
@media (max-width: 640px) { .ffk-vr-cta { flex-direction: column; align-items: flex-start; } .ffk-vr-cta-btn { width: 100%; justify-content: center; } }

@media (max-width: 720px) {
	.ffk-cal-card.has-media { grid-template-columns: 64px minmax(0, 1fr); align-items: start; }
	.ffk-cal-card-media { width: 64px; height: 86px; }
	.ffk-cal-actions { justify-content: flex-start; margin-left: 0; }
	/* Mobile : seules les actions disponibles, pour éviter 4 lignes de boutons grisés. */
	.ffk-cal-action.is-off { display: none; }
	.ffk-cal-actions:not(:has(a)) { display: none; }
	.ffk-cal-reset { margin-left: 0; }
}

/* Modale d'aperçu du calendrier */
.ffk-cal-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: clamp(14px, 3vw, 40px); }
.ffk-cal-modal[hidden] { display: none; }
.ffk-cal-modal-backdrop { position: absolute; inset: 0; background: rgba(12, 20, 48, .72); backdrop-filter: blur(3px); }
.ffk-cal-modal-dialog { position: relative; z-index: 1; display: flex; flex-direction: column; width: min(960px, 100%); max-height: 92vh; background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 50px 100px -30px rgba(8, 16, 42, .8); }
.ffk-cal-modal-bar { display: flex; align-items: center; gap: 14px; padding: 12px 16px; background: #0E1A40; color: #fff; }
.ffk-cal-modal-title { flex: 1; min-width: 0; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ffk-cal-modal-ext { font-weight: 600; font-size: 12.5px; color: #5EE0C0; text-decoration: none; white-space: nowrap; }
.ffk-cal-modal-ext:hover { text-decoration: underline; }
.ffk-cal-modal-close { flex-shrink: 0; width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; color: #fff; background: rgba(255,255,255,.12); border: none; border-radius: 50%; cursor: pointer; }
.ffk-cal-modal-close:hover { background: rgba(255,255,255,.24); }
.ffk-cal-modal-body { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; background: #F4F7FD; overflow: auto; }
.ffk-cal-modal-img { display: block; max-width: 100%; max-height: 84vh; margin: auto; }
.ffk-cal-modal-frame { width: 100%; height: 82vh; border: 0; }

/* =========================================================================
   FFK — Contenu flexible ACF hérité (.ffk-fx-*)
   Rend les 12 layouts des pages template-flexible.php importées.
   ========================================================================= */
.ffk-fx { max-width: 820px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 24px); }
.ffk-fx-b { margin: clamp(20px, 2.6vw, 34px) 0; }
.ffk-fx-h2 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: clamp(21px, 2.4vw, 28px); color: #101A33;
	letter-spacing: -.02em; margin: 0 0 16px;
}
.ffk-fx-empty { color: #5E6880; }

/* Texte / image */
.ffk-fx-ti { display: flex; gap: clamp(18px, 2.4vw, 30px); align-items: flex-start; flex-wrap: wrap; }
.ffk-fx-ti.is-droite { flex-direction: row-reverse; }
.ffk-fx-ti-img { flex: 0 0 var(--imgw, 50%); max-width: var(--imgw, 50%); margin: 0; }
.ffk-fx-ti-img img { width: 100%; height: auto; border-radius: 16px; display: block; }
.ffk-fx-ti-txt { flex: 1 1 260px; min-width: 0; }
@media (max-width: 640px) {
	.ffk-fx-ti-img { flex-basis: 100%; max-width: 100%; }
}

/* Image 100% */
.ffk-fx-img100 img { width: 100%; height: auto; border-radius: 18px; display: block; }

/* Trombinoscope */
.ffk-fx-trombi-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.ffk-fx-trombi.is-grand .ffk-fx-trombi-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ffk-fx-trombi-c {
	display: flex; flex-direction: column; gap: 10px;
	background: #fff; border: 1px solid #EAEFF8; border-radius: 16px; padding: 14px;
}
.ffk-fx-trombi-ph { width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 12px; display: block; }
.ffk-fx-trombi-ph--vide { background: #EEF2F9; }
/* Bloc sans aucune photo (DTN, staff…) : cartes en texte seul, plus larges, liseré à gauche. */
.ffk-fx-trombi.is-texte .ffk-fx-trombi-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.ffk-fx-trombi.is-texte .ffk-fx-trombi-c { padding: 14px 16px; border-left: 4px solid #1C3C8C; border-radius: 12px; }
.ffk-fx-trombi-n {
	display: block; font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 15px; color: #101A33;
}
.ffk-fx-trombi-r { display: block; font-weight: 600; font-size: 12.5px; color: #1C3C8C; margin-top: 2px; }
.ffk-fx-trombi-d { display: block; font-size: 12.5px; color: #5E6880; margin-top: 5px; line-height: 1.45; }

/* Accordéons */
.ffk-fx-acc-i { border: 1px solid #EAEFF8; border-radius: 14px; margin-bottom: 8px; background: #fff; }
.ffk-fx-acc-s {
	cursor: pointer; padding: 14px 16px; font-weight: 700; font-size: 15px; color: #101A33;
	list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px;
	font-family: "Space Grotesk", system-ui, sans-serif;
}
.ffk-fx-acc-s::-webkit-details-marker { display: none; }
.ffk-fx-acc-s::after {
	content: ""; width: 9px; height: 9px; flex: 0 0 auto;
	border-right: 2.4px solid #1C3C8C; border-bottom: 2.4px solid #1C3C8C;
	transform: rotate(45deg); transition: transform .2s ease;
}
.ffk-fx-acc-i[open] .ffk-fx-acc-s::after { transform: rotate(-135deg); }
.ffk-fx-acc-s:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 14px; }
.ffk-fx-acc-c { padding: 0 16px 14px; }

/* Onglets */
.ffk-fx-tablist { display: flex; gap: 6px; flex-wrap: wrap; border-bottom: 2px solid #EAEFF8; margin-bottom: 16px; }
.ffk-fx-tab {
	border: 0; background: none; cursor: pointer; padding: 11px 14px;
	font-family: "Space Grotesk", system-ui, sans-serif; font-weight: 700; font-size: 14.5px;
	color: #5E6880; border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.ffk-fx-tab:hover { color: #1C3C8C; }
.ffk-fx-tab[aria-selected="true"] { color: #1C3C8C; border-bottom-color: #1C3C8C; }
.ffk-fx-tab:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 8px; }
.ffk-fx-pan:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; border-radius: 10px; }

/* Embed */
.ffk-fx-embed iframe { max-width: 100%; border-radius: 14px; border: 0; }

/* Galerie */
.ffk-fx-gal-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.ffk-fx-gal-i { display: block; border-radius: 12px; overflow: hidden; }
.ffk-fx-gal-i img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; transition: transform .3s ease; }
.ffk-fx-gal-i:hover img { transform: scale(1.05); }
.ffk-fx-gal-i:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }

/* Slideshow */
.ffk-fx-slide-track {
	display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory;
	padding-bottom: 8px; scrollbar-width: thin;
}
.ffk-fx-slide-track:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; border-radius: 16px; }
.ffk-fx-slide-i { flex: 0 0 88%; scroll-snap-align: center; margin: 0; }
.ffk-fx-slide-i img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 16px; display: block; }
@media (min-width: 700px) { .ffk-fx-slide-i { flex-basis: 62%; } }

/* Documents */
.ffk-fx-docs-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ffk-fx-doc {
	display: flex; align-items: center; gap: 12px; text-decoration: none;
	background: #fff; border: 1px solid #EAEFF8; border-radius: 13px; padding: 12px 14px;
	transition: border-color .15s ease, background .15s ease;
}
.ffk-fx-doc:hover { border-color: #1C3C8C; background: #F8FAFF; }
.ffk-fx-doc:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-fx-doc-ic {
	width: 34px; height: 34px; border-radius: 10px; flex: 0 0 auto; color: #1C3C8C;
	background: #F1F5FC; display: flex; align-items: center; justify-content: center;
}
.ffk-fx-doc-n { flex: 1; font-weight: 600; font-size: 14.5px; color: #101A33; min-width: 0; }
.ffk-fx-doc-m { font-weight: 700; font-size: 11.5px; color: #5E6880; white-space: nowrap; }

@media (prefers-reduced-motion: reduce) {
	.ffk-fx-gal-i img, .ffk-fx-acc-s::after { transition: none !important; }
}

/* =========================================================================
   FFK — Page 404
   ========================================================================= */
.ffk-404 {
	min-height: 100vh;
	background: #EFEFEF;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: clamp(24px, 4vw, 40px);
	padding: clamp(28px, 5vw, 56px) 20px clamp(24px, 4vw, 44px);
	text-align: center;
}
.ffk-404-logo { display: block; flex: 0 0 auto; }
.ffk-404-logo img { width: clamp(190px, 24vw, 260px); height: auto; display: block; }
.ffk-404-logo:focus-visible { outline: 3px solid #1C3C8C; outline-offset: 6px; border-radius: 8px; }

.ffk-404-main {
	display: flex; flex-direction: column; align-items: center;
	gap: clamp(6px, 1.4vw, 14px); flex: 1 1 auto; justify-content: center;
}
.ffk-404-h1 { margin: 0; line-height: 1; }
.ffk-404-sr {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.ffk-404-art { display: flex; align-items: center; justify-content: center; gap: clamp(2px, 1vw, 14px); }
.ffk-404-4 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: clamp(110px, 23vw, 250px);
	line-height: .8;
	color: #1C3C8C;
	letter-spacing: -.04em;
}
.ffk-404-mark { width: clamp(96px, 21vw, 230px); height: auto; display: block; }

.ffk-404-txt {
	font-weight: 600; font-size: clamp(14px, 1.4vw, 16px); color: #5E6880;
	margin: clamp(4px, 1vw, 10px) 0 clamp(12px, 1.6vw, 20px);
}
.ffk-404-cta {
	display: inline-block;
	background: #E4174B; color: #fff; text-decoration: none;
	font-weight: 700; font-size: clamp(15px, 1.5vw, 17px);
	padding: 16px 34px; border-radius: 100px;
	box-shadow: 0 14px 30px -14px rgba(228, 23, 75, .7);
	transition: background .18s ease, transform .18s ease;
}
.ffk-404-cta:hover { background: #C01040; transform: translateY(-2px); }
.ffk-404-cta:focus-visible { outline: 3px solid #1C3C8C; outline-offset: 3px; }

.ffk-404-socials { display: flex; gap: clamp(8px, 1.4vw, 16px); flex-wrap: wrap; justify-content: center; }
.ffk-404-socials a {
	width: 46px; height: 46px; border-radius: 50%; background: #fff; color: #E4174B;
	display: inline-flex; align-items: center; justify-content: center;
	transition: transform .18s ease, box-shadow .18s ease;
}
.ffk-404-socials a:hover { transform: translateY(-3px); box-shadow: 0 10px 20px -10px rgba(0,0,0,.35); }
.ffk-404-socials a:focus-visible { outline: 3px solid #1C3C8C; outline-offset: 3px; }

.ffk-404-legal { display: flex; gap: clamp(14px, 2.4vw, 34px); flex-wrap: wrap; justify-content: center; }
.ffk-404-legal a {
	font-weight: 700; font-size: clamp(13px, 1.3vw, 15px);
	color: #C01040; text-decoration: none;
}
.ffk-404-legal a:hover { text-decoration: underline; }
.ffk-404-legal a:focus-visible { outline: 3px solid #1C3C8C; outline-offset: 3px; border-radius: 6px; }

@media (prefers-reduced-motion: reduce) {
	.ffk-404-cta, .ffk-404-socials a { transition: none !important; }
}

/* =========================================================================
   FFK — Hero des pages importées (.ffk-ph-*)
   Met en scène l'image d'en-tête ACF déjà présente en base sur toutes les
   pages de la prod. Teinte = couleur de la rubrique (--ph).
   ========================================================================= */
.ffk-ph { padding: clamp(16px, 2.2vw, 28px) clamp(16px, 4vw, 60px) 0; }
.ffk-ph-card {
	position: relative;
	max-width: 1500px;
	margin: 0 auto;
	border-radius: clamp(20px, 2.4vw, 34px);
	overflow: hidden;
	min-height: clamp(230px, 30vw, 380px);
	display: flex;
	align-items: flex-end;
	background: linear-gradient(150deg, var(--ph, #1C3C8C) 0%, #101A33 88%);
	box-shadow: 0 40px 84px -40px rgba(16, 30, 90, .7);
}
.ffk-ph.is-petit .ffk-ph-card { min-height: clamp(160px, 20vw, 240px); }

.ffk-ph-img {
	position: absolute; inset: 0;
	background-size: cover; background-position: center 32%;
	opacity: .42; mix-blend-mode: luminosity;
}
.ffk-ph-shade {
	position: absolute; inset: 0;
	background: linear-gradient(105deg, rgba(12,18,40,.82) 0%, rgba(12,18,40,.42) 58%, rgba(12,18,40,.2) 100%);
}
.ffk-ph-dots {
	position: absolute; inset: 0;
	background-image: radial-gradient(rgba(255,255,255,.11) 1px, transparent 1px);
	background-size: 26px 26px; opacity: .55;
}
.ffk-ph-mark {
	position: absolute; right: -26px; bottom: -40px; width: clamp(150px, 20vw, 260px);
	height: auto; opacity: .1; pointer-events: none;
}
.ffk-ph-body {
	position: relative; z-index: 2;
	padding: clamp(24px, 3.4vw, 52px);
	max-width: 900px;
}

.ffk-ph-crumb {
	display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
	font-weight: 600; font-size: 12.5px; color: rgba(255,255,255,.72);
	margin-bottom: clamp(12px, 1.6vw, 20px);
}
.ffk-ph-crumb a { color: rgba(255,255,255,.72); text-decoration: none; }
.ffk-ph-crumb a:hover { color: #fff; text-decoration: underline; }
.ffk-ph-crumb a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; border-radius: 4px; }
.ffk-ph-cur { color: #fff; font-weight: 700; }

.ffk-ph-title {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700;
	font-size: clamp(29px, 4.4vw, 58px);
	line-height: 1.02;
	letter-spacing: -.03em;
	color: #fff;
	margin: 0;
}
.ffk-ph.is-petit .ffk-ph-title { font-size: clamp(25px, 3.2vw, 40px); }
.ffk-ph-txt {
	font-weight: 500; font-size: clamp(14px, 1.2vw, 17px); line-height: 1.6;
	color: rgba(255,255,255,.9); max-width: 640px; margin-top: 14px;
}
.ffk-ph-txt a { color: #5EE0C0; }

/* Le hero porte le titre : le contenu qui suit respire un peu moins haut. */
.ffk-ph + .wp-block-group { padding-top: clamp(20px, 2.4vw, 34px) !important; }

/* =========================================================================
   FFK — Système de lecture des pages de contenu
   Information propre et structurée : largeur de ligne maîtrisée, hiérarchie
   visible, repères graphiques. S'applique à tout le contenu importé.
   ========================================================================= */

/* Hero sans image : le dégradé et la trame suffisent à structurer l'entrée. */
.ffk-ph.is-plain .ffk-ph-card { min-height: clamp(150px, 16vw, 210px); }

/* ---- Largeur de ligne : ~68 caractères, l'optimum de lisibilité ---- */
.ffk-prose > p,
.ffk-prose > ul,
.ffk-prose > ol { max-width: 68ch; }

/* ---- Hiérarchie des titres ---- */
.ffk-prose h2 {
	position: relative;
	padding-top: 18px;
	margin-top: 2.2em;
	font-size: clamp(23px, 2.4vw, 29px);
}
/* Filet coloré : donne un repère de section sans alourdir. */
.ffk-prose h2::before {
	content: "";
	position: absolute; top: 0; left: 0;
	width: 46px; height: 4px; border-radius: 100px;
	background: linear-gradient(90deg, #1C3C8C, #E4174B);
}
.ffk-prose h2:first-child { margin-top: .4em; }
.ffk-prose h3 {
	font-size: clamp(18px, 1.8vw, 21px);
	margin-top: 1.8em;
	color: #1C3C8C;
}
.ffk-prose h4 {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 16.5px; color: #101A33;
	margin: 1.5em 0 .4em;
}

/* ---- Listes : puces à la charte ---- */
.ffk-prose ul { list-style: none; padding-left: 0; }
.ffk-prose ul > li {
	position: relative; padding-left: 1.6em; margin-bottom: .5em;
}
.ffk-prose ul > li::before {
	content: "";
	position: absolute; left: .3em; top: .62em;
	width: 7px; height: 7px; border-radius: 50%;
	background: #E4174B;
}
.ffk-prose ol { padding-left: 1.5em; }
.ffk-prose ol > li { margin-bottom: .5em; padding-left: .2em; }
.ffk-prose ol > li::marker { color: #1C3C8C; font-weight: 700; }
.ffk-prose li > ul, .ffk-prose li > ol { margin-top: .5em; margin-bottom: .2em; }
/* Blocs FFK posés dans un contenu rédactionnel : leurs listes ont leur propre
   mise en forme (téléchargements, cartes…), pas les puces de la prose. */
.ffk-prose .ffk-b:not(.ffk-b-section) ul, .ffk-prose .ffk-actus ul, .ffk-prose .ffk-b:not(.ffk-b-section) ol { list-style: none; padding-left: 0; }
.ffk-prose .ffk-b:not(.ffk-b-section) ul > li, .ffk-prose .ffk-actus ul > li { padding-left: 0; }
.ffk-prose .ffk-b:not(.ffk-b-section) ul > li::before, .ffk-prose .ffk-actus ul > li::before { content: none; display: none; }
/* Boutons FFK dans la prose : la couleur et le soulignement des liens de texte ne s'appliquent pas. */
.ffk-prose a.ffk-b-btn, .ffk-prose a.ffk-b-btn:hover { text-decoration: none; background-image: none; }
.ffk-prose a.ffk-b-btn--primary, .ffk-prose a.ffk-b-btn--primary:hover { color: #fff; background-image: linear-gradient(135deg,var(--ffk-bleu,#1C3C8C),var(--ffk-magenta,#E4174B)); }
/* Formulaires Contact Form 7 insérés dans une page (signalement, réclamation…) : mêmes champs que le reste du site. */
.ffk-prose .wpcf7 { margin: 24px 0 0; padding: clamp(20px,3vw,32px); background: #F4F7FD; border-radius: 18px; }
.ffk-prose .wpcf7 h3 { margin: 22px 0 12px; font-family: 'Space Grotesk', sans-serif; font-size: 19px; color: #1C3C8C; }
.ffk-prose .wpcf7 h3:first-of-type { margin-top: 0; }
.ffk-prose .wpcf7 p { margin: 0 0 14px; }
.ffk-prose .wpcf7 label { font-weight: 600; font-size: 14.5px; color: #101A33; }
.ffk-prose .wpcf7-form-control-wrap { display: block; }
.ffk-prose .wpcf7 input[type=text], .ffk-prose .wpcf7 input[type=email], .ffk-prose .wpcf7 input[type=tel], .ffk-prose .wpcf7 input[type=date], .ffk-prose .wpcf7 input[type=number], .ffk-prose .wpcf7 input[type=url], .ffk-prose .wpcf7 select, .ffk-prose .wpcf7 textarea { width: 100%; box-sizing: border-box; border: 1.5px solid #E1E8F5; background: #fff; border-radius: 12px; padding: 12px 14px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 400; color: #101A33; outline: none; margin-top: 6px; }
.ffk-prose .wpcf7 input:focus, .ffk-prose .wpcf7 select:focus, .ffk-prose .wpcf7 textarea:focus { border-color: #1C3C8C; }
.ffk-prose .wpcf7 textarea { min-height: 140px; }
.ffk-prose .wpcf7-checkbox, .ffk-prose .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 8px; }
.ffk-prose .wpcf7-list-item { margin: 0; }
.ffk-prose .wpcf7-list-item label { font-weight: 500; display: inline-flex; gap: 8px; align-items: center; }
.ffk-prose .wpcf7 input[type=file] { margin-top: 6px; font-size: 14px; }
.ffk-prose .wpcf7 .wpcf7-submit { width: auto; display: inline-flex; align-items: center; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; border-radius: 100px; padding: 14px 28px; cursor: pointer; margin-top: 6px; }
.ffk-prose .wpcf7-response-output { margin: 14px 0 0; padding: 12px 15px; border-radius: 12px; border: 1px solid #BCE3CC; background: #E7F4ED; color: #1E7A45; font-weight: 600; font-size: 14px; }
.ffk-prose .wpcf7 form.invalid .wpcf7-response-output, .ffk-prose .wpcf7 form.failed .wpcf7-response-output { border-color: #F1C4CB; background: #FCEBEE; color: #B02033; }
.ffk-prose .wpcf7-not-valid-tip { color: #B02033; font-size: 12.5px; font-weight: 600; margin-top: 5px; }
.ffk-prose a.ffk-b-btn--ghost-solid { color: #1C3C8C; }
.ffk-prose a.ffk-b-btn--ghost-solid:hover { color: #E4174B; border-color: #E4174B; }
.ffk-prose .ffk-b-btn { white-space: normal; text-align: left; }

/* ---- Liens de contenu : visibles sans être criards ---- */
.ffk-prose a {
	text-decoration-thickness: 1.5px;
	text-decoration-color: #9DB0E0;
	transition: text-decoration-color .15s ease, color .15s ease;
}
.ffk-prose a:hover { text-decoration-color: #1C3C8C; }
.ffk-prose a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 3px; }

/* ---- Séparateur ---- */
.ffk-prose hr {
	border: 0; height: 1px; margin: 2.6em 0;
	background: linear-gradient(90deg, #DCE4F2 0%, #DCE4F2 40%, transparent 100%);
}

/* ---- Tableaux : lisibles et scrollables sur mobile ---- */
.ffk-prose table {
	width: 100%; border-collapse: collapse; margin: 1.8em 0;
	font-size: 15px; background: #fff;
	border-radius: 14px; overflow: hidden;
	box-shadow: 0 0 0 1px #EAEFF8;
}
.ffk-prose thead th {
	background: #F1F5FC; color: #16264F;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 13px; letter-spacing: .03em;
	text-align: left; padding: 12px 14px;
}
.ffk-prose td, .ffk-prose th { padding: 11px 14px; border-top: 1px solid #EEF2F9; vertical-align: top; }
.ffk-prose tbody tr:nth-child(even) { background: #FAFCFF; }
.ffk-prose .ffk-table-wrap { overflow-x: auto; margin: 1.8em 0; }
.ffk-prose .ffk-table-wrap table { margin: 0; }

/* ---- Images et figures ---- */
.ffk-prose figure { margin: 1.8em 0; }
.ffk-prose figcaption {
	font-size: 13px; color: #5E6880; margin-top: 8px;
	padding-left: 12px; border-left: 3px solid #DCE4F2;
}

/* ---- Mise en exergue ---- */
.ffk-prose strong { color: #16264F; font-weight: 700; }

/* =========================================================================
   Sommaire automatique (.ffk-toc)
   ========================================================================= */
.ffk-toc {
	background: #F4F7FD;
	border: 1px solid #E3EAF7;
	border-radius: 18px;
	padding: 20px 22px;
	margin: 0 0 2.2em;
	max-width: 68ch;
}
.ffk-toc-t {
	display: flex; align-items: center; gap: 9px;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 13px; letter-spacing: .08em;
	text-transform: uppercase; color: #16264F;
	margin: 0 0 12px;
}
.ffk-toc-ic { color: #1C3C8C; display: inline-flex; }
.ffk-toc-l {
	margin: 0; padding: 0 0 0 1.3em;
	display: flex; flex-direction: column; gap: 7px;
}
.ffk-toc-l li::marker { color: #9DB0E0; font-weight: 700; font-size: 13px; }
.ffk-toc-l a {
	color: #1C3C8C; text-decoration: none; font-weight: 600; font-size: 15px;
	border-bottom: 1.5px solid transparent; padding-bottom: 1px;
}
.ffk-toc-l a:hover { border-bottom-color: #1C3C8C; }
.ffk-toc-l a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 3px; }

@media (prefers-reduced-motion: reduce) {
	.ffk-prose a { transition: none !important; }
}

/* =========================================================================
   FFK — Pages de contenu : mise en page « document » (.ffk-doc)
   Même grammaire que les actualités : colonne de lecture + sommaire collant.
   ========================================================================= */
.ffk-doc { margin-top: clamp(4px, 1vw, 12px) !important; padding: 0 clamp(16px, 4vw, 40px); box-sizing: border-box; }
.ffk-doc-body { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(28px, 4vw, 64px); align-items: start; }
.ffk-doc-body.no-toc { grid-template-columns: minmax(0, 860px); justify-content: center; }
.ffk-doc-main { min-width: 0; }
.ffk-doc-toc-col { position: sticky; top: 96px; max-height: calc(100vh - 120px); overflow-y: auto; }
.ffk-doc .ffk-art-toc-nav a.is-active { color: #1C3C8C; border-left-color: #E4174B; }
.ffk-doc .ffk-art-toc-nav a { line-height: 1.35; }

/* Le contenu flexible se range dans la colonne, sans largeur propre. */
.ffk-doc-main > .ffk-fx { max-width: none; padding: 0; margin: 0; }
.ffk-doc-main .ffk-fx-b:first-child { margin-top: 0; }

/* Une seule accroche par page : le premier paragraphe de la colonne. */
.ffk-doc-main .ffk-prose > p:first-child { font-size: inherit; line-height: inherit; color: inherit; font-weight: inherit; }
.ffk-doc-main > p:first-child { font-size: 19px; line-height: 1.65; color: #101A33; font-weight: 600; }
.ffk-doc-main p, .ffk-doc-main li { text-align: left; }
.ffk-doc-main p[style*="center"] { text-align: center; }
.ffk-doc-main > p, .ffk-doc-main .ffk-prose > p, .ffk-doc-main .ffk-prose > ul, .ffk-doc-main .ffk-prose > ol { max-width: 72ch; }

/* Titres : les h2 du flexible et de l'éditeur partagent le même filet. */
.ffk-doc-main .ffk-fx-h2 { position: relative; padding-top: 18px; font-size: clamp(23px, 2.4vw, 29px); margin: 2.2em 0 .7em; }
.ffk-doc-main .ffk-fx-h2::before { content: ""; position: absolute; top: 0; left: 0; width: 46px; height: 4px; border-radius: 100px; background: linear-gradient(90deg, #1C3C8C, #E4174B); }
.ffk-doc-main .ffk-fx-b:first-child .ffk-fx-h2, .ffk-doc-main > h2:first-child { margin-top: .2em; }
.ffk-doc-main h3 { color: #1C3C8C; }

/* Liens isolés et anciens boutons → boutons de la charte. */
.ffk-doc-main .ffk-doc-cta { margin: 1.1em 0 1.6em; text-align: left !important; }
.ffk-doc-main a.ffk-doc-btn {
	display: inline-flex; align-items: center; gap: 8px;
	background: #fff; color: #1C3C8C; border: 1.5px solid #CFDAF0; border-radius: 100px;
	padding: 10px 20px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14.5px; line-height: 1.2;
	text-decoration: none; transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.ffk-doc-main a.ffk-doc-btn:hover { background: #1C3C8C; border-color: #1C3C8C; color: #fff; transform: translateY(-1px); }
.ffk-doc-main a.ffk-doc-btn:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }

/* Blocs texte séparés par des filets : on les rend en cartes aérées. */
.ffk-doc-main hr { margin: 2em 0; }

/* Images de contenu : jamais plus larges que la colonne, centrées si isolées. */
.ffk-doc-main p > img:only-child, .ffk-doc-main p > a:only-child > img { display: block; margin: 0 auto; }
.ffk-doc-main blockquote:has(img) { text-align: center; border-left-width: 0; border-radius: 18px; }
.ffk-doc-main blockquote:has(img) img { max-width: min(100%, 360px); }

/* Trombinoscope et grilles : un peu plus d'air dans la colonne. */
.ffk-doc-main .ffk-fx-trombi-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.ffk-doc-main .ffk-fx-trombi-d { overflow-wrap: anywhere; }

/* Composants du flexible : la prose ne doit pas leur imposer puces ni soulignés. */
.ffk-doc-main .ffk-fx-docs-l > li, .ffk-doc-main .ffk-fx-gal-grid > *, .ffk-doc-main .ffk-actus-grid li { padding-left: 0; margin-bottom: 0; }
.ffk-doc-main .ffk-fx-docs-l > li::before { content: none; }
.ffk-doc-main .ffk-actus-card, .ffk-doc-main .ffk-actus-card *, .ffk-doc-main .ffk-fx-doc, .ffk-doc-main .ffk-fx-doc *, .ffk-doc-main .ffk-fx-gal-i { text-decoration: none; }

@media (max-width: 960px) {
	.ffk-doc-main > p:first-child { font-size: 17px; line-height: 1.6; }
	.ffk-doc-body { grid-template-columns: minmax(0, 1fr); }
	.ffk-doc-toc-col { position: static; order: -1; max-height: none; }
	.ffk-doc .ffk-art-toc-nav { flex-direction: row; flex-wrap: wrap; gap: 8px; }
	.ffk-doc .ffk-art-toc-nav a { border: 1px solid #E2E8F3; border-radius: 100px; padding: 6px 12px; font-size: 13px; background: #F8FAFE; }
	.ffk-doc .ffk-art-toc-nav .ffk-toc-h3 { padding-left: 12px; }
}
@media (prefers-reduced-motion: reduce) { .ffk-doc-main a.ffk-doc-btn { transition: none; } }

/* Les titres de section du contenu flexible suivent la même règle que les h2
   de prose : même filet coloré, même rythme — une seule grammaire visuelle. */
.ffk-fx-h2 {
	position: relative;
	padding-top: 18px;
	margin-top: 2.2em;
	scroll-margin-top: 96px;
}
.ffk-fx-h2::before {
	content: "";
	position: absolute; top: 0; left: 0;
	width: 46px; height: 4px; border-radius: 100px;
	background: linear-gradient(90deg, #1C3C8C, #E4174B);
}
.ffk-fx-b:first-child .ffk-fx-h2 { margin-top: .4em; }

/* =========================================================================
   FFK — Espace presse
   ========================================================================= */
.ffk-presse { max-width: 1120px; margin: 0 auto; padding: clamp(26px, 3vw, 44px) clamp(16px, 4vw, 40px) 0; }
.ffk-presse-intro {
	display: grid; gap: clamp(20px, 2.6vw, 34px);
	grid-template-columns: 1fr minmax(260px, 340px);
	align-items: start; margin-bottom: clamp(28px, 3.4vw, 46px);
}
@media (max-width: 860px) { .ffk-presse-intro { grid-template-columns: 1fr; } }
.ffk-presse-intro-txt > p { max-width: 62ch; }

.ffk-presse-contact {
	background: linear-gradient(150deg, #1C3C8C, #101A33);
	border-radius: 20px; padding: 24px; color: #fff;
	box-shadow: 0 30px 60px -34px rgba(16,30,90,.7);
}
.ffk-presse-contact-t {
	font-weight: 800; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase;
	color: #5EE0C0; margin: 0 0 10px;
}
.ffk-presse-contact-d { font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.92); margin: 0; }
.ffk-presse-contact-d a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
.ffk-presse-btn {
	display: inline-block; margin-top: 14px; background: #fff; color: #101A33;
	font-weight: 700; font-size: 14px; padding: 11px 20px; border-radius: 100px; text-decoration: none;
}
.ffk-presse-btn:hover { background: #EAF0FF; }
.ffk-presse-btn:focus-visible, .ffk-presse-contact-d a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }
.ffk-presse-admin {
	margin: 14px 0 0; padding: 10px 12px; border-radius: 10px;
	background: rgba(255,209,92,.16); border: 1px dashed rgba(255,209,92,.6);
	font-size: 12.5px; line-height: 1.5; color: #FFE9AE;
}
.ffk-presse-admin code { font-size: 11.5px; color: #fff; }

.ffk-presse-sec { margin-bottom: clamp(30px, 3.6vw, 50px); }
.ffk-presse-res { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.ffk-presse-r {
	display: flex; gap: 14px; align-items: flex-start; text-decoration: none;
	background: #fff; border: 1px solid #EAEFF8; border-radius: 16px; padding: 16px;
	transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.ffk-presse-r:hover {
	border-color: #C9D8F5; transform: translateY(-2px);
	box-shadow: 0 20px 40px -26px rgba(20,40,100,.5);
}
.ffk-presse-r:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-presse-r-ic {
	width: 40px; height: 40px; border-radius: 12px; flex: 0 0 auto; color: #1C3C8C;
	background: #F1F5FC; display: flex; align-items: center; justify-content: center;
}
.ffk-presse-r-t {
	display: block; font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 15.5px; color: #101A33;
}
.ffk-presse-r-d { display: block; font-size: 13px; line-height: 1.5; color: #5E6880; margin-top: 4px; }

@media (prefers-reduced-motion: reduce) { .ffk-presse-r { transition: none !important; } }

/* =========================================================================
   FFK — Classements internationaux (données WikiKarate)
   ========================================================================= */
.ffk-cl { max-width: 1000px; margin: 0 auto; padding: clamp(26px, 3vw, 44px) clamp(16px, 4vw, 40px) 0; }
.ffk-cl-intro > p { max-width: 66ch; }

.ffk-cl-stats {
	display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	margin: clamp(20px, 2.6vw, 32px) 0;
}
.ffk-cl-stat {
	background: #F4F7FD; border: 1px solid #E3EAF7; border-radius: 14px;
	padding: 16px; text-align: center;
}
.ffk-cl-stat-n {
	display: block; font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: clamp(20px, 2.2vw, 26px); color: #1C3C8C; line-height: 1;
}
.ffk-cl-stat-l {
	display: block; font-size: 12px; font-weight: 600; color: #5E6880;
	margin-top: 5px; text-transform: uppercase; letter-spacing: .05em;
}

.ffk-cl-sec { margin-bottom: clamp(30px, 3.6vw, 48px); }
.ffk-cl-sub { color: #5E6880; font-size: 14.5px; margin: -6px 0 16px; max-width: 62ch; }

/* Tableau des médailles */
.ffk-cl-table { width: 100%; border-collapse: collapse; background: #fff; font-size: 15px; }
.ffk-cl-caption {
	caption-side: top; text-align: left; font-size: 13px; color: #5E6880;
	padding: 0 0 10px;
}
.ffk-cl-table thead th {
	background: #16264F; color: #fff;
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 12.5px; letter-spacing: .04em;
	text-align: center; padding: 11px 10px;
}
.ffk-cl-table thead th:nth-child(2) { text-align: left; }
.ffk-cl-table thead abbr { text-decoration: none; border: 0; }
.ffk-cl-table td { padding: 10px; border-top: 1px solid #EEF2F9; text-align: center; }
.ffk-cl-table tbody tr:nth-child(even) { background: #FAFCFF; }
.ffk-cl-rank { font-weight: 700; color: #5E6880; width: 56px; }
.ffk-cl-pays { text-align: left; font-weight: 600; color: #101A33; }
.ffk-cl-code {
	display: inline-block; min-width: 42px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 12px; font-weight: 700; color: #5E6880;
}
.ffk-cl-or { font-weight: 700; color: #8A6200; }
.ffk-cl-total { font-weight: 700; color: #101A33; }
.ffk-cl-vous {
	font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
	background: #E4174B; color: #fff; padding: 2px 7px; border-radius: 100px; margin-left: 4px;
}
.ffk-cl-table tr.is-fra { background: #EEF3FF !important; box-shadow: inset 3px 0 0 #1C3C8C; }
.ffk-cl-table tr.is-fra .ffk-cl-pays { color: #1C3C8C; font-weight: 700; }

/* Hall of Fame */
.ffk-cl-hof { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.ffk-cl-ath {
	background: #fff; border: 1px solid #EAEFF8; border-radius: 16px; padding: 16px;
	display: flex; flex-direction: column; gap: 6px;
}
.ffk-cl-ath-n {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 16px; color: #101A33; line-height: 1.2;
}
.ffk-cl-ath-d {
	font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #1C3C8C;
}
.ffk-cl-ath-m { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.ffk-cl-m {
	font-size: 12px; font-weight: 600; color: #5E6880;
	display: inline-flex; align-items: center; gap: 4px;
}
.ffk-cl-m b { font-size: 14px; font-weight: 800; }
.ffk-cl-m--or b { color: #C89200; }
.ffk-cl-m--ar b { color: #8E97A6; }
.ffk-cl-m--br b { color: #B0713F; }

.ffk-cl-src { font-size: 13px; color: #5E6880; margin-top: 8px; }
/* Rouge FFK assombri : sur le gris #EEF1F7 de la section, #E4174B ne donne que 4,1:1. */
.ffk-cl-src a { color: #D61646; }
.ffk-cl-vide { color: #5E6880; }
.ffk-cl-panne {
	background: #FFF7E6; border: 1px solid #F5D98B; border-radius: 14px;
	padding: 16px 18px; color: #6B4E00;
}
.ffk-cl-panne p { margin: 0; }
.ffk-cl-admin {
	margin-top: 10px !important; font-size: 12.5px; color: #8A5B00;
	border-top: 1px dashed #F5D98B; padding-top: 8px;
}

/* ---- Top 100 ---- */
.ffk-cl-top td { text-align: center; }
.ffk-cl-top .ffk-cl-pays, .ffk-cl-top .ffk-cl-disc { text-align: left; }
.ffk-cl-ath-nom { color: #101A33; }
.ffk-cl-ath-nom strong { font-weight: 700; }
.ffk-cl-disc { font-size: 13px; color: #1C3C8C; font-weight: 600; }
.ffk-cl-nc { color: #A9B3C6; }

/* ---- Familles de compétitions ---- */
.ffk-cl-fam { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.ffk-cl-fam-b {
	display: inline-block; padding: 9px 16px; border-radius: 100px;
	border: 1px solid #DCE4F2; background: #fff; color: #1C3C8C;
	font-weight: 700; font-size: 13.5px; text-decoration: none;
	transition: background .15s ease, border-color .15s ease;
}
.ffk-cl-fam-b:hover { background: #F1F5FC; border-color: #C9D8F5; }
.ffk-cl-fam-b.is-on { background: #1C3C8C; border-color: #1C3C8C; color: #fff; }
.ffk-cl-fam-b:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }

/* ---- Liste des compétitions ---- */
.ffk-cl-comps { display: flex; flex-direction: column; gap: 8px; }
.ffk-cl-comp {
	display: flex; align-items: center; gap: 14px; text-decoration: none;
	background: #fff; border: 1px solid #EAEFF8; border-radius: 14px; padding: 13px 16px;
	transition: border-color .15s ease, transform .15s ease;
}
.ffk-cl-comp:hover { border-color: #1C3C8C; transform: translateX(3px); }
.ffk-cl-comp:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-cl-comp-an {
	font-family: "Space Grotesk", system-ui, sans-serif; font-weight: 700;
	font-size: 17px; color: #1C3C8C; flex: 0 0 52px;
}
.ffk-cl-comp-b { flex: 1; min-width: 0; }
.ffk-cl-comp-n { display: block; font-weight: 600; font-size: 14.5px; color: #101A33; }
.ffk-cl-comp-l { display: block; font-size: 12.5px; color: #5E6880; margin-top: 2px; }
.ffk-cl-comp-fl { color: #9DB0E0; font-weight: 700; }

/* ---- Détail : podiums ---- */
.ffk-cl-retour {
	display: inline-block; font-weight: 700; font-size: 13.5px; color: #1C3C8C;
	text-decoration: none; margin-bottom: 12px;
}
.ffk-cl-retour:hover { text-decoration: underline; }
.ffk-cl-detail-t {
	font-family: "Space Grotesk", system-ui, sans-serif; font-weight: 700;
	font-size: clamp(19px, 2vw, 24px); color: #101A33; margin: 0;
}
.ffk-cl-detail-m { font-size: 13.5px; color: #5E6880; margin: 4px 0 18px; }
.ffk-cl-podiums { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); }
.ffk-cl-pod { background: #fff; border: 1px solid #EAEFF8; border-radius: 16px; padding: 15px; }
.ffk-cl-pod-t {
	font-family: "Space Grotesk", system-ui, sans-serif; font-weight: 700;
	font-size: 14px; color: #16264F; margin: 0 0 10px;
	padding-bottom: 8px; border-bottom: 1px solid #EEF2F9;
}
.ffk-cl-pod-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.ffk-cl-pod-l li {
	display: flex; align-items: center; gap: 9px; padding: 5px 7px;
	border-radius: 8px; font-size: 13.5px;
}
.ffk-cl-pod-l li.is-fra { background: #EEF3FF; box-shadow: inset 2px 0 0 #1C3C8C; }
.ffk-cl-pod-m {
	flex: 0 0 54px; font-size: 10.5px; font-weight: 800; letter-spacing: .04em;
	text-transform: uppercase; padding: 3px 7px; border-radius: 100px; text-align: center;
}
.ffk-cl-pod-m.ffk-cl-m--or { background: #FDF3D6; color: #8A6200; }
.ffk-cl-pod-m.ffk-cl-m--ar { background: #EEF0F4; color: #5C6675; }
.ffk-cl-pod-m.ffk-cl-m--br { background: #F8EBE1; color: #8C5A32; }
.ffk-cl-pod-n { flex: 1; font-weight: 600; color: #101A33; min-width: 0; }
.ffk-cl-pod-l li.is-fra .ffk-cl-pod-n { color: #1C3C8C; font-weight: 700; }
.ffk-cl-pod-p { font-size: 11.5px; color: #5E6880; white-space: nowrap; }

/* Classements — périmètre (tous les championnats / seniors), Bleus mis en avant (22/09/2026). */
.ffk-cl-per { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 14px; }
.ffk-cl-per-b {
	display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px;
	border: 1.5px solid #DCE4F3; background: #fff; color: #1C3C8C; font-size: 13px; font-weight: 600; text-decoration: none;
}
.ffk-cl-per-b:hover { background: #F1F5FC; border-color: #C9D8F5; }
.ffk-cl-per-b.is-on { background: #1C3C8C; border-color: #1C3C8C; color: #fff; }
.ffk-cl-per-b:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }
.ffk-cl-note { font-size: 13px; color: #5E6880; margin: 0 0 12px; }
.ffk-cl-drapeau {
	display: inline-block; width: 15px; height: 10px; border-radius: 2px; vertical-align: -1px; margin-right: 6px; flex: none;
	background: linear-gradient(90deg, #1C3C8C 0 33.3%, #fff 33.3% 66.6%, #D61646 66.6%); box-shadow: 0 0 0 1px rgba(0,0,0,.12);
}
.ffk-cl-bleus { background: #EEF3FF; border: 1.5px solid #C9D8F5; border-left: 5px solid #1C3C8C; border-radius: 16px; padding: 16px 18px; margin: 0 0 18px; }
.ffk-cl-bleus-t { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 8px; font-size: 17px; color: #1C3C8C; }
.ffk-cl-bleus-n { font-size: 12px; font-weight: 700; background: #1C3C8C; color: #fff; border-radius: 999px; padding: 2px 9px; }
.ffk-cl-bleus-c { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 10px; }
.ffk-cl-bleus-c .ffk-cl-pod-m { flex: none; white-space: nowrap; padding: 3px 10px; }
.ffk-cl-bleus-l { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.ffk-cl-bleus-l li { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 10px; padding: 7px 10px; }
.ffk-cl-bleus-l .ffk-cl-pod-n { color: #1C3C8C; font-weight: 700; }
.ffk-cl-bleus-vide { display: flex; align-items: center; margin: 0; color: #3D4A66; font-size: 14px; }
.ffk-cl-pod-l li.is-fra { background: #E3ECFF; box-shadow: inset 3px 0 0 #1C3C8C; }
.ffk-cl-pod-l li.is-fra .ffk-cl-pod-n { display: inline-flex; align-items: center; }
.ffk-cl-comp.has-fra { border-color: #C9D8F5; background: #F7F9FF; }
/* Médailles françaises dans la liste : pastilles sur une seule ligne chacune
   (la largeur fixe des pastilles de podium faisait passer « 1 argent » sur deux
   lignes), alignées après le drapeau, retour à la ligne entre pastilles seulement. */
.ffk-cl-comp-fra { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 6px; font-size: 12px; }
.ffk-cl-comp-fra .ffk-cl-drapeau { margin-right: 0; }
.ffk-cl-comp-fra .ffk-cl-pod-m { flex: none; white-space: nowrap; font-size: 10.5px; padding: 2px 9px; line-height: 1.6; }
.ffk-cl-comp-fra0 { color: #5E6880; } /* 5,6:1 sur blanc (#7A8499 : 3,7) */
.ffk-cl-fam-li { display: inline-flex; } /* pas de display: contents : Safari y perd le rôle */
/* Deux tableaux côte à côte (seniors / jeunes) et critères de sélection. */
.ffk-cl-deux { display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .ffk-cl-deux { grid-template-columns: 1fr 1fr; align-items: start; } }
.ffk-cl-h3 { margin: 0 0 10px; font-size: 18px; color: #1C3C8C; }
.ffk-cl-crit { margin: 12px 0 4px; font-size: 13px; color: #3D4A66; }
.ffk-cl-crit summary { cursor: pointer; font-weight: 600; color: #1C3C8C; }
.ffk-cl-crit summary:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }
.ffk-cl-crit ul { margin: 8px 0 0; padding-left: 18px; }
.ffk-cl-crit li + li { margin-top: 4px; }

@media (prefers-reduced-motion: reduce) {
	.ffk-cl-comp, .ffk-cl-fam-b { transition: none !important; }
}

/* =========================================================================
   FFK — Fiche club (mini-site)
   ========================================================================= */
.ffk-club { max-width: 1180px; margin: 0 auto; padding: clamp(22px, 3vw, 40px) clamp(16px, 4vw, 40px) 0; }
.ffk-club-hero { margin-bottom: clamp(22px, 2.6vw, 34px); }
.ffk-club-crumb {
	display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
	font-weight: 600; font-size: 12.5px; color: #5E6880; margin-bottom: 14px;
}
.ffk-club-crumb a { color: #1C3C8C; text-decoration: none; }
.ffk-club-crumb a:hover { text-decoration: underline; }
.ffk-club-crumb a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 4px; }
.ffk-club-titre {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: clamp(26px, 3.4vw, 42px); line-height: 1.05;
	letter-spacing: -.02em; color: #101A33; margin: 0;
}
.ffk-club-ville {
	display: inline-flex; align-items: center; gap: 7px;
	font-weight: 600; font-size: 14.5px; color: #1C3C8C; margin: 10px 0 0;
}

.ffk-club-grid { display: grid; gap: clamp(20px, 2.6vw, 34px); grid-template-columns: 1fr minmax(280px, 350px); align-items: start; }
@media (max-width: 880px) { .ffk-club-grid { grid-template-columns: 1fr; } }
.ffk-club-vide { color: #5E6880; font-style: italic; }

.ffk-club-card { background: #fff; border: 1px solid #EAEFF8; border-radius: 18px; padding: 20px; position: sticky; top: 100px; }
@media (max-width: 880px) { .ffk-club-card { position: static; } }
.ffk-club-card-t {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 13px; letter-spacing: .08em; text-transform: uppercase;
	color: #16264F; margin: 0 0 14px;
}
.ffk-club-infos { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.ffk-club-infos li { display: flex; gap: 11px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: #39424F; }
.ffk-club-i { color: #1C3C8C; flex: 0 0 auto; margin-top: 1px; }
.ffk-club-infos a { color: #1C3C8C; font-weight: 600; text-decoration: none; }
.ffk-club-infos a:hover { text-decoration: underline; }
.ffk-club-infos a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 4px; }

.ffk-club-map { height: 220px; border-radius: 14px; overflow: hidden; border: 1px solid #EAEFF8; background: #EEF2F9; }
.ffk-club-pin span {
	display: block; width: 20px; height: 20px; margin: 3px;
	background: #E4174B; border: 3px solid #fff; border-radius: 50% 50% 50% 0;
	transform: rotate(-45deg); box-shadow: 0 4px 10px rgba(0,0,0,.35);
}
.ffk-club-itineraire {
	display: inline-block; margin-top: 12px; font-weight: 700; font-size: 13.5px;
	color: #1C3C8C; text-decoration: none;
}
.ffk-club-itineraire:hover { text-decoration: underline; }
.ffk-club-itineraire:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; border-radius: 4px; }
.ffk-club-retour { display: inline-block; margin-top: 16px; font-weight: 700; font-size: 13.5px; color: #1C3C8C; text-decoration: none; }
.ffk-club-retour:hover { text-decoration: underline; }

/* =========================================================================
   FFK — Porter la voix des régions
   ========================================================================= */
.ffk-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

.ffk-vr { max-width: 720px; margin: 0 auto; padding: clamp(24px, 3vw, 40px) clamp(16px, 4vw, 32px) 0; }
.ffk-vr-club {
	display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;
	background: #F4F7FD; border: 1px solid #E3EAF7; border-radius: 14px;
	padding: 14px 16px; margin-bottom: 22px;
}
.ffk-vr-club-l { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #5E6880; }
.ffk-vr-club strong { font-family: "Space Grotesk", system-ui, sans-serif; font-size: 16px; color: #101A33; }

.ffk-vr-msg { border-radius: 14px; padding: 16px 18px; margin-bottom: 20px; }
.ffk-vr-msg p { margin: 0 0 8px; }
.ffk-vr-msg p:last-child { margin-bottom: 0; }
.ffk-vr-msg--ok { background: #E7F8F3; border: 1px solid #A9E3D2; color: #0B5F4A; }
.ffk-vr-msg--err { background: #FDECEF; border: 1px solid #F3B9C5; color: #A0102F; }
.ffk-vr-msg--info { background: #F1F5FC; border: 1px solid #D6E1F6; color: #16264F; }
.ffk-vr-msg a { color: inherit; font-weight: 700; }

.ffk-vr-fs { border: 0; padding: 0; margin: 0 0 20px; }
.ffk-vr-fs legend {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase;
	color: #16264F; padding: 0; margin-bottom: 10px;
}
.ffk-vr-radios { display: flex; gap: 8px; flex-wrap: wrap; }
.ffk-vr-radio {
	display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
	border: 1px solid #DCE4F2; background: #fff; border-radius: 100px;
	padding: 9px 16px; font-weight: 600; font-size: 14px; color: #101A33;
	transition: border-color .15s ease, background .15s ease;
}
.ffk-vr-radio:hover { border-color: #C9D8F5; background: #F8FAFF; }
.ffk-vr-radio:has(input:checked) { border-color: #1C3C8C; background: #EEF3FF; color: #1C3C8C; }
.ffk-vr-radio:has(input:focus-visible) { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-vr-radio input { accent-color: #1C3C8C; }

.ffk-vr-champ { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.ffk-vr-champ label { font-weight: 700; font-size: 13.5px; color: #16264F; }
.ffk-vr-req { color: #E4174B; margin-left: 2px; }
.ffk-vr-champ input, .ffk-vr-champ textarea {
	border: 1px solid #DCE4F2; border-radius: 12px; padding: 11px 13px;
	font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 15px; color: #101A33;
	background: #fff; transition: border-color .15s ease, box-shadow .15s ease;
}
.ffk-vr-champ input:focus, .ffk-vr-champ textarea:focus {
	border-color: #1C3C8C; box-shadow: 0 0 0 3px rgba(94,224,192,.45); outline: none;
}
.ffk-vr-note { font-size: 13px; color: #5E6880; background: #FAFCFF; border-left: 3px solid #9DB0E0; padding: 10px 12px; border-radius: 0 8px 8px 0; }
.ffk-vr-submit {
	background: linear-gradient(135deg, #1C3C8C, #E4174B); color: #fff; border: 0;
	font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-weight: 800; font-size: 15.5px;
	padding: 15px 30px; border-radius: 100px; cursor: pointer;
	box-shadow: 0 16px 34px -16px rgba(37,99,214,.8);
	transition: transform .15s ease;
}
.ffk-vr-submit:hover { transform: translateY(-2px); }
.ffk-vr-submit:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }

/* Rendez-vous du club, sur le mini-site */
.ffk-club-evts { margin-top: clamp(26px, 3vw, 40px); }
.ffk-club-evts-l { display: flex; flex-direction: column; gap: 12px; }
.ffk-club-evt { background: #fff; border: 1px solid #EAEFF8; border-radius: 16px; padding: 16px 18px; }
.ffk-club-evt-type {
	display: inline-block; font-size: 10.5px; font-weight: 800; letter-spacing: .06em;
	text-transform: uppercase; padding: 3px 9px; border-radius: 100px; margin-bottom: 8px;
	background: #EEF3FF; color: #1C3C8C;
}
.ffk-club-evt-type--open { background: #FDE9EF; color: #C01040; }
.ffk-club-evt-type--gala { background: #FFF4DB; color: #8A5B00; }
.ffk-club-evt-t { font-family: "Space Grotesk", system-ui, sans-serif; font-weight: 700; font-size: 17px; color: #101A33; margin: 0 0 4px; }
.ffk-club-evt-m { font-weight: 700; font-size: 13.5px; color: #1C3C8C; margin: 0 0 6px; }
.ffk-club-evt-l, .ffk-club-evt-d, .ffk-club-evt-x { font-size: 13.5px; color: #5E6880; margin: 0 0 5px; line-height: 1.5; }
.ffk-club-evt-x strong { color: #16264F; }

@media (prefers-reduced-motion: reduce) { .ffk-vr-submit, .ffk-vr-radio { transition: none !important; } }

/* =========================================================================
   FFK — Activation de l'espace club (vérification du numéro)
   ========================================================================= */
.ffk-ci { max-width: 560px; margin: 0 auto; padding: clamp(24px, 3vw, 40px) clamp(16px, 4vw, 32px) 0; }
.ffk-ci-intro { font-size: 15.5px; line-height: 1.6; color: #39424F; margin: 0 0 22px; }
.ffk-ci-hint { font-size: 12.5px; color: #5E6880; }
.ffk-ci-aide { font-size: 13.5px; color: #5E6880; margin-top: 14px; }
.ffk-ci-aide a, .ffk-ci-intro a { color: #1C3C8C; font-weight: 700; }

/* Club identifié */
.ffk-ci-trouve {
	display: flex; align-items: center; gap: 14px;
	background: #E7F8F3; border: 1px solid #A9E3D2; border-radius: 16px;
	padding: 16px 18px; margin-bottom: 20px;
}
.ffk-ci-check {
	width: 32px; height: 32px; border-radius: 50%; flex: 0 0 auto;
	background: #0B9E7A; color: #fff; font-weight: 800; font-size: 17px;
	display: flex; align-items: center; justify-content: center;
}
.ffk-ci-nom {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-weight: 700; font-size: 16.5px; color: #0B5F4A; margin: 0;
}
.ffk-ci-ville { font-size: 13px; color: #0B7A5F; margin: 2px 0 0; }
.ffk-ci-txt { font-size: 14.5px; line-height: 1.6; color: #39424F; margin: 0 0 10px; }
.ffk-ci-mail {
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 16px; font-weight: 700; color: #101A33;
	background: #F4F7FD; border: 1px dashed #C9D8F5; border-radius: 12px;
	padding: 13px 16px; margin: 0 0 6px; text-align: center;
	word-break: break-all;
}

/* ---- Voix des régions : portée et attestation ---- */
.ffk-vr-legende { font-size: 13px; color: #5E6880; margin: 0 0 10px; }
.ffk-vr-portees { display: grid; gap: 8px; }
.ffk-vr-portee {
	display: block; cursor: pointer; position: relative;
	border: 1px solid #DCE4F2; background: #fff; border-radius: 14px;
	padding: 13px 15px 13px 42px;
	transition: border-color .15s ease, background .15s ease;
}
.ffk-vr-portee input { position: absolute; left: 15px; top: 16px; accent-color: #1C3C8C; }
.ffk-vr-portee:hover { border-color: #C9D8F5; background: #F8FAFF; }
.ffk-vr-portee:has(input:checked) { border-color: #1C3C8C; background: #EEF3FF; }
.ffk-vr-portee:has(input:focus-visible) { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-vr-portee.is-local:has(input:checked) { border-color: #FFB020; background: #FFF7E6; }
.ffk-vr-portee-t { display: block; font-weight: 700; font-size: 14.5px; color: #101A33; }
.ffk-vr-portee-d { display: block; font-size: 12.5px; color: #5E6880; margin-top: 2px; }

.ffk-vr-attest {
	display: flex; gap: 11px; align-items: flex-start; cursor: pointer;
	background: #FFF7E6; border: 1px solid #F5D98B; border-radius: 14px;
	padding: 14px 16px; margin-top: 12px;
	font-size: 13px; line-height: 1.55; color: #6B4E00;
}
.ffk-vr-attest input { margin-top: 3px; flex: 0 0 auto; accent-color: #8A5B00; }
.ffk-vr-attest:has(input:focus-visible) { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-vr-champ input[type=file] {
	border: 1px dashed #C9D8F5; border-radius: 12px; padding: 12px; background: #FAFCFF;
}

/* Aperçus des photos : le club voit ce qu'il envoie, et ce qui est refusé. */
.ffk-vr-apercus {
	list-style: none; margin: 14px 0 0; padding: 0;
	display: grid; gap: 10px;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
.ffk-vr-apercu {
	display: flex; flex-direction: column; gap: 6px;
	border: 1px solid #E3EAF7; border-radius: 12px; padding: 8px; background: #fff;
}
.ffk-vr-apercu img {
	width: 100%; aspect-ratio: 16 / 10; object-fit: cover;
	border-radius: 8px; background: #F2F5FB; display: block;
}
.ffk-vr-apercu-nom {
	font-size: 12px; font-weight: 600; color: var(--wp--preset--color--navy, #0B1E3F);
	overflow-wrap: anywhere; line-height: 1.35;
}
.ffk-vr-apercu-info { font-size: 11px; color: #5A6B85; line-height: 1.4; }
.ffk-vr-apercu.est-refuse { border-color: #E5A3A3; background: #FFF6F6; }
.ffk-vr-apercu.est-refuse img { opacity: .45; }
.ffk-vr-apercu.est-refuse .ffk-vr-apercu-info { color: #A32020; font-weight: 600; }

/* -------------------------------------------------------------------------
   Brève : barre (titre + « Lire ») + modale (texte complet)
   inc/ffk-breves.php. Le texte peut faire 1 000+ caractères : la barre n'en
   montre que le titre, la modale porte le reste.
   ---------------------------------------------------------------------- */
.ffk-breve {
	display: inline-flex; align-items: center; gap: 9px;
	max-width: 100%; min-width: 0;
}
.ffk-breve[hidden] { display: none; }

.ffk-breve-tag {
	flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px;
	font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase;
	padding: 2px 7px; border-radius: 20px;
	background: #C2185B; color: #fff;
}
.ffk-breve-titre-barre {
	min-width: 0; font-size: 12.5px; font-weight: 700; line-height: 1.3; color: #fff;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ffk-breve-lire {
	flex: 0 0 auto; border: 0; background: none; cursor: pointer;
	font: 700 12px "Space Grotesk", system-ui, sans-serif;
	color: #fff; text-decoration: underline; text-underline-offset: 3px;
	padding: 2px 4px; border-radius: 5px;
}
.ffk-breve-lire:hover { opacity: .85; }
.ffk-breve-lire:focus-visible { outline: 2px solid #5EE0C0; outline-offset: 2px; }
.ffk-breve-close {
	flex: 0 0 auto; display: grid; place-items: center;
	width: 22px; height: 22px; border: 0; border-radius: 6px;
	background: rgba(255, 255, 255, .14); color: #fff; cursor: pointer;
	transition: background .15s ease;
}
.ffk-breve-close:hover { background: rgba(255, 255, 255, .3); }
.ffk-breve-close:focus-visible { outline: 2px solid #5EE0C0; outline-offset: 2px; }

/* Modale */
.ffk-breve-modal[hidden] { display: none; }
.ffk-breve-modal {
	position: fixed; inset: 0; z-index: 9999;
	display: grid; place-items: center; padding: 20px;
}
.ffk-breve-modal-overlay {
	position: absolute; inset: 0;
	background: rgba(11, 30, 63, .55); backdrop-filter: blur(2px);
}
.ffk-breve-modal-box {
	position: relative; z-index: 1;
	width: min(560px, 100%); max-height: 85vh; overflow-y: auto;
	background: #fff; border-radius: 18px;
	padding: 28px clamp(20px, 4vw, 34px) 26px;
	box-shadow: 0 30px 70px -20px rgba(11, 30, 63, .5);
}
.ffk-breve-modal-x {
	position: absolute; top: 14px; right: 14px;
	display: grid; place-items: center; width: 36px; height: 36px;
	border: 0; border-radius: 10px; background: #F1F5FC; color: #1C3C8C; cursor: pointer;
	transition: background .15s ease;
}
.ffk-breve-modal-x:hover { background: #E3EAF7; }
.ffk-breve-modal-x:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-breve-modal-titre {
	font-family: "Space Grotesk", system-ui, sans-serif;
	font-size: clamp(20px, 3vw, 26px); font-weight: 800; line-height: 1.2;
	color: var(--wp--preset--color--navy, #0B1E3F);
	margin: 0 40px 16px 0;
}
.ffk-breve-modal-corps {
	font-size: 15px; line-height: 1.6; color: #2A3852;
}
.ffk-breve-modal-corps p, .ffk-breve-modal-corps ul, .ffk-breve-modal-corps ol { margin: 0 0 12px; }
.ffk-breve-modal-corps ul, .ffk-breve-modal-corps ol { padding-left: 20px; }
.ffk-breve-modal-corps a { color: #1C3C8C; font-weight: 600; text-underline-offset: 3px; }
.ffk-breve-modal-ok {
	margin-top: 20px;
	border: 0; border-radius: 12px; cursor: pointer;
	background: #C2185B; color: #fff;
	font: 700 14px "Space Grotesk", system-ui, sans-serif;
	padding: 12px 26px;
}
.ffk-breve-modal-ok:hover { background: #A3134D; }
.ffk-breve-modal-ok:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }

/* Lien « Autres alertes » (bandeau) et « Toutes les alertes » (modale) */
.ffk-breve-autres {
	flex: 0 0 auto; font: 700 12px "Space Grotesk", system-ui, sans-serif;
	color: rgba(255, 255, 255, .88); text-decoration: none;
	padding: 2px 8px; border-radius: 20px; border: 1px solid rgba(255, 255, 255, .4);
	white-space: nowrap;
}
.ffk-breve-autres:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.ffk-breve-autres:focus-visible { outline: 2px solid #5EE0C0; outline-offset: 2px; }
.ffk-breve-autres-court { display: none; }
.ffk-breve-modal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 20px; }
.ffk-breve-modal-actions .ffk-breve-modal-ok { margin-top: 0; }
.ffk-breve-modal-toutes { font: 700 14px "Space Grotesk", system-ui, sans-serif; color: #1C3C8C; text-decoration: underline; text-underline-offset: 3px; }
.ffk-breve-modal-toutes:hover { color: #C2185B; }

@media (max-width: 720px) {
	.ffk-breve-tag { display: none; }
	.ffk-breve-autres-long { display: none; }
	.ffk-breve-autres-court { display: inline; }
}
@media (prefers-reduced-motion: reduce) {
	.ffk-breve-close, .ffk-breve-modal-x, .ffk-breve-modal-ok { transition: none; }
	.ffk-breve-modal-overlay { backdrop-filter: none; }
}

/* Liens de saison du calendrier (chargement serveur par ?saison=YYYY).
   Reprend l'aspect des anciens boutons .ffk-cal-season. */
.ffk-cal-season-link {
	display: inline-block; text-decoration: none;
	padding: 7px 14px; border-radius: 10px;
	border: 1px solid #DCE4F2; background: #fff;
	font: 600 13px "Space Grotesk", system-ui, sans-serif; color: #1C3C8C;
	transition: background .15s ease, border-color .15s ease;
}
.ffk-cal-season-link:hover { background: #F1F5FC; border-color: #C9D8F5; }
.ffk-cal-season-link.is-active { background: #1C3C8C; border-color: #1C3C8C; color: #fff; }
.ffk-cal-season-link:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-cal-saison-active { font-size: 13px; color: rgba(255,255,255,.85); margin: 10px 0 0; }
.ffk-cal-saison-active strong { color: #fff; }

/* Page Actualités — barre de filtres + chargement progressif */
.ffk-actus-archive .ffk-actus-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 16px; }
.ffk-actus-search { display: flex; align-items: center; flex: 1 1 280px; min-width: 220px; background: #EEF2FA; border: 1px solid #E2E8F3; border-radius: 100px; padding: 2px 4px 2px 16px; }
.ffk-actus-search:focus-within { border-color: #1C3C8C; }
.ffk-actus-s { flex: 1; border: 0; background: transparent; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; color: #1C2440; padding: 9px 6px; outline: none; }
.ffk-actus-s-btn { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: #1C3C8C; color: #fff; cursor: pointer; flex: 0 0 auto; }
.ffk-actus-s-btn:hover { background: #E4174B; }
.ffk-actus-year-wrap { flex: 0 0 auto; }
.ffk-actus-year { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 13px; color: #1C3C8C; background: #EEF2FA; border: 1px solid #E2E8F3; border-radius: 100px; padding: 10px 16px; cursor: pointer; }
.ffk-actus-year:focus { outline: none; border-color: #1C3C8C; }
.ffk-actus-archive .ffk-actus-filters { margin-bottom: 12px; }
.ffk-actus-filter-sep { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #666E7C; margin: 0 2px 0 8px; }
.ffk-actus-count { margin: 0 0 18px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; color: #666E7C; }
.ffk-actus-empty { margin: 24px 0; font-family: 'Plus Jakarta Sans', sans-serif; color: #6A748A; }
.ffk-actus-loadwrap { display: flex; justify-content: center; margin-top: 32px; }
.ffk-actus-load { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: 0; border-radius: 100px; padding: 14px 34px; cursor: pointer; transition: transform .12s ease, opacity .12s ease; }
.ffk-actus-load:hover { transform: translateY(-1px); }
.ffk-actus-load:disabled { opacity: .6; cursor: default; transform: none; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Espace presse — communiqués & dossiers médias */
.ffk-com-card { position: relative; display: flex; flex-direction: column; }
.ffk-com-card-lnk { flex: 1; }
.ffk-com-card-dl { display: inline-flex; align-items: center; gap: 7px; margin-top: 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12.5px; color: #1C3C8C; background: #EEF2FA; border-radius: 100px; padding: 8px 14px; text-decoration: none; align-self: flex-start; transition: background .15s ease, color .15s ease; }
.ffk-com-card-dl:hover { background: #1C3C8C; color: #fff; }
.ffk-com-card-dl span { font-weight: 500; opacity: .8; }
/* Fiche communiqué */
.ffk-com { max-width: 760px; margin: 0 auto; }
.ffk-com-crumb { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; color: #666E7C; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 18px; }
.ffk-com-crumb a { color: #1C3C8C; text-decoration: none; }
.ffk-com-crumb a:hover { text-decoration: underline; }
.ffk-com-type { display: inline-flex; align-items: center; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: #E4174B; padding: 6px 13px; border-radius: 100px; }
.ffk-com-title { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 34px; line-height: 1.15; color: #1C2440; margin: 14px 0 6px; }
.ffk-com-date { font-family: 'Plus Jakarta Sans', sans-serif; color: #666E7C; margin: 0 0 20px; }
.ffk-com-dl { display: inline-flex; align-items: center; gap: 9px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border-radius: 100px; padding: 13px 26px; text-decoration: none; transition: transform .12s ease; }
.ffk-com-dl:hover { transform: translateY(-1px); }
.ffk-com-dl-meta { font-weight: 500; opacity: .85; }
.ffk-com-img { display: block; width: 100%; height: auto; border-radius: 16px; margin: 26px 0; }
.ffk-com-body { margin-top: 22px; }

/* Espace partenaires / sponsors */
.ffk-part-intro { max-width: 760px; margin: 0 auto 34px; text-align: center; }
.ffk-part-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.ffk-part-card { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 12px; background: #fff; border: 1px solid #E9EDF5; border-radius: 20px; padding: 34px 24px; text-decoration: none; color: #1C2440; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
a.ffk-part-card:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(28,60,140,.12); border-color: #C9D5EC; }
.ffk-part-card-media { display: flex; align-items: center; justify-content: center; width: 100%; height: 110px; }
.ffk-part-logo { max-width: 78%; max-height: 100px; width: auto; height: auto; object-fit: contain; }
.ffk-part-noimg { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 26px; color: #1C3C8C; }
.ffk-part-card-name { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 17px; }
.ffk-part-card-desc { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; color: #6A748A; }
.ffk-part-card-link { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13.5px; color: #E4174B; margin-top: auto; }
.ffk-part-cta { margin-top: 40px; }
.ffk-part-cta-in { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; background: linear-gradient(135deg,#1C3C8C,#E4174B); border-radius: 24px; padding: 34px 40px; color: #fff; }
.ffk-part-cta-txt h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 24px; margin: 0 0 6px; color: #fff; }
.ffk-part-cta-txt p { font-family: 'Plus Jakarta Sans', sans-serif; margin: 0; opacity: .92; }
.ffk-part-cta-btn { flex: 0 0 auto; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; color: #1C3C8C; background: #fff; border-radius: 100px; padding: 15px 30px; text-decoration: none; transition: transform .12s ease; }
.ffk-part-cta-btn:hover { transform: translateY(-1px); }
@media (max-width: 860px) { .ffk-part-grid { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; } .ffk-part-cta-in { flex-direction: column; text-align: center; align-items: center; } }

/* Bibliothèque — Officiel Karaté Magazine */
.ffk-mag-intro { max-width: 760px; margin: 0 auto 28px; text-align: center; }
.ffk-mag-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.ffk-mag-search { flex: 1 1 260px; min-width: 220px; }
.ffk-mag-s { width: 100%; box-sizing: border-box; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; color: #1C2440; background: #EEF2FA; border: 1px solid #E2E8F3; border-radius: 100px; padding: 11px 18px; outline: none; }
.ffk-mag-s:focus { border-color: #1C3C8C; }
.ffk-mag-years { display: flex; flex-wrap: wrap; gap: 7px; }
.ffk-mag-year { font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 13px; color: #1C3C8C; background: #EEF2FA; border: 1px solid transparent; border-radius: 100px; padding: 8px 15px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.ffk-mag-year:hover { background: #E2E8F3; }
.ffk-mag-year.is-active { background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; }
.ffk-mag-annee { margin-top: 30px; }
.ffk-mag-annee-t { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 22px; color: #1C2440; margin: 0 0 16px; padding-bottom: 8px; border-bottom: 2px solid #EEF2FA; }
.ffk-mag-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 20px; }
.ffk-mag-item { display: flex; flex-direction: column; gap: 9px; }
.ffk-mag-cover { display: block; aspect-ratio: 3/4; border-radius: 12px; overflow: hidden; background: #EEF2FA; box-shadow: 0 6px 18px rgba(28,60,140,.10); transition: transform .15s ease, box-shadow .15s ease; }
a.ffk-mag-cover:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(28,60,140,.18); }
.ffk-mag-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ffk-mag-cover-ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 12px; text-align: center; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #666E7C; }
.ffk-mag-item-t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13.5px; color: #1C2440; }
.ffk-mag-dl { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12px; color: #1C3C8C; background: #EEF2FA; border-radius: 100px; padding: 6px 12px; text-decoration: none; transition: background .15s ease, color .15s ease; }
.ffk-mag-dl:hover { background: #1C3C8C; color: #fff; }
.ffk-mag-cover { aspect-ratio: 210 / 297; } /* format A4 des couvertures */
.ffk-mag-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 6px; }
.ffk-mag .ffk-mag-actions a.ffk-mag-dl { align-self: auto; justify-content: center; gap: 5px; padding: 7px 6px; font-size: 12px; background: #E6ECF8; color: #1C3C8C; text-decoration: none; background-image: none; }
.ffk-mag .ffk-mag-actions a.ffk-mag-dl svg { width: 13px; height: 13px; flex: none; }
.ffk-mag .ffk-mag-actions a.ffk-mag-dl:hover { background: #1C3C8C; color: #fff; }
.ffk-mag .ffk-mag-actions a.ffk-mag-lire { background: #1C3C8C; color: #fff; }
.ffk-mag .ffk-mag-actions a.ffk-mag-lire:hover { background: #E4174B; color: #fff; }
.ffk-mag .ffk-mag-actions a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-mag-empty { margin: 24px 0; font-family: 'Plus Jakarta Sans', sans-serif; color: #6A748A; text-align: center; }
@media (max-width: 1000px) { .ffk-mag-grid { grid-template-columns: repeat(4,1fr); } }
@media (max-width: 760px) { .ffk-mag-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 500px) { .ffk-mag-grid { grid-template-columns: repeat(2,1fr); } }

/* Recherche de grade (SIKADA) */
.ffk-grade-intro { max-width: 720px; margin: 0 auto 24px; text-align: center; }
.ffk-grade-form { max-width: 760px; margin: 0 auto; background: #fff; border: 1px solid #E9EDF5; border-radius: 20px; padding: 24px; }
.ffk-grade-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.ffk-grade-field { flex: 1 1 200px; display: flex; flex-direction: column; gap: 6px; }
.ffk-grade-field span { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12.5px; color: #1C2440; }
.ffk-grade-field em { font-weight: 500; font-style: normal; color: #666E7C; }
.ffk-grade-field input { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; color: #1C2440; background: #F5F8FD; border: 1px solid #E2E8F3; border-radius: 10px; padding: 11px 14px; outline: none; }
.ffk-grade-field input:focus { border-color: #1C3C8C; }
.ffk-grade-btn { flex: 0 0 auto; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: 0; border-radius: 100px; padding: 13px 28px; cursor: pointer; transition: transform .12s ease; }
.ffk-grade-btn:hover { transform: translateY(-1px); }
.ffk-grade-note { margin: 12px 0 0; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 12.5px; color: #666E7C; }
.ffk-grade-result { max-width: 900px; margin: 26px auto 0; }
.ffk-grade-table { width: 100%; border-collapse: collapse; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; }
.ffk-grade-table thead th { text-align: left; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: #666E7C; padding: 10px 12px; border-bottom: 2px solid #EEF2FA; }
.ffk-grade-table tbody td { padding: 12px; border-bottom: 1px solid #F0F3F9; color: #1C2440; }
.ffk-grade-table tbody tr:hover { background: #F7FAFE; }
.ffk-grade-table .grade { font-weight: 600; color: #1C3C8C; }
.ffk-grade-msg { text-align: center; font-family: 'Plus Jakarta Sans', sans-serif; color: #6A748A; padding: 22px; background: #F5F8FD; border-radius: 14px; }
.ffk-grade-loader { width: 34px; height: 34px; margin: 24px auto; border: 3px solid #E2E8F3; border-top-color: #1C3C8C; border-radius: 50%; animation: ffk-spin .8s linear infinite; }
@keyframes ffk-spin { to { transform: rotate(360deg); } }
@media (max-width: 560px) { .ffk-grade-btn { width: 100%; } }

/* Personnalisation par cookie — réordonnancement de l'accueil */
.ffk-home { display: flex; flex-direction: column; }
.ffk-home > .ffk-perso-bar { order: -1; }
.ffk-home > .ffk-hero2 { order: 0; }
.ffk-home > .ffk-sec-portes { order: 10; }
.ffk-home > .ffk-rappel { order: 10; }
.ffk-home > .ffk-sec-disc { order: 20; }
.ffk-home > .ffk-actus { order: 30; }
.ffk-home > .ffk-vit { order: 40; }
.ffk-home > .ffk-sec-cta { order: 50; }
/* Je débute : découvrir + essai en avant */
.ffk-profil-je-debute .ffk-home > .ffk-sec-disc { order: 20; }
.ffk-profil-je-debute .ffk-home > .ffk-sec-cta  { order: 24; }
.ffk-profil-je-debute .ffk-home > .ffk-actus    { order: 28; }
.ffk-profil-je-debute .ffk-home > .ffk-vit      { order: 32; }
/* Je suis licencié : actualités fédérales d'abord */
.ffk-profil-je-suis-licencie .ffk-home > .ffk-actus    { order: 20; }
.ffk-profil-je-suis-licencie .ffk-home > .ffk-vit      { order: 24; }
.ffk-profil-je-suis-licencie .ffk-home > .ffk-sec-disc { order: 28; }
.ffk-profil-je-suis-licencie .ffk-home > .ffk-sec-cta  { order: 32; }
/* Je gère un club : actualités + disciplines + CTA */
.ffk-profil-je-gere-un-club .ffk-home > .ffk-actus    { order: 20; }
.ffk-profil-je-gere-un-club .ffk-home > .ffk-sec-disc { order: 24; }
.ffk-profil-je-gere-un-club .ffk-home > .ffk-sec-cta  { order: 28; }
.ffk-profil-je-gere-un-club .ffk-home > .ffk-vit      { order: 32; }
/* Je suis fan de compétition : résultats/vitrine en tête */
.ffk-profil-je-suis-fan-de-competition .ffk-home > .ffk-vit      { order: 20; }
.ffk-profil-je-suis-fan-de-competition .ffk-home > .ffk-actus    { order: 24; }
.ffk-profil-je-suis-fan-de-competition .ffk-home > .ffk-sec-disc { order: 28; }
.ffk-profil-je-suis-fan-de-competition .ffk-home > .ffk-sec-cta  { order: 32; }
/* Je passe un grade : disciplines/formations + actualités */
.ffk-profil-je-passe-un-grade .ffk-home > .ffk-sec-disc { order: 20; }
.ffk-profil-je-passe-un-grade .ffk-home > .ffk-actus    { order: 24; }
.ffk-profil-je-passe-un-grade .ffk-home > .ffk-vit      { order: 28; }
.ffk-profil-je-passe-un-grade .ffk-home > .ffk-sec-cta  { order: 32; }
/* Bandeau personnalisation */
.ffk-perso-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 clamp(20px,4vw,60px); margin-top: 14px; padding: 11px 18px; background: #EEF3FB; border: 1px solid #DCE6F5; border-radius: 100px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; color: #33405C; }
.ffk-perso-bar-txt { color: #33405C; }
.ffk-perso-bar-txt strong { color: #1C3C8C; }
.ffk-perso-bar-act { display: inline-flex; align-items: center; gap: 14px; }
.ffk-perso-change { font-weight: 700; color: #1C3C8C; text-decoration: none; }
.ffk-perso-change:hover { text-decoration: underline; }
.ffk-perso-off { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 12.5px; color: #6A748A; background: transparent; border: 0; cursor: pointer; text-decoration: underline; }
.ffk-perso-off:hover { color: #E4174B; }

/* Visiteur de retour : « Vous vous intéressiez à … » remplace les portes
   (bloc ffk/portes-rappel, inc/ffk-perso.php). « Non » rouvre les portes. */
.ffk-rappel ~ .ffk-sec-portes:not(.is-ouvert) { display: none; }
.ffk-rappel { padding: clamp(28px,3.4vw,48px) clamp(20px,4vw,60px) clamp(8px,1.6vw,20px); }
.ffk-rappel[hidden] { display: none; }
.ffk-rappel-in {
	max-width: 1500px; margin: 0 auto; position: relative; overflow: hidden;
	display: flex; align-items: center; justify-content: space-between; gap: 22px 40px; flex-wrap: wrap;
	padding: clamp(22px,2.6vw,34px) clamp(22px,3vw,40px); border-radius: 26px;
	background: linear-gradient(135deg, var(--c2, #172F66) 0%, var(--c2, #172F66) 40%, var(--c1, #264F9E) 140%); color: #fff;
	box-shadow: 0 30px 60px -40px rgba(12,28,80,.7);
}
.ffk-rappel-txt { flex: 1 1 460px; min-width: 0; }
.ffk-rappel-k { display: inline-block; margin-bottom: 10px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.9); }
.ffk-rappel-t { margin: 0; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(22px,2.1vw,30px); line-height: 1.2; letter-spacing: -.02em; color: #fff; }
.ffk-rappel-t strong { color: #FFE08A; font-weight: 700; }
.ffk-rappel-liens { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ffk-rappel-liens a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 15px; border-radius: 100px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.24); color: #fff; text-decoration: none; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13.5px; transition: background .15s ease; }
.ffk-rappel-liens a:hover { background: rgba(255,255,255,.22); }
.ffk-rappel-act { display: flex; flex-direction: column; align-items: stretch; gap: 10px; flex: 0 0 auto; }
.ffk-rappel-oui, .ffk-rappel-non {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 0 26px; border-radius: 100px;
	font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px; text-decoration: none; cursor: pointer; white-space: nowrap;
}
.ffk-rappel-oui { background: #fff; color: var(--c2, #172F66); border: 0; box-shadow: 0 16px 32px -18px rgba(0,0,0,.5); transition: transform .18s ease; }
.ffk-rappel-oui:hover { transform: translateY(-1px); }
.ffk-rappel-non { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.6); transition: background .15s ease; }
.ffk-rappel-non:hover, .ffk-rappel-non[aria-expanded="true"] { background: rgba(255,255,255,.14); }
.ffk-rappel-off { align-self: center; min-height: 36px; padding: 0 6px; background: none; border: 0; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 12.5px; color: rgba(255,255,255,.8); text-decoration: underline; text-underline-offset: 3px; }
.ffk-rappel-off:hover { color: #fff; }
.ffk-rappel a:focus-visible, .ffk-rappel button:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
#ffk-portes-t:focus { outline: none; }
@media (max-width: 700px) {
	.ffk-rappel-in { border-radius: 22px; }
	.ffk-rappel-act { width: 100%; }
	.ffk-rappel-oui, .ffk-rappel-non { white-space: normal; text-align: center; }
}

/* Pages « portes » — landing marketing par persona (ambiance FFK) */
.ffk-porte-hero { position: relative; padding: clamp(56px,7vw,110px) clamp(22px,5vw,72px) clamp(50px,6vw,92px); color: #fff; overflow: hidden; }
.ffk-porte-dots { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.16) 1px,transparent 1px); background-size: 26px 26px; opacity: .5; pointer-events: none; }
.ffk-porte-mark { position: absolute; right: -40px; bottom: -60px; width: 320px; height: auto; opacity: .10; transform: rotate(-10deg); pointer-events: none; }
.ffk-porte-hero-in { position: relative; z-index: 2; max-width: 1180px; margin: 0 auto; }
.ffk-porte-badge { display: inline-flex; align-items: center; gap: 9px; background: #fff; border-radius: 100px; padding: 8px 16px; margin-bottom: 20px; box-shadow: 0 10px 24px -16px rgba(20,40,100,.5); font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #15234F; }
.ffk-porte-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-porte-h { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(38px,5.6vw,72px); line-height: .98; letter-spacing: -.03em; max-width: 15ch; color: #fff; }
.ffk-porte-sub { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: clamp(15px,1.6vw,20px); line-height: 1.55; color: rgba(255,255,255,.88); max-width: 52ch; margin-top: 20px; }
.ffk-porte-cta { position: relative; display: inline-flex; align-items: center; gap: 10px; overflow: hidden; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 16px; background: #fff; padding: 17px 32px; border-radius: 100px; text-decoration: none; margin-top: 30px; box-shadow: 0 18px 40px -18px rgba(0,0,0,.45); transition: transform .18s ease; }
.ffk-porte-cta:hover { transform: translateY(-2px); }
.ffk-porte-shine { position: absolute; top: 0; bottom: 0; left: 0; width: 48%; background: linear-gradient(100deg,transparent 18%,rgba(255,255,255,.55) 50%,transparent 82%); animation: ffkShine 3.6s ease-in-out infinite; pointer-events: none; }
.ffk-porte-arrow { display: inline-block; animation: ffkArrow 1.4s ease-in-out infinite; }
.ffk-porte-photohint { display: inline-block; margin-top: 22px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 12.5px; font-weight: 600; color: rgba(255,255,255,.9); background: rgba(0,0,0,.28); border-radius: 10px; padding: 9px 13px; }
.ffk-porte-args { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; padding: clamp(40px,5vw,64px) clamp(22px,4vw,40px) clamp(20px,3vw,30px); }
.ffk-porte-arg { position: relative; background: #fff; border: 1px solid #E9EDF5; border-radius: 22px; padding: 30px 26px 26px; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease; }
.ffk-porte-arg:hover { transform: translateY(-3px); box-shadow: 0 26px 50px -30px rgba(16,30,90,.55); }
.ffk-porte-arg-bar { position: absolute; top: 0; left: 0; right: 0; height: 4px; }
.ffk-porte-arg-n { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: 13px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; margin-bottom: 16px; }
.ffk-porte-arg h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 19px; line-height: 1.2; color: #101A33; margin-bottom: 8px; }
.ffk-porte-arg p { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: 14px; line-height: 1.55; color: #5E6880; }
.ffk-porte-links { max-width: 1180px; margin: 0 auto; padding: clamp(18px,3vw,26px) clamp(22px,4vw,40px) clamp(34px,4vw,52px); }
.ffk-porte-kicker { display: inline-flex; align-items: center; gap: 9px; background: #fff; border-radius: 100px; padding: 7px 15px; margin-bottom: 16px; box-shadow: 0 10px 24px -16px rgba(20,40,100,.5); font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: #15234F; }
.ffk-porte-kicker-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-porte-linkgrid { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 14px; }
.ffk-porte-lk { position: relative; display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid #E7EDF7; border-radius: 18px; padding: 18px 20px; text-decoration: none; color: #16224A; overflow: hidden; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ffk-porte-lk:hover { transform: translateY(-3px); border-color: transparent; box-shadow: 0 22px 44px -26px rgba(28,60,140,.6); }
.ffk-porte-lk-ic { width: 40px; height: 40px; flex: 0 0 auto; border-radius: 13px; padding: 9px; object-fit: contain; }
.ffk-porte-lk-t { flex: 1; font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 15px; line-height: 1.25; }
.ffk-porte-lk-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; opacity: 0; transition: opacity .18s ease; }
.ffk-porte-lk:hover .ffk-porte-lk-bar { opacity: 1; }
.ffk-porte-final { position: relative; overflow: hidden; max-width: 1180px; margin: 0 auto clamp(46px,6vw,80px); border-radius: 32px; padding: clamp(34px,4vw,64px); display: flex; align-items: center; justify-content: space-between; gap: 30px; flex-wrap: wrap; color: #fff; box-shadow: 0 40px 80px -38px rgba(37,99,214,.7); }
.ffk-porte-final-mark { position: absolute; right: -30px; bottom: -44px; width: 300px; height: auto; opacity: .12; pointer-events: none; }
.ffk-porte-final h2 { position: relative; z-index: 2; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,3.2vw,44px); line-height: 1.02; letter-spacing: -.02em; color: #fff; max-width: 20ch; }
.ffk-porte-final a { position: relative; z-index: 2; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 10px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 16px; background: #fff; padding: 18px 34px; border-radius: 100px; text-decoration: none; white-space: nowrap; box-shadow: 0 18px 40px -18px rgba(0,0,0,.45); transition: transform .18s ease; }
.ffk-porte-final a:hover { transform: translateY(-2px); }
@media (max-width: 900px) { .ffk-porte-args { grid-template-columns: 1fr; } }
/* Portes — bande de chiffres clés */
.ffk-porte-reperes { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 0; background: #fff; border: 1px solid #E9EDF5; border-radius: 22px; margin-top: -34px; position: relative; z-index: 3; box-shadow: 0 30px 60px -38px rgba(16,30,90,.6); overflow: hidden; }
.ffk-porte-repere { padding: 26px 24px; text-align: center; border-right: 1px solid #EEF2F8; }
.ffk-porte-repere:last-child { border-right: 0; }
.ffk-porte-repere-v { display: block; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,3vw,38px); line-height: 1; letter-spacing: -.02em; }
.ffk-porte-repere-l { display: block; margin-top: 8px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 13px; color: #676E80; }
/* Portes — zone photo secondaire + éditorial */
.ffk-porte-edito { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,3.5vw,48px); align-items: center; padding: clamp(24px,3vw,40px) clamp(22px,4vw,40px) clamp(34px,4vw,52px); }
.ffk-porte-edito-media { position: relative; border-radius: 26px; overflow: hidden; box-shadow: 0 30px 60px -34px rgba(16,30,90,.7); }
.ffk-porte-edito-media img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; }
.ffk-porte-edito-ph { position: relative; aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; padding: 26px; }
.ffk-porte-edito-phtxt { position: relative; z-index: 2; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 13px; line-height: 1.5; color: rgba(255,255,255,.92); background: rgba(0,0,0,.28); border-radius: 12px; padding: 12px 16px; text-align: center; }
.ffk-porte-edito-bar { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; }
.ffk-porte-edito-txt h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,2.8vw,38px); line-height: 1.06; letter-spacing: -.02em; color: #101A33; margin-bottom: 16px; }
.ffk-porte-edito-txt p { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: 15.5px; line-height: 1.7; color: #4E5872; margin-bottom: 14px; }
.ffk-porte-edito-txt p:last-child { margin-bottom: 0; }
@media (max-width: 900px) { .ffk-porte-edito { grid-template-columns: 1fr; } .ffk-porte-reperes { grid-template-columns: 1fr; margin-top: -24px; } .ffk-porte-repere { border-right: 0; border-bottom: 1px solid #EEF2F8; } .ffk-porte-repere:last-child { border-bottom: 0; } }

/* Newsletter footer — retour d'inscription */
.ffk-newsletter-msg { margin: 10px 0 0; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; min-height: 1em; }
.ffk-newsletter-msg.is-ok { color: #5EE0C0; }
.ffk-newsletter-msg.is-err { color: #FFB4C0; }
.ffk-newsletter-note { margin: 8px 0 0; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 11.5px; line-height: 1.45; color: rgba(255,255,255,.55); }

/* Mini-site discipline — sections actualités + clubs filtrés */
.ffk-disc-sec { padding: clamp(14px,2vw,26px) clamp(20px,4vw,60px); }
.ffk-disc-sec-in { max-width: 1500px; margin: 0 auto; }
.ffk-disc-sec-head { margin-bottom: 20px; }
.ffk-disc-sec-t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,2.6vw,36px); line-height: 1.05; letter-spacing: -.02em; color: #101A33; margin-top: 12px; }
.ffk-disc-sec-more { margin-top: 22px; }
.ffk-disc-sec-more > a { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #1C3C8C; text-decoration: none; }
.ffk-disc-sec-more > a:hover { text-decoration: underline; }
.ffk-disc-cta { display: inline-flex; align-items: center; gap: 9px; color: #fff !important; padding: 14px 26px; border-radius: 100px; text-decoration: none !important; }
.ffk-disc-cta:hover { transform: translateY(-1px); }
.ffk-disc-clubgrid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
@media (max-width: 1100px) { .ffk-disc-clubgrid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 780px) { .ffk-disc-clubgrid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 480px) { .ffk-disc-clubgrid { grid-template-columns: minmax(0,1fr); } }
.ffk-disc-sec-sub { margin: 8px 0 0; font-size: 14.5px; color: #5E6880; font-weight: 500; }
.ffk-disc-club { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #E7EDF7; border-radius: 16px; padding: 14px 16px; text-decoration: none; color: #16224A; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.ffk-disc-club:hover { transform: translateY(-2px); border-color: transparent; box-shadow: 0 16px 34px -20px rgba(28,60,140,.55); }
.ffk-disc-club-pin { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 11px; display: flex; align-items: center; justify-content: center; }
.ffk-disc-club-txt { min-width: 0; display: flex; flex-direction: column; }
.ffk-disc-club-nom { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ffk-disc-club-ville { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 12.5px; color: #666E7C; margin-top: 2px; }

/* Page /disciplines/ — hub (galerie Karaté + bandes couleur) */
.ffk-dischub { max-width: 1500px; margin: 0 auto; padding: 0 clamp(20px,4vw,60px); }
.ffk-dischub-intro { padding: clamp(20px,3vw,36px) 0 clamp(18px,2vw,26px); max-width: 760px; }
.ffk-dischub-h1 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(34px,4.4vw,58px); line-height: .98; letter-spacing: -.03em; color: #101A33; margin: 14px 0 12px; }
.ffk-dischub-sub { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: clamp(15px,1.4vw,18px); line-height: 1.6; color: #5E6880; }
.ffk-dischub-sec { padding: clamp(20px,3vw,40px) 0; }
.ffk-dischub-head { margin-bottom: 20px; }
.ffk-dischub-t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,3vw,42px); letter-spacing: -.02em; line-height: 1; color: #101A33; margin: 12px 0 6px; }
.ffk-dischub-head p { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; color: #5E6880; }
/* Galerie Karaté */
.ffk-galk { display: flex; gap: 10px; height: 460px; }
.ffk-galk-item { position: relative; flex: 1 1 0; min-width: 60px; border-radius: 22px; overflow: hidden; text-decoration: none; background-size: cover; background-position: center; transition: flex-grow .5s cubic-bezier(.22,1,.36,1); box-shadow: 0 30px 60px -40px rgba(16,30,90,.6); }
.ffk-galk-item.is-active { flex-grow: 7; }
.ffk-galk-vert { position: absolute; left: 0; right: 0; bottom: 22px; margin: 0 auto; text-align: center; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; z-index: 3; text-shadow: 0 2px 8px rgba(0,0,0,.4); }
.ffk-galk-item.is-active .ffk-galk-vert { display: none; }
.ffk-galk-body { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(22px,2vw,32px); color: #fff; z-index: 3; display: none; flex-direction: column; gap: 11px; }
.ffk-galk-item.is-active .ffk-galk-body { display: flex; }
.ffk-galk-badge { background: #fff; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; padding: 5px 12px; border-radius: 100px; align-self: flex-start; }
.ffk-galk-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(24px,2.4vw,36px); line-height: 1; }
.ffk-galk-txt { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; line-height: 1.55; color: rgba(255,255,255,.92); max-width: 46ch; }
.ffk-galk-cta { display: inline-flex; align-items: center; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #101A33; background: #fff; padding: 11px 22px; border-radius: 100px; align-self: flex-start; margin-top: 4px; }
/* Bandes couleur (autres disciplines) */
.ffk-discbands { display: flex; flex-direction: column; gap: 18px; }
.ffk-discband { display: grid; grid-template-columns: 1fr 1fr; border-radius: 26px; overflow: hidden; box-shadow: 0 34px 66px -44px rgba(16,30,90,.55); }
.ffk-discband-media { min-height: 260px; background-size: cover; background-position: center; }
.ffk-discband.is-rev .ffk-discband-media { order: 2; }
.ffk-discband-txt { padding: clamp(26px,3.2vw,52px); color: #fff; display: flex; flex-direction: column; justify-content: center; }
.ffk-discband-eyebrow { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.75); margin-bottom: 12px; }
.ffk-discband-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,2.6vw,38px); line-height: 1.03; letter-spacing: -.02em; margin-bottom: 12px; color: #fff; }
.ffk-discband-p { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; line-height: 1.6; color: rgba(255,255,255,.9); margin-bottom: 22px; max-width: 48ch; }
.ffk-discband-cta { display: inline-flex; align-items: center; gap: 9px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; background: #fff; padding: 14px 26px; border-radius: 100px; text-decoration: none; align-self: flex-start; transition: transform .15s ease; }
.ffk-discband-cta:hover { transform: translateY(-1px); }
@media (max-width: 820px) {
	.ffk-galk { flex-direction: column; height: auto; }
	.ffk-galk-item { min-height: 68px; }
	.ffk-galk-item.is-active { min-height: 360px; }
	.ffk-galk-vert { writing-mode: horizontal-tb; transform: none; position: static; padding: 22px; text-align: left; }
	.ffk-discband { grid-template-columns: 1fr; }
	.ffk-discband.is-rev .ffk-discband-media { order: 0; }
}

/* Médiathèque — archive (grille de galeries) */
.ffk-med-inner { max-width: 1500px; margin: 0 auto; padding: 0 clamp(20px,4vw,60px); }
.ffk-med-head { max-width: 760px; padding: clamp(20px,3vw,36px) 0 clamp(20px,2vw,28px); }
.ffk-med-h1 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(32px,4.2vw,54px); line-height: 1; letter-spacing: -.03em; color: #101A33; margin: 14px 0 12px; }
.ffk-med-sub { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: clamp(15px,1.4vw,18px); line-height: 1.6; color: #5E6880; }
.ffk-med-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 20px; }
.ffk-med-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #E9EDF5; border-radius: 18px; overflow: hidden; text-decoration: none; color: #101A33; transition: transform .15s ease, box-shadow .15s ease; }
.ffk-med-card:hover { transform: translateY(-3px); box-shadow: 0 24px 48px -28px rgba(16,30,90,.5); }
.ffk-med-card-img { aspect-ratio: 4/3; overflow: hidden; background: #EEF2F9; }
.ffk-med-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.ffk-med-card:hover .ffk-med-card-img img { transform: scale(1.05); }
.ffk-med-card-body { padding: 15px 17px 17px; display: flex; flex-direction: column; gap: 6px; }
.ffk-med-card-cat { align-self: flex-start; background: #E4174B; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; padding: 4px 10px; border-radius: 100px; }
.ffk-med-card-title { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 16px; line-height: 1.2; }
.ffk-med-card-meta { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 12.5px; color: #666E7C; }
.ffk-med-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 40px; }
.ffk-med-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border-radius: 100px; background: #fff; border: 1px solid #E2E8F3; font-family: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 14px; color: #1C3C8C; text-decoration: none; }
.ffk-med-pagination .page-numbers.current { background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; border-color: transparent; }
.ffk-med-pagination a.page-numbers:hover { border-color: #1C3C8C; }
.ffk-med-empty { font-family: 'Plus Jakarta Sans', sans-serif; color: #6A748A; padding: 24px 0; }
/* Médiathèque — fiche galerie */
.ffk-medg { max-width: 1300px; margin: 0 auto; }
.ffk-medg-crumb { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; color: #666E7C; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; }
.ffk-medg-crumb a { color: #1C3C8C; text-decoration: none; }
.ffk-medg-crumb a:hover { text-decoration: underline; }
.ffk-medg-cat { display: inline-flex; background: #E4174B; color: #fff; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 6px 13px; border-radius: 100px; }
.ffk-medg-title { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: clamp(28px,3.4vw,44px); line-height: 1.05; letter-spacing: -.02em; color: #101A33; margin: 12px 0 6px; }
.ffk-medg-meta { font-family: 'Plus Jakarta Sans', sans-serif; color: #666E7C; margin-bottom: 26px; }
.ffk-medg-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(200px,1fr)); gap: 10px; }
.ffk-medg-item { padding: 0; border: 0; background: #EEF2F9; border-radius: 12px; overflow: hidden; cursor: zoom-in; aspect-ratio: 1/1; }
.ffk-medg-item.is-hidden { display: none; }
.ffk-medg-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.ffk-medg-item:hover img { transform: scale(1.06); }
.ffk-medg-morewrap { display: flex; justify-content: center; margin-top: 26px; }
.ffk-medg-more { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 14px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: 0; border-radius: 100px; padding: 14px 30px; cursor: pointer; }
/* Lightbox */
.ffk-lb { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; background: rgba(8,12,28,.92); }
.ffk-lb.is-open { display: flex; }
.ffk-lb-img { max-width: 92vw; max-height: 88vh; border-radius: 8px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.7); }
.ffk-lb-close, .ffk-lb-prev, .ffk-lb-next { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; cursor: pointer; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: background .15s ease; }
.ffk-lb-close:hover, .ffk-lb-prev:hover, .ffk-lb-next:hover { background: rgba(255,255,255,.28); }
.ffk-lb-close { top: 18px; right: 18px; width: 46px; height: 46px; font-size: 20px; }
.ffk-lb-prev, .ffk-lb-next { top: 50%; transform: translateY(-50%); width: 54px; height: 54px; font-size: 32px; line-height: 1; }
.ffk-lb-prev { left: 16px; }
.ffk-lb-next { right: 16px; }
@media (max-width: 600px) { .ffk-lb-prev, .ffk-lb-next { width: 44px; height: 44px; font-size: 26px; } }

/* Médiathèque — filigrane logo FFK (calque visuel) + mention d'usage */
.ffk-med-card-img { position: relative; }
.ffk-medg-item { position: relative; }
.ffk-lb-figure { position: relative; display: inline-block; line-height: 0; }
.ffk-med-card-img::after,
.ffk-medg-item::after,
.ffk-lb-figure::after {
	content: "";
	position: absolute;
	right: 8px;
	bottom: 8px;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: rgba(10,16,40,.34) url("../img/ffk-logo-mark-white.png") center/19px 19px no-repeat;
	pointer-events: none;
	z-index: 3;
}
.ffk-lb-figure::after { right: 14px; bottom: 14px; width: 44px; height: 44px; background-size: 24px 24px; }
.ffk-medg-notice { display: flex; align-items: flex-start; gap: 10px; margin: -8px 0 26px; padding: 13px 18px; background: #F5F8FD; border: 1px solid #E4EAF5; border-radius: 12px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; line-height: 1.55; color: #4E5872; max-width: 680px; }
.ffk-medg-notice-t { flex: 1; }
.ffk-medg-notice svg { flex: 0 0 auto; margin-top: 2px; color: #1C3C8C; }
.ffk-medg-notice strong { color: #1C3C8C; }
.ffk-medg-notice a { color: #1C3C8C; font-weight: 700; }
.ffk-medg-notice a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------------------
   Espace licencié (MVP cookie) — inc/ffk-licencie.php
--------------------------------------------------------------------------- */
.ffk-lic { max-width: 640px; margin: 0 auto; padding: 8px 20px 40px; }
.ffk-lic-form-wrap, .ffk-lic-panel {
	background: #fff; border: 1px solid #E1E8F4; border-radius: 22px;
	padding: 30px 30px 26px; box-shadow: 0 24px 60px -34px rgba(12,28,80,.5);
}
.ffk-lic-kicker { display: inline-flex; align-items: center; gap: 8px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: #1C3C8C; }
.ffk-lic-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-lic-h2, .ffk-lic-hello { font-family: 'Space Grotesk', sans-serif; font-weight: 800; color: #16204A; margin: 12px 0 6px; line-height: 1.15; }
.ffk-lic-h2 { font-size: 25px; }
.ffk-lic-hello { font-size: 27px; }
.ffk-lic-intro, .ffk-lic-sub { color: #4A5578; font-size: 15px; line-height: 1.55; margin: 0 0 18px; }
.ffk-lic-sub { margin-bottom: 14px; }

.ffk-lic-form { display: flex; flex-direction: column; gap: 14px; }
.ffk-lic-field { display: flex; flex-direction: column; gap: 6px; }
.ffk-lic-field > span { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13px; color: #16204A; }
.ffk-lic-field input {
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; color: #16204A;
	background: #F7F9FD; border: 1.5px solid #E1E8F4; border-radius: 12px; padding: 13px 15px; transition: border-color .15s ease, background .15s ease;
}
.ffk-lic-field input:focus { outline: none; border-color: #1C3C8C; background: #fff; }
.ffk-lic-submit, .ffk-lic-quit {
	font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 15px; color: #fff;
	background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; border-radius: 100px; padding: 15px 26px;
	cursor: pointer; margin-top: 4px; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
	box-shadow: 0 14px 30px -14px rgba(37,99,214,.9);
}
.ffk-lic-submit:hover:not(:disabled), .ffk-lic-quit:hover:not(:disabled) { transform: translateY(-1px); }
.ffk-lic-submit:disabled, .ffk-lic-quit:disabled { opacity: .6; cursor: default; }
.ffk-lic-submit.is-loading { position: relative; color: transparent; }
.ffk-lic-submit.is-loading::after {
	content: ""; position: absolute; inset: 0; margin: auto; width: 18px; height: 18px;
	border: 2.5px solid rgba(255,255,255,.5); border-top-color: #fff; border-radius: 50%; animation: ffk-lic-spin .7s linear infinite;
}
@keyframes ffk-lic-spin { to { transform: rotate(360deg); } }

.ffk-lic-msg { font-size: 13.5px; font-weight: 600; margin: 2px 0 0; min-height: 1em; }
.ffk-lic-msg.is-err { color: #C21A3E; }
.ffk-lic-msg.is-ok { color: #1B7A43; }
.ffk-lic-legal { color: #686F86; font-size: 12px; line-height: 1.5; margin: 16px 0 0; }

.ffk-lic-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 18px; }
.ffk-lic-chip { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 12.5px; color: #1C3C8C; background: #EEF2FA; border-radius: 100px; padding: 7px 14px; }
.ffk-lic-quit { background: #fff; color: #1C3C8C; border: 1.5px solid #E1E8F4; box-shadow: none; }
.ffk-lic-quit:hover:not(:disabled) { border-color: #1C3C8C; background: #F4F7FD; }

@media (max-width: 520px) {
	.ffk-lic-form-wrap, .ffk-lic-panel { padding: 24px 20px 22px; border-radius: 18px; }
	.ffk-lic-h2 { font-size: 22px; } .ffk-lic-hello { font-size: 24px; }
}

/* Carte « Mon club » (panneau + bandeau) */
.ffk-lic-club { display: flex; align-items: center; gap: 13px; text-decoration: none; background: #F4F7FD; border: 1.5px solid #E1E8F4; border-radius: 14px; padding: 13px 16px; margin: 0 0 16px; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.ffk-lic-club:hover { border-color: #1C3C8C; background: #EEF2FA; transform: translateY(-1px); }
.ffk-lic-club-ic { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: 0 0 auto; border-radius: 11px; background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; }
.ffk-lic-club-txt { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ffk-lic-club-lbl { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: #686F86; }
.ffk-lic-club-nom { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px; color: #16204A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ffk-lic-club-go { font-size: 22px; color: #1C3C8C; font-weight: 700; flex: 0 0 auto; }

/* Bandeau d'accueil « Mon espace » (invisible si non licencié) */
.ffk-me { max-width: 1200px; margin: 18px auto 0; padding: 0 24px; }
.ffk-me-inner { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; background: linear-gradient(120deg,#F4F7FD,#EEF2FA); border: 1.5px solid #E1E8F4; border-radius: 20px; padding: 16px 22px; }
.ffk-me-hello { display: flex; flex-direction: column; gap: 6px; }
.ffk-me-title { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 20px; color: #16204A; margin: 0; }
.ffk-me-club { flex: 1; min-width: 220px; }
.ffk-me-club .ffk-lic-club { margin: 0; background: #fff; }
.ffk-me-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.ffk-me-link { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 14px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border-radius: 100px; padding: 12px 22px; text-decoration: none; white-space: nowrap; box-shadow: 0 12px 26px -14px rgba(37,99,214,.9); }
.ffk-me-link:hover { transform: translateY(-1px); }
.ffk-me-quit { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; background: transparent; border: 1.5px solid #C3CEE4; border-radius: 100px; padding: 11px 18px; cursor: pointer; }
.ffk-me-quit:hover:not(:disabled) { border-color: #1C3C8C; background: #fff; }
@media (max-width: 640px) {
	.ffk-me-inner { padding: 14px 16px; gap: 14px; }
	.ffk-me-actions { width: 100%; }
	.ffk-me-link { flex: 1; text-align: center; }
}

/* Choix du club (autocomplétion) + repli licence */
.ffk-club-pick { position: relative; }
.ffk-club-list { list-style: none; margin: 6px 0 0; padding: 6px; position: absolute; left: 0; right: 0; z-index: 30; background: #fff; border: 1.5px solid #E1E8F4; border-radius: 14px; box-shadow: 0 24px 50px -22px rgba(12,28,80,.45); max-height: 320px; overflow-y: auto; }
.ffk-club-opt { display: flex; align-items: baseline; gap: 4px; padding: 11px 13px; border-radius: 10px; cursor: pointer; }
.ffk-club-opt:hover, .ffk-club-opt.is-active { background: #EEF2FA; }
.ffk-club-opt-nom { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px; color: #16204A; }
.ffk-club-opt-ville { font-size: 13px; color: #686F86; }
.ffk-club-msg { margin-top: 8px; }

.ffk-lic-more { margin: 18px 0 0; border-top: 1px solid #EEF2FA; padding-top: 14px; }
.ffk-lic-more > summary { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13.5px; color: #1C3C8C; cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 7px; }
.ffk-lic-more > summary::-webkit-details-marker { display: none; }
.ffk-lic-more > summary::before { content: "+"; font-weight: 800; font-size: 16px; line-height: 1; }
.ffk-lic-more[open] > summary::before { content: "–"; }
.ffk-lic-more[open] > summary { margin-bottom: 12px; }
.ffk-lic-more-intro { color: #4A5578; font-size: 13.5px; line-height: 1.5; margin: 0 0 14px; }

.ffk-lic-badge { display: inline-block; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; color: #4A5578; background: #EEF2FA; border-radius: 100px; padding: 4px 10px; margin-right: 4px; vertical-align: middle; }
.ffk-lic-badge.is-ok { color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); }

/* Sections territoriales (panneau + bloc « Près de chez vous ») */
.ffk-lic-sec { margin: 18px 0 0; }
.ffk-lic-sec-t, .ffk-pcv-t { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 15px; color: #16204A; margin: 0 0 10px; }
.ffk-lic-evts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ffk-lic-evt a { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; text-decoration: none; background: #F7F9FD; border: 1px solid #E1E8F4; border-radius: 12px; padding: 11px 14px; transition: border-color .15s ease, background .15s ease; }
.ffk-lic-evt a:hover { border-color: #1C3C8C; background: #EEF2FA; }
.ffk-lic-evt-date { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 12px; color: #E4174B; text-transform: uppercase; letter-spacing: .03em; flex: 0 0 auto; }
.ffk-lic-evt-titre { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px; color: #16204A; flex: 1; min-width: 140px; }
.ffk-lic-evt-lieu { font-size: 12.5px; color: #686F86; width: 100%; }

.ffk-lic-structs { display: flex; flex-direction: column; gap: 8px; }
.ffk-lic-struct { display: flex; align-items: center; gap: 10px; text-decoration: none; background: #F7F9FD; border: 1px solid #E1E8F4; border-radius: 12px; padding: 11px 14px; transition: border-color .15s ease, background .15s ease; }
.ffk-lic-struct:hover { border-color: #1C3C8C; background: #EEF2FA; }
.ffk-lic-struct-lbl { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; color: #686F86; flex: 0 0 auto; }
.ffk-lic-struct-nom { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13.5px; color: #16204A; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ffk-lic-struct-go { font-size: 20px; color: #1C3C8C; font-weight: 700; flex: 0 0 auto; }

/* Bloc autonome « Près de chez vous » */
.ffk-pcv { max-width: 1200px; margin: 26px auto 0; padding: 0 24px; }
.ffk-pcv-inner { background: #fff; border: 1.5px solid #E1E8F4; border-radius: 22px; padding: 26px 28px; box-shadow: 0 24px 60px -38px rgba(12,28,80,.5); }
.ffk-pcv-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; margin-top: 14px; }
@media (max-width: 720px) { .ffk-pcv-cols { grid-template-columns: 1fr; gap: 20px; } }

/* ---------------------------------------------------------------------------
   Profil de visite par DISCIPLINE — inc/ffk-profil-discipline.php
--------------------------------------------------------------------------- */
.ffk-lic-step { margin: 20px 0 0; }
.ffk-lic-step-t { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 14px; color: #16204A; margin: 0 0 10px; }
.ffk-lic-step-t em { font-style: normal; font-weight: 600; color: #686F86; font-size: 13px; }

.ffk-pd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ffk-pd-chip { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13.5px; color: #1C3C8C; background: #EEF2FA; border: 1.5px solid transparent; border-radius: 100px; padding: 9px 16px; cursor: pointer; transition: background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease; }
.ffk-pd-chip:hover:not(:disabled) { border-color: var(--disc,#1C3C8C); transform: translateY(-1px); }
.ffk-pd-chip.is-on { background: var(--disc,#1C3C8C); color: #fff; border-color: var(--disc,#1C3C8C); }
.ffk-pd-chip:disabled { opacity: .6; cursor: default; }
.ffk-pd-msg { margin: 10px 0 0; }
.ffk-lic-chip.is-disc { background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; }

/* Invitation « quelle discipline ? » */
.ffk-pd-invite { max-width: 1200px; margin: 26px auto 0; padding: 0 24px; }
.ffk-pd-invite-inner { background: linear-gradient(120deg,#F4F7FD,#EEF2FA); border: 1.5px solid #E1E8F4; border-radius: 22px; padding: 26px 28px; }
.ffk-pd-h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 24px; color: #16204A; margin: 10px 0 8px; }
.ffk-pd-sub { color: #4A5578; font-size: 15px; line-height: 1.55; margin: 0 0 18px; max-width: 62ch; }

/* Bloc « Ma discipline » */
.ffk-pd { max-width: 1200px; margin: 30px auto 0; padding: 0 24px; }
.ffk-pd-inner { background: #fff; border: 1.5px solid #E1E8F4; border-top: 4px solid var(--disc,#1C3C8C); border-radius: 22px; padding: 26px 28px; box-shadow: 0 24px 60px -38px rgba(12,28,80,.5); }
.ffk-pd-head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 6px; }
.ffk-pd-head .ffk-pd-h2 { margin: 6px 0; }
.ffk-pd-all { margin-left: auto; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: var(--disc,#1C3C8C); text-decoration: none; white-space: nowrap; }
.ffk-pd-all:hover { text-decoration: underline; }
.ffk-pd-t { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 15px; color: #16204A; margin: 20px 0 12px; }
.ffk-pd-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
@media (max-width: 900px) { .ffk-pd-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 520px) { .ffk-pd-grid { grid-template-columns: 1fr; } }
.ffk-pd-card { display: flex; flex-direction: column; text-decoration: none; border-radius: 14px; overflow: hidden; border: 1px solid #E1E8F4; background: #fff; transition: border-color .15s ease, transform .15s ease; }
.ffk-pd-card:hover { border-color: var(--disc,#1C3C8C); transform: translateY(-2px); }
.ffk-pd-card-img { display: block; aspect-ratio: 16/10; overflow: hidden; background: #EEF2FA; }
.ffk-pd-card-img img { width: 100%; height: 100%; object-fit: cover; }
.ffk-pd-card-body { display: flex; flex-direction: column; gap: 5px; padding: 12px 14px 14px; }
.ffk-pd-card-date { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; color: #686F86; }
.ffk-pd-card-titre { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px; line-height: 1.35; color: #16204A; }
.ffk-pd-foot { margin: 20px 0 0; }
.ffk-pd-change { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; background: transparent; border: 1.5px solid #C3CEE4; border-radius: 100px; padding: 10px 18px; cursor: pointer; }
.ffk-pd-change:hover { border-color: #1C3C8C; background: #F4F7FD; }
.ffk-pd-changer { margin-top: 14px; }

/* Filtres actualités en menus fermés (Disciplines / Catégories) */
.ffk-actus-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ffk-actus-reset { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; background: #EEF2FA; border: 1.5px solid transparent; border-radius: 100px; padding: 9px 18px; cursor: pointer; transition: background .15s ease, color .15s ease; }
.ffk-actus-reset.is-active { background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; }
.ffk-actus-drop { position: relative; }
.ffk-actus-dropbtn { display: inline-flex; align-items: center; gap: 9px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; background: #fff; border: 1.5px solid #C3CEE4; border-radius: 100px; padding: 9px 16px; cursor: pointer; transition: border-color .15s ease, background .15s ease; max-width: 260px; }
.ffk-actus-dropbtn:hover { border-color: #1C3C8C; background: #F4F7FD; }
.ffk-actus-drop.is-open .ffk-actus-dropbtn { border-color: #1C3C8C; background: #F4F7FD; }
.ffk-actus-drop.has-value .ffk-actus-dropbtn { background: linear-gradient(135deg,#1C3C8C,#E4174B); border-color: transparent; color: #fff; }
.ffk-actus-dropbtn-lbl { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ffk-actus-dropbtn-caret { font-size: 11px; opacity: .8; flex: 0 0 auto; }
.ffk-actus-drop.is-open .ffk-actus-dropbtn-caret { transform: rotate(180deg); }
.ffk-actus-dropmenu { position: absolute; top: calc(100% + 8px); left: 0; z-index: 40; min-width: 240px; max-width: 320px; max-height: 340px; overflow-y: auto; background: #fff; border: 1.5px solid #E1E8F4; border-radius: 14px; box-shadow: 0 26px 54px -24px rgba(12,28,80,.45); padding: 6px; display: flex; flex-direction: column; gap: 2px; }
.ffk-actus-dropmenu .ffk-actus-filter { display: block; width: 100%; text-align: left; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 13.5px; color: #16204A; background: transparent; border: none; border-radius: 9px; padding: 10px 12px; cursor: pointer; }
.ffk-actus-dropmenu .ffk-actus-filter:hover { background: #EEF2FA; }
.ffk-actus-dropmenu .ffk-actus-filter.is-active { background: #1C3C8C; color: #fff; }
@media (max-width: 560px) { .ffk-actus-dropmenu { left: auto; right: 0; min-width: 200px; } }

/* Mes réductions */
.ffk-red { max-width: 1100px; margin: 0 auto; padding: 8px 24px 44px; }
.ffk-red-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; margin-top: 20px; }
@media (max-width: 900px) { .ffk-red-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .ffk-red-grid { grid-template-columns: 1fr; } }
.ffk-red-card { display: flex; flex-direction: column; background: #fff; border: 1.5px solid #E1E8F4; border-radius: 18px; overflow: hidden; }
.ffk-red-card-img { display: block; aspect-ratio: 16/9; background: #EEF2FA; }
.ffk-red-card-img img { width: 100%; height: 100%; object-fit: cover; }
.ffk-red-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; }
.ffk-red-card-titre { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 17px; color: #16204A; margin: 0; }
.ffk-red-card-txt { color: #4A5578; font-size: 14px; line-height: 1.5; }
.ffk-red-card-txt p { margin: 0 0 8px; }
.ffk-red-card-cta { align-self: flex-start; margin-top: 4px; font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 13px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border-radius: 100px; padding: 10px 20px; text-decoration: none; }

/* ---------------------------------------------------------------------------
   Accueil personnalisé — remplace « Que cherchez-vous ? » dès qu'un profil existe
--------------------------------------------------------------------------- */
body.ffk-disc-on .ffk-sec-portes,
body.ffk-licencie-on .ffk-sec-portes { display: none; }

.ffk-ap { padding: clamp(28px,3.4vw,48px) clamp(20px,4vw,60px) 0; }
.ffk-ap-inner { max-width: 1500px; margin: 0 auto; background: #fff; border: 1.5px solid #E1E8F4; border-top: 4px solid var(--disc,#1C3C8C); border-radius: 24px; padding: 26px clamp(18px,2.4vw,30px) 30px; box-shadow: 0 26px 60px -40px rgba(12,28,80,.55); }
.ffk-ap-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 22px; }
.ffk-ap-h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: clamp(22px,2.1vw,30px); letter-spacing: -.02em; color: #101A33; margin: 8px 0 0; }
.ffk-ap-disc { color: var(--disc,#1C3C8C); }
.ffk-ap-pref { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13px; color: #1C3C8C; text-decoration: none; border: 1.5px solid #C3CEE4; border-radius: 100px; padding: 10px 18px; white-space: nowrap; }
.ffk-ap-pref:hover { border-color: #1C3C8C; background: #F4F7FD; }
.ffk-ap-head-act { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ffk-ap-toggle { display: inline-flex; align-items: center; gap: 8px; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 13px; color: #fff; background: #1C3C8C; border: 1.5px solid #1C3C8C; border-radius: 100px; padding: 10px 16px; cursor: pointer; white-space: nowrap; transition: background .15s ease; }
.ffk-ap-toggle:hover { background: #142C6A; }
.ffk-ap-toggle:focus-visible { outline: 3px solid #E4174B; outline-offset: 2px; }
.ffk-ap-toggle svg { transition: transform .2s ease; }
.ffk-ap.is-collapsed .ffk-ap-toggle svg { transform: rotate(180deg); }
.ffk-ap.is-collapsed .ffk-ap-cols { display: none; }
.ffk-ap.is-collapsed .ffk-ap-head { margin-bottom: 0; align-items: center; }
.ffk-ap.is-collapsed .ffk-ap-inner { padding-bottom: 22px; }
@media (prefers-reduced-motion: reduce) { .ffk-ap-toggle svg { transition: none; } }
.ffk-ap-cols { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 26px; }
@media (max-width: 1000px) { .ffk-ap-cols { grid-template-columns: 1fr 1fr; } .ffk-ap-col-actus { grid-column: 1 / -1; } }
@media (max-width: 680px) { .ffk-ap-cols { grid-template-columns: 1fr; } }
.ffk-ap-t { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 14px; letter-spacing: .01em; color: #16204A; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid #EEF2FA; }
.ffk-ap-actus { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
@media (max-width: 900px) { .ffk-ap-actus { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 560px) { .ffk-ap-actus { grid-template-columns: 1fr; } }
.ffk-ap-vide { color: #5E6880; font-size: 13.5px; line-height: 1.55; }
.ffk-ap-vide a, .ffk-ap-more a { color: #1C3C8C; font-weight: 700; text-decoration: none; }
.ffk-ap-vide a:hover, .ffk-ap-more a:hover { text-decoration: underline; }
.ffk-ap-more { margin: 12px 0 0; font-size: 13px; }
.ffk-ap .ffk-lic-club { margin-bottom: 10px; }

/* Préférence « infos compétitions » */
.ffk-pd-pref { display: flex; align-items: flex-start; gap: 11px; background: #F7F9FD; border: 1.5px solid #E1E8F4; border-radius: 14px; padding: 14px 16px; cursor: pointer; }
.ffk-pd-pref:hover { border-color: #C3CEE4; }
.ffk-pd-pref input { margin-top: 3px; width: 17px; height: 17px; accent-color: #1C3C8C; flex: 0 0 auto; }
.ffk-pd-pref span { display: flex; flex-direction: column; gap: 3px; }
.ffk-pd-pref strong { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px; color: #16204A; }
.ffk-pd-pref em { font-style: normal; font-size: 12.5px; color: #686F86; line-height: 1.45; }
.ffk-pd-pref-msg { margin: 8px 0 0; }

/* Champ prénom du profil */
.ffk-pd-prenom { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.ffk-pd-prenom .ffk-lic-field { flex: 1 1 220px; margin: 0; }
.ffk-pd-prenom-ok { font-family: 'Space Grotesk', sans-serif; font-weight: 800; font-size: 13.5px; color: #fff; background: linear-gradient(135deg,#1C3C8C,#E4174B); border: none; border-radius: 100px; padding: 13px 22px; cursor: pointer; }
.ffk-pd-prenom-ok:hover:not(:disabled) { transform: translateY(-1px); }
.ffk-pd-prenom-ok:disabled { opacity: .6; cursor: default; }
.ffk-pd-prenom-msg { flex: 1 1 100%; margin: 0; }
.ffk-ap-sub { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; color: #5E6880; margin: 6px 0 0; }
.ffk-ap-sub .ffk-ap-disc { font-weight: 800; }

/* Profil restaurable : mention + actions */
.ffk-lic-porta { display: flex; align-items: flex-start; gap: 9px; background: #F4F7FD; border-radius: 12px; padding: 12px 14px; margin: 18px 0 14px; font-size: 13px; line-height: 1.5; color: #4A5578; }
.ffk-lic-porta svg { flex: 0 0 auto; margin-top: 2px; color: #1C3C8C; }
.ffk-lic-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ffk-lic-effacer { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 600; font-size: 12.5px; color: #686F86; background: transparent; border: 1px solid #E1E8F4; border-radius: 100px; padding: 10px 16px; cursor: pointer; }
.ffk-lic-effacer:hover:not(:disabled) { color: #C21A3E; border-color: #C21A3E; }
.ffk-lic-effacer:disabled { opacity: .6; cursor: default; }

/* Suggestion de discipline d'après le club */
.ffk-pd-sugg { background: linear-gradient(120deg,#FFF6E9,#FFF1F4); border: 1.5px solid #F3D9C4; border-radius: 16px; padding: 16px 18px; margin: 0 0 18px; }
.ffk-pd-sugg-t { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px; color: #16204A; margin: 0 0 12px; line-height: 1.5; }
.ffk-pd-sugg .ffk-pd-chip { background: #fff; border-color: #E1C7AE; }
.ffk-pd-sugg-n { font-size: 12.5px; color: #8A6A4A; margin: 12px 0 0; }
.ffk-pd-sugg-n strong { color: #16204A; }

/* Multi-discipline : aide + coche sur les chips sélectionnées */
.ffk-pd-aide { font-size: 12.5px; color: #686F86; margin: 10px 0 0; }
.ffk-pd-chip.is-on::before { content: "✓ "; font-weight: 700; }

/* ---------------------------------------------------------------------------
   Correctif : l'attribut « hidden » doit l'emporter
   Une règle display: de la feuille de style prime sur le display:none que le
   navigateur applique à [hidden] : les menus déroulants s'ouvraient donc dès
   le chargement de la page. Filet de sécurité pour tous les éléments masqués.
--------------------------------------------------------------------------- */
[hidden] { display: none !important; }

/* Option « Toutes les… » en tête de chaque menu de filtre */
.ffk-actus-filter-any { font-style: italic; color: #686F86 !important; border-bottom: 1px solid #EEF2FA; border-radius: 9px 9px 0 0 !important; margin-bottom: 4px; }
.ffk-actus-filter-any.is-active { background: #EEF2FA !important; color: #1C3C8C !important; }

/* =========================================================================
   FFK — Recherche du site : panneau de la loupe + page de résultats
   ========================================================================= */
.ffk-rech-form { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 16px; padding: 6px 6px 6px 16px; box-shadow: 0 10px 30px -14px rgba(16,26,51,.45); border: 1.5px solid #DCE4F5; max-width: 720px; }
.ffk-rech-form:focus-within { border-color: #1C3C8C; box-shadow: 0 0 0 4px rgba(28,60,140,.12), 0 10px 30px -14px rgba(16,26,51,.45); }
.ffk-rech-ic { color: #1C3C8C; flex: 0 0 auto; }
.ffk-rech-form input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 500; font-size: 16.5px; color: #101A33; padding: 12px 4px; }
.ffk-rech-form input::placeholder { color: #7A849C; }
.ffk-rech-form input::-webkit-search-cancel-button { cursor: pointer; }
.ffk-rech-form button { flex: 0 0 auto; border: 0; cursor: pointer; border-radius: 11px; padding: 13px 22px; background: linear-gradient(135deg,#1C3C8C,#E4174B); color: #fff; font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 14.5px; }
.ffk-rech-form button:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }

/* Panneau */
.ffk-rech-panel { position: fixed; inset: 0; z-index: 400; display: flex; justify-content: center; align-items: flex-start; padding: clamp(70px, 12vh, 140px) 16px 16px; }
.ffk-rech-panel[hidden] { display: none; }
.ffk-rech-panel-fond { position: absolute; inset: 0; background: rgba(12,20,48,.55); backdrop-filter: blur(3px); }
.ffk-rech-panel-box { position: relative; width: 100%; max-width: 760px; background: #F4F7FD; border-radius: 24px; padding: clamp(18px, 3vw, 30px); box-shadow: 0 40px 90px -30px rgba(8,16,42,.7); animation: ffkRechIn .18s ease-out; }
@keyframes ffkRechIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: none; } }
.ffk-rech-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.ffk-rech-panel-t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(20px, 2.4vw, 26px); color: #101A33; margin: 0; }
.ffk-rech-panel-x { width: 40px; height: 40px; border-radius: 50%; border: 1px solid #DCE4F5; background: #fff; color: #1C3C8C; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.ffk-rech-panel-x:hover { border-color: #1C3C8C; }
.ffk-rech-panel .ffk-rech-form { max-width: none; }
.ffk-rech-panel-sugg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; color: #5E6880; }
.ffk-rech-panel-sugg span { font-weight: 700; margin-right: 2px; }
.ffk-rech-panel-sugg a, .ffk-rech-raccourcis a { display: inline-flex; padding: 6px 12px; border-radius: 100px; background: #fff; border: 1px solid #E2E8F3; color: #1C3C8C; font-weight: 700; font-size: 13px; text-decoration: none; }
.ffk-rech-panel-sugg a:hover, .ffk-rech-raccourcis a:hover { border-color: #1C3C8C; }
html.ffk-rech-ouvert { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .ffk-rech-panel-box { animation: none; } }

/* Page de résultats */
.ffk-rech-hero .ffk-ph-body { max-width: 980px; width: 100%; box-sizing: border-box; }
.ffk-rech-form { box-sizing: border-box; width: 100%; }
.ffk-rech-hero .ffk-ph-title { margin-bottom: 20px; overflow-wrap: anywhere; }
.ffk-rech { max-width: 1000px; margin: clamp(22px, 3vw, 40px) auto 0; padding: 0 clamp(16px, 4vw, 40px); }
.ffk-rech-filtres { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.ffk-rech-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 100px; background: #fff; border: 1.5px solid #DCE4F5; color: #16264F; font-weight: 700; font-size: 14px; text-decoration: none; }
.ffk-rech-chip span { font-size: 12px; background: #EEF2FA; color: #54607A; border-radius: 100px; padding: 2px 8px; }
.ffk-rech-chip:hover { border-color: #1C3C8C; }
.ffk-rech-chip.is-actif { background: #1C3C8C; border-color: #1C3C8C; color: #fff; }
.ffk-rech-chip.is-actif span { background: rgba(255,255,255,.2); color: #fff; }
.ffk-rech-chip.is-vide { opacity: .55; }
.ffk-rech-total { font-size: 13.5px; font-weight: 600; color: #5E6880; margin: 0 0 16px; }
.ffk-rech-liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ffk-rech-item { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 20px; align-items: stretch; background: #fff; border: 1px solid #E6ECF7; border-radius: 18px; padding: 12px; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.ffk-rech-item.no-img { grid-template-columns: minmax(0,1fr); padding: 16px 20px; }
.ffk-rech-item:hover { border-color: #C9D6F0; box-shadow: 0 18px 40px -26px rgba(20,40,100,.45); transform: translateY(-1px); }
.ffk-rech-item:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-rech-img { border-radius: 12px; background: #EEF2F9 center/cover no-repeat; min-height: 112px; }
.ffk-rech-txt { display: flex; flex-direction: column; gap: 6px; padding: 4px 6px 4px 0; min-width: 0; }
.ffk-rech-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12.5px; color: #5E6880; }
.ffk-rech-type { display: inline-flex; padding: 3px 9px; border-radius: 100px; font-weight: 800; font-size: 10.5px; letter-spacing: .06em; text-transform: uppercase; background: #E8EEFB; color: #1C3C8C; }
.ffk-rech-type.is-post { background: #FDE7ED; color: #B80F3A; }
.ffk-rech-type.is-calendrier, .ffk-rech-type.is-evenement { background: #E5F4EC; color: #1D7A45; }
.ffk-rech-type.is-club { background: #F1E9FB; color: #6B32B5; }
.ffk-rech-type.is-mediatheque { background: #FFF3DC; color: #9A5B00; }
.ffk-rech-fil { font-weight: 600; }
.ffk-rech-titre { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(17px, 1.5vw, 19.5px); line-height: 1.25; color: #101A33; }
.ffk-rech-item:hover .ffk-rech-titre { color: #1C3C8C; }
.ffk-rech-extrait { font-size: 14.5px; line-height: 1.55; color: #54607A; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.ffk-rech-extrait mark { background: #FFF1B8; color: #101A33; border-radius: 3px; padding: 0 2px; }
.ffk-rech-pag { margin-top: 28px; }
.ffk-rech-pag ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; }
.ffk-rech-pag a, .ffk-rech-pag span { display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; padding: 0 12px; border-radius: 100px; background: #fff; border: 1px solid #E2E8F3; color: #1C3C8C; font-weight: 700; font-size: 14px; text-decoration: none; }
.ffk-rech-pag .current { background: #1C3C8C; border-color: #1C3C8C; color: #fff; }
.ffk-rech-pag .dots { border: 0; background: transparent; }
.ffk-rech-vide { background: #fff; border: 1px solid #E6ECF7; border-radius: 18px; padding: 26px 24px; color: #54607A; }
.ffk-rech-vide-t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 20px; color: #101A33; margin: 0 0 6px; }
.ffk-rech-vide p:last-child { margin: 0; }
.ffk-rech-raccourcis { margin-top: 34px; padding-top: 22px; border-top: 1px solid #E2E8F3; }
.ffk-rech-raccourcis-t { font-weight: 800; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #5E6880; margin: 0 0 10px; }
.ffk-rech-raccourcis div { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 640px) {
	.ffk-rech-item { grid-template-columns: 96px minmax(0,1fr); gap: 12px; padding: 10px; }
	.ffk-rech-img { min-height: 80px; }
	.ffk-rech-form button { padding: 12px 14px; }
	.ffk-rech-form { padding-left: 12px; }
}

/* Recherche dans le menu mobile (la loupe du header y est masquée). */
.ffk-mm-drawer-search { padding: 4px 0 16px; }
.ffk-mm-drawer-search .ffk-rech-form { box-shadow: none; border-radius: 14px; padding-left: 12px; }
.ffk-mm-drawer-search .ffk-rech-form input { font-size: 16px; padding: 10px 4px; }
.ffk-mm-drawer-search .ffk-rech-form button { padding: 11px 14px; font-size: 13.5px; }


/* ===== Compositions FFK dans une page de contenu (colonne + sommaire) =====
   Les pages sont découpées en Sections FFK (une par grand titre). Dans la
   colonne de lecture, la section ne rajoute ni marge latérale ni largeur
   propre : elle rythme simplement le contenu. */
.ffk-doc-main .ffk-b-section { padding-top: 0; padding-bottom: clamp(22px, 3vw, 40px); }
.ffk-doc-main .ffk-b-section-inner, .ffk-doc-main .ffk-b-section-inner.is-normal { max-width: none; padding-left: 0; padding-right: 0; }
.ffk-doc-main .ffk-b-section + .ffk-b-section { border-top: 1px solid #E1E8F4; padding-top: clamp(22px, 3vw, 40px); }
.ffk-doc-main .ffk-b-titre-section { margin: 0 0 18px; padding: 0; text-align: left; }
.ffk-doc-main .ffk-b-titre-section .ffk-b-title { font-size: clamp(24px, 2.4vw, 32px); margin: 0; scroll-margin-top: 110px; }
.ffk-doc-main .ffk-b-section > .ffk-b-section-inner > .ffk-b:not(.ffk-b-titre-section) { margin-top: 18px; margin-bottom: 18px; }

/* ==========================================================================
   FFK — Navigation de rubrique (« Dans cette rubrique », inc/ffk-rubriques.php)
   ========================================================================== */
.ffk-rub { background: #fff; border: 1px solid #E2E8F3; border-radius: 18px; padding: 18px 20px; }
.ffk-doc-toc-col .ffk-rub + .ffk-art-toc { margin-top: 14px; }
.ffk-rub-eyebrow { margin: 0; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 11.5px; letter-spacing: .08em; text-transform: uppercase; color: #5E6B85; }
.ffk-rub-titre { margin: 4px 0 12px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 17px; line-height: 1.25; color: #101A33; }
.ffk-rub-liens { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.ffk-rub-liens li { margin: 0; padding: 0; }
.ffk-rub-liens li::before { content: none; }
.ffk-rub-liens a { display: block; padding: 7px 10px; border-radius: 10px; font-weight: 600; font-size: 14px; line-height: 1.3; color: #1C3C8C; text-decoration: none; background-image: none; }
.ffk-rub-liens a:hover { background: #F2F6FD; color: #1C3C8C; }
.ffk-rub-liens a.is-current { background: #EAF0FB; color: #101A33; box-shadow: inset 3px 0 0 #E4174B; }
.ffk-rub-liens a:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 1px; }
.ffk-rub--mobile { display: none; grid-column: 1 / -1; margin-top: 8px; }
.ffk-doc-body.no-sommaire .ffk-doc-toc-col { align-self: start; }
@media (max-width: 960px) {
	.ffk-rub--aside { display: none; }
	.ffk-doc-body.no-sommaire .ffk-doc-toc-col { display: none; }
	.ffk-rub--mobile { display: block; }
}
/* Fiches disciplines : « Aller plus loin » */
.ffk-disc-plus-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.ffk-disc-plus-c { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 16px; background: #fff; border: 1px solid #E2E8F3; text-decoration: none; transition: border-color .15s ease, transform .15s ease; }
.ffk-disc-plus-c:hover { border-color: var(--c, #1C3C8C); transform: translateY(-1px); }
.ffk-disc-plus-c.is-main { grid-column: span 2; background: var(--c-fond, var(--c, #1C3C8C)); border-color: transparent; }
.ffk-disc-plus-t { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 16px; line-height: 1.2; color: #101A33; }
.ffk-disc-plus-c.is-main .ffk-disc-plus-t { color: #fff; font-size: 18px; }
.ffk-disc-plus-d { font-size: 13.5px; color: #FFFFFF; font-weight: 500; }
@media (max-width: 560px) { .ffk-disc-plus-c.is-main { grid-column: auto; } }
@media (prefers-reduced-motion: reduce) { .ffk-disc-plus-c { transition: none; } }

/* ==========================================================================
   FFK — Page Contact (inc/fragments/contact.html)
   ========================================================================== */
.ffk-ct-sec { padding: clamp(20px,2.4vw,34px) clamp(20px,4vw,60px); }
.ffk-ct-in { max-width: 1500px; margin: 0 auto; }
.ffk-ct-grid { max-width: 1500px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: clamp(18px,2vw,28px); align-items: start; }
.ffk-ct-aside { display: flex; flex-direction: column; gap: 16px; }
.ffk-ct-card { background: #fff; border-radius: 22px; padding: 24px 26px; box-shadow: 0 24px 50px -42px rgba(20,40,100,.5); }
.ffk-ct-h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 19px; line-height: 1.25; color: #101A33; margin: 0 0 16px; }
.ffk-ct-h2 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(26px,3vw,42px); letter-spacing: -.02em; line-height: 1.05; color: #101A33; margin: 0; }
.ffk-ct-kicker { 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-ct-kicker-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg,#1C3C8C,#E4174B); }
.ffk-ct-infos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.ffk-ct-infos li { display: flex; gap: 13px; margin: 0; font-weight: 500; font-size: 14px; line-height: 1.55; color: #3F4A63; }
.ffk-ct-infos strong { font-weight: 700; color: #101A33; }
.ffk-ct-infos a { font-weight: 700; color: #1C3C8C; text-decoration: none; }
.ffk-ct-infos a:hover { text-decoration: underline; }
.ffk-ct-ic { width: 38px; height: 38px; border-radius: 11px; background: #EAEFFA; display: flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.ffk-ct-ic--lg { width: 46px; height: 46px; border-radius: 13px; }
.ffk-ct-map { padding: 0; overflow: hidden; }
.ffk-ct-map-zone { position: relative; height: 260px; background: #EAF0FA; }
.ffk-ct-map-frame { display: block; width: 100%; height: 260px; border: 0; background: #EAF0FA; }
.ffk-ct-map-ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 20px; text-align: center; background-color: #E3EBF8; background-image: linear-gradient(rgba(37,99,214,.10) 1px, transparent 1px), linear-gradient(90deg, rgba(37,99,214,.10) 1px, transparent 1px); background-size: 34px 34px; }
.ffk-ct-map-pin { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50% 50% 50% 2px; background: #E4174B; transform: rotate(-45deg); box-shadow: 0 12px 24px -8px rgba(228,23,75,.7); }
.ffk-ct-map-pin svg { transform: rotate(45deg); }
.ffk-ct-map-load { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 14px; color: #1C3C8C; background: #fff; border: 1.5px solid #1C3C8C; border-radius: 100px; padding: 10px 18px; cursor: pointer; }
.ffk-ct-map-load:hover { background: #1C3C8C; color: #fff; }
.ffk-ct-map-load:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
.ffk-ct-map-info { margin: 0; font-size: 12px; font-weight: 500; color: #5E6880; }
.ffk-cf .ffk-field { box-sizing: border-box; max-width: 100%; min-width: 0; }
.ffk-ct-map-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 18px; }
.ffk-ct-map-t { font-weight: 700; font-size: 14px; color: #101A33; }
.ffk-ct-map-btn { display: inline-flex; align-items: center; gap: 7px; font-weight: 800; font-size: 13.5px; color: #fff; background: #1C3C8C; padding: 10px 16px; border-radius: 100px; text-decoration: none; }
.ffk-ct-map-btn:hover { background: #E4174B; color: #fff; }
.ffk-ct-txt { margin: 0 0 12px; font-weight: 500; font-size: 14px; line-height: 1.55; color: #5E6880; }
.ffk-ct-transports { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.ffk-ct-transports li { display: flex; align-items: center; gap: 12px; margin: 0; font-weight: 600; font-size: 14px; color: #3F4A63; }
.ffk-ct-ligne { flex: 0 0 auto; min-width: 58px; text-align: center; font-weight: 800; font-size: 12px; letter-spacing: .02em; color: #fff; border-radius: 8px; padding: 5px 8px; }
.ffk-ct-metro { background: #B5367E; } .ffk-ct-rer { background: #3A77C2; } .ffk-ct-tram { background: #B26218; } .ffk-ct-bus { background: #1E7A4C; }
.ffk-ct-sve { max-width: 1500px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: clamp(20px,3vw,44px); align-items: center; background: #fff; border-radius: 26px; padding: clamp(24px,3vw,44px); box-shadow: 0 30px 60px -42px rgba(20,40,100,.5); }
.ffk-ct-sve-txt p, .ffk-ct-sve-txt li { font-weight: 500; font-size: 14.5px; line-height: 1.65; color: #3F4A63; }
.ffk-ct-sve-txt p { margin: 12px 0 0; max-width: 78ch; }
.ffk-ct-sve-txt .ffk-ct-h2 { margin-bottom: 4px; }
.ffk-ct-sve-txt ul { margin: 6px 0 0; padding-left: 20px; }
.ffk-ct-sve-txt li { margin: 2px 0; }
.ffk-ct-note { font-size: 13px !important; color: #5E6880 !important; }
.ffk-ct-sve-cta { background: linear-gradient(150deg,#1C3C8C,#16264F); border-radius: 22px; padding: 26px; color: #fff; }
.ffk-ct-sve-lbl { margin: 0; font-weight: 800; font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.ffk-ct-sve-mail { display: inline-block; margin: 8px 0 12px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: clamp(22px,2.2vw,30px); color: #fff; text-decoration: none; overflow-wrap: anywhere; }
.ffk-ct-sve-mail:hover { text-decoration: underline; color: #fff; }
.ffk-ct-sve-hint { margin: 0; font-weight: 500; font-size: 13.5px; line-height: 1.55; color: rgba(255,255,255,.82); }
.ffk-ct-services { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.ffk-ct-service { background: #fff; border-radius: 20px; padding: 22px 24px; box-shadow: 0 24px 50px -42px rgba(20,40,100,.5); border-left: 4px solid var(--c, #1C3C8C); }
.ffk-ct-service h3 { font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 17px; line-height: 1.25; color: #101A33; margin: 0 0 6px; }
.ffk-ct-service p { font-weight: 500; font-size: 13px; line-height: 1.5; color: #5E6880; margin: 0 0 12px; }
.ffk-ct-service > a { font-weight: 700; font-size: 13.5px; color: #1C3C8C; text-decoration: none; overflow-wrap: anywhere; }
.ffk-ct-service > a:hover { text-decoration: underline; }
.ffk-ct-inline { color: #1C3C8C; font-weight: 700; }
.ffk-ct-ligues { margin-top: 16px; background: #fff; border-radius: 20px; padding: 22px 26px; box-shadow: 0 24px 50px -42px rgba(20,40,100,.5); display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.ffk-ct-btn { display: inline-flex; align-items: center; gap: 8px; font-weight: 800; font-size: 14px; color: #fff; background: #1C3C8C; padding: 13px 22px; border-radius: 100px; text-decoration: none; white-space: nowrap; }
.ffk-ct-btn:hover { background: #E4174B; color: #fff; }
.ffk-ct-faq { background: #fff; border-radius: 16px; box-shadow: 0 20px 44px -40px rgba(20,40,100,.5); overflow: hidden; }
.ffk-ct-faq > button { 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: 'Space Grotesk', sans-serif; font-weight: 600; font-size: 16.5px; color: #101A33; }
.ffk-ct-faq > button:focus-visible { outline: 3px solid #5EE0C0; outline-offset: -3px; }
.ffk-ct-faq .ffk-faq-a { padding-left: 22px; padding-right: 22px; font-weight: 500; font-size: 14.5px; line-height: 1.65; color: #5E6880; }
.ffk-ct-faq.is-open .ffk-faq-a { padding-bottom: 18px; }
.ffk-ct-faq .ffk-faq-a a { color: #1C3C8C; font-weight: 700; }
@media (max-width: 1100px) { .ffk-ct-services { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 900px) {
	.ffk-ct-grid, .ffk-ct-sve { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 640px) {
	.ffk-ct-services { grid-template-columns: minmax(0,1fr); }
	.ffk-cf-grid2 { grid-template-columns: minmax(0,1fr); }
	.ffk-ct-ligues .ffk-ct-btn { width: 100%; justify-content: center; }
}

/* Archives des championnats (inc/ffk-championnats.php) */
.ffk-champ { margin: 8px 0 12px; }
.ffk-champ-filtres { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.ffk-prose .ffk-champ-chip, .ffk-champ-chip { appearance: none; border: 1px solid #D9E1EF; background: #fff; color: #15234F; border-radius: 100px; padding: 8px 14px; font: 700 13px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; display: inline-flex; gap: 7px; align-items: center; }
.ffk-champ-chip span { background: #EEF2FA; border-radius: 100px; padding: 3px 7px; font-size: 11px; color: #4A5878; }
.ffk-champ-chip.is-on { background: #15234F; border-color: #15234F; color: #fff; }
.ffk-champ-chip.is-on span { background: rgba(255,255,255,.18); color: #fff; }
.ffk-champ-chip:focus-visible { outline: 3px solid #E4174B; outline-offset: 2px; }
.ffk-prose ul.ffk-champ-grid, .ffk-champ-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; }
.ffk-prose .ffk-champ-grid > li { margin: 0; padding: 0; }
.ffk-prose .ffk-champ-grid > li::before { content: none; }
.ffk-champ-item[hidden] { display: none; }
.ffk-prose a.ffk-champ-card, .ffk-champ-card { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid #E2E8F3; border-radius: 20px; overflow: hidden; text-decoration: none; color: #15234F; box-shadow: 0 24px 50px -40px rgba(16,30,90,.55); transition: transform .25s ease, box-shadow .25s ease; }
.ffk-champ-card:hover { transform: translateY(-3px); box-shadow: 0 30px 60px -36px rgba(16,30,90,.6); }
.ffk-champ-card:focus-visible { outline: 3px solid #E4174B; outline-offset: 3px; }
.ffk-champ-media { position: relative; display: block; aspect-ratio: 16/9; background: linear-gradient(135deg,#1C3C8C,#E4174B) center/cover no-repeat; }
.ffk-champ-media[style] { background-size: cover; background-position: center; }
.ffk-champ-annee { position: absolute; left: 14px; bottom: 12px; background: #fff; color: #15234F; border-radius: 100px; padding: 5px 11px; font: 800 12px/1 'Space Grotesk', sans-serif; letter-spacing: .04em; }
.ffk-champ-body { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px 20px; flex: 1; }
.ffk-champ-type { font: 800 10.5px/1.2 'Plus Jakarta Sans', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #E4174B; }
.ffk-champ-titre { font: 700 19px/1.2 'Space Grotesk', sans-serif; color: #15234F; }
.ffk-champ-meta { font: 600 13px/1.4 'Plus Jakarta Sans', sans-serif; color: #4A5878; }
.ffk-champ-resume { font: 400 14px/1.55 'Plus Jakarta Sans', sans-serif; color: #33415F; }
.ffk-champ-cta { margin-top: auto; padding-top: 6px; font: 700 13.5px/1 'Plus Jakarta Sans', sans-serif; color: #1C3C8C; }
.ffk-champ-card:hover .ffk-champ-cta { color: #E4174B; }
.ffk-champ-vide { color: #4A5878; }

/* Page « Alertes et brèves » (/breve/, inc/ffk-breves.php) */
.ffk-brv .ffk-med-inner { max-width: 1040px; }
.ffk-brv-filtres { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 26px; }
.ffk-brv-chip { display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 100px; background: #fff; border: 1px solid #D9E1EF; font: 700 13px/1 'Plus Jakarta Sans', sans-serif; color: #15234F; text-decoration: none; }
.ffk-brv-chip:hover { border-color: #1C3C8C; }
.ffk-brv-chip.is-on { background: #15234F; border-color: #15234F; color: #fff; }
.ffk-brv-chip:focus-visible, .ffk-brv-cat:focus-visible { outline: 3px solid #E4174B; outline-offset: 2px; }
.ffk-brv-liste { display: flex; flex-direction: column; gap: 14px; }
.ffk-brv-item { display: grid; grid-template-columns: 76px 1fr; gap: 20px; background: #fff; border: 1px solid #E2E8F3; border-radius: 18px; padding: 20px 22px; box-shadow: 0 20px 44px -40px rgba(16,30,90,.55); scroll-margin-top: 120px; }
.ffk-brv-item.is-courante { border-color: #C2185B; box-shadow: 0 0 0 3px rgba(194,24,91,.12), 0 20px 44px -40px rgba(16,30,90,.55); }
.ffk-brv-date { display: flex; flex-direction: column; align-items: center; justify-content: center; align-self: start; min-height: 72px; border-radius: 14px; background: #F1F5FC; color: #15234F; text-align: center; }
.ffk-brv-jour { font: 700 26px/1 'Space Grotesk', sans-serif; }
.ffk-brv-mois { font: 700 11px/1.3 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: .04em; color: #4A5878; margin-top: 4px; }
.ffk-brv-body { min-width: 0; }
.ffk-brv-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.ffk-brv-now { background: #C2185B; color: #fff; border-radius: 100px; padding: 3px 9px; font: 800 10.5px/1.3 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.ffk-brv-cat { font: 800 10.5px/1.3 'Plus Jakarta Sans', sans-serif; text-transform: uppercase; letter-spacing: .06em; color: #1C3C8C; background: #EEF2FA; border-radius: 100px; padding: 3px 9px; text-decoration: none; }
.ffk-brv-cat:hover { background: #DDE5F4; }
.ffk-brv-titre { font: 700 clamp(17px,1.6vw,20px)/1.25 'Space Grotesk', sans-serif; color: #101A33; margin: 0 0 6px; }
.ffk-brv-texte { font: 400 15px/1.6 'Plus Jakarta Sans', sans-serif; color: #33415F; overflow-wrap: anywhere; }
.ffk-brv-texte > :first-child { margin-top: 0; }
.ffk-brv-texte > :last-child { margin-bottom: 0; }
.ffk-brv-texte p, .ffk-brv-texte ul, .ffk-brv-texte ol { margin: 0 0 10px; }
.ffk-brv-texte ul, .ffk-brv-texte ol { padding-left: 20px; }
.ffk-brv-texte a { color: #1C3C8C; font-weight: 600; text-underline-offset: 3px; }
.ffk-brv-texte img { max-width: 100%; height: auto; border-radius: 10px; }
.ffk-brv-details summary { list-style: none; cursor: pointer; font: 400 15px/1.6 'Plus Jakarta Sans', sans-serif; color: #33415F; }
.ffk-brv-details summary::-webkit-details-marker { display: none; }
.ffk-brv-suite { display: inline-block; margin-left: 8px; font-weight: 700; color: #1C3C8C; text-decoration: underline; text-underline-offset: 3px; }
.ffk-brv-details summary:focus-visible { outline: 3px solid #E4174B; outline-offset: 3px; border-radius: 6px; }
.ffk-brv-details[open] summary { display: none; }
@media (max-width: 560px) {
	.ffk-brv-item { grid-template-columns: 1fr; gap: 10px; padding: 16px; }
	.ffk-brv-date { flex-direction: row; gap: 6px; min-height: 0; align-self: flex-start; padding: 5px 10px; border-radius: 100px; }
	.ffk-brv-jour { font-size: 14px; }
	.ffk-brv-mois { margin-top: 0; }
}

/* --- Page discipline Karaté : grille des 5 formes (alignée sur le méga-menu) --- */
.ffk-formes-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0,1fr)); }
.ffk-formes-grid > :first-child { grid-row: span 2; }
@media (min-width: 900px) { .ffk-formes-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 599px) { .ffk-formes-grid { grid-template-columns: 1fr; } .ffk-formes-grid > :first-child { grid-row: auto; } }

/* ============================================================
   MOBILE — lot 1 de l'audit du 25/09/2026
   Les blocs de l'accueil, de la page Karaté et de la page Fédération
   portaient leur grille en style en ligne (maquette bureau) : aucune
   règle responsive ne pouvait les atteindre. La grille est désormais
   ici, et se replie par paliers. Les !important ne visent que des
   propriétés typographiques restées en ligne dans le gabarit.
   ============================================================ */

/* ---- Grilles génériques (Karaté « Pourquoi commencer », Fédération) ---- */
.ffk-g { display: grid; }
.ffk-g > * { min-width: 0; }
.ffk-g-2  { grid-template-columns: 1fr 1fr; }
.ffk-g-2b { grid-template-columns: 1fr 1.15fr; }
.ffk-g-3  { grid-template-columns: repeat(3, 1fr); }
.ffk-g-4  { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) {
	.ffk-g-4 { grid-template-columns: repeat(2, 1fr); }
	.ffk-g-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 800px) {
	.ffk-g-2, .ffk-g-2b { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
	.ffk-g-3, .ffk-g-mob-1 { grid-template-columns: 1fr; }
}

/* ---- Accueil · haut de page ---- */
.ffk-hero2-grid > *, .ffk-hero2-left, .ffk-hero2-right { min-width: 0; }
@media (max-width: 600px) {
	.ffk-hero2 { padding: 12px; }
	.ffk-hero2-card { border-radius: 26px; }
	.ffk-hero2-grid { padding: 26px 20px 24px; gap: 22px; }
	.ffk-hero2-badge { font-size: 11px; padding: 6px 12px; margin-bottom: 16px; letter-spacing: .06em; }
	.ffk-hero2-title { font-size: clamp(30px, 9.2vw, 38px); }
	.ffk-hero2-sub { font-size: 15.5px; margin-bottom: 20px; }
	/* Recherche empilée : champ pleine largeur, bouton dessous. */
	.ffk-hero2-search { flex-wrap: wrap; border-radius: 22px; padding: 6px; gap: 6px; max-width: none; }
	.ffk-hero2-search-field { flex: 1 1 100%; padding: 0 10px 0 14px; }
	.ffk-hero2-search input { font-size: 16px; padding: 12px 0; }
	.ffk-hero2-search button { flex: 1 1 100%; justify-content: center; padding: 15px 20px; font-size: 15px; }
	/* Rendez-vous : rail horizontal à défilement aimanté. */
	.ffk-hero2-events { flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
		margin-right: -20px; padding-right: 20px; max-width: none; -webkit-overflow-scrolling: touch; }
	.ffk-hero2-events::-webkit-scrollbar { display: none; }
	.ffk-hero2-event { flex: 0 0 72%; scroll-snap-align: start; }
	.ffk-hero2-events-head { max-width: none; }
	.ffk-hero2-events-label, .ffk-hero2-cal { font-size: 12px; }
	.ffk-hero2-mon { font-size: 11px; }
	.ffk-hero2-ev-title { font-size: 13.5px; }
	/* « À la une » : ces articles ouvrent déjà le bloc « L'actualité » juste en dessous. */
	.ffk-hero2-right { display: none; }
}

/* ---- Accueil · « Que cherchez-vous ? » ---- */
.ffk-portes { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.ffk-portes > a { position: relative; display: block; text-decoration: none; border-radius: 24px; padding: 24px; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
/* Tablette : 3 + 2 cartes sur une grille de 6, sans trou en fin de rangée. */
@media (max-width: 1100px) {
	.ffk-portes { grid-template-columns: repeat(6, 1fr); }
	.ffk-portes > a { grid-column: span 2; }
	.ffk-portes > a:nth-child(n+4) { grid-column: span 3; }
}
@media (max-width: 700px) {
	/* Liste : une ligne par porte (icône, titre, description), toute la carte est cliquable. */
	.ffk-portes { grid-template-columns: 1fr; gap: 10px; }
	.ffk-portes > a, .ffk-portes > a:nth-child(n+4) { grid-column: auto; }
	.ffk-portes > a { display: grid; grid-template-columns: 44px 1fr 18px; column-gap: 14px; align-items: center; padding: 14px 16px 14px 14px; border-radius: 18px; }
	.ffk-porte-ic { width: 44px !important; height: 44px !important; margin: 0 !important; border-radius: 13px !important; grid-row: 1 / span 2; }
	.ffk-porte-t { font-size: 17.5px !important; margin: 0 !important; line-height: 1.2; }
	.ffk-porte-p { grid-column: 2; font-size: 13.5px !important; margin: 3px 0 0 !important; line-height: 1.4 !important; }
	.ffk-porte-go { display: none !important; }
	.ffk-portes > a::after { content: ""; grid-column: 3; grid-row: 1 / span 2; width: 10px; height: 10px; border-top: 2.5px solid rgba(255,255,255,.8); border-right: 2.5px solid rgba(255,255,255,.8); transform: rotate(45deg); }
	.ffk-portes > a:hover { transform: none; }
}

/* ---- Accueil · « 12 univers » ---- */
.ffk-univ { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 228px; gap: 16px; }
.ffk-univ > * { min-width: 0; }
.ffk-univ-karate { grid-column: span 2; grid-row: span 2; }
.ffk-univ-formes { display: grid; grid-template-columns: repeat(3, 1fr); align-content: center; gap: 12px; }
.ffk-univ-trad { grid-column: 1 / 3; }
.ffk-univ-forme:not(.ffk-univ-trad) { aspect-ratio: 3 / 2; }
@media (max-width: 1100px) {
	/* Le bloc Karaté passe en pleine largeur et prend la hauteur de son
	   contenu : la hauteur fixe va aux tuiles, plus aux rangées. */
	.ffk-univ { grid-template-columns: repeat(4, 1fr); grid-auto-rows: auto; } /* 8 tuiles : 2 rangées pleines */
	.ffk-univ-karate { grid-column: 1 / -1; grid-row: auto; }
	.ffk-univ > .ffk-univ-tile { height: 210px; }
}
@media (max-width: 700px) {
	.ffk-univ { grid-template-columns: 1fr 1fr; gap: 12px; }
	.ffk-univ > .ffk-univ-tile { height: 172px; }
	.ffk-univ-karate { padding: 24px 20px !important; border-radius: 24px !important; }
	.ffk-univ-formes { grid-template-columns: 1fr 1fr; gap: 10px; }
	.ffk-univ-trad { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
	.ffk-univ-forme-sub { font-size: 12px !important; }
	.ffk-univ-tile { border-radius: 18px !important; }
	.ffk-univ-lbl { left: 10px !important; right: 10px !important; bottom: 10px !important; padding: 9px 11px !important; border-radius: 11px !important; }
	.ffk-univ-tile-t { font-size: 16.5px !important; line-height: 1.15; }
	.ffk-univ-tile-p { font-size: 12.5px !important; line-height: 1.35 !important; margin-top: 2px !important; }
	.ffk-univ-tile img[aria-hidden] { width: 20px !important; height: 20px !important; }
	.ffk-univ-all { padding: 16px !important; }
}

/* ---- Champs de saisie : 16 px sur mobile, sinon Safari iOS zoome au focus ---- */
@media (max-width: 900px) {
	input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]), select, textarea { font-size: 16px !important; }
}

/* ---- Cibles tactiles : 44 px au moins, sans changer le dessin ----
   Zone de contact élargie par un pseudo-élément transparent. */
@media (max-width: 900px) {
	.ffk-breve-lire, .ffk-breve-autres, .ffk-breve-close, .ffk-hero2-cal, .ffk-hero2-allnews,
	.ffk-vit-all, .ffk-actus-all, .ffk-disc-sec-more > a:not(.ffk-disc-cta), nav[aria-label^="Fil d"] a, .ffk-footer-legal-links a { position: relative; }
	.ffk-breve-lire::after, .ffk-breve-autres::after, .ffk-hero2-cal::after, .ffk-hero2-allnews::after,
	.ffk-vit-all::after, .ffk-actus-all::after, .ffk-disc-sec-more > a:not(.ffk-disc-cta)::after, nav[aria-label^="Fil d"] a::after, .ffk-footer-legal-links a::after {
		content: ""; position: absolute; left: -4px; right: -4px; top: 50%; height: 44px; transform: translateY(-50%);
	}
	.ffk-breve-close::after { content: ""; position: absolute; left: 50%; top: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); }
	.ffk-cl-crit summary { padding: 12px 0; }
	/* Pied de page : liens de 44 px de haut (l'espacement vient du lien lui-même). */
	.ffk-foot-links { gap: 0; }
	.ffk-foot-links a { display: block; padding: 11px 0; }
	.ffk-foot-social a { width: 44px; height: 44px; }
}
@media (max-width: 560px) {
	/* Colonnes de liens du pied de page par deux : la hauteur ne double pas. */
	.ffk-footer-grid { grid-template-columns: 1fr 1fr; column-gap: 20px; }
	.ffk-footer-brand, .ffk-newsletter { grid-column: 1 / -1; }
	.ffk-footer-legal-links { gap: 0 18px; }
}

/* ---- Classements : tableaux dans l'écran ---- */
.ffk-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ffk-cl-disc-m { display: none; }
@media (max-width: 560px) {
	.ffk-cl-table { font-size: 14px; }
	.ffk-cl-table td, .ffk-cl-table thead th { padding: 9px 6px; }
	.ffk-cl-top th:nth-child(3), .ffk-cl-top td.ffk-cl-disc { display: none; }
	.ffk-cl-disc-m { display: block; font-size: 12.5px; font-weight: 600; color: #1C3C8C; margin-top: 2px; }
	.ffk-cl-rank { width: 34px; }
}

/* ---- Étiquettes en capitales : 12 px au moins sur mobile ---- */
@media (max-width: 700px) {
	.ffk-hero2-badge, .ffk-hero2-mon, .ffk-vit-live, .ffk-vit-video-tag, .ffk-actus-card-cat,
	.ffk-nl-cta-badge, .ffk-partners-badge, .ffk-partners-label, .ffk-footer-h { font-size: 12px; }
	.ffk-sec-disc span[style*="font-size:11.5px"], .ffk-univ-karate span[style*="font-size:10.5px"] { font-size: 12px !important; }
}

/* ============================================================
   MOBILE — lot 2 de l'audit du 25/09/2026 : navigation et condensé
   (inc/ffk-mobile.php, assets/js/ffk-mobile.js)
   ============================================================ */

/* ---- Barre d'actions en bas d'écran ---- */
.ffk-tabbar { display: none; }
@media (max-width: 760px) {
	.ffk-tabbar {
		display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 160;
		background: rgba(255, 255, 255, .97); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
		border-top: 1px solid #E3E9F4; box-shadow: 0 -12px 30px -22px rgba(16, 30, 90, .5);
		padding-bottom: env(safe-area-inset-bottom); transition: transform .22s ease;
	}
	.ffk-tabbar ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
	.ffk-tabbar a, .ffk-tabbar button {
		box-sizing: border-box; position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
		width: 100%; min-height: 60px; padding: 7px 4px 6px; background: none; border: 0; cursor: pointer;
		font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 12px; line-height: 1.1;
		color: #56617A; text-decoration: none; -webkit-tap-highlight-color: transparent;
	}
	.ffk-tabbar [aria-current="page"], .ffk-tabbar button[aria-expanded="true"] { color: #1C3C8C; }
	.ffk-tabbar [aria-current="page"]::before {
		content: ""; position: absolute; top: 0; left: 28%; right: 28%; height: 3px; border-radius: 0 0 3px 3px;
		background: linear-gradient(90deg, #1C3C8C, #E4174B);
	}
	.ffk-tabbar a:focus-visible, .ffk-tabbar button:focus-visible { outline: 3px solid #5EE0C0; outline-offset: -3px; border-radius: 10px; }
	.ffk-clavier .ffk-tabbar { transform: translateY(110%); }
	/* Le contenu ne passe pas sous la barre. */
	.ffk-footer { padding-bottom: calc(34px + 64px + env(safe-area-inset-bottom)); }
	/* Bandeau cookies et bouton d'accessibilité au-dessus de la barre. */
	.ffk-cookie { bottom: calc(62px + env(safe-area-inset-bottom)); }
	.ffk-a11y-btn { width: 44px; height: 44px; right: 12px; bottom: calc(74px + env(safe-area-inset-bottom)); border-width: 2px; transition: opacity .2s ease, transform .2s ease; }
	.ffk-a11y-btn svg { width: 22px; height: 22px; }
	.ffk-defile .ffk-a11y-btn { opacity: 0; transform: translateY(10px); pointer-events: none; }
}

/* ---- En-tête : masqué en descendant, réaffiché en remontant ----
   La barre était déclarée « sticky », mais dans un conteneur de sa propre
   hauteur : elle partait avec la page. Sous 1099 px, c'est l'en-tête entier
   qui colle, décalé de la hauteur du bandeau d'alerte (--ffk-util-h, posée
   par ffk-mobile.js) : seule la barre logo + menu reste en haut. Le bureau
   n'est pas modifié. */
@media (max-width: 1099px) {
	header.wp-block-template-part:has(.ffk-headerbar) { position: sticky; top: calc(-1 * var(--ffk-util-h, 0px)); z-index: 90; }
	.ffk-headerbar { transition: transform .25s ease; }
	.ffk-hdr-cache .ffk-headerbar { transform: translateY(-110%); }
	.ffk-headerbar-inner { padding-top: 8px; padding-bottom: 8px; }
	.ffk-logo img { height: 46px; }
}

/* ---- Bandeau d'alerte : une seule ligne ---- */
@media (max-width: 640px) {
	.ffk-utilbar { flex-wrap: nowrap; gap: 10px; padding: 5px 12px; min-height: 44px; }
	.ffk-utilbar > .ffk-breve { flex: 1 1 auto; min-width: 0; gap: 6px; }
	.ffk-alert-pill { padding: 4px; }
}
@media (max-width: 420px) {
	/* « Autres alertes » reste accessible depuis la fenêtre de l'alerte. */
	.ffk-utilbar .ffk-breve-autres { display: none; }
}

/* ---- Bandeau cookies : panneau bas compact ---- */
@media (max-width: 640px) {
	.ffk-cookie { padding: 0 8px 8px; }
	.ffk-cookie-inner { padding: 12px 14px; gap: 10px; border-radius: 16px; }
	.ffk-cookie-txt { min-width: 0; flex: 1 1 100%; }
	.ffk-cookie-ico { display: none; }
	.ffk-cookie-head { margin-bottom: 4px; }
	.ffk-cookie-title { font-size: 15.5px; }
	.ffk-cookie-txt p { font-size: 13px; line-height: 1.45; }
	.ffk-cookie-actions { flex: 1 1 100%; flex-wrap: nowrap; gap: 8px; }
	/* Refuser et accepter côte à côte, de même taille. */
	.ffk-cookie-decline, .ffk-cookie-accept { flex: 1 1 0; min-height: 46px; padding: 10px 12px; font-size: 13.5px; white-space: normal; line-height: 1.2; }
}

/* ---- Tiroir : accès directs ---- */
.ffk-mm-dr-direct { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 8px 10px; border-bottom: 1px solid #EEF2F9; }
.ffk-mm-dr-chip {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 100px;
	background: #EEF3FB; border: 1px solid #DCE6F5; color: #1C3C8C; text-decoration: none; cursor: pointer;
	font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px;
}
.ffk-mm-dr-chip:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }

/* ---- Accueil condensé ---- */
.ffk-actus-bas, .ffk-vit-plus { display: none; }
@media (max-width: 700px) {
	/* Mobile : L'ACTUALITÉ juste sous le hero, pour tous les visiteurs. C'est
	   l'exemplaire ffk/actualites-mobile, placé là dans le gabarit (ordre de
	   lecture = ordre affiché) ; l'exemplaire « bureau » est masqué. */
	.ffk-home > .ffk-actus--bureau { display: none; }
	.ffk-home > .ffk-vit { order: 14; }

	/* L'actualité : une grande carte, trois lignes compactes, un bouton. */
	.ffk-home .ffk-actus-grid { gap: 10px; }
	.ffk-home .ffk-actus-card:nth-child(n+2) { flex-direction: row; border-radius: 16px; }
	.ffk-home .ffk-actus-card:nth-child(n+2) .ffk-actus-card-img { flex: 0 0 104px; width: 104px; height: auto; align-self: stretch; aspect-ratio: auto; min-height: 104px; }
	.ffk-home .ffk-actus-card:nth-child(n+2) .ffk-actus-card-body { padding: 12px 14px; gap: 5px; min-width: 0; }
	.ffk-home .ffk-actus-card:nth-child(n+2) .ffk-actus-card-title { font-size: 15.5px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
	.ffk-home .ffk-actus-card:nth-child(n+5) { display: none; }
	.ffk-home .ffk-actus-bas {
		display: flex; align-items: center; justify-content: center; min-height: 50px; margin-top: 16px;
		border-radius: 100px; background: #1C3C8C; color: #fff; text-decoration: none;
		font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; font-size: 15px;
	}
	.ffk-home .ffk-actus-bas:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 3px; }

	/* Équipes de France : onglets sur une ligne, visuel moins haut, 5 médailles. */
	.ffk-vit-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
	.ffk-vit-tabs::-webkit-scrollbar { display: none; }
	.ffk-vit-tab { flex: 0 0 auto; min-height: 44px; padding: 10px 16px; font-size: 13px; }
	.ffk-vit-video { min-height: 220px; }
	.ffk-vit-plus {
		display: block; width: 100%; min-height: 46px; margin-top: 10px; border-radius: 100px; cursor: pointer;
		background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .3); color: #fff;
		font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; font-size: 14px;
	}
	.ffk-vit-plus[hidden] { display: none; }
	.ffk-vit-plus:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }

	/* 12 univers : moins haut. */
	.ffk-univ > .ffk-univ-tile { height: 150px; }
	.ffk-univ-trad { aspect-ratio: 2 / 1; }
	.ffk-univ-forme:not(.ffk-univ-trad) { aspect-ratio: 16 / 10; }
}

/* ---- Pied de page ---- */
@media (max-width: 900px) {
	/* Une seule inscription à la lettre : la grande carte au-dessus du pied suffit. */
	.ffk-footer-grid > .ffk-newsletter { display: none; }
}
@media (max-width: 700px) {
	.ffk-footer-grid { grid-template-columns: 1fr; row-gap: 0; }
	.ffk-footer-brand { padding-bottom: 18px; }
	.ffk-footer-col { border-top: 1px solid rgba(255, 255, 255, .12); }
	.ffk-footer-col .ffk-footer-h { margin: 0; }
	.ffk-footer-toggle {
		display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 54px; padding: 0;
		background: none; border: 0; cursor: pointer; color: inherit;
		font: inherit; letter-spacing: inherit; text-transform: inherit;
	}
	.ffk-footer-toggle::after {
		content: ""; width: 8px; height: 8px; margin-right: 4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
		transform: rotate(45deg); transition: transform .2s ease;
	}
	.ffk-footer-toggle[aria-expanded="true"]::after { transform: rotate(-135deg); }
	.ffk-footer-toggle:focus-visible { outline: 3px solid #5EE0C0; outline-offset: 2px; }
	.ffk-foot-links { padding-bottom: 10px; }
	.ffk-foot-links[hidden] { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.ffk-tabbar, .ffk-headerbar, .ffk-a11y-btn, .ffk-footer-toggle::after { transition: none !important; }
}

/* Ancres internes (sommaires de FAQ, « sur cette page ») : la cible ne passe
   pas sous l'en-tête collant sur mobile. */
:target { scroll-margin-top: 96px; }

/* Calendrier restreint à une discipline (fiches discipline, ffk_disc_sections_html). */
.ffk-cal-compact { max-width: none; padding: 0; }
.ffk-cal-compact .ffk-cal-month { font-size: inherit; }
.ffk-cal-compact .ffk-cal-empty { margin: 0; }
.ffk-cal-compact .ffk-cal-more-wrap .ffk-disc-sec-more { text-align: left; }

/* Étiquettes de discipline : couleur dédiée (docs/couleurs-disciplines.md). */
.ffk-brv-cat.is-disc { background: var(--disc); color: #fff; }
.ffk-brv-cat.is-disc:hover { background: var(--disc); filter: brightness(.92); }
.ffk-hero2-mini-dot { display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; vertical-align: 1px; box-shadow: 0 0 0 1.5px rgba(255,255,255,.85); }

/* ---- Mobile : bandeau coloré réduit, Signalement dans la barre du logo ----
   Sous 640 px, le bouton Signalement passe entre le logo et le menu ; le
   bandeau coloré ne s'affiche plus que s'il porte une brève (alerte) visible. */
.ffk-alert-pill--hdr { display: none; }
@media (max-width: 640px) {
	.ffk-utilbar > .ffk-alert-pill { display: none; }
	.ffk-utilbar:not(:has(.ffk-breve:not([hidden]))) { display: none; }
	.ffk-alert-pill--hdr {
		display: inline-flex; margin-left: auto !important; margin-right: 10px !important; min-height: 40px;
		padding: 4px 13px 4px 8px; font-size: 12px;
	}
	.ffk-alert-pill--hdr .ffk-alerte-label { display: inline; }
	/* Signalement collé au menu, à droite : la barre ne répartit plus l'espace. */
	.ffk-headerbar-inner { justify-content: flex-start !important; }
}
@media (max-width: 350px) {
	.ffk-alert-pill--hdr { padding: 4px; min-width: 40px; justify-content: center; }
	.ffk-alert-pill--hdr .ffk-alerte-label { display: none; }
}

/* Exemplaire mobile de « L'actualité » : invisible au-delà de 700 px ; sur
   mobile, il garde sa place de gabarit (juste sous le hero), y compris quand un
   profil de visite réordonne les autres sections. */
.ffk-home > .ffk-actus.ffk-actus--mobile { order: 0 !important; }
@media (min-width: 701px) {
	.ffk-home > .ffk-actus--mobile { display: none; }
}

/* ---- Fiches discipline : contenu éditable (29/09/2026) ----
   Le contenu saisi dans l'éditeur occupe 1160 px pour les blocs (cartes,
   étapes…) ; le texte courant reste à une largeur de lecture confortable. */
.ffk-disc-contenu .ffk-prose > :is(p, h2, h3, h4, ul:not(.ffk-ceintures), ol, blockquote) { max-width: 820px; }
/* Cartes cliquables dans un contenu : pas de soulignement hérité des liens de texte. */
.ffk-prose a.ffk-b-carte, .ffk-prose a.ffk-b-carte * { text-decoration: none; }
.ffk-prose a.ffk-b-carte:hover .ffk-b-carte-lien { text-decoration: underline; text-underline-offset: 3px; }

/* Liste « ceintures » : une liste à puces dans l'éditeur (classe CSS
   ffk-ceintures), rendue en rangée de ceintures colorées, dans l'ordre des grades. */
.ffk-prose ul.ffk-ceintures { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 8px; margin: 18px 0 8px; padding: 0; }
.ffk-prose ul.ffk-ceintures li { --ceinture: #fff; display: inline-flex; align-items: center; gap: 9px; margin: 0; padding: 9px 16px 9px 10px; background: #fff; border: 1px solid #E2E8F3; border-radius: 100px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 15px; color: #101A33; }
.ffk-prose ul.ffk-ceintures li::before { content: ""; display: block; position: static; inset: auto; transform: none; flex: 0 0 auto; width: 26px; height: 10px; margin: 0; border-radius: 3px; background: var(--ceinture); box-shadow: inset 0 0 0 1px rgba(16,26,51,.25); }
/* Sections de blocs dans la fiche : alignées sur le contenu, sans marge latérale propre. */
.ffk-disc-contenu .ffk-b-section-inner, .ffk-disc-contenu .ffk-b-section-inner.is-normal, .ffk-disc-contenu .ffk-b-section-inner.is-large { max-width: none; padding-left: 0; padding-right: 0; }
.ffk-prose ul.ffk-ceintures li + li { position: relative; }
.ffk-prose ul.ffk-ceintures li:nth-child(1) { --ceinture: #FFFFFF; }
.ffk-prose ul.ffk-ceintures li:nth-child(2) { --ceinture: #F2CC2E; }
.ffk-prose ul.ffk-ceintures li:nth-child(3) { --ceinture: #EE8A1C; }
.ffk-prose ul.ffk-ceintures li:nth-child(4) { --ceinture: #2E9E5B; }
.ffk-prose ul.ffk-ceintures li:nth-child(5) { --ceinture: #2478C0; }
.ffk-prose ul.ffk-ceintures li:nth-child(6) { --ceinture: #7A4A26; }
.ffk-prose ul.ffk-ceintures li:nth-child(7) { --ceinture: #101A33; }

/* =========================================================================
   Tablettes (iPad portrait 768-1024 px, paysage 1024-1366 px) — 21/10/2026
   Retours après la mise en ligne : bandeau sur 2-3 lignes, titres trop
   longs dans « À la une », tuiles disciplines tassées, boutique introuvable.
   ========================================================================= */

/* Bandeau coloré : une seule ligne. Les réseaux sociaux restent dans le pied
   de page ; la brève prend toute la place disponible et se coupe proprement. */
@media (min-width: 641px) and (max-width: 1365px) {
	.ffk-utilbar { flex-wrap: nowrap; gap: 12px; padding-top: 6px; padding-bottom: 6px; }
	.ffk-utilbar > .ffk-socials { display: none; }
	.ffk-utilbar > .ffk-breve { flex: 1 1 auto; min-width: 0; }
}
@media (min-width: 641px) and (max-width: 900px) {
	.ffk-utilbar .ffk-breve-tag { display: none; }
	.ffk-utilbar .ffk-breve-autres-long { display: none; }
	.ffk-utilbar .ffk-breve-autres-court { display: inline; }
}

/* « À la une » : titres limités (2 lignes pour les petites cartes, 3 pour la grande). */
@media (max-width: 1365px) {
	.ffk-hero2-mini-title {
		display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;
	}
	.ffk-hero2-feature-title {
		display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden;
	}
}

/* En-tête tablette (21/10/2026, demande de Xavier) : recherche, Trouver un club,
   Mon compte, Boutique et WebTV restent visibles à côté du menu.
   - 641-1099 px (iPad portrait) : icônes + menu burger ; sous 800 px,
     « Trouver un club » passe en icône (le texte reste lu par les lecteurs d'écran) ;
   - 1100-1365 px (iPad paysage) : menu complet + toutes les icônes ; de 1100 à
     1279 px, « Trouver un club » en icône pour éviter le débordement (mesuré). */
@media (min-width: 641px) and (max-width: 1099px) {
	.ffk-headerbar-inner .ffk-actions { display: flex; align-items: center; gap: 8px; margin-left: auto; order: 2; }
	.ffk-headerbar-inner .ffk-actions > .ffk-actions-sep { display: none; }
	.ffk-headerbar-inner .ffk-mm-burger { order: 3; margin-left: 10px; }
}
@media (min-width: 1100px) and (max-width: 1365px) {
	.ffk-actions .ffk-shop-btn,
	.ffk-actions .ffk-yt-btn { display: inline-flex; }
}
@media (min-width: 641px) and (max-width: 799px), (min-width: 1100px) and (max-width: 1279px) {
	.ffk-headerbar-inner .ffk-cta-club { font-size: 0 !important; gap: 0 !important; padding: 0 !important; width: 42px; height: 42px; justify-content: center; }
	.ffk-headerbar-inner .ffk-cta-club svg { width: 18px; height: 18px; }
}
/* Menu tablette / mobile : entrée Boutique mise en avant. */
.ffk-mm-dr-chip--boutique { background: #FCE7EC !important; color: #A3134D !important; border-color: rgba(228,23,75,.25) !important; }

/* Accueil « 12 univers » en portrait : 3 colonnes plutôt que 4, la tuile
   « Toutes les disciplines » sur deux cases pour finir la grille. */
@media (min-width: 701px) and (max-width: 1100px) {
	.ffk-univ { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ffk-univ > .ffk-univ-all { grid-column: span 2; }
	.ffk-univ > .ffk-univ-tile { height: 200px !important; }
	.ffk-univ-lbl { padding: 8px 12px !important; }
	.ffk-univ-tile-t { font-size: 18px !important; line-height: 1.15; }
}
