/* ============ CAUFEMCIP – design system ============ */
:root {
	--cf-orange: #EF5C09;
	--cf-orange-dark: #C24605;   /* texte orange sur fond clair (contraste AA) */
	--cf-green: #14995F;
	--cf-green-dark: #0B6B42;
	--cf-ink: #1F2A24;
	--cf-text: #46514B;          /* corps de texte, contraste > 7:1 sur blanc */
	--cf-muted: #5E6963;
	--cf-bg-soft: #F6F8F5;
	--cf-line: #E3E8E4;
	--cf-radius: 14px;
	--cf-radius-lg: 22px;
	--cf-shadow: 0 1px 2px rgba(20, 40, 30, .06), 0 8px 24px rgba(20, 40, 30, .08);
	--cf-shadow-hover: 0 2px 4px rgba(20, 40, 30, .08), 0 16px 40px rgba(20, 40, 30, .16);
	--cf-ease: cubic-bezier(.22, .61, .36, 1);
	--cf-header-h: 88px;
	--cf-header-h-small: 64px;
}

/* ---- Base typographique ---- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--cf-header-h-small) + 16px); }
html, body { overflow-x: clip; }
body.elementor-template-canvas { margin: 0; }
body { font-family: var(--cf-font-body); background: var(--cf-surface, #FAFAF8); margin: 0; padding: 0; max-width: none; width: 100%; color: var(--cf-text); font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html { margin: 0; padding: 0; max-width: none; width: 100%; }
.elementor-widget-text-editor, .elementor-widget-text-editor p { font-size: 1rem; line-height: 1.7; }
h1, h2, h3, h4 { font-family: var(--cf-font-heading); color: var(--cf-ink); letter-spacing: -.01em; text-wrap: balance; }
p { text-wrap: pretty; }
a { transition: color .2s var(--cf-ease); }

/* Petits titres orange (« NOTRE HISTOIRE », « ACTUALITÉS ») : version lisible */
.elementor-widget-heading .elementor-heading-title[style*="EF5C09"],
.elementor-widget-heading .elementor-heading-title[style*="ef5c09"] { color: var(--cf-orange-dark) !important; }

/* ---- Accessibilité ---- */
.cf-skip-link { position: fixed; left: 12px; top: -80px; z-index: 100000; background: var(--cf-ink); color: #fff; padding: 10px 16px; border-radius: 8px; transition: top .2s; }
.cf-skip-link:focus { top: 12px; }
:focus-visible { outline: 3px solid var(--cf-orange); outline-offset: 3px; border-radius: 4px; }
a, button, [role="button"], input, select, textarea { -webkit-tap-highlight-color: transparent; }
.elementor-social-icon, .wpr-mobile-toggle, .wpr-nav-menu a { min-width: 44px; min-height: 44px; }
.elementor-social-icon { display: inline-flex; align-items: center; justify-content: center; transition: transform .2s var(--cf-ease), box-shadow .2s var(--cf-ease); }
.elementor-social-icon:hover { transform: translateY(-3px); box-shadow: var(--cf-shadow); }

/* ================= EN-TÊTE ================= */
.elementor-994.elementor { position: sticky; top: 0; z-index: 999; background: rgba(255, 255, 255, .92); backdrop-filter: saturate(170%) blur(12px); -webkit-backdrop-filter: saturate(170%) blur(12px); border-bottom: 1px solid var(--cf-line); transition: box-shadow .3s var(--cf-ease); }
.admin-bar .elementor-994.elementor { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-994.elementor { top: 46px; } }
/* filet de marque orange / vert */
.elementor-994.elementor::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 3px; background: linear-gradient(90deg, var(--cf-orange) 0 50%, var(--cf-green) 50% 100%); }
body.cf-scrolled .elementor-994.elementor { box-shadow: 0 8px 28px rgba(20, 40, 30, .1); }

/* grille : logo | menu centré | réseaux */
.elementor-994 > .e-con { padding: 0 24px !important; }
.elementor-994 > .e-con > .e-con-inner { max-width: 1280px; width: 100%; padding: 0 24px; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; transition: min-height .3s var(--cf-ease); }
body.cf-scrolled .elementor-994 > .e-con > .e-con-inner { min-height: 64px; }
.elementor-994 .e-con-inner > .e-con { padding: 0 !important; width: auto !important; flex: 0 0 auto; }
.elementor-994 .e-con-inner > .e-con:nth-child(2) { flex: 1 1 auto; justify-content: center; }
.elementor-994 .e-con-inner > .e-con:first-child, .elementor-994 .elementor-widget-wpr-logo, .elementor-994 .wpr-logo, .elementor-994 .wpr-logo .elementor-widget-container { width: 190px !important; max-width: none !important; overflow: visible; transition: width .3s var(--cf-ease); }
body.cf-scrolled .elementor-994 .e-con-inner > .e-con:first-child, body.cf-scrolled .elementor-994 .elementor-widget-wpr-logo, body.cf-scrolled .elementor-994 .wpr-logo, body.cf-scrolled .elementor-994 .wpr-logo .elementor-widget-container { width: 150px !important; }
.elementor-994 .wpr-logo img { width: 190px !important; max-width: none; height: auto; transition: width .3s var(--cf-ease); }
body.cf-scrolled .elementor-994 .wpr-logo img { width: 150px !important; }

/* menu */
.wpr-nav-menu-horizontal .wpr-nav-menu { display: flex; align-items: center; gap: 4px; }
.wpr-nav-menu .wpr-menu-item { font-weight: 500; font-size: .95rem; color: var(--cf-ink) !important; padding: 10px 14px !important; border-radius: 10px; transition: color .2s var(--cf-ease), background-color .2s var(--cf-ease); }
.wpr-nav-menu .wpr-menu-item:hover { color: var(--cf-orange-dark) !important; background: rgba(239, 92, 9, .08); }
.wpr-nav-menu .wpr-active-item { color: var(--cf-orange-dark) !important; font-weight: 600; }
.wpr-nav-menu .wpr-pointer-item::before, .wpr-nav-menu .wpr-pointer-item::after { background-color: var(--cf-orange) !important; }
/* réseaux sociaux : discrets, couleur au survol */
.elementor-994 .elementor-widget-social-icons .elementor-grid { gap: 8px !important; display: flex; }
.elementor-994 .elementor-social-icon { width: 40px; height: 40px; min-width: 40px; min-height: 40px; background-color: var(--cf-bg-soft) !important; color: var(--cf-ink) !important; border: 1px solid var(--cf-line); display: inline-flex; align-items: center; justify-content: center; transition: transform .2s var(--cf-ease), background-color .2s, color .2s, border-color .2s; }
.elementor-994 .elementor-social-icon i, .elementor-994 .elementor-social-icon svg { font-size: 16px; width: 16px; height: 16px; fill: currentColor; color: inherit; }
.elementor-994 .elementor-social-icon:hover { background-color: var(--cf-orange-dark) !important; border-color: var(--cf-orange-dark); color: #fff !important; transform: translateY(-2px); box-shadow: var(--cf-shadow); }


/* ---- Menu mobile : une seule ligne (logo + hamburger), réseaux et bouton dans le panneau ---- */
@media (max-width: 1024px) {
	.elementor-994 > .e-con { padding: 0 16px !important; }
	.elementor-994 > .e-con > .e-con-inner { min-height: 68px; gap: 12px; flex-wrap: nowrap; }
	.elementor-994 > .e-con > .e-con-inner { padding: 0; }
	.elementor-994 .e-con-inner > .e-con:first-child, .elementor-994 .elementor-widget-wpr-logo, .elementor-994 .wpr-logo, .elementor-994 .wpr-logo .elementor-widget-container, body.cf-scrolled .elementor-994 .e-con-inner > .e-con:first-child, body.cf-scrolled .elementor-994 .elementor-widget-wpr-logo, body.cf-scrolled .elementor-994 .wpr-logo, body.cf-scrolled .elementor-994 .wpr-logo .elementor-widget-container { width: 150px !important; }
	.elementor-994 .wpr-logo img, body.cf-scrolled .elementor-994 .wpr-logo img { width: 150px !important; }
	.elementor-994 .e-con-inner > .e-con:nth-child(2) { flex: 0 0 auto; margin-left: auto; }
	.elementor-994 .e-con-inner > .e-con:nth-child(3) { display: none !important; }
	.wpr-mobile-toggle-wrap { display: flex; justify-content: flex-end; }
	.wpr-mobile-toggle { display: inline-flex !important; flex-direction: column; justify-content: center; gap: 5px; width: 48px; min-width: 48px; height: 48px; flex: 0 0 48px; padding: 12px !important; border: 0 !important; border-radius: 12px; background: var(--cf-bg-soft); cursor: pointer; transition: background .2s var(--cf-ease); }
	.wpr-mobile-toggle:hover { background: var(--cf-line); }
	.wpr-mobile-toggle .wpr-mobile-toggle-line { display: block; width: 100%; height: 2px; margin: 0 !important; background-color: var(--cf-ink) !important; border-radius: 2px; transition: transform .25s var(--cf-ease), opacity .2s; }
	.wpr-mobile-toggle.wpr-mobile-toggle-active .wpr-mobile-toggle-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.wpr-mobile-toggle.wpr-mobile-toggle-active .wpr-mobile-toggle-line:nth-child(2) { opacity: 0; }
	.wpr-mobile-toggle.wpr-mobile-toggle-active .wpr-mobile-toggle-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.wpr-mobile-nav-menu-container { background: #fff; }
	.wpr-mobile-nav-menu, .wpr-mobile-nav-menu li { background: #fff !important; border-color: var(--cf-line) !important; }
	.wpr-mobile-nav-menu a { background: transparent; padding: 15px 20px; min-height: 52px; font-weight: 500; color: var(--cf-ink) !important; }
	.wpr-mobile-nav-menu a.wpr-active-menu-item { color: var(--cf-orange-dark) !important; font-weight: 600; }
	.wpr-mobile-nav-menu .cf-mobile-social { display: flex; justify-content: center; gap: 12px; padding: 14px 16px 18px; list-style: none; }
	.wpr-mobile-nav-menu .cf-mobile-social a { margin: 0; padding: 0; width: 44px; min-height: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--cf-bg-soft); border: 1px solid var(--cf-line); }
	.wpr-mobile-nav-menu .cf-mobile-social svg, .wpr-mobile-nav-menu .cf-mobile-social i { width: 18px; height: 18px; font-size: 18px; fill: currentColor; }
}

/* ---- Boutons ---- */
.elementor-button, .wpr-button, .wpr-button-text, button[type="submit"], input[type="submit"] { transition: transform .2s var(--cf-ease), box-shadow .2s var(--cf-ease), background-color .2s var(--cf-ease), color .2s; border-radius: 999px; }
.elementor-button:hover, .wpr-button:hover, button[type="submit"]:hover, input[type="submit"]:hover { transform: translateY(-2px); box-shadow: var(--cf-shadow-hover); }
.elementor-button:active, .wpr-button:active, button[type="submit"]:active { transform: translateY(0); }
.cf-btn { display: inline-flex; align-items: center; gap: .5em; padding: 14px 28px; min-height: 48px; background: var(--cf-orange-dark); color: #fff !important; font-weight: 600; text-decoration: none; border-radius: 999px; transition: transform .2s var(--cf-ease), box-shadow .2s var(--cf-ease), background .2s; }
.cf-btn:hover { background: var(--cf-orange); transform: translateY(-2px); box-shadow: var(--cf-shadow-hover); }
.cf-btn--ghost { background: transparent; color: var(--cf-ink) !important; box-shadow: inset 0 0 0 2px var(--cf-ink); }
.cf-btn--ghost:hover { background: var(--cf-ink); color: #fff !important; }

/* ---- Cartes (grilles Royal, image-box, magazine) ---- */
.wpr-grid-item-inner, .elementor-widget-image-box .elementor-image-box-wrapper, .wpr-magazine-grid-item { border-radius: var(--cf-radius); overflow: hidden; transition: transform .35s var(--cf-ease), box-shadow .35s var(--cf-ease); }
.wpr-grid-item:hover .wpr-grid-item-inner, .wpr-magazine-grid-item:hover { transform: translateY(-6px); box-shadow: var(--cf-shadow-hover); }
.wpr-grid-image-wrap img, .wpr-magazine-grid-item img { transition: transform .6s var(--cf-ease); }
.wpr-grid-item:hover .wpr-grid-image-wrap img, .wpr-magazine-grid-item:hover img { transform: scale(1.05); }
.elementor-widget-image img { border-radius: var(--cf-radius); }
.elementor-994 .elementor-widget-image img, .elementor-994 .wpr-logo img, .elementor-location-footer .elementor-widget-image img { border-radius: 0; }

/* ================= HERO ================= */
.elementor-803 > .e-parent:first-child { margin-top: 0 !important; min-height: min(88vh, 780px); position: relative; isolation: isolate; }
/* voile dégradé : texte lisible à gauche, photo visible à droite */
.elementor-803 > .e-parent:first-child::before { opacity: 1 !important; background-color: transparent !important; background-image: linear-gradient(95deg, rgba(8, 24, 16, .86) 0%, rgba(8, 24, 16, .62) 42%, rgba(8, 24, 16, .12) 78%, rgba(8, 24, 16, 0) 100%), linear-gradient(0deg, rgba(8, 24, 16, .35), rgba(8, 24, 16, 0) 35%) !important; }
.elementor-803 > .e-parent:first-child > .e-con-inner { max-width: 1280px; padding: 96px 24px 120px; align-items: center; }
.elementor-803 > .e-parent:first-child .e-child, .elementor-803 > .e-parent:first-child .e-child > .e-con-inner { max-width: 760px; width: 100%; padding: 0; margin: 0; align-items: flex-start; text-align: left; gap: 18px; }
/* sur-titre animé */
.elementor-803 .wpr-advanced-text { margin: 0; display: inline-flex; align-items: center; gap: 12px; font-family: var(--cf-font-body); font-weight: 600; font-size: clamp(1.05rem, 2.3vw, 1.55rem); letter-spacing: .09em; text-transform: uppercase; color: #fff; }
.elementor-803 .wpr-anim-text, .elementor-803 .wpr-anim-text * { font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: 1.3 !important; color: #FF8A3D !important; text-shadow: 0 1px 3px rgba(0, 0, 0, .5); }
/* titre */
.elementor-803 > .e-parent:first-child h1.elementor-heading-title { font-family: var(--cf-font-heading) !important; font-weight: 700; font-size: clamp(1.7rem, 3.8vw, 2.9rem); line-height: 1.12; letter-spacing: -.025em; color: #fff; text-shadow: 0 2px 24px rgba(0, 0, 0, .35); text-wrap: balance; margin: 0; }
/* boutons */
.cf-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 14px; }
.cf-hero-actions .cf-btn { padding: 13px 26px; font-size: .95rem; }
.cf-hero-actions .cf-btn--ghost-light { background: rgba(255, 255, 255, .08); color: #fff !important; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .85); backdrop-filter: blur(4px); }
.cf-hero-actions .cf-btn--ghost-light:hover { background: #fff; color: var(--cf-ink) !important; }
.cf-btn .cf-arrow { display: inline-block; transition: transform .25s var(--cf-ease); }
.cf-btn:hover .cf-arrow { transform: translateX(4px); }
/* entrée en douceur */
@keyframes cf-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
.elementor-803 > .e-parent:first-child .wpr-advanced-text, .elementor-803 > .e-parent:first-child h1, .cf-hero-actions { animation: cf-rise .8s var(--cf-ease) both; }
.elementor-803 > .e-parent:first-child h1 { animation-delay: .12s; }
.cf-hero-actions { animation-delay: .26s; }
.elementor-803 .elementor-invisible { visibility: visible !important; }
@media (max-width: 767px) {
	.elementor-803 > .e-parent:first-child { min-height: 82vh; }
	.elementor-803 > .e-parent:first-child > .e-con-inner { padding: 72px 20px 110px; }
	.elementor-803 > .e-parent:first-child::before { background-image: linear-gradient(0deg, rgba(8, 24, 16, .88) 0%, rgba(8, 24, 16, .55) 55%, rgba(8, 24, 16, .2) 100%) !important; }
	.cf-hero-actions .cf-btn { width: 100%; justify-content: center; }
}


/* ================= SECTION ACTUALITÉS (accueil) ================= */
.elementor-803 .elementor-element-78ea28c, .elementor-803 .elementor-element-5973c4b { background: var(--cf-bg-soft); }
.elementor-803 .elementor-element-78ea28c { padding: 32px 24px 8px !important; }
.elementor-803 .elementor-element-5973c4b { padding: 24px 24px 96px !important; }
.elementor-803 .elementor-element-78ea28c > .e-con-inner { padding-top: 0; padding-bottom: 0; flex-direction: column; align-items: center; text-align: center; gap: 12px; max-width: 1140px; }
.elementor-803 .elementor-element-5973c4b > .e-con-inner { flex-direction: column; align-items: stretch; gap: 36px; max-width: 1140px; width: 100%; }
.elementor-803 .elementor-element-5973c4b .elementor-widget, .elementor-803 .elementor-element-5973c4b .elementor-widget-container, .elementor-803 .wpr-magazine-grid-wrap { width: 100%; max-width: none; }
/* sur-titre : pastille */
.elementor-803 .elementor-element-da4ef76 .elementor-heading-title { display: inline-block; font-family: var(--cf-font-body) !important; font-size: .8rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--cf-orange-dark) !important; background: rgba(239, 92, 9, .1); padding: 7px 16px; border-radius: 999px; }
/* titre + description */
.elementor-803 .elementor-element-854a732 .wpr-dual-title { font-family: var(--cf-font-heading) !important; font-size: clamp(1.7rem, 3.4vw, 2.5rem) !important; font-weight: 700 !important; line-height: 1.15; letter-spacing: -.02em; color: var(--cf-ink) !important; margin: 0; }
.elementor-803 .elementor-element-854a732 .wpr-dual-title .second { color: var(--cf-ink) !important; font-family: inherit !important; font-size: inherit !important; font-weight: inherit !important; }
.elementor-803 .elementor-element-854a732 .wpr-dual-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; margin: 16px auto 0; background: linear-gradient(90deg, var(--cf-orange) 0 50%, var(--cf-green) 50% 100%); }
.elementor-803 .elementor-element-854a732 .wpr-dual-heading-description { font-family: var(--cf-font-body) !important; font-size: 1.05rem !important; font-weight: 400 !important; line-height: 1.6; color: var(--cf-muted) !important; max-width: 560px; margin: 14px auto 0; }

/* grille de cartes */
.elementor-803 .wpr-magazine-grid { gap: 20px !important; grid-gap: 20px !important; }
.elementor-803 .wpr-mgzn-grid-item, .elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-inner { border-radius: var(--cf-radius-lg); overflow: hidden; }
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-inner { box-shadow: var(--cf-shadow); }
.elementor-803 .wpr-mgzn-grid-item:hover .wpr-grid-item-inner { box-shadow: var(--cf-shadow-hover); }
/* voile : lisibilité du texte sur toute photo */
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-media-hover-bg { opacity: 1 !important; background: linear-gradient(0deg, rgba(8, 24, 16, .92) 0%, rgba(8, 24, 16, .6) 38%, rgba(8, 24, 16, .08) 70%, rgba(8, 24, 16, 0) 100%) !important; }
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-media-hover-bottom { padding: 22px 24px 22px !important; }
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-media-hover-bottom *::before, .elementor-803 .wpr-mgzn-grid-item .wpr-grid-media-hover-bottom *::after { display: none !important; }
/* catégorie en pastille, titre net, date discrète */
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-category .inner-block a { display: inline-block; font-family: var(--cf-font-body); font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #fff !important; background: var(--cf-orange-dark); padding: 5px 12px; border-radius: 999px; margin-bottom: 10px; }
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-title, .elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-title a { font-family: var(--cf-font-body) !important; font-size: 1.05rem !important; font-weight: 600 !important; line-height: 1.35 !important; color: #fff !important; margin: 0 0 8px !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; text-shadow: none; }
.elementor-803 .wpr-mgzn-grid-item:first-child .wpr-grid-item-title, .elementor-803 .wpr-mgzn-grid-item:first-child .wpr-grid-item-title a { font-size: 1.3rem !important; }
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-date, .elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-date * { font-family: var(--cf-font-body); font-size: .8rem !important; color: rgba(255, 255, 255, .78) !important; }
.elementor-803 .wpr-mgzn-grid-item [class*="wpr-grid-sep"] { display: none !important; }
/* tablette et mobile : cartes plus hautes, une ou deux colonnes (la grille d'origine a des hauteurs fixes) */
@media (max-width: 1024px) {
	.elementor-803 .wpr-magazine-grid { grid-template-columns: repeat(2, 1fr) !important; grid-template-rows: none !important; grid-auto-rows: minmax(300px, auto) !important; }
	.elementor-803 .wpr-mgzn-grid-item { grid-column: auto !important; grid-row: auto !important; min-height: 300px; }
	.elementor-803 .wpr-mgzn-grid-item:first-child { grid-column: 1 / -1 !important; min-height: 340px; }
	.elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-inner, .elementor-803 .wpr-mgzn-grid-item .wpr-grid-media-wrap, .elementor-803 .wpr-mgzn-grid-item .wpr-grid-image-wrap { height: 100%; min-height: inherit; }
}
@media (max-width: 600px) {
	.elementor-803 .elementor-widget-wpr-magazine-grid .wpr-magazine-grid.wpr-magazine-grid.wpr-magazine-grid { grid-template-columns: 1fr !important; }
	.elementor-803 .wpr-mgzn-grid-item, .elementor-803 .wpr-mgzn-grid-item:first-child { min-height: 280px; }
}
/* bouton sous la grille */
.cf-news-more { display: flex; justify-content: center; margin-top: 28px; }
.elementor-803 .wpr-mgzn-grid-item .wpr-grid-item-date { margin-left: 10px; }
@media (max-width: 767px) {
	.elementor-803 .elementor-element-78ea28c { padding: 24px 16px 4px !important; }
	.elementor-803 .elementor-element-5973c4b { padding: 20px 16px 72px !important; }
	.elementor-803 .wpr-mgzn-grid-item .wpr-grid-media-hover-bottom { padding: 18px !important; }
	.cf-news-more .cf-btn { width: 100%; justify-content: center; }
}

/* ================= SECTION ÉVÉNEMENTS (accueil) ================= */
.elementor-803 .elementor-element-3ea70b5d { background: #fff; padding: 96px 24px !important; }
.elementor-803 .elementor-element-3ea70b5d > .e-con-inner { flex-direction: column; align-items: stretch; gap: 14px; max-width: 1140px; width: 100%; }
.elementor-803 .elementor-element-3ea70b5d .elementor-widget, .elementor-803 .elementor-element-3ea70b5d .elementor-widget-container { width: 100%; max-width: none; }
.elementor-803 .elementor-element-594d8f50, .elementor-803 .elementor-element-2d57dba4, .elementor-803 .elementor-element-885671a { text-align: center; }
/* sur-titre en pastille */
.elementor-803 .elementor-element-594d8f50 .elementor-heading-title { display: inline-block; font-family: var(--cf-font-body) !important; font-size: .8rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--cf-green-dark) !important; background: rgba(20, 153, 95, .12); padding: 7px 16px; border-radius: 999px; }
.elementor-803 .elementor-element-2d57dba4 .elementor-heading-title { font-family: var(--cf-font-body) !important; font-size: clamp(1.7rem, 3.4vw, 2.5rem) !important; font-weight: 700 !important; line-height: 1.15; letter-spacing: -.02em; color: var(--cf-ink) !important; margin: 0; }
.elementor-803 .elementor-element-2d57dba4 .elementor-heading-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; margin: 16px auto 0; background: linear-gradient(90deg, var(--cf-orange) 0 50%, var(--cf-green) 50% 100%); }
.elementor-803 .elementor-element-885671a .elementor-heading-title { font-family: var(--cf-font-body) !important; font-size: 1.05rem !important; font-weight: 400 !important; line-height: 1.6; color: var(--cf-muted) !important; max-width: 560px; margin: 0 auto; }

/* filtres en pastilles */
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 14px 0 34px; padding: 0; list-style: none; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters li { margin: 0; padding: 0; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters-sep { display: none; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters-item, .elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters li > span { display: inline-block; font-family: var(--cf-font-body); font-size: .9rem; font-weight: 500; padding: 9px 20px; border-radius: 999px !important; background: var(--cf-bg-soft); color: var(--cf-ink) !important; border: 1px solid var(--cf-line); cursor: pointer; transition: background-color .2s var(--cf-ease), color .2s, border-color .2s; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters li > span:hover { border-color: var(--cf-orange-dark); color: var(--cf-orange-dark) !important; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-filters li > span.wpr-active-filter { background: var(--cf-orange-dark) !important; border-color: var(--cf-orange-dark); color: #fff !important; }

/* cartes */
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-inner { background: #fff; border: 1px solid var(--cf-line); border-radius: var(--cf-radius-lg); overflow: hidden; box-shadow: var(--cf-shadow); transition: transform .35s var(--cf-ease), box-shadow .35s var(--cf-ease); height: 100%; display: flex; flex-direction: column; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item:hover .wpr-grid-item-inner { transform: translateY(-6px); box-shadow: var(--cf-shadow-hover); }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-media-wrap { border-radius: 0; flex: none; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-image-wrap img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; filter: none !important; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-media-hover-bg { background: linear-gradient(0deg, rgba(8, 24, 16, .25), rgba(8, 24, 16, 0) 50%) !important; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-below-content { padding: 22px 24px 24px !important; display: flex; flex-direction: column; flex: 1; text-align: left; }
/* date en étiquette, avant le titre visuellement */
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-date { order: -1; margin: 0 0 10px; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-date, .elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-date * { font-family: var(--cf-font-body); font-size: .78rem !important; font-weight: 600 !important; letter-spacing: .06em; text-transform: uppercase; color: var(--cf-green-dark) !important; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-title, .elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-title a { font-family: var(--cf-font-body) !important; font-size: 1.08rem !important; font-weight: 600 !important; line-height: 1.4 !important; color: var(--cf-ink) !important; margin: 0 0 10px !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-title a:hover { color: var(--cf-orange-dark) !important; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-excerpt, .elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-excerpt p { font-family: var(--cf-font-body); font-size: .93rem; line-height: 1.65; color: var(--cf-text) !important; margin: 0 0 16px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-read-more { margin-top: auto; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-read-more a { font-family: var(--cf-font-body); font-size: .92rem; font-weight: 600; color: var(--cf-orange-dark) !important; background: none !important; padding: 0 !important; display: inline-flex; align-items: center; gap: 6px; }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-read-more a::after { content: "→"; transition: transform .25s var(--cf-ease); }
.elementor-803 .elementor-element-3e865ac0 .wpr-grid-item-read-more a:hover::after { transform: translateX(5px); }
@media (max-width: 767px) { .elementor-803 .elementor-element-3ea70b5d { padding: 72px 16px !important; } }

/* ================= SECTION À PROPOS DE NOUS (accueil) ================= */
.elementor-803 .elementor-element-2a513d80 { background: linear-gradient(135deg, var(--cf-green-dark) 0%, #0F8654 55%, var(--cf-green) 100%) !important; padding: 96px 24px !important; position: relative; overflow: hidden; }
.elementor-803 .elementor-element-2a513d80::before { content: ""; position: absolute; width: 520px; height: 520px; right: -160px; top: -200px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 255, 255, .12), rgba(255, 255, 255, 0) 70%); pointer-events: none; }
.elementor-803 .elementor-element-2a513d80 > .e-con-inner { max-width: 1140px; width: 100%; align-items: center; gap: 72px; position: relative; }
.elementor-803 .elementor-element-3b306756, .elementor-803 .elementor-element-36bba9c { flex: 1 1 0; min-width: 0; padding: 0 !important; width: auto !important; }
.elementor-803 .elementor-element-3b306756 > .e-con-inner, .elementor-803 .elementor-element-36bba9c > .e-con-inner { padding: 0; gap: 18px; }
/* photo : cadre décalé orange, coins arrondis */
.elementor-803 .elementor-element-300726e3 { position: relative; }
.elementor-803 .elementor-element-300726e3 .elementor-widget-container { position: relative; }
.elementor-803 .elementor-element-300726e3 .elementor-widget-container::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; border: 3px solid var(--cf-orange); border-radius: var(--cf-radius-lg); z-index: 0; }
.elementor-803 .elementor-element-300726e3 img { position: relative; z-index: 1; width: 100%; height: 100%; max-height: 560px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--cf-radius-lg) !important; box-shadow: 0 24px 60px rgba(0, 0, 0, .3); }
/* textes lisibles sur le fond vert */
.elementor-803 .elementor-element-486bb9d4 .elementor-heading-title { display: inline-block; font-family: var(--cf-font-body) !important; font-size: .8rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: #fff !important; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .3); padding: 7px 16px; border-radius: 999px; }
.elementor-803 .elementor-element-73652bfb .elementor-heading-title { font-family: var(--cf-font-body) !important; font-size: clamp(1.6rem, 3.2vw, 2.4rem) !important; font-weight: 700 !important; line-height: 1.18 !important; letter-spacing: -.02em; color: #fff !important; margin: 0; }
.elementor-803 .elementor-element-73652bfb .elementor-heading-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; margin-top: 18px; background: var(--cf-orange); }
.elementor-803 .elementor-element-16b56202, .elementor-803 .elementor-element-16b56202 p, .elementor-803 .elementor-element-16b56202 strong { font-family: var(--cf-font-body); font-size: 1rem; line-height: 1.75; color: rgba(255, 255, 255, .92) !important; }
.elementor-803 .elementor-element-16b56202 p { margin: 0 0 14px; }
.elementor-803 .elementor-element-16b56202 strong { color: #fff !important; font-weight: 600; }
/* bouton */
.elementor-803 .elementor-element-4e5242a8 .wpr-button { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; background: var(--cf-orange-dark) !important; color: #fff !important; font-family: var(--cf-font-body); font-weight: 600; padding: 15px 34px !important; border-radius: 999px !important; border: 2px solid rgba(255, 255, 255, .9) !important; box-shadow: 0 12px 28px rgba(0, 0, 0, .28); min-width: 190px; }
.elementor-803 .elementor-element-4e5242a8 .wpr-button:hover { background: #fff !important; color: var(--cf-orange-dark) !important; }
.elementor-803 .elementor-element-4e5242a8 .wpr-button::before, .elementor-803 .elementor-element-4e5242a8 .wpr-button::after { display: none !important; }
.elementor-803 .elementor-element-4e5242a8 .wpr-button-content, .elementor-803 .elementor-element-4e5242a8 .wpr-button-text { color: inherit !important; font-size: 1rem; line-height: 1.2; background: none !important; padding: 0 !important; }
.elementor-803 .elementor-element-4e5242a8 .wpr-button-text::after { content: "→"; margin-left: .6em; display: inline-block; transition: transform .25s var(--cf-ease); }
.elementor-803 .elementor-element-4e5242a8 .wpr-button:hover .wpr-button-text::after { transform: translateX(5px); }
@media (max-width: 900px) {
	.elementor-803 .elementor-element-2a513d80 { padding: 64px 20px !important; }
	.elementor-803 .elementor-element-2a513d80 > .e-con-inner { flex-direction: column; gap: 48px; }
	.elementor-803 .elementor-element-3b306756, .elementor-803 .elementor-element-36bba9c { width: 100% !important; flex: none; }
	.elementor-803 .elementor-element-300726e3 { max-width: 420px; margin: 0 auto 0 0; }
	.elementor-803 .elementor-element-300726e3 .elementor-widget-container::before { inset: 14px -12px -14px 12px; }
	.elementor-803 .elementor-element-300726e3 img { max-height: 420px; }
}

/* ================= SECTION NOS MEMBRES (accueil) ================= */
.elementor-803 .elementor-element-6bafaca { background: #fff; padding: 72px 24px 80px !important; }
.elementor-803 .elementor-element-6bafaca > .e-con-inner { flex-direction: column; align-items: center; gap: 40px; max-width: 1140px; margin: 0 auto; }
.elementor-803 .elementor-element-188e182, .elementor-803 .elementor-element-649b715 { width: 100%; max-width: none; margin: 0 !important; padding: 0 !important; }
.elementor-803 .elementor-element-188e182 { align-items: center; text-align: center; gap: 12px; }
/* pastille + titre + filet (même gabarit que les autres sections) */
.elementor-803 .elementor-element-eb5bc81 .elementor-heading-title { display: inline-block; font-family: var(--cf-font-body) !important; font-size: .8rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--cf-green-dark) !important; background: rgba(20, 153, 95, .12); padding: 7px 16px; border-radius: 999px; line-height: 1.2; }
.elementor-803 .elementor-element-10f5b82 .elementor-heading-title, .elementor-803 .elementor-element-10f5b82 strong { font-family: var(--cf-font-body) !important; font-size: clamp(1.7rem, 3.4vw, 2.5rem) !important; font-weight: 700 !important; line-height: 1.15; letter-spacing: -.02em; color: var(--cf-ink) !important; }
.elementor-803 .elementor-element-10f5b82 .elementor-heading-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; margin: 16px auto 0; background: linear-gradient(90deg, var(--cf-orange) 0 50%, var(--cf-green) 50% 100%); }
.elementor-803 .elementor-element-30dc9cf { max-width: 720px; }
.elementor-803 .elementor-element-30dc9cf p { font-family: var(--cf-font-body); font-size: 1.05rem; line-height: 1.7; color: var(--cf-muted); margin: 0; }
.elementor-803 .elementor-element-30dc9cf strong { color: var(--cf-ink); }

/* cartes de profils : icône, titre, description (aucune photo ni nom) */
.cf-members { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; width: 100%; }
.cf-member { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 32px 28px 30px; background: #fff; border: 1px solid var(--cf-line); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-shadow); overflow: hidden; transition: transform .35s var(--cf-ease), box-shadow .35s var(--cf-ease), border-color .35s; }
.cf-member::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, var(--cf-orange), var(--cf-green)); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--cf-ease); }
.cf-member:hover { transform: translateY(-6px); box-shadow: var(--cf-shadow-hover); border-color: transparent; }
.cf-member:hover::before { transform: scaleX(1); }
.cf-member__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 16px; background: rgba(239, 92, 9, .1); color: var(--cf-orange-dark); transition: background .3s, color .3s, transform .35s var(--cf-ease); }
.cf-member:nth-child(even) .cf-member__icon { background: rgba(20, 153, 95, .12); color: var(--cf-green-dark); }
.cf-member:hover .cf-member__icon { background: var(--cf-orange-dark); color: #fff; transform: scale(1.06) rotate(-4deg); }
.cf-member:nth-child(even):hover .cf-member__icon { background: var(--cf-green-dark); }
.cf-member__title { margin: 6px 0 0; font-family: var(--cf-font-body); font-size: 1.1rem; font-weight: 600; line-height: 1.35; color: var(--cf-ink); text-wrap: balance; }
.cf-member__text { margin: 0; font-family: var(--cf-font-body); font-size: .96rem; line-height: 1.65; color: var(--cf-text); }
@media (max-width: 1024px) { .cf-members { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
	.elementor-803 .elementor-element-6bafaca { padding: 48px 16px 56px !important; }
	.cf-members { grid-template-columns: 1fr; gap: 16px; }
	.cf-member { padding: 26px 22px; }
}

/* ================= PIED DE PAGE ================= */
.elementor-1004 .elementor-element-907ffa6 { position: relative; background-color: #0E2519 !important; background-image: none !important; padding: 72px 24px 0 !important; overflow: hidden; max-width: none !important; width: 100% !important; margin: 0 !important; }
.elementor-1004 .elementor-element-907ffa6::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, var(--cf-orange) 0 50%, var(--cf-green) 50% 100%); opacity: 1 !important; background-color: transparent !important; }
.elementor-1004 .elementor-element-907ffa6 > .e-con-inner { max-width: 1140px; width: 100%; padding: 0; }
.elementor-1004 .elementor-element-87db52c { width: 100%; display: grid !important; grid-template-columns: 1.3fr 2fr; gap: 56px; padding: 0 0 48px; align-items: start; }
.elementor-1004 .elementor-element-87db52c > .e-con-inner { display: contents; }
.elementor-1004 .elementor-element-f86f81d, .elementor-1004 .elementor-element-c0c91c2 { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; align-items: flex-start; text-align: left; }
.elementor-1004 .elementor-element-f86f81d { gap: 20px; }
.elementor-1004 .elementor-element-46d5cc7 .wpr-logo { background: #fff; display: inline-block; padding: 12px 16px; border-radius: 14px; }
.elementor-1004 .elementor-element-46d5cc7 img { width: 190px !important; max-width: 100%; height: auto; display: block; }
.elementor-1004 .elementor-element-3512d11, .elementor-1004 .elementor-element-3512d11 p { font-family: var(--cf-font-body); font-size: .98rem; line-height: 1.7; color: rgba(255, 255, 255, .78) !important; max-width: 360px; margin: 0; text-align: left !important; }

.cf-foot { display: grid; grid-template-columns: 1fr 1.4fr; gap: 48px; width: 100%; }
.cf-foot__title { margin: 0 0 18px; font-family: var(--cf-font-body); font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #FFB27A; }
.cf-foot__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cf-foot__links a { display: inline-block; padding: 8px 0; min-height: 44px; font-family: var(--cf-font-body); font-size: 1rem; color: rgba(255, 255, 255, .88); text-decoration: none; position: relative; transition: color .2s var(--cf-ease), transform .25s var(--cf-ease); }
.cf-foot__links a::after { content: ""; position: absolute; left: 0; bottom: 6px; width: 0; height: 2px; background: var(--cf-orange); transition: width .3s var(--cf-ease); }
.cf-foot__links a:hover { color: #fff; transform: translateX(4px); }
.cf-foot__links a:hover::after { width: 100%; }
.cf-foot__text { margin: 0 0 20px; font-family: var(--cf-font-body); font-size: .98rem; line-height: 1.7; color: rgba(255, 255, 255, .78); max-width: 340px; }
.cf-foot__mail { display: inline-flex; align-items: center; gap: 12px; margin: 0 0 22px; padding: 10px 0; min-height: 44px; font-family: var(--cf-font-body); font-size: 1.02rem; font-weight: 500; color: #fff; text-decoration: none; word-break: break-all; transition: color .2s var(--cf-ease); }
.cf-foot__mail svg { flex: none; color: #FFB27A; }
.cf-foot__mail:hover { color: #FFB27A; }
.cf-foot__social { display: flex; gap: 10px; margin-top: 24px; }
.cf-foot__social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; color: #fff; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .22); transition: transform .2s var(--cf-ease), background .2s, border-color .2s; }
.cf-foot__social a:hover { background: var(--cf-orange-dark); border-color: var(--cf-orange-dark); transform: translateY(-3px); }

/* barre du bas */
.elementor-1004 .elementor-element-46f4779 { width: 100%; border-top: 1px solid rgba(255, 255, 255, .14); padding: 22px 0 !important; }
.elementor-1004 .elementor-element-6a76b09 { width: 100% !important; padding: 0 !important; align-items: center; }
.elementor-1004 .elementor-element-2f22ce0, .elementor-1004 .elementor-element-2f22ce0 p { font-family: var(--cf-font-body); font-size: .88rem; color: rgba(255, 255, 255, .62) !important; text-align: center; margin: 0; }
@media (max-width: 900px) {
	.elementor-1004 .elementor-element-87db52c { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 560px) {
	.elementor-1004 .elementor-element-907ffa6 { padding: 52px 20px 0 !important; }
	.cf-foot { grid-template-columns: 1fr; gap: 32px; }
	.elementor-1004 .elementor-element-46f4779 { padding: 22px 64px 22px 0 !important; }
	.elementor-1004 .elementor-element-2f22ce0, .elementor-1004 .elementor-element-2f22ce0 p { text-align: left; }
	.cf-foot .cf-btn { width: 100%; justify-content: center; }
}

/* ================= SECTIONS AJOUTÉES (accueil) ================= */
.cf-sec { display: flex !important; width: 100%; box-sizing: border-box; flex-direction: column; align-items: stretch; gap: 0; padding: 80px max(24px, calc((100% - 1140px) / 2)) !important; margin: 0 !important; }
.elementor-803 .elementor-element-6bafaca { margin: 0 !important; }
.cf-sec .elementor-widget { width: 100%; }
.cf-sec--axes, .cf-sec--quotes { background: #fff; }
.cf-sec--stats { background: #fff; }
.elementor-803 .elementor-element-6bafaca { background: var(--cf-bg-soft) !important; }
.elementor-803 .elementor-element-6bafaca .cf-member { background: #fff; }
.cf-sec__in { width: 100%; }
.cf-sec__head { display: flex; flex-direction: column; align-items: center; gap: 12px; text-align: center; margin-bottom: 40px; }
.cf-sec__kicker { display: inline-block; font-family: var(--cf-font-body); font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--cf-orange-dark); background: rgba(239, 92, 9, .1); padding: 7px 16px; border-radius: 999px; line-height: 1.2; }
.cf-sec--stats .cf-sec__kicker, .cf-sec--quotes .cf-sec__kicker { color: var(--cf-green-dark); background: rgba(20, 153, 95, .12); }
.cf-sec__title { margin: 0; font-family: var(--cf-font-body); font-size: clamp(1.7rem, 3.4vw, 2.5rem); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: var(--cf-ink); text-wrap: balance; }
.cf-sec__title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; margin: 16px auto 0; background: linear-gradient(90deg, var(--cf-orange) 0 50%, var(--cf-green) 50% 100%); }
.cf-sec__lead { margin: 0; max-width: 640px; font-family: var(--cf-font-body); font-size: 1.05rem; line-height: 1.7; color: var(--cf-muted); }
.cf-sec__more { display: flex; justify-content: center; margin-top: 40px; }

/* Notre action */
.cf-axes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.cf-axe { position: relative; padding: 32px 26px 30px; background: var(--cf-bg-soft); border: 1px solid var(--cf-line); border-radius: var(--cf-radius-lg); overflow: hidden; transition: transform .35s var(--cf-ease), box-shadow .35s var(--cf-ease), background .35s, border-color .35s; }
.cf-axe:hover { transform: translateY(-6px); background: #fff; border-color: transparent; box-shadow: var(--cf-shadow-hover); }
.cf-axe__num { display: block; font-family: var(--cf-font-body); font-size: 2.6rem; font-weight: 700; line-height: 1; margin-bottom: 18px; color: transparent; -webkit-text-stroke: 1.5px var(--cf-orange); transition: color .3s; }
.cf-axe:nth-child(even) .cf-axe__num { -webkit-text-stroke-color: var(--cf-green); }
.cf-axe:hover .cf-axe__num { color: rgba(239, 92, 9, .15); }
.cf-axe:nth-child(even):hover .cf-axe__num { color: rgba(20, 153, 95, .15); }
.cf-axe__title { margin: 0 0 10px; font-family: var(--cf-font-body); font-size: 1.15rem; font-weight: 600; line-height: 1.3; color: var(--cf-ink); }
.cf-axe__text { margin: 0; font-family: var(--cf-font-body); font-size: .96rem; line-height: 1.65; color: var(--cf-text); }

/* Chiffres et témoignages : les shortcodes rendent leur propre grille */
.cf-sec--stats .cf-stats, .cf-sec--quotes .cf-quotes { padding: 0; max-width: none; }
.cf-sec--quotes .cf-quote { background: var(--cf-bg-soft); }

/* Bandeau d'appel à l'action : aplat orange, sans dégradé */
.cf-sec--cta { background: var(--cf-orange-dark); padding-top: 72px !important; padding-bottom: 72px !important; }
.cf-cta { text-align: center; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.cf-cta__title { margin: 0; font-family: var(--cf-font-body); font-size: clamp(1.7rem, 3.6vw, 2.6rem); font-weight: 700; line-height: 1.15; letter-spacing: -.02em; color: #fff; text-wrap: balance; }
.cf-cta__text { margin: 0; max-width: 640px; font-family: var(--cf-font-body); font-size: 1.05rem; line-height: 1.7; color: rgba(255, 255, 255, .92); }
.cf-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 28px; margin-top: 12px; }
.cf-btn--light { background: #fff; color: var(--cf-orange-dark) !important; font-weight: 600; }
.cf-btn--light:hover { background: var(--cf-ink); color: #fff !important; }
.cf-cta__mail { font-family: var(--cf-font-body); font-size: 1.02rem; font-weight: 500; color: #fff; text-decoration: underline; text-underline-offset: 4px; min-height: 44px; display: inline-flex; align-items: center; }
.cf-cta__mail:hover { color: #FFE2CF; }

@media (max-width: 1024px) { .cf-axes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) {
	.cf-sec { padding: 52px 16px !important; }
	.cf-sec--cta { padding: 52px 16px !important; }
	.cf-sec__head { margin-bottom: 28px; }
	.cf-axes { grid-template-columns: 1fr; gap: 16px; }
	.cf-sec__more .cf-btn, .cf-cta__actions .cf-btn { width: 100%; justify-content: center; }
}

/* ---- Formulaires ---- */
input[type="text"], input[type="email"], input[type="tel"], input[type="url"], textarea, select, .elementor-field-textual { border-radius: 12px !important; border: 1.5px solid #C9D1CC !important; padding: 12px 14px !important; min-height: 48px; color: var(--cf-ink); transition: border-color .2s, box-shadow .2s; }
input::placeholder, textarea::placeholder { color: #7B857F; opacity: 1; }
input:focus, textarea:focus, select:focus { border-color: var(--cf-green) !important; box-shadow: 0 0 0 4px rgba(20, 153, 95, .18) !important; outline: none; }
input:user-invalid, textarea:user-invalid { border-color: #B3261E !important; box-shadow: 0 0 0 4px rgba(179, 38, 30, .12) !important; }
input:user-valid, textarea:user-valid { border-color: var(--cf-green) !important; }
form button[type="submit"], form input[type="submit"] { background: var(--cf-orange-dark); color: #fff; font-weight: 600; padding: 14px 28px; border: 0; min-height: 48px; cursor: pointer; }
form button[type="submit"]:hover, form input[type="submit"]:hover { background: var(--cf-orange); }
form.cf-loading button[type="submit"] { opacity: .75; pointer-events: none; position: relative; }
form.cf-loading button[type="submit"]::after { content: ""; display: inline-block; width: 1em; height: 1em; margin-left: .6em; border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%; vertical-align: -.15em; animation: cf-spin .7s linear infinite; }
@keyframes cf-spin { to { transform: rotate(360deg); } }

/* ---- Chiffres clés ---- */
.cf-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 20px; max-width: 1100px; margin: 0 auto; padding: 8px 20px; }
.cf-stat { text-align: center; padding: 28px 16px; background: #fff; border: 1px solid var(--cf-line); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-shadow); transition: transform .3s var(--cf-ease), box-shadow .3s var(--cf-ease); }
.cf-stat:hover { transform: translateY(-4px); box-shadow: var(--cf-shadow-hover); }
.cf-stat__num { display: block; font-size: clamp(2rem, 5vw, 3rem); font-weight: 700; line-height: 1.1; color: var(--cf-green-dark); font-variant-numeric: tabular-nums; }
.cf-stat__num--todo { font-size: 1.05rem; color: var(--cf-orange-dark); border: 1.5px dashed var(--cf-orange-dark); border-radius: 999px; display: inline-block; padding: 6px 14px; margin-bottom: 4px; }
.cf-stat__label { display: block; margin-top: 8px; color: var(--cf-muted); font-weight: 500; }
.cf-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; max-width: 1100px; margin: 0 auto; padding: 8px 20px; }
.cf-quote { margin: 0; padding: 28px; background: var(--cf-bg-soft); border-left: 4px solid var(--cf-orange); border-radius: var(--cf-radius); }
.cf-quote blockquote { margin: 0 0 12px; font-size: 1.05rem; font-style: italic; color: var(--cf-ink); border: 0; padding: 0; }
.cf-quote figcaption { color: var(--cf-orange-dark); font-weight: 600; font-size: .95rem; }

/* ---- Apparition au scroll (activée seulement si le JS tourne) ---- */
.cf-js [data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--cf-ease), transform .7s var(--cf-ease); transition-delay: var(--cf-delay, 0ms); will-change: opacity, transform; }
.cf-js [data-reveal].cf-in { opacity: 1; transform: none; will-change: auto; }
.cf-js [data-reveal="left"] { transform: translateX(-30px); }
.cf-js [data-reveal="right"] { transform: translateX(30px); }
.cf-js [data-reveal="zoom"] { transform: scale(.94); }
.cf-js [data-reveal].cf-in { transform: none; }

/* ---- Bouton « retour en haut » de Royal ---- */
.wpr-back-to-top { border-radius: 50% !important; box-shadow: var(--cf-shadow); }

/* ---- Pas d'animation si l'utilisateur ne le souhaite pas ---- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.cf-js [data-reveal] { opacity: 1 !important; transform: none !important; }
}

/* Témoignages : guillemet décoratif, texte lisible */
.cf-quote { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 44px 28px 28px; }
.cf-quote__mark { position: absolute; top: 6px; left: 22px; font-family: Georgia, serif; font-size: 4.5rem; line-height: 1; color: var(--cf-orange); opacity: .35; pointer-events: none; }
.cf-quote blockquote { font-style: normal; font-size: 1rem; line-height: 1.7; margin: 0; }
.cf-quote figcaption { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--cf-line); }

/* Chiffres clés : icône + valeur + libellé */
.cf-stat { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cf-stat__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 8px; border-radius: 16px; background: rgba(239, 92, 9, .1); color: var(--cf-orange-dark); transition: background .3s, color .3s, transform .35s var(--cf-ease); }
.cf-stat:nth-child(even) .cf-stat__icon { background: rgba(20, 153, 95, .12); color: var(--cf-green-dark); }
.cf-stat:hover .cf-stat__icon { background: var(--cf-orange-dark); color: #fff; transform: scale(1.06) rotate(-4deg); }
.cf-stat:nth-child(even):hover .cf-stat__icon { background: var(--cf-green-dark); }
.cf-stat__num { display: inline-flex; align-items: baseline; justify-content: center; }
.cf-stat__suffix { margin-left: 2px; }

/* ================= PAGES INTERNES ================= */
/* Bannière commune : Actualités, À propos, Contact */
.cf-page-hero { margin-top: 0 !important; position: relative; isolation: isolate; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 280px; padding: 72px 24px 64px !important; text-align: center; background-color: var(--cf-green-dark); background-size: cover; background-position: center; }
.cf-page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 1 !important; background-image: linear-gradient(180deg, rgba(8, 24, 16, .72), rgba(8, 24, 16, .55)) !important; background-color: transparent !important; }
.cf-page-hero:not([style*="background-image"]):not(.elementor-element-fe152ec):not(.elementor-element-17bfd03):not(.cf-post-hero)::before { background-image: linear-gradient(135deg, #0B4F32, #14995F) !important; }
.cf-page-hero .e-con-inner { padding: 0 !important; max-width: 900px; flex-direction: column; align-items: center; }
.cf-page-hero h1, .cf-page-hero h1.elementor-heading-title, .cf-page-hero .elementor-heading-title { font-family: var(--cf-font-body) !important; font-size: clamp(2rem, 4.8vw, 3.2rem) !important; font-weight: 700 !important; line-height: 1.12; letter-spacing: -.02em; color: #fff !important; text-shadow: 0 2px 20px rgba(0, 0, 0, .35); margin: 0; }
.cf-crumbs { display: inline-flex; align-items: center; gap: 10px; padding: 7px 16px; border-radius: 999px; background: rgba(255, 255, 255, .14); backdrop-filter: blur(6px); font-family: var(--cf-font-body); font-size: .85rem; color: rgba(255, 255, 255, .85); }
.cf-crumbs a { color: #fff; text-decoration: none; font-weight: 500; }
.cf-crumbs a:hover { text-decoration: underline; }
.cf-crumbs [aria-current] { color: #FFB37A; font-weight: 600; }
@media (max-width: 767px) { .cf-page-hero { min-height: 220px; padding: 56px 16px 48px !important; } }

/* Actualités : section de la liste */
.elementor-5417 .elementor-element-275d20f { background: var(--cf-bg-soft); padding: 64px 24px 88px !important; }
.elementor-5417 .elementor-element-275d20f > .e-con-inner { max-width: 1140px; width: 100%; margin: 0 auto; padding: 0; }
.elementor-5417 .elementor-element-275d20f .elementor-widget, .elementor-5417 .elementor-element-275d20f .elementor-widget-container { width: 100%; max-width: none; }
@media (max-width: 767px) { .elementor-5417 .elementor-element-275d20f { padding: 40px 16px 64px !important; } }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: 14px 0 34px; padding: 0; list-style: none; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters li { margin: 0; padding: 0; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters-sep { display: none; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters-item, .elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters li > span { display: inline-block; font-family: var(--cf-font-body); font-size: .9rem; font-weight: 500; padding: 9px 20px; border-radius: 999px !important; background: var(--cf-bg-soft); color: var(--cf-ink) !important; border: 1px solid var(--cf-line); cursor: pointer; transition: background-color .2s var(--cf-ease), color .2s, border-color .2s; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters li > span:hover { border-color: var(--cf-orange-dark); color: var(--cf-orange-dark) !important; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-filters li > span.wpr-active-filter { background: var(--cf-orange-dark) !important; border-color: var(--cf-orange-dark); color: #fff !important; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-inner { background: #fff; border: 1px solid var(--cf-line); border-radius: var(--cf-radius-lg); overflow: hidden; box-shadow: var(--cf-shadow); transition: transform .35s var(--cf-ease), box-shadow .35s var(--cf-ease); height: 100%; display: flex; flex-direction: column; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item:hover .wpr-grid-item-inner { transform: translateY(-6px); box-shadow: var(--cf-shadow-hover); }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-media-wrap { border-radius: 0; flex: none; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-image-wrap img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; filter: none !important; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-media-hover-bg { background: linear-gradient(0deg, rgba(8, 24, 16, .25), rgba(8, 24, 16, 0) 50%) !important; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-below-content { padding: 22px 24px 24px !important; display: flex; flex-direction: column; flex: 1; text-align: left; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-date { order: -1; margin: 0 0 10px; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-date, .elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-date * { font-family: var(--cf-font-body); font-size: .78rem !important; font-weight: 600 !important; letter-spacing: .06em; text-transform: uppercase; color: var(--cf-green-dark) !important; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-title, .elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-title a { font-family: var(--cf-font-body) !important; font-size: 1.08rem !important; font-weight: 600 !important; line-height: 1.4 !important; color: var(--cf-ink) !important; margin: 0 0 10px !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-title a:hover { color: var(--cf-orange-dark) !important; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-excerpt, .elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-excerpt p { font-family: var(--cf-font-body); font-size: .93rem; line-height: 1.65; color: var(--cf-text) !important; margin: 0 0 16px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-read-more { margin-top: auto; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-read-more a { font-family: var(--cf-font-body); font-size: .92rem; font-weight: 600; color: var(--cf-orange-dark) !important; background: none !important; padding: 0 !important; display: inline-flex; align-items: center; gap: 6px; }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-read-more a::after { content: "→"; transition: transform .25s var(--cf-ease); }
.elementor-5417 .elementor-element-32a5fd8 .wpr-grid-item-read-more a:hover::after { transform: translateX(5px); }

/* Contact : informations + formulaire */
.cf-contact { display: flex !important; flex-direction: row !important; width: 100% !important; max-width: 1188px !important; margin: 0 auto !important; align-items: stretch; gap: 32px; max-width: 1140px; margin: 0 auto; padding: 72px 24px 88px !important; }
.cf-contact > .e-con { width: auto !important; max-width: none !important; }
.cf-contact > .cf-contact__info { padding: 0 !important; }
.cf-contact__info { flex: 1 1 38%; align-self: stretch; }
.cf-contact__form { flex: 1 1 62%; display: block !important; background: #fff; border: 1px solid var(--cf-line); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-shadow); padding: 36px 36px 32px !important; width: auto !important; }
.cf-contact__form .elementor-heading-title { font-family: var(--cf-font-body) !important; font-size: 1.5rem !important; font-weight: 700 !important; color: var(--cf-ink) !important; margin-bottom: 18px; }
.cf-contact__form .wpr-form-field-label, .cf-contact__form label { font-family: var(--cf-font-body); font-weight: 500; font-size: .92rem; color: var(--cf-ink); margin-bottom: 6px; display: block; }
.cf-contact__form .wpr-form-field-textual { width: 100%; font-family: var(--cf-font-body); font-size: .98rem; }
.cf-contact__form .wpr-button { width: 100%; justify-content: center; border-radius: 999px !important; background: var(--cf-orange-dark) !important; color: #fff !important; font-family: var(--cf-font-body) !important; font-weight: 600; min-height: 52px; }
.cf-contact__form .wpr-button:hover { background: var(--cf-orange) !important; }
.cf-info { height: 100%; padding: 36px 32px; border-radius: var(--cf-radius-lg); background: linear-gradient(160deg, #0B4F32, var(--cf-green-dark)); color: #fff; }
.cf-info .cf-sec__kicker { background: rgba(255, 255, 255, .14); color: #fff; }
.cf-info__title { margin: 14px 0 12px; font-family: var(--cf-font-body); font-size: clamp(1.4rem, 2.6vw, 1.9rem); font-weight: 700; line-height: 1.2; color: #fff; }
.cf-info__text { margin: 0 0 24px; font-family: var(--cf-font-body); line-height: 1.7; color: rgba(255, 255, 255, .85); }
.cf-info__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.cf-info__list li { display: flex; align-items: center; gap: 14px; }
.cf-info__ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255, 255, 255, .14); color: #FFB37A; }
.cf-info__list strong { display: block; font-family: var(--cf-font-body); font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.cf-info__list a { font-family: var(--cf-font-body); font-weight: 500; color: #fff; text-decoration: none; word-break: break-word; }
.cf-info__list a:hover { color: #FFB37A; }
@media (max-width: 900px) { .cf-contact { flex-direction: column !important; padding: 48px 16px 64px !important; } .cf-contact__form { padding: 26px 20px !important; } }

/* À propos : sections existantes plus aérées */
.elementor-5399 .cf-sec { padding-left: 24px; padding-right: 24px; }
.elementor-5399 .elementor-element-280f9b9 .elementor-heading-title, .elementor-5399 .elementor-element-280cef1 .elementor-heading-title, .elementor-5399 .elementor-element-b2a18a7 .elementor-heading-title { font-family: var(--cf-font-body) !important; }
.elementor-5399 .elementor-element-fa0fdad .elementor-heading-title, .elementor-5399 .elementor-element-22318f6 .elementor-heading-title, .elementor-5399 .elementor-element-210adf2 .elementor-heading-title { font-size: clamp(1.7rem, 3.4vw, 2.4rem) !important; font-weight: 700 !important; letter-spacing: -.02em; line-height: 1.15; color: var(--cf-ink) !important; }
.elementor-5399 .elementor-element-494efbf .elementor-heading-title, .elementor-5399 .elementor-element-d47ace3 .elementor-heading-title, .elementor-5399 .elementor-element-82fc10a .elementor-heading-title { display: inline-block; font-size: .8rem !important; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--cf-orange-dark) !important; background: rgba(239, 92, 9, .1); padding: 7px 16px; border-radius: 999px; }
.elementor-5399 .elementor-widget-text-editor, .elementor-5399 .elementor-widget-text-editor p { font-family: var(--cf-font-body); font-size: 1.02rem; line-height: 1.75; color: var(--cf-text); }
.elementor-5399 .elementor-widget-image img { border-radius: var(--cf-radius-lg); box-shadow: var(--cf-shadow); }

/* Pied de page : copyright lisible (texte clair sur fond foncé) */
.elementor-1004 .elementor-element-2f22ce0, .elementor-1004 .elementor-element-2f22ce0 p, .elementor-1004 .elementor-element-2f22ce0 * { color: rgba(255, 255, 255, .72) !important; font-family: var(--cf-font-body); font-size: .9rem; }

/* Contenu des shortcodes dans les sections : largeur de lecture et marges */
.cf-sec .elementor-widget-shortcode, .cf-sec .elementor-widget-html { width: 100%; max-width: 1140px; margin-left: auto; margin-right: auto; }
@media (max-width: 600px) { .cf-contact__form .wpr-form-fields-wrap .wpr-column { width: 100% !important; } }

/* ================= PAGE DE LECTURE D'UN ARTICLE ================= */
.cf-post-hero { min-height: 0 !important; padding: 64px 24px 56px !important; gap: 16px; }
.cf-post-hero .e-con-inner, .cf-post-hero > .e-con-inner { max-width: 880px !important; }
.cf-post-hero .elementor-widget-wpr-archive-title .elementor-widget-container, .cf-post-hero .wpr-archive-title { max-width: 880px; }
.cf-post-hero h1, .cf-post-hero .wpr-archive-title, .cf-post-hero .wpr-archive-title * { font-family: var(--cf-font-body) !important; font-size: clamp(1.5rem, 3.4vw, 2.4rem) !important; font-weight: 700 !important; line-height: 1.22 !important; letter-spacing: -.015em; color: #fff !important; text-transform: none !important; text-shadow: 0 2px 18px rgba(0, 0, 0, .35); }
.cf-post-hero .wpr-post-info, .cf-post-hero .wpr-post-info * { font-family: var(--cf-font-body) !important; font-size: .85rem !important; color: rgba(255, 255, 255, .9) !important; }
.cf-post-hero .wpr-post-info-taxonomy a, .cf-post-hero .wpr-post-info-taxonomy { display: inline-block; padding: 6px 14px; border-radius: 999px; background: var(--cf-orange-dark) !important; color: #fff !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; font-size: .75rem !important; }
.cf-post-hero .wpr-post-info-date { opacity: .9; }

/* corps de l'article : largeur de lecture, texte confortable */
.elementor-1468 .elementor-element-32b26e0c { padding: 56px 24px 88px !important; align-items: center; }
.elementor-1468 .elementor-element-32b26e0c > .e-con-inner { max-width: 780px !important; width: 100%; margin: 0 auto; padding: 0; flex-direction: column; }
.elementor-1468 .wpr-post-content, .elementor-1468 .wpr-post-content p { font-family: var(--cf-font-body); font-size: 1.08rem; line-height: 1.85; color: var(--cf-text); }
.elementor-1468 .wpr-post-content p { margin: 0 0 1.4em; }
.elementor-1468 .wpr-post-content img { display: block; max-width: 100%; height: auto; margin: 0 auto 28px; border-radius: var(--cf-radius-lg); box-shadow: var(--cf-shadow); }
.elementor-1468 .wpr-post-content h2, .elementor-1468 .wpr-post-content h3 { font-family: var(--cf-font-body); color: var(--cf-ink); margin: 1.6em 0 .6em; }
.elementor-1468 .wpr-post-content a { color: var(--cf-orange-dark); text-decoration: underline; text-underline-offset: 3px; }
.elementor-1468 .wpr-post-content blockquote { margin: 1.6em 0; padding: 18px 24px; border-left: 4px solid var(--cf-orange); background: var(--cf-bg-soft); border-radius: 0 var(--cf-radius) var(--cf-radius) 0; font-style: italic; color: var(--cf-ink); }

/* navigation précédent / suivant en cartes */
.elementor-1468 .wpr-post-navigation { margin-top: 40px; }
.elementor-1468 .wpr-post-navigation, .elementor-1468 .wpr-post-navigation a { font-family: var(--cf-font-body); }
.elementor-1468 .wpr-post-navigation .wpr-post-nav-prev, .elementor-1468 .wpr-post-navigation .wpr-post-nav-next { border: 1px solid var(--cf-line) !important; border-radius: var(--cf-radius); padding: 14px 18px; transition: border-color .2s, box-shadow .2s, transform .2s var(--cf-ease); }
.elementor-1468 .wpr-post-navigation .wpr-post-nav-prev:hover, .elementor-1468 .wpr-post-navigation .wpr-post-nav-next:hover { border-color: var(--cf-orange) !important; box-shadow: var(--cf-shadow); transform: translateY(-2px); }
.cf-post-back { display: flex; justify-content: center; margin-top: 36px; }
@media (max-width: 767px) { .cf-post-hero { padding: 48px 16px 40px !important; } .elementor-1468 .elementor-element-32b26e0c { padding: 36px 16px 64px !important; } .elementor-1468 .wpr-post-content, .elementor-1468 .wpr-post-content p { font-size: 1.02rem; line-height: 1.8; } }

.cf-post-hero .wpr-post-info-taxonomy, .cf-post-hero .wpr-post-info-taxonomy a, .cf-post-hero .wpr-post-info-taxonomy span { background: transparent !important; padding: 0 !important; }
.cf-post-hero .wpr-post-info-taxonomy { background: var(--cf-orange-dark) !important; padding: 6px 14px !important; }
.cf-post-back .cf-btn--ghost { border: 2px solid var(--cf-ink); box-shadow: none; background: transparent; }
.cf-post-back .cf-btn--ghost:hover { background: var(--cf-ink); color: #fff !important; }

/* ---- Pied de page piloté par les options (coordonnées, réseaux, mentions légales) ---- */
.cf-foot__line { margin: 0 0 14px; color: rgba(255, 255, 255, .85); font-size: .95rem; line-height: 1.55; }
.cf-foot__line span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #FFB27A; }
.cf-foot__line a { color: #fff; }
.cf-foot__social a i { font-size: 1.15rem; line-height: 1; }
.cf-foot__legal { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 28px 0 0; padding: 20px 0 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.cf-foot__legal a { color: rgba(255, 255, 255, .8); font-size: .88rem; }
.cf-foot__legal a:hover { color: #fff; }
.cf-todo { margin: 0; padding: 12px 16px; border: 1px dashed var(--cf-tertiary); border-radius: 10px; background: #fffbf3; color: #6b5420; font-size: .9rem; }

/* ================= ACCUEIL : ALIGNEMENT SUR LE DESIGN « HARMONIE & PAIX CIVIQUE » ================= */
:root { --cf-card-shadow: 0 12px 32px -8px rgba(27, 77, 62, .08), 0 2px 8px -2px rgba(217, 93, 30, .04); --cf-hairline: rgba(31, 36, 33, .08); --cf-gold-line: rgba(200, 157, 92, .3); }
body { background: var(--cf-surface); }

/* Hero : voile émeraude → terre cuite, titre éditorial */
.elementor-803 > .e-parent:first-child::before { background-image: linear-gradient(100deg, rgba(18, 50, 40, .92) 0%, rgba(27, 77, 62, .72) 45%, rgba(217, 93, 30, .28) 100%), linear-gradient(0deg, rgba(18, 50, 40, .4), rgba(18, 50, 40, 0) 40%) !important; }
.elementor-803 > .e-parent:first-child h1.elementor-heading-title { font-size: clamp(2.1rem, 4.8vw, 3.6rem); line-height: 1.1; letter-spacing: -.02em; }
.elementor-803 .wpr-anim-text, .elementor-803 .wpr-anim-text * { color: var(--cf-tertiary) !important; }
.cf-hero-sub { margin: 4px 0 0; max-width: 620px; font-family: var(--cf-font-body); font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.65; color: rgba(255, 255, 255, .92); text-shadow: 0 1px 12px rgba(0, 0, 0, .3); animation: cf-rise .8s var(--cf-ease) .2s both; }

/* Titres de section (widgets Elementor natifs) */
.cf-sec__head .elementor-widget { width: auto; max-width: 100%; }
.cf-kicker .elementor-heading-title { display: inline-block; font-family: var(--cf-font-body); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; line-height: 1.2; color: var(--cf-primary-dark); background: rgba(217, 93, 30, .1); padding: 7px 16px; border-radius: 999px; }
.cf-title .elementor-heading-title { margin: 0; font-family: var(--cf-font-heading); font-size: clamp(1.75rem, 3.6vw, 2.5rem); font-weight: 700; line-height: 1.2; letter-spacing: -.015em; color: var(--cf-ink); text-wrap: balance; }
.cf-title .elementor-heading-title::after { content: ""; display: block; width: 56px; height: 4px; border-radius: 4px; margin: 16px auto 0; background: linear-gradient(90deg, var(--cf-primary) 0 50%, var(--cf-secondary) 50% 100%); }
.cf-lead, .cf-lead p { max-width: 640px; margin: 0 auto; font-family: var(--cf-font-body); font-size: 1.05rem; line-height: 1.7; color: var(--cf-muted); text-align: center; }
.cf-sec__title, .cf-cta__title, .cf-axe__title, .cf-member__title { font-family: var(--cf-font-heading); }

/* Chiffres : carte flottante qui chevauche le hero */
.cf-sec--float { background: transparent !important; position: relative; z-index: 3; margin-top: -84px !important; padding-top: 0 !important; padding-bottom: 24px !important; }
.cf-sec--float .cf-stats { background: #fff; border: 1px solid var(--cf-hairline); border-radius: calc(var(--cf-radius-lg) + 4px); box-shadow: var(--cf-card-shadow), 0 24px 60px -20px rgba(27, 77, 62, .18); padding: 36px 28px; }
.cf-stat__num { font-family: var(--cf-font-heading); color: var(--cf-secondary); }
.cf-stat__icon { color: var(--cf-primary); }

/* Piliers / axes */
.cf-sec--axes { background: var(--cf-surface); padding-top: 72px !important; }
.cf-axe { background: #fff; border: 1px solid var(--cf-hairline); box-shadow: var(--cf-card-shadow); }
.cf-axe:hover { border-color: var(--cf-gold-line); background: #fff; box-shadow: var(--cf-card-shadow), 0 20px 44px -16px rgba(27, 77, 62, .2); }
.cf-axe__num { font-family: var(--cf-font-heading); -webkit-text-stroke-color: var(--cf-primary); }
.cf-axe:nth-child(even) .cf-axe__num { -webkit-text-stroke-color: var(--cf-secondary); }
.cf-axe__title { font-size: 1.25rem; font-weight: 600; }

/* Manifeste de la présidente (affiché seulement si renseigné) */
.cf-sec-bare { display: block !important; width: 100%; padding: 0 !important; margin: 0 !important; }
.cf-sec-bare .elementor-widget { width: 100%; }
.cf-manifest { padding: 40px max(24px, calc((100% - 1140px) / 2)) 72px; }
.cf-manifest__card { display: grid; grid-template-columns: 1.7fr 1fr; gap: 40px; align-items: center; padding: 56px; border-radius: calc(var(--cf-radius-lg) + 8px); color: #fff; background: radial-gradient(circle at 100% 0, rgba(200, 157, 92, .22), transparent 45%), var(--cf-secondary); box-shadow: var(--cf-card-shadow), 0 28px 60px -24px rgba(18, 50, 40, .5); }
.cf-manifest__label { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cf-tertiary); margin-bottom: 18px; }
.cf-manifest__quote { margin: 0 0 24px; font-family: var(--cf-font-heading); font-size: clamp(1.3rem, 2.6vw, 1.9rem); font-weight: 600; line-height: 1.4; color: #fff; text-wrap: pretty; }
.cf-manifest__who { margin: 0; display: flex; flex-direction: column; gap: 2px; font-size: .95rem; color: rgba(255, 255, 255, .8); }
.cf-manifest__who strong { color: #fff; font-size: 1.05rem; }
.cf-manifest__side { padding: 28px; border-radius: var(--cf-radius-lg); background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); text-align: center; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cf-manifest__side h3 { margin: 0; font-family: var(--cf-font-heading); font-size: 1.25rem; color: #fff; }
.cf-manifest__side p { margin: 0; font-size: .95rem; line-height: 1.6; color: rgba(255, 255, 255, .85); }

/* Bandeau partenaires */
.cf-partners-band { padding: 56px max(24px, calc((100% - 1140px) / 2)); text-align: center; border-top: 1px solid var(--cf-hairline); background: #fff; }
.cf-partners-band__title { margin: 0 0 28px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cf-muted); }
.cf-partners { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 28px 48px; }
.cf-partners img { max-height: 52px; width: auto; filter: grayscale(1); opacity: .75; border-radius: 0; transition: filter .25s, opacity .25s; }
.cf-partners a:hover img, .cf-partners img:hover { filter: none; opacity: 1; }
.cf-partners span { font-weight: 600; color: var(--cf-muted); }

/* Bandeau final */
.cf-sec--cta { background: linear-gradient(135deg, var(--cf-primary-dark) 0%, var(--cf-primary) 100%); }
.cf-btn--light { color: var(--cf-primary-dark) !important; }

/* Cartes d'actualités et de programmes (shortcodes) */
.cf-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.cf-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-card-shadow); overflow: hidden; transition: transform .35s var(--cf-ease), border-color .35s; }
.cf-card:hover { transform: translateY(-5px); border-color: var(--cf-gold-line); }
.cf-card__img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; }
.cf-card__body { padding: 22px 22px 26px; display: flex; flex-direction: column; gap: 10px; }
.cf-card__title { margin: 0; font-family: var(--cf-font-heading); font-size: 1.2rem; line-height: 1.3; }
.cf-card__title a { color: var(--cf-ink); text-decoration: none; }
.cf-card__title a:hover { color: var(--cf-primary-dark); }
.cf-card__meta { margin: 0; font-size: .85rem; color: var(--cf-muted); }
.cf-card__text { margin: 0; font-size: .96rem; line-height: 1.6; color: var(--cf-text); }
.cf-badge { align-self: flex-start; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; background: rgba(27, 77, 62, .1); color: var(--cf-secondary); }
.cf-badge--termine { background: rgba(31, 36, 33, .08); color: var(--cf-muted); }
.cf-badge--a_venir { background: rgba(200, 157, 92, .2); color: #6b5420; }
.cf-results { list-style: none; margin: 6px 0 0; padding: 14px 0 0; border-top: 1px solid var(--cf-hairline); display: flex; flex-wrap: wrap; gap: 8px 22px; }
.cf-results strong { font-family: var(--cf-font-heading); font-size: 1.35rem; color: var(--cf-secondary); }
.cf-results span { font-size: .85rem; color: var(--cf-muted); }
.cf-docs { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.cf-doc { display: flex; gap: 18px; align-items: center; justify-content: space-between; padding: 18px 22px; background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius); box-shadow: var(--cf-card-shadow); }
.cf-doc strong { display: block; color: var(--cf-ink); }
.cf-doc__date { display: block; font-size: .85rem; color: var(--cf-muted); }
.cf-doc p { margin: 6px 0 0; font-size: .92rem; color: var(--cf-text); }
.cf-btn--small { padding: 9px 20px; min-height: 40px; font-size: .9rem; white-space: nowrap; }

@media (max-width: 900px) {
	.cf-manifest__card { grid-template-columns: 1fr; padding: 32px 24px; gap: 28px; }
	.cf-sec--float { margin-top: -56px !important; }
	.cf-sec--float .cf-stats { padding: 24px 16px; }
	.cf-doc { flex-direction: column; align-items: flex-start; }
}
.cf-sec--float .cf-stat { background: transparent; border: 0; box-shadow: none; padding: 8px 12px; }
.cf-sec--float .cf-stat:hover { transform: none; box-shadow: none; }
.cf-sec--float .cf-stat:not(:first-child) { border-left: 1px solid var(--cf-hairline); border-radius: 0; }
@media (max-width: 900px) { .cf-sec--float .cf-stat:not(:first-child) { border-left: 0; } }
@media (max-width: 640px) { .cf-sec--float .cf-stats { grid-template-columns: repeat(2, 1fr); gap: 8px; } .cf-sec--float .cf-stat__num { font-size: 2rem; } }

/* ================= PAGES INTERNES (design Stitch) ================= */
/* Bannière commune : émeraude, filet or, titre éditorial */
.cf-page-hero { background-color: var(--cf-secondary-dark); min-height: 320px; }
.cf-page-hero:not([style*="background-image"]):not(.elementor-element-fe152ec):not(.elementor-element-17bfd03):not(.cf-post-hero)::before,
.cf-page-hero--plain::before { background-image: radial-gradient(circle at 90% 0, rgba(200, 157, 92, .28), transparent 45%), linear-gradient(135deg, var(--cf-secondary-dark), var(--cf-secondary)) !important; }
.cf-page-hero::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 96px; height: 4px; transform: translateX(-50%); border-radius: 4px 4px 0 0; background: linear-gradient(90deg, var(--cf-primary) 0 50%, var(--cf-tertiary) 50% 100%); }
.cf-page-hero h1, .cf-page-hero h1.elementor-heading-title, .cf-page-hero .elementor-heading-title { font-family: var(--cf-font-heading) !important; }
.cf-page-hero .cf-kicker .elementor-heading-title { font-family: var(--cf-font-body) !important; font-size: .75rem !important; color: var(--cf-tertiary) !important; background: rgba(255, 255, 255, .1); text-shadow: none; border: 1px solid rgba(200, 157, 92, .45); }
.cf-page-hero .cf-lead, .cf-page-hero .cf-lead p { color: rgba(255, 255, 255, .88); max-width: 680px; margin: 0 auto; }
.cf-crumbs [aria-current] { color: var(--cf-tertiary); }

/* Sections alimentées par [caufemcip_bloc] */
.cf-block { padding: 72px max(24px, calc((100% - 1140px) / 2)); }
.cf-block__in { width: 100%; max-width: 1140px; margin: 0 auto; }
.cf-block--clair { background: var(--cf-surface); }
.cf-block--doux { background: #F0F5F0; }
.cf-block--vert { background: var(--cf-secondary); }
.cf-block--vert .cf-sec__title, .cf-block--vert .cf-sec__lead { color: #fff; }
.cf-block--vert .cf-sec__kicker { color: var(--cf-tertiary); background: rgba(255, 255, 255, .1); }
.cf-block .cf-sec__head { margin-bottom: 40px; }
.cf-prose { max-width: 760px; margin: 0 auto; font-size: 1.05rem; line-height: 1.75; color: var(--cf-text); }
.cf-prose p { margin: 0 0 1em; }
.cf-form-fallback { text-align: center; padding: 40px 28px; background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-card-shadow); }

/* Trois voies de soutien */
.cf-levers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cf-lever { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 32px 28px; background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-card-shadow); transition: transform .35s var(--cf-ease), border-color .35s; }
.cf-lever:hover { transform: translateY(-5px); border-color: var(--cf-gold-line); }
.cf-lever__num { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cf-primary-dark); }
.cf-lever__title { margin: 0; font-family: var(--cf-font-heading); font-size: 1.4rem; line-height: 1.25; color: var(--cf-ink); }
.cf-lever__text { margin: 0 0 8px; flex: 1; line-height: 1.65; color: var(--cf-text); }

/* Questions fréquentes */
.cf-faq { max-width: 820px; margin: 0 auto; display: grid; gap: 12px; }
.cf-faq__item { background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius); box-shadow: var(--cf-card-shadow); }
.cf-faq__item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 18px 22px; min-height: 44px; font-weight: 600; color: var(--cf-ink); }
.cf-faq__item summary::-webkit-details-marker { display: none; }
.cf-faq__item summary::after { content: "+"; flex: none; font-size: 1.5rem; line-height: 1; color: var(--cf-primary); transition: transform .25s; }
.cf-faq__item[open] summary::after { transform: rotate(45deg); }
.cf-faq__answer { padding: 0 22px 20px; line-height: 1.7; color: var(--cf-text); }
.cf-faq__answer p { margin: 0 0 .8em; }

@media (max-width: 900px) { .cf-levers { grid-template-columns: 1fr; } .cf-block { padding: 52px 16px; } }
.cf-sec--soft { background: #F0F5F0; }
.cf-sec-bare > .elementor-widget-shortcode, .cf-sec-bare > .e-con-inner { width: 100%; max-width: none; }

/* Menu principal : 7 entrées sur une seule ligne */
.elementor-994 .wpr-nav-menu .wpr-menu-item { white-space: nowrap; padding: 10px 11px !important; font-size: .9rem; }
@media (max-width: 1199px) and (min-width: 768px) {
	.elementor-994 .wpr-nav-menu .wpr-menu-item { padding: 10px 7px !important; font-size: .84rem; }
	.elementor-994 .elementor-widget-social-icons { display: none; }
}
@media (max-width: 900px) { .cf-stats { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 1279px) and (min-width: 1025px) {
	.elementor-994 .wpr-nav-menu .wpr-menu-item { padding: 10px 6px !important; font-size: .84rem; }
	.elementor-994 .elementor-element-fbd34a1 { flex: 1 1 auto !important; width: auto !important; max-width: none !important; }
	.elementor-994 .elementor-element-8feda1f { display: none !important; }
}

/* ================= FORMULAIRES NATIFS ================= */
.cf-form-wrap { width: 100%; max-width: 720px; margin: 0 auto; }
.cf-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.cf-field { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.cf-field--wide { grid-column: 1 / -1; }
.cf-field label { font-size: .92rem; font-weight: 600; color: var(--cf-ink); }
.cf-field label span[aria-hidden] { color: var(--cf-primary-dark); }
.cf-field input[type="text"], .cf-field input[type="email"], .cf-field input[type="tel"], .cf-field select, .cf-field textarea { width: 100%; box-sizing: border-box; padding: 13px 16px; font: inherit; font-size: 1rem; color: var(--cf-ink); background: #fff; border: 1.5px solid rgba(31, 36, 33, .18); border-radius: calc(var(--cf-radius) - 4px); transition: border-color .2s, box-shadow .2s; }
.cf-field textarea { resize: vertical; min-height: 130px; }
.cf-field input:focus, .cf-field select:focus, .cf-field textarea:focus { outline: none; border-color: var(--cf-primary); box-shadow: 0 0 0 4px rgba(217, 93, 30, .15); }
.cf-field--check { margin-top: 18px; }
.cf-field--check label { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; font-size: .92rem; line-height: 1.5; color: var(--cf-text); cursor: pointer; }
.cf-field--check input { flex: none; width: 20px; height: 20px; margin-top: 2px; accent-color: var(--cf-primary); }
.cf-form__note { margin: 10px 0 20px; font-size: .85rem; color: var(--cf-muted); }
.cf-form__submit { border: 0; cursor: pointer; font-size: 1rem; }
.cf-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cf-form-msg { margin: 0 0 20px; padding: 16px 20px; border-radius: var(--cf-radius); font-size: .98rem; line-height: 1.55; }
.cf-form-msg--ok { background: #e8f4ee; border: 1px solid #b6dcc7; color: #14472f; }
.cf-form-msg--err { background: #fdeceb; border: 1px solid #f2b8b5; color: #8a1c14; }
.cf-contact__form .cf-form-wrap { max-width: none; }
@media (max-width: 640px) { .cf-form__grid { grid-template-columns: 1fr; } .cf-form__submit { width: 100%; justify-content: center; } }

/* ---- Logo carré (emblème CAUFEMCIP) : en-tête et pied de page ---- */
.elementor-994 .e-con-inner > .e-con:first-child, .elementor-994 .elementor-widget-wpr-logo, .elementor-994 .wpr-logo, .elementor-994 .wpr-logo .elementor-widget-container,
body.cf-scrolled .elementor-994 .e-con-inner > .e-con:first-child, body.cf-scrolled .elementor-994 .elementor-widget-wpr-logo, body.cf-scrolled .elementor-994 .wpr-logo, body.cf-scrolled .elementor-994 .wpr-logo .elementor-widget-container { width: auto !important; }
.elementor-994 .wpr-logo img, body.cf-scrolled .elementor-994 .wpr-logo img { width: auto !important; height: 70px; max-width: none; transition: height .3s var(--cf-ease); }
body.cf-scrolled .elementor-994 .wpr-logo img { height: 54px; }
.elementor-1004 .wpr-logo img { width: auto; height: 116px; }
@media (max-width: 767px) {
	.elementor-994 .wpr-logo img, body.cf-scrolled .elementor-994 .wpr-logo img { height: 52px; }
	.elementor-1004 .wpr-logo img { height: 96px; }
}
.elementor-1004 .wpr-logo, .elementor-1004 .wpr-logo picture, .elementor-1004 .wpr-logo .elementor-widget-container { width: auto !important; max-width: none !important; }
.elementor-1004 .wpr-logo img { width: auto !important; }

/* Cartes d'actualités : fond sombre tant que la photo n'est pas chargée (le texte blanc reste lisible) */
.wpr-magazine-grid-item, .wpr-mgzn-grid-item { background-color: var(--cf-secondary-dark); }

/* ================= BARRE DE NAVIGATION (design Stitch) ================= */
/* Le modèle Elementor 994 ne contient plus que le shortcode [caufemcip_entete] : ses conteneurs deviennent transparents. */
.elementor-994.elementor, .elementor-994 .elementor-element, .elementor-994 .elementor-widget-container, .elementor-994 .elementor-shortcode { display: contents !important; }
.elementor-994.elementor { position: static; background: none; border: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; }
.elementor-994.elementor::before { display: none; }
.elementor-994 > .e-con { padding: 0 !important; }

.cf-topbar { background: var(--cf-secondary); color: rgba(255, 255, 255, .9); font-size: .78rem; line-height: 1.3; }
.cf-topbar__in { max-width: 1280px; margin: 0 auto; padding: 8px 24px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.cf-topbar__left, .cf-topbar__right { display: flex; align-items: center; gap: 6px 22px; flex-wrap: wrap; }
.cf-topbar__item { display: inline-flex; align-items: center; gap: 7px; color: inherit; text-decoration: none; }
.cf-topbar__item svg { color: var(--cf-tertiary); flex: none; }
a.cf-topbar__item:hover, .cf-topbar__social:hover { color: #fff; text-decoration: underline; }
.cf-topbar__social { color: inherit; font-size: .9rem; min-width: 24px; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; }

.cf-header { position: sticky; top: 0; z-index: 999; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(170%) blur(12px); -webkit-backdrop-filter: saturate(170%) blur(12px); border-bottom: 1px solid var(--cf-hairline); transition: box-shadow .3s var(--cf-ease); }
.admin-bar .cf-header { top: 32px; }
body.cf-scrolled .cf-header { box-shadow: 0 8px 28px rgba(20, 40, 30, .1); }
.cf-header__in { max-width: 1280px; margin: 0 auto; padding: 0 24px; min-height: 80px; display: flex; align-items: center; gap: 28px; transition: min-height .3s var(--cf-ease); }
body.cf-scrolled .cf-header__in { min-height: 64px; }

.cf-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; flex: none; color: var(--cf-ink); }
.cf-header .cf-brand__logo { width: auto; height: 54px; max-width: none; border-radius: 0; transition: height .3s var(--cf-ease); }
body.cf-scrolled .cf-header .cf-brand__logo { height: 44px; }
.cf-brand__text { display: flex; flex-direction: column; gap: 2px; }
.cf-brand__name { font-family: var(--cf-font-body); font-size: 1.3rem; font-weight: 800; letter-spacing: .01em; line-height: 1; color: var(--cf-secondary); display: inline-flex; align-items: flex-start; }
.cf-brand__name i { width: 6px; height: 6px; border-radius: 50%; background: var(--cf-primary); margin: 2px 0 0 4px; }
.cf-brand__slogan { max-width: 190px; font-size: .62rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; line-height: 1.25; color: var(--cf-muted); }

.cf-nav { flex: 1 1 auto; display: flex; justify-content: center; }
.cf-nav__list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.cf-nav__list a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; font-size: .9rem; font-weight: 600; color: var(--cf-ink); text-decoration: none; white-space: nowrap; transition: color .2s; }
.cf-nav__list a::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--cf-primary); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--cf-ease); }
.cf-nav__list a:hover { color: var(--cf-primary-dark); }
.cf-nav__list a:hover::after, .cf-nav__list .current-menu-item > a::after, .cf-nav__list .current_page_item > a::after { transform: scaleX(1); }
.cf-nav__list .current-menu-item > a, .cf-nav__list .current_page_item > a { color: var(--cf-primary-dark); }
.cf-nav__mobile-actions { display: none; }

.cf-header__actions { display: flex; align-items: center; gap: 12px; flex: none; }
.cf-header .cf-header__cta { background: var(--cf-primary-mid); padding: 11px 22px; min-height: 44px; font-size: .9rem; white-space: nowrap; }
.cf-header__fb { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--cf-secondary); border: 1px solid var(--cf-hairline); background: #fff; text-decoration: none; transition: background .2s, color .2s; }
.cf-header__fb:hover { background: var(--cf-secondary); color: #fff; }

.cf-burger { display: none; width: 44px; height: 44px; margin-left: auto; padding: 0; border: 1px solid var(--cf-hairline); border-radius: 12px; background: #fff; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.cf-burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--cf-ink); transition: transform .25s var(--cf-ease), opacity .2s; }
.cf-burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.cf-burger.is-open span:nth-child(2) { opacity: 0; }
.cf-burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1100px) {
	.cf-header__in { min-height: 68px; gap: 12px; }
	.cf-burger { display: inline-flex; }
	.cf-header__actions { display: none; }
	.cf-nav { position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; justify-content: flex-start; padding: 8px 24px 24px; background: #fff; border-bottom: 1px solid var(--cf-hairline); box-shadow: 0 18px 30px rgba(20, 40, 30, .12); max-height: calc(100vh - 100px); overflow-y: auto; display: none; }
	.cf-nav.is-open { display: flex; }
	.cf-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.cf-nav__list a { width: 100%; min-height: 48px; border-bottom: 1px solid var(--cf-hairline); }
	.cf-nav__list a::after { display: none; }
	.cf-nav__mobile-actions { display: block; margin-top: 18px; }
	.cf-nav__mobile-actions .cf-btn { width: 100%; justify-content: center; }
}
@media (max-width: 640px) {
	.cf-topbar__left, .cf-topbar__social { display: none; }
	.cf-topbar__in { padding: 6px 16px; justify-content: center; }
	.cf-header__in { padding: 0 16px; }
	.cf-header .cf-brand__logo { height: 44px; }
	.cf-brand__name { font-size: 1.1rem; }
	.cf-brand__slogan { max-width: 150px; font-size: .56rem; }
}

.cf-header .cf-header__cta:hover { background: var(--cf-primary-dark); }

/* ================= PIED DE PAGE (design Stitch) ================= */
.elementor-1004 > .e-con.cf-foot-wrap { padding: 0 !important; margin: 0 !important; max-width: none !important; width: 100% !important; }
.elementor-1004 .cf-foot-wrap > .e-con-inner, .elementor-1004 .cf-foot-wrap .elementor-widget, .elementor-1004 .cf-foot-wrap .elementor-widget-container { width: 100%; max-width: none; padding: 0; margin: 0; }

.cf-footer { background: var(--cf-secondary-dark); color: rgba(226, 244, 235, .82); font-size: .88rem; line-height: 1.6; position: relative; }
.cf-footer::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, var(--cf-primary) 0 50%, var(--cf-tertiary) 50% 100%); }
.cf-footer__in { max-width: 1280px; margin: 0 auto; padding: 72px 24px 28px; }
.cf-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1.2fr 1.3fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.cf-footer a { color: inherit; text-decoration: none; transition: color .2s; }
.cf-footer a:hover { color: #fff; }
.cf-footer__brand { display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.cf-footer__brand img { width: auto; height: 48px; border-radius: 0; background: rgba(255, 255, 255, .08); padding: 6px; border-radius: 12px; box-sizing: content-box; }
.cf-footer__brand > span { display: flex; flex-direction: column; gap: 2px; }
.cf-footer__name { font-size: 1.3rem; font-weight: 800; color: #fff; line-height: 1.1; }
.cf-footer__slogan { font-size: .62rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #BFE6D2; max-width: 220px; line-height: 1.3; }
.cf-footer__mission { margin: 0 0 22px; max-width: 380px; }
.cf-footer__social { display: flex; gap: 10px; flex-wrap: wrap; }
.cf-footer__social a { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #fff; transition: background .2s, transform .2s; }
.cf-footer__social a:hover { background: var(--cf-primary-mid); transform: translateY(-2px); }
.cf-footer__title { margin: 0 0 18px; font-family: var(--cf-font-body); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #F2A06B; }
.cf-footer__links, .cf-footer__dots { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cf-footer__links a { display: inline-block; min-height: 24px; }
.cf-footer__dots li { display: flex; align-items: center; gap: 10px; }
.cf-footer__dots li span { flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--cf-primary); }
.cf-footer__contact { display: grid; gap: 12px; margin-bottom: 22px; }
.cf-footer__contact p { margin: 0; display: flex; align-items: flex-start; gap: 10px; }
.cf-footer__contact p svg { flex: none; margin-top: 3px; color: #F2A06B; }
.cf-footer__contact .cf-footer__text { display: block; }
.cf-footer__hours { flex-direction: column; gap: 2px !important; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.cf-footer__hours span { font-size: .7rem; font-weight: 600; color: #BFE6D2; }
.cf-footer__hours strong { color: #fff; font-size: .82rem; }
.cf-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 12px 24px; flex-wrap: wrap; padding-top: 24px; font-size: .8rem; color: rgba(226, 244, 235, .65); }
.cf-footer__bottom p { margin: 0; }
.cf-footer__legal { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px 24px; flex-wrap: wrap; }

@media (max-width: 1024px) { .cf-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
	.cf-footer__in { padding: 52px 16px 24px; }
	.cf-footer__grid { grid-template-columns: 1fr; gap: 32px; }
	.cf-footer .cf-btn { width: 100%; justify-content: center; }
	.cf-footer__bottom { flex-direction: column; align-items: flex-start; }
}
.cf-topbar__sep { color: rgba(255, 255, 255, .45); }
@media (max-width: 900px) { .cf-topbar__left .cf-topbar__item:nth-of-type(n+2), .cf-topbar__sep { display: none; } }

/* ================= BANNIÈRES DES PAGES INTERNES : version « design » (texte à gauche, chiffres à droite) ================= */
.cf-page-hero--left { align-items: flex-start !important; text-align: left; justify-content: center; min-height: 380px; padding: 64px 0 76px !important; }
.cf-page-hero--left::after { display: none; }
.cf-page-hero--left > .e-con-inner { max-width: 1280px !important; width: 100%; padding: 0 24px !important; align-items: stretch !important; }
.cf-page-hero__row { display: flex !important; flex-direction: row !important; align-items: center; gap: 48px; width: 100%; max-width: none !important; padding: 0 !important; }
.cf-page-hero__row > .e-con-inner { max-width: none !important; width: 100%; padding: 0 !important; flex-direction: row !important; align-items: center; gap: 48px; }
.cf-page-hero__main { flex: 1 1 56% !important; width: auto !important; max-width: 720px !important; align-items: flex-start !important; gap: 16px; padding: 0 !important; }
.cf-page-hero__main > .e-con-inner { align-items: flex-start !important; padding: 0 !important; gap: 16px; max-width: none !important; }
.cf-page-hero__side { flex: 1 1 38% !important; width: auto !important; max-width: 480px !important; padding: 0 !important; }
.cf-page-hero--left .elementor-widget { width: auto; max-width: 100%; }
.cf-page-hero--left h1.elementor-heading-title { font-size: clamp(2.2rem, 4.8vw, 3.6rem) !important; line-height: 1.08; text-align: left; }
.cf-page-hero h1 em { font-style: italic; font-weight: 700; color: var(--cf-tertiary); }
.cf-page-hero--left .cf-lead, .cf-page-hero--left .cf-lead p { text-align: left; margin: 0; max-width: 620px; font-size: 1.1rem; }
.cf-page-hero--left .cf-crumbs { align-self: flex-start; }
.cf-hero-btns p { margin: 8px 0 0; }
.cf-page-hero__side .cf-stats { grid-template-columns: repeat(2, 1fr); gap: 14px; padding: 0; max-width: none; margin: 0; }
.cf-page-hero__side .cf-stat { background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .2); box-shadow: none; border-radius: var(--cf-radius); padding: 20px 14px; backdrop-filter: blur(6px); }
.cf-page-hero__side .cf-stat:hover { transform: none; box-shadow: none; }
.cf-page-hero__side .cf-stat__num { color: #fff; font-size: clamp(1.8rem, 3.2vw, 2.4rem); }
.cf-page-hero__side .cf-stat__label { color: rgba(255, 255, 255, .88); font-size: .85rem; }
.cf-page-hero__side .cf-stat__icon { background: rgba(255, 255, 255, .14); color: var(--cf-tertiary); width: 44px; height: 44px; }
@media (max-width: 900px) {
	.cf-page-hero__row, .cf-page-hero__row > .e-con-inner { flex-direction: column !important; align-items: flex-start !important; gap: 28px; }
	.cf-page-hero__main, .cf-page-hero__side { flex: none !important; max-width: none !important; width: 100% !important; }
	.cf-page-hero--left { min-height: 0; padding: 44px 0 52px !important; }
	.cf-page-hero--left > .e-con-inner { padding: 0 16px !important; }
}

/* ================= TITRES DE SECTION DES PAGES INTERNES : alignés à gauche comme dans le design ================= */
body:not(.home) .cf-sec__head { align-items: flex-start; text-align: left; max-width: 760px; margin-left: 0; margin-right: auto; }
body:not(.home) .cf-sec__head .elementor-widget { width: auto; }
body:not(.home) .cf-sec__title::after, body:not(.home) .cf-title .elementor-heading-title::after { margin-left: 0; margin-right: 0; }
body:not(.home) .cf-sec__head .cf-lead, body:not(.home) .cf-sec__head .cf-lead p, body:not(.home) .cf-sec__lead { text-align: left; margin-left: 0; margin-right: 0; }
body:not(.home) .cf-sec__kicker, body:not(.home) .cf-sec__head .cf-kicker .elementor-heading-title { background: none; padding: 0; border-radius: 0; color: var(--cf-primary-dark); letter-spacing: .1em; }
body:not(.home) .cf-sec__head .cf-title .elementor-heading-title { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
body:not(.home) .cf-sec__title { font-size: clamp(1.9rem, 3.6vw, 2.6rem); }
body:not(.home) .cf-block--vert .cf-sec__kicker { color: var(--cf-tertiary); }
.cf-page-hero--left > .cf-page-hero__row { max-width: 1280px !important; margin: 0 auto !important; padding: 0 24px !important; box-sizing: border-box; }
@media (max-width: 900px) { .cf-page-hero--left > .cf-page-hero__row { padding: 0 16px !important; } }

/* ---- Page « Vision et missions » : titres éditoriaux alignés à gauche, fonds alternés ---- */
.elementor-5399 .elementor-element-68151cd, .elementor-5399 .elementor-element-b2a18a7 { align-items: flex-start !important; text-align: left !important; }
.elementor-5399 .elementor-element-68151cd .elementor-widget, .elementor-5399 .elementor-element-b2a18a7 .elementor-widget, .elementor-5399 .elementor-element-68151cd .elementor-heading-title, .elementor-5399 .elementor-element-b2a18a7 .elementor-heading-title,
.elementor-5399 .elementor-element-68151cd .elementor-widget-container, .elementor-5399 .elementor-element-b2a18a7 .elementor-widget-container { text-align: left !important; align-self: flex-start; }
.elementor-5399 .elementor-element-fa0fdad .elementor-heading-title, .elementor-5399 .elementor-element-22318f6 .elementor-heading-title, .elementor-5399 .elementor-element-210adf2 .elementor-heading-title { font-family: var(--cf-font-heading) !important; font-weight: 700 !important; font-size: clamp(1.9rem, 3.6vw, 2.6rem) !important; line-height: 1.2 !important; letter-spacing: -.015em; color: var(--cf-ink) !important; }
.elementor-5399 .elementor-element-494efbf .elementor-heading-title, .elementor-5399 .elementor-element-d47ace3 .elementor-heading-title, .elementor-5399 .elementor-element-82fc10a .elementor-heading-title { background: none !important; padding: 0 !important; border-radius: 0 !important; font-size: .75rem !important; font-weight: 700 !important; letter-spacing: .1em !important; text-transform: uppercase; color: var(--cf-primary-dark) !important; }
.elementor-5399 .elementor-element-badcccf, .elementor-5399 .elementor-element-b2a18a7 { background: #F0F5F0 !important; }
.elementor-5399 .elementor-element-7c8538d img { border-radius: calc(var(--cf-radius-lg) + 4px); box-shadow: var(--cf-card-shadow), 0 24px 50px -20px rgba(27, 77, 62, .3); }
.cf-info .cf-sec__kicker { color: var(--cf-tertiary) !important; }
.elementor-5417 .wpr-grid-item-title, .elementor-5417 .wpr-grid-item-title a { font-family: var(--cf-font-heading) !important; font-weight: 600 !important; }
.elementor-5399 .elementor-element-280cef1 { align-items: flex-start !important; text-align: left !important; }
.elementor-5399 .elementor-element-280cef1 .elementor-widget, .elementor-5399 .elementor-element-280cef1 .elementor-heading-title { text-align: left !important; align-self: flex-start; }
.elementor-5399 .elementor-element-5da5e7e .elementor-heading-title { text-align: left !important; }

/* ================= ÉVÉNEMENTS ET RENDEZ-VOUS ================= */
.cf-sec--events { background: #F0F5F0; }
.cf-events { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; max-width: 1140px; margin: 0 auto; }
.cf-event { display: flex; gap: 20px; align-items: flex-start; padding: 24px; background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-card-shadow); transition: transform .35s var(--cf-ease), border-color .35s; }
.cf-event:hover { transform: translateY(-5px); border-color: var(--cf-gold-line); }
.cf-event__date { flex: none; width: 76px; padding: 10px 0 8px; text-align: center; border-radius: 16px; color: #fff; background: linear-gradient(160deg, var(--cf-secondary), var(--cf-secondary-dark)); display: flex; flex-direction: column; line-height: 1.1; }
.cf-event__day { font-family: var(--cf-font-heading); font-size: 2rem; font-weight: 700; }
.cf-event__month { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cf-tertiary); }
.cf-event__year { font-size: .68rem; opacity: .75; margin-top: 2px; }
.cf-event__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.cf-event__full { font-size: .78rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--cf-primary-dark); }
.cf-event__title { margin: 0; font-family: var(--cf-font-heading); font-size: 1.25rem; line-height: 1.3; color: var(--cf-ink); }
.cf-event__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: .88rem; color: var(--cf-muted); }
.cf-event__meta span { display: inline-flex; align-items: center; gap: 6px; }
.cf-event__meta svg { color: var(--cf-primary); flex: none; }
.cf-event__text { margin: 0; font-size: .95rem; line-height: 1.6; color: var(--cf-text); }
.cf-event__link { font-weight: 600; font-size: .92rem; color: var(--cf-primary-dark); text-decoration: none; }
.cf-event__link:hover { text-decoration: underline; }

.cf-events-empty { max-width: 720px; margin: 0 auto; padding: 44px 32px; text-align: center; background: #fff; border: 1px dashed rgba(27, 77, 62, .3); border-radius: calc(var(--cf-radius-lg) + 4px); box-shadow: var(--cf-card-shadow); display: flex; flex-direction: column; align-items: center; gap: 12px; }
.cf-events-empty__ico { width: 68px; height: 68px; display: inline-flex; align-items: center; justify-content: center; border-radius: 20px; color: var(--cf-secondary); background: rgba(27, 77, 62, .08); }
.cf-events-empty h3 { margin: 6px 0 0; font-family: var(--cf-font-heading); font-size: 1.5rem; color: var(--cf-ink); }
.cf-events-empty p { margin: 0; max-width: 520px; line-height: 1.7; color: var(--cf-text); }
.cf-events-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 10px; }
@media (max-width: 640px) { .cf-event { flex-direction: column; } .cf-events-empty { padding: 32px 20px; } .cf-events-empty__actions .cf-btn { width: 100%; justify-content: center; } }

/* ================= PAGES DE DÉTAIL (programme, récit de terrain, plaidoyer) ================= */
.cf-single { background: var(--cf-surface); padding: 56px 24px 80px; }
.cf-single__in { max-width: 820px; margin: 0 auto; }
.cf-single__facts { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 0 32px; padding: 0; }
.cf-single__facts > div { padding: 12px 18px; background: #fff; border: 1px solid var(--cf-hairline); border-radius: var(--cf-radius); box-shadow: var(--cf-card-shadow); }
.cf-single__facts dt { font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cf-primary-dark); }
.cf-single__facts dd { margin: 2px 0 0; color: var(--cf-ink); font-weight: 600; }
.cf-single__img { margin: 0 0 36px; }
.cf-single__img img { display: block; width: 100%; max-height: 460px; object-fit: cover; border-radius: calc(var(--cf-radius-lg) + 4px); box-shadow: var(--cf-card-shadow), 0 24px 50px -20px rgba(27, 77, 62, .3); }
.cf-single__content { font-size: 1.08rem; line-height: 1.8; color: var(--cf-text); }
.cf-single__content p { margin: 0 0 1.2em; }
.cf-single__content a { color: var(--cf-primary-dark); }
.cf-single__results { margin: 28px 0; }
.cf-single__back { margin: 40px 0 0; }
.cf-single__back a { font-weight: 600; color: var(--cf-primary-dark); text-decoration: none; }
.cf-single__back a:hover { text-decoration: underline; }
.cf-page-hero--left .cf-lead { color: rgba(255, 255, 255, .9); }
.cf-page-hero--left > .cf-page-hero__row > .cf-page-hero__main { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.cf-page-hero--left > .cf-page-hero__row h1 { margin: 0; font-family: var(--cf-font-heading); font-size: clamp(2rem, 4.4vw, 3.2rem); line-height: 1.12; color: #fff; text-align: left; }
@media (max-width: 640px) { .cf-single { padding: 36px 16px 56px; } }
