/* ==========================================================================
   Design v2.1 — inspiré de groupecide.org : blanc dominant, titres serif,
   rouge pour les actions clés, bleu du logo pour les accents, angles nets,
   animations d'apparition en cascade. Chargé après main.css.
   ========================================================================== */

/* 0. Jetons et base ------------------------------------------------------ */
:root {
	/* Uniquement les couleurs du logo : bleu foncé, bleu, bleu clair, et le blanc. */
	--d-rouge: #1774ba;       /* accent principal (bleu du logo) */
	--d-rouge-fonce: #124a86; /* bleu foncé du logo */
	--d-bleu: #124a86;
	--d-ciel: #2a9ce4;
	--d-encre: #0e2a4d;
	--d-gris: rgba(15, 26, 43, .7);
	--d-trait: rgba(15, 26, 43, .13);
	--d-fond: #f6f8fb;
	--d-rayon: 4px;
	--d-ombre: 0 18px 40px rgba(15, 26, 43, .1);
	--d-ease: cubic-bezier(.2, .7, .2, 1);

	--c-accent: var(--d-rouge);
	--f-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--f-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--radius-sm: 4px;
	--radius: 6px;
	--radius-lg: 8px;
	--container: 1180px;
}

body { color: var(--d-gris); font-size: 1rem; line-height: 1.75; background: #fff; }
h1, h2, h3, h4, h5, h6 { color: var(--d-encre); font-family: var(--f-serif); font-weight: 700; text-wrap: balance; }
a { text-underline-offset: 3px; }
.entry-content { color: var(--d-gris); }
.entry-content a { color: var(--d-bleu); }
.entry-content h2, .entry-content h3 { color: var(--d-encre); }
::selection { background: var(--d-rouge); color: #fff; }
:root { --c-accent: #1774ba; --c-accent-700: #124a86; --c-accent-050: #e6f2fc; --c-danger: #124a86; --c-danger-050: #e6f2fc; }

.centre { text-align: center; margin-top: 48px; }

/* Boutons */
.btn { border-radius: 999px; font-weight: 600; letter-spacing: .01em; }
.btn--accent, .btn--primary { background-color: var(--d-rouge); color: #fff; border-color: var(--d-rouge); box-shadow: 0 10px 24px rgba(23, 116, 186, .24); }
.btn--accent:hover, .btn--accent:focus-visible, .btn--primary:hover, .btn--primary:focus-visible { background-color: var(--d-rouge-fonce); border-color: var(--d-rouge-fonce); color: #fff; }
.btn--outline-dark { background: transparent; color: var(--d-encre); border: 1.5px solid var(--d-encre); }
.btn--outline-dark:hover, .btn--outline-dark:focus-visible { background: var(--d-encre); color: #fff; }
.btn--white { background: #fff; color: var(--d-rouge); border-color: #fff; }
.btn--white:hover, .btn--white:focus-visible { background: #fff; color: var(--d-rouge-fonce); transform: translateY(-2px); }
.btn--ghost-light { border: 1.5px solid rgba(255, 255, 255, .6); color: #fff; background: transparent; }
.btn--ghost-light:hover, .btn--ghost-light:focus-visible { background: #fff; color: var(--d-encre); border-color: #fff; }
.btn--navy { background: var(--d-encre); }
.btn--outline { border-color: var(--d-encre); color: var(--d-encre); }
.btn--outline:hover, .btn--outline:focus-visible { background: var(--d-encre); color: #fff; }

.lien-fleche, .link-arrow { display: inline-flex; align-items: center; gap: 8px; color: var(--d-encre); font-weight: 600; font-size: .9rem; text-decoration: none; }
.lien-fleche .icon, .link-arrow .icon { transition: transform .25s var(--d-ease); }
.lien-fleche:hover, .link-arrow:hover { color: var(--d-rouge); }
.lien-fleche:hover .icon, .link-arrow:hover .icon { transform: translateX(4px); }

/* 1. Sections et titres ------------------------------------------------- */
.section { padding-block: 64px; position: relative; }
@media (min-width: 1024px) { .section { padding-block: 96px; } }
.section.section--colle { padding-top: 0; }
.section--soft { background: var(--d-fond); border: 0; }

.surtitre, .eyebrow {
	display: block; margin: 0 0 12px;
	color: var(--d-rouge); font-family: var(--f-sans); font-size: .72rem; font-weight: 700;
	letter-spacing: .16em; text-transform: uppercase;
}
.eyebrow::before { display: none; }
.titre-section, .section__title { margin: 0; color: var(--d-encre); font-size: clamp(1.7rem, 1.25rem + 1.6vw, 2.35rem); line-height: 1.22; }
.entete { max-width: 640px; margin: 0 auto 52px; text-align: center; }
.entete > p:not(.surtitre) { margin: 14px 0 0; }
.entete--gauche { margin-left: 0; text-align: left; }
.section__head { margin-bottom: 44px; align-items: flex-end; }
.section__intro { color: var(--d-gris); }

/* 2. En-tête du site ----------------------------------------------------- */
.site-header { background: #fff; padding-block: 0; border-bottom: 1px solid transparent; transition: box-shadow .3s, border-color .3s; }
.site-header.is-scrolled { background: #fff; box-shadow: 0 8px 30px rgba(15, 26, 43, .1); }
.site-header__bar { min-height: 88px; transition: min-height .3s var(--d-ease); }
.site-header.is-reduit .site-header__bar { min-height: 70px; }
.brand__img { transition: height .3s var(--d-ease); }
.site-header.is-reduit .brand__img { height: 44px; }
.primary-nav .menu a { color: var(--d-encre); font-weight: 500; }
.site-header__cta, .primary-nav .primary-nav__cta-mobile {
	background: transparent; color: var(--d-rouge); border: 1.5px solid var(--d-rouge); box-shadow: none;
}
.site-header__cta:hover, .site-header__cta:focus-visible, .primary-nav .primary-nav__cta-mobile:hover { background: var(--d-rouge); color: #fff; }
.nav-toggle { border-radius: var(--d-rayon); }
@media (min-width: 1200px) {
	.site-header__bar { width: auto; background: none; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
	.site-header.is-scrolled { background: #fff; }
	.primary-nav .menu > li > a { position: relative; border-radius: 0; padding: 8px 14px; background: none !important; }
	.primary-nav .menu > li > a::before {
		content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 2px;
		background: var(--d-rouge); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--d-ease);
	}
	.primary-nav .menu > li > a:hover { color: var(--d-encre); }
	.primary-nav .menu > li > a:hover::before,
	.primary-nav .menu > .current-menu-item > a::before,
	.primary-nav .menu > .current_page_item > a::before,
	.primary-nav .menu > .current-menu-ancestor > a::before { transform: scaleX(1); }
	.primary-nav .menu > .current-menu-item > a, .primary-nav .menu > .current_page_item > a, .primary-nav .menu > .current-menu-ancestor > a { color: var(--d-encre); }
	.primary-nav .sub-menu { border-radius: var(--d-rayon); animation: deplie .2s var(--d-ease); }
}
.barre-lecture {
	position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; z-index: 120;
	width: 100%; height: 3px; background: var(--d-rouge);
	transform: scaleX(var(--progress, 0)); transform-origin: left; pointer-events: none;
}
.admin-bar .barre-lecture { top: 32px; }
@media (max-width: 782px) { .admin-bar .barre-lecture { top: 46px; } }
.read-progress { display: none; }

/* 3. Hero plein écran -------------------------------------------------- */
.hero2 { position: relative; overflow: hidden; display: flex; align-items: center; min-height: min(86vh, 820px); padding-block: 96px 120px; background: var(--d-encre); color: #fff; isolation: isolate; }
.hero2__bg { position: absolute; inset: 0; z-index: -2; }
.hero2__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; }
.hero2::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(90deg, rgba(10, 18, 32, .86) 0%, rgba(10, 18, 32, .62) 48%, rgba(10, 18, 32, .2) 100%), linear-gradient(0deg, rgba(10, 18, 32, .5), transparent 40%);
}
.hero2__rays { position: absolute; top: 40px; left: -8px; width: 72px; height: 72px; color: rgba(255, 255, 255, .85); }
.hero2__disc { position: absolute; left: -48px; bottom: 18%; width: 112px; height: 112px; border-radius: 50%; background: var(--d-ciel); }
.hero2__inner { width: 100%; }
.hero2__text { max-width: 720px; }
.hero2__eyebrow { display: flex; align-items: center; gap: 14px; margin: 0 0 22px; color: #fff; font-size: .74rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.hero2__eyebrow::before { content: ""; width: 44px; height: 2px; background: var(--d-rouge); flex: none; }
.hero2__title { margin: 0 0 24px; color: #fff; font-size: clamp(2.6rem, 1.6rem + 4.6vw, 5.4rem); line-height: 1.04; letter-spacing: -.01em; text-shadow: 0 4px 30px rgba(0, 0, 0, .25); }
.hero2__title em { display: block; font-style: normal; color: var(--d-ciel); background: linear-gradient(var(--d-rouge), var(--d-rouge)) left bottom / 0 6px no-repeat; padding-bottom: 6px; width: fit-content; }
.hero2__lead { max-width: 60ch; margin: 0 0 34px; color: rgba(255, 255, 255, .88); font-size: clamp(1rem, .95rem + .3vw, 1.125rem); }
.hero2__actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* Bandeau de recherche */
.search-band { background: var(--d-encre); color: #fff; padding-block: 30px 34px; }
.search-band__row { display: grid; gap: 16px; align-items: center; }
@media (min-width: 900px) { .search-band__row { grid-template-columns: auto minmax(0, 600px); gap: 28px; } }
.search-band__label { margin: 0; font-size: .74rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.search-band__chips { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 20px 0 0; padding: 0; }

.search-pill { position: relative; display: flex; align-items: center; gap: 8px; width: 100%; max-width: 600px; padding: 6px 6px 6px 18px; background: #fff; border-radius: 999px; box-shadow: 0 10px 30px rgba(0, 0, 0, .15); }
.search-pill__icon { color: var(--d-gris); flex: none; }
.search-pill input[type="search"] { flex: 1; min-width: 0; min-height: 44px; padding: 0 6px; border: 0; background: transparent; color: var(--d-encre); font: inherit; font-size: .95rem; box-shadow: none; outline: 0; }
.search-pill:focus-within { box-shadow: 0 0 0 3px rgba(42, 156, 228, .45), 0 10px 30px rgba(0, 0, 0, .15); }
.search-pill__btn { flex: none; min-height: 44px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--d-rouge); color: #fff; font: 600 .9rem var(--f-sans); cursor: pointer; transition: background .2s; }
.search-pill__btn:hover, .search-pill__btn:focus-visible { background: var(--d-rouge-fonce); }
.search-pill--large { margin-top: 26px; max-width: 620px; }

/* Puces (catégories) */
.puce { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 7px 18px; border: 1.5px solid var(--d-trait); border-radius: 999px; background: #fff; color: var(--d-encre); font-size: .85rem; font-weight: 600; text-decoration: none; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.puce:hover { transform: translateY(-3px); border-color: var(--d-encre); }
.puce.est-actif { background: var(--d-rouge); border-color: var(--d-rouge); color: #fff; }
.puce--dark { background: transparent; border-color: rgba(255, 255, 255, .35); color: #fff; }
.puce--dark:hover { border-color: #fff; background: rgba(255, 255, 255, .08); color: #fff; }
.puces { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0 0 40px; padding: 0; }

/* 4. Chiffres ----------------------------------------------------------- */
.impact { background: var(--d-fond); }
.impact__grid { display: grid; gap: 20px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 720px) { .impact__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.impact__item { position: relative; padding: 40px 28px 34px; background: #fff; border: 1px solid var(--d-trait); border-radius: var(--d-rayon); text-align: center; transition: transform .3s var(--d-ease), box-shadow .3s; }
.impact__item:hover { transform: translateY(-6px); box-shadow: var(--d-ombre); }
.impact__num { display: block; color: var(--d-rouge); font: 700 clamp(2.4rem, 2rem + 1.6vw, 3.25rem)/1 var(--f-serif); }
.impact__item:nth-child(even) .impact__num { color: var(--d-bleu); }
.impact__num::after { content: ""; display: block; width: 36px; height: 3px; margin: 18px auto 16px; background: currentColor; }
.impact__label { display: block; color: var(--d-gris); font-size: .92rem; }

/* Institutions (bandeau défilant) */
.trust { background: #fff; border-block: 1px solid var(--d-trait); }
.trust__title { color: var(--d-encre); font-family: var(--f-sans); }
.marquee__list li { color: var(--d-encre); font-family: var(--f-serif); }
.marquee__list .icon { color: var(--d-rouge); }

/* 5. Cartes d'opportunité ---------------------------------------------- */
.grille-3, .grille-2 { display: grid; gap: 26px; }
@media (min-width: 640px) { .grille-3, .grille-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grille-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; } }

.carte { position: relative; display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid var(--d-trait); border-radius: var(--d-rayon); overflow: hidden; transition: transform .3s var(--d-ease), box-shadow .3s, border-color .2s; }
.carte:hover { transform: translateY(-6px); box-shadow: var(--d-ombre); border-color: transparent; }
.carte__photo { display: block; aspect-ratio: 16 / 7.5; overflow: hidden; background: var(--d-fond); }
.carte__photo img, .carte__photo .opp-visual__img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--d-ease); }
.carte:hover .carte__photo img { transform: scale(1.06); }
.carte__photo .opp-placeholder, .carte__photo > span { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
.carte__corps { display: flex; flex: 1; flex-direction: column; padding: 22px 26px 22px; }
.carte__pastilles { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 16px; }
.carte__titre { margin: 0 0 6px; font-size: 1.22rem; line-height: 1.3; }
.carte__titre a { color: var(--d-encre); text-decoration: none; }
.carte__titre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.carte__titre a:hover { color: var(--d-rouge); }
.carte__pastilles a, .carte__pied a { position: relative; z-index: 2; }
.carte__org { margin: 0 0 4px; color: var(--d-gris); font-size: .85rem; }
.carte__org strong { color: var(--d-encre); font-weight: 600; }
.carte__dr { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 0; color: #1774ba; font-size: .8rem; font-weight: 600; }
.carte__infos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; margin: 16px 0 0; padding: 16px 0; list-style: none; border-block: 1px solid var(--d-trait); font-size: .85rem; color: var(--d-gris); }
.carte__infos li { display: flex; align-items: flex-start; gap: 8px; min-width: 0; overflow-wrap: anywhere; }
.carte__infos .icon { color: var(--d-ciel); margin-top: 3px; }
.carte__extrait { margin: 12px 0 0; font-size: .9rem; }
.carte__pied { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 20px; }
.carte__date { margin: 0; font-size: .8rem; line-height: 1.4; color: var(--d-gris); }
.carte__date span { display: block; }
.carte__date strong { color: var(--d-encre); font-size: .88rem; }
.carte--closed .carte__photo img { filter: grayscale(.85); }

/* Pastilles et étiquettes */
.tag { display: inline-flex; align-items: center; gap: 6px; padding: 5px 14px; border: 1.5px solid var(--d-rouge); border-radius: 999px; color: var(--d-rouge); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; background: #fff; }
.tag:hover { background: var(--d-rouge); color: #fff; }
.tag--solid { background: var(--d-rouge); color: #fff; }
.pill { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: 999px; font-size: .76rem; font-weight: 600; line-height: 1.3; background: #e6f2fc; color: #124a86; }
.pill__dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.pill--open .pill__dot { animation: pulse-vert 1.8s ease-out infinite; }
.pill--urgent { background: #124a86; color: #fff; }
.pill--urgent .pill__dot { animation: pulse-rouge 1.6s ease-out infinite; }
.pill--upcoming { background: #eef7fe; color: #1774ba; border: 1px dashed #2a9ce4; }
.pill--closed { background: #eef0f3; color: #5d6673; }
.pill--tbc { background: #f2f5f9; color: #124a86; }
.pill--dr { background: #e6f2fc; color: #124a86; }

/* 6. Dernières chances ------------------------------------------------ */
.dernieres { display: grid; gap: 36px; }
@media (min-width: 1024px) { .dernieres { grid-template-columns: minmax(0, 1fr) minmax(0, 1.75fr); gap: 56px; align-items: start; } }
.dernieres__intro > p:not(.surtitre) { margin: 16px 0 24px; }
.dernieres__photo { margin: 32px 0 0; overflow: hidden; border-radius: var(--d-rayon); }
.dernieres__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .6s var(--d-ease); }
.dernieres__photo:hover img { transform: scale(1.04); }
.lignes { display: grid; gap: 14px; list-style: none; margin: 0; padding: 0; }
.ligne { position: relative; display: flex; align-items: center; gap: 20px; padding: 20px 22px; background: #fff; border: 1px solid var(--d-trait); border-radius: var(--d-rayon); transition: transform .3s var(--d-ease), box-shadow .3s, border-color .2s; }
.ligne:hover { transform: translateX(6px); box-shadow: var(--d-ombre); border-color: transparent; }
.ligne__texte { flex: 1; min-width: 0; }
.ligne__cat { margin: 0 0 2px; color: var(--d-rouge); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.ligne__titre { margin: 0; font-size: 1.05rem; line-height: 1.35; }
.ligne__titre a { color: var(--d-encre); text-decoration: none; }
.ligne__titre a::after { content: ""; position: absolute; inset: 0; }
.ligne__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 6px 0 0; font-size: .8rem; color: var(--d-gris); }
.ligne__meta span { display: inline-flex; align-items: center; gap: 6px; }
.ligne__meta .icon { color: var(--d-ciel); }
.ligne__voir { display: none; align-items: center; gap: 6px; color: var(--d-encre); font-size: .85rem; font-weight: 600; }
@media (min-width: 640px) { .ligne__voir { display: inline-flex; } }

.days { display: inline-flex; flex: none; flex-direction: column; align-items: center; justify-content: center; min-width: 88px; min-height: 70px; padding: 8px 10px; border-radius: var(--d-rayon); background: #1774ba; color: #fff; text-align: center; }
.days__num { font: 700 1.9rem/1 var(--f-serif); }
.days__unit { margin-top: 4px; font-size: .66rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.days--urgent { background: var(--d-rouge-fonce); animation: pulse-rouge 1.8s ease-out infinite; }
.days--upcoming { background: var(--d-ciel); }
.days--closed { background: #8a9bb0; }
.days--tbc { background: #5b7da3; }
.days--text .days__unit { margin: 0; font-size: .72rem; }

/* 7. Présentation ------------------------------------------------------- */
.apropos__grille { display: grid; gap: 56px; align-items: center; }
@media (min-width: 1024px) { .apropos__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; } }
.apropos__visuel { position: relative; min-height: 420px; padding: 40px 0 60px 40px; }
.apropos__cadre { position: absolute; left: 0; top: 70px; width: 62%; height: 66%; border: 1.5px solid var(--d-trait); border-radius: var(--d-rayon); }
.apropos__disque { position: absolute; left: 12%; top: 34%; width: 46%; aspect-ratio: 1; border-radius: 50% 50% 50% 8%; background: var(--d-ciel); opacity: .9; animation: flotte 7s ease-in-out infinite; }
.apropos__photo1, .apropos__photo2 { position: relative; margin: 0; overflow: hidden; border-radius: var(--d-rayon); box-shadow: var(--d-ombre); }
.apropos__photo1 { width: 64%; margin-left: 22%; border: 8px solid #fff; }
.apropos__photo1 img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.apropos__photo2 { position: absolute; right: 0; bottom: 0; width: 44%; border: 8px solid #fff; transition: transform .5s var(--d-ease); }
.apropos__photo2 img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.apropos__visuel:hover .apropos__photo2 { transform: translate(8px, -8px); }
.apropos__badge { position: absolute; left: 0; bottom: 30px; z-index: 2; display: grid; gap: 4px; max-width: 220px; margin: 0; padding: 20px 24px; background: var(--d-rouge); color: #fff; border-radius: var(--d-rayon); box-shadow: 0 18px 36px rgba(23, 116, 186, .3); transform: rotate(-3deg); }
.apropos__badge strong { font: 700 2.4rem/1 var(--f-serif); }
.apropos__badge span { font-size: .8rem; line-height: 1.4; }
.apropos__para { margin: 18px 0 0; }
.apropos__sous-titre { margin: 28px 0 14px; font-family: var(--f-sans); font-size: .95rem; color: var(--d-encre); }
.atouts { display: grid; gap: 14px; list-style: none; margin: 0 0 32px; padding: 0; }
.atouts li { display: flex; align-items: flex-start; gap: 14px; color: var(--d-encre); font-weight: 500; font-size: .94rem; }
.atouts__icone { display: inline-flex; flex: none; color: var(--d-rouge); margin-top: 1px; }

.bandeau { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; list-style: none; margin: 56px 0 0; padding: 10px; background: var(--d-bleu); border-radius: var(--d-rayon); }
@media (min-width: 720px) { .bandeau { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .bandeau { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.bandeau a { display: flex; align-items: center; gap: 12px; padding: 16px 14px; color: #fff; text-decoration: none; border-radius: var(--d-rayon); transition: background .2s; }
.bandeau a:hover { background: rgba(255, 255, 255, .12); }
.bandeau .icon { flex: none; transition: transform .35s cubic-bezier(.3, 1.6, .5, 1); }
.bandeau a:hover .icon { transform: scale(1.14) rotate(-6deg); }
.bandeau strong { display: block; font: 700 .95rem/1.25 var(--f-serif); }
.bandeau small { display: block; margin-top: 2px; font-size: .64rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }

/* 8. Domaines d'expertise (grille numérotée) -------------------------- */
.valeurs-entete { display: grid; gap: 22px; margin-bottom: 52px; align-items: end; }
@media (min-width: 900px) { .valeurs-entete { grid-template-columns: 1.2fr 1fr; gap: 64px; } }
.valeurs-entete__texte { padding-left: 24px; border-left: 3px solid var(--d-rouge); }
.valeurs-entete__texte p { margin: 0 0 10px; }
.valeurs-grille { display: grid; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--d-trait); border-left: 1px solid var(--d-trait); }
@media (min-width: 640px) { .valeurs-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .valeurs-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .valeurs-grille { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.valeur { position: relative; overflow: hidden; padding: 38px 30px 36px; border-right: 1px solid var(--d-trait); border-bottom: 1px solid var(--d-trait); background: #fff; }
.valeur::before { content: ""; position: absolute; inset: 0; background: var(--d-rouge); transform: translateY(101%); transition: transform .45s var(--d-ease); }
.valeur:nth-child(even)::before { background: var(--d-bleu); }
.valeur:hover::before { transform: none; }
.valeur > * { position: relative; }
.valeur__num { display: block; margin-bottom: 22px; color: var(--d-rouge); font: 700 2.6rem/1 var(--f-serif); transition: color .3s; }
.valeur:nth-child(even) .valeur__num { color: var(--d-bleu); }
.valeur__icone { position: absolute; right: 26px; top: 38px; color: rgba(15, 26, 43, .22); transition: color .3s, transform .45s cubic-bezier(.3, 1.6, .5, 1); }
.valeur h3 { margin: 0 0 10px; font-size: 1.12rem; line-height: 1.3; transition: color .3s; }
.valeur p { margin: 0; font-size: .86rem; transition: color .3s; }
.valeur:hover .valeur__num, .valeur:hover h3, .valeur:hover p, .valeur:hover .valeur__icone { color: #fff; }
.valeur:hover .valeur__icone { transform: scale(1.15) rotate(-6deg); }

/* 9. Cartes d'articles et de livres ----------------------------------- */
.card { border: 1px solid var(--d-trait); border-radius: var(--d-rayon); box-shadow: none; background: #fff; transition: transform .3s var(--d-ease), box-shadow .3s, border-color .2s; }
.card:hover { transform: translateY(-6px); box-shadow: var(--d-ombre); border-color: transparent; }
.card__title { font-family: var(--f-serif); font-size: 1.15rem; }
.card__title a { color: var(--d-encre); }
.card__title a:hover { color: var(--d-rouge); }
.card__media { border-radius: 0; }
.card--book { background: transparent; border: 0; }
.card--book:hover { box-shadow: none; }
.book-cover { border-radius: var(--d-rayon); background: linear-gradient(160deg, #f3f6fa, #e6edf5); }
.book-price { color: var(--d-rouge); }
.post-meta a { color: var(--d-rouge); }

/* 10. « Travaillons ensemble » sur photo -------------------------------- */
.section--photo { background: linear-gradient(90deg, rgba(10, 18, 32, .92) 0%, rgba(10, 18, 32, .72) 100%), var(--photo, none) center 30% / cover no-repeat, var(--d-encre); color: rgba(255, 255, 255, .86); }
@media (min-width: 1024px) and (hover: hover) { .section--photo { background-attachment: scroll, fixed, scroll; } }
.section--photo .titre-section { color: #fff; }
.section--photo .surtitre { color: #fff; }
.engage__grille { display: grid; gap: 40px; align-items: center; }
@media (min-width: 1024px) { .engage__grille { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 72px; } }
.engage__texte > p:not(.surtitre) { margin: 18px 0 0; }
.engage__chiffres { display: flex; flex-wrap: wrap; gap: 14px; list-style: none; margin: 34px 0 0; padding: 0; }
.engage__chiffre { display: grid; gap: 4px; min-width: 140px; padding: 18px 20px; border-radius: var(--d-rayon); color: #fff; }
.engage__chiffre strong { font: 700 2rem/1 var(--f-serif); }
.engage__chiffre span { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.engage__chiffre--rouge { background: var(--d-rouge); }
.engage__chiffre--bleu { background: var(--d-bleu); }
.roles { display: grid; gap: 14px; list-style: none; margin: 0; padding: 0; }
.role a { display: flex; align-items: center; gap: 18px; padding: 20px 24px; background: #fff; border-radius: var(--d-rayon); color: var(--d-gris); text-decoration: none; transition: transform .25s var(--d-ease), box-shadow .25s; }
.role a:hover { transform: translateX(-6px); box-shadow: 0 16px 34px rgba(0, 0, 0, .25); }
.role__icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 50%; background: var(--d-ciel); color: #fff; transition: transform .35s cubic-bezier(.3, 1.6, .5, 1); }
.role:nth-child(even) .role__icone { background: var(--d-rouge); }
.role a:hover .role__icone { transform: scale(1.12) rotate(-6deg); }
.role__texte { flex: 1; min-width: 0; font-size: .86rem; }
.role__texte strong { display: block; color: var(--d-encre); font: 700 1.1rem/1.3 var(--f-serif); }
.role__fleche { color: var(--d-rouge); transition: transform .25s; }
.role a:hover .role__fleche { transform: translateX(4px); }

/* Initiatives, galerie, citation : harmonisation */
.initiative { border: 1px solid var(--d-trait); border-radius: var(--d-rayon); box-shadow: none; background: #fff; }
.initiative h3 { color: var(--d-encre); }
.gallery__item, .gallery img { border-radius: var(--d-rayon); }
.quote-section blockquote p { font-family: var(--f-serif); }

/* 11. En-tête de page (photo) ----------------------------------------- */
.bandeau-page { position: relative; overflow: hidden; display: flex; align-items: center; min-height: 340px; padding-block: 72px 64px; background: var(--d-encre); color: #fff; isolation: isolate; }
@media (min-width: 1024px) { .bandeau-page { min-height: 400px; } }
.bandeau-page__fond { position: absolute; inset: 0; z-index: -2; }
.bandeau-page__fond img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }
.bandeau-page::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(10, 18, 32, .85) 0%, rgba(10, 18, 32, .55) 60%, rgba(10, 18, 32, .35) 100%); }
.bandeau-page:not(.has-photo)::before { background: radial-gradient(ellipse at 85% 0%, rgba(42, 156, 228, .35), transparent 55%), linear-gradient(120deg, #0f1a2b, #12345e); }
.bandeau-page__texte { width: 100%; }
.bandeau-page .breadcrumbs { color: rgba(255, 255, 255, .85); font-size: .85rem; margin-bottom: 14px; }
.bandeau-page .breadcrumbs a { color: #fff; opacity: 1; }
.bandeau-page__surtitre { margin: 0 0 12px; color: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; display: flex; align-items: center; gap: 12px; }
.bandeau-page__surtitre::before { content: ""; width: 36px; height: 2px; background: var(--d-rouge); }
.bandeau-page__titre { max-width: 24ch; margin: 0 0 14px; color: #fff; font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); line-height: 1.12; }
.bandeau-page__intro { max-width: 64ch; color: rgba(255, 255, 255, .88); font-size: 1.02rem; }
.bandeau-page__intro p { margin: 0; }
.bandeau-page__outils { margin-top: 8px; }
.bandeau-page .post-meta { color: rgba(255, 255, 255, .85); margin-top: 14px; }
.bandeau-page .post-meta a { color: #fff; }
.bandeau-page .chip { background: rgba(255, 255, 255, .12); color: #fff; }
.bandeau-page .chip.is-active, .bandeau-page a.chip:hover { background: #fff; color: var(--d-encre); }
.bandeau-page .search-form { margin-top: 22px; }
.page-header__tools--blog { display: grid; gap: 16px; margin-top: 18px; }
.bandeau-page--article .bandeau-page__titre { max-width: 30ch; font-size: clamp(1.8rem, 1.3rem + 2.2vw, 3rem); }

/* 12. Liste des opportunités ------------------------------------------ */
.opp-liste { padding-top: 56px; }
.opp-liste__grille { display: grid; gap: 32px; align-items: start; }
@media (min-width: 1024px) { .opp-liste__grille { grid-template-columns: 280px minmax(0, 1fr); gap: 48px; } }
.filtres { display: grid; gap: 16px; }
@media (min-width: 1024px) { .filtres { position: sticky; top: calc(var(--header-h) + 40px); } }
.filtres__form { padding: 26px 26px 28px; border: 1px solid var(--d-trait); border-radius: var(--d-rayon); background: #fff; }
.filtres__titre { margin: 0 0 20px; font-size: 1.5rem; }
.filtres__champ { display: grid; gap: 8px; margin-bottom: 18px; }
.filtres__champ > span { color: var(--d-encre); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.filtres select, .tri select { width: 100%; min-height: 46px; padding: 0 38px 0 14px; border: 1px solid var(--d-trait); border-radius: var(--d-rayon); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f1a2b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 12px center / 16px no-repeat; color: var(--d-encre); font: inherit; font-size: .9rem; appearance: none; -webkit-appearance: none; }
.filtres select:focus, .tri select:focus { outline: 2px solid var(--d-ciel); outline-offset: 1px; }
.filtres__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.filtres__note { display: flex; gap: 10px; margin: 0; padding: 14px 16px; border-radius: var(--d-rayon); background: var(--d-fond); color: var(--d-gris); font-size: .8rem; line-height: 1.5; }
.filtres__note .icon { flex: none; color: var(--d-bleu); margin-top: 2px; }
.opp-liste__barre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 22px; }
.onglets { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--d-trait); border-radius: 999px; }
.onglet { padding: 8px 18px; border-radius: 999px; color: var(--d-encre); font-size: .85rem; font-weight: 600; text-decoration: none; transition: background .2s, color .2s; }
.onglet:hover { background: var(--d-fond); }
.onglet.est-actif { background: var(--d-encre); color: #fff; }
.opp-liste__compte { margin: 0; color: var(--d-gris); }
.opp-liste__compte strong { color: var(--d-encre); font: 700 1.6rem/1 var(--f-serif); margin-right: 4px; }
.opp-liste__compte a { color: var(--d-rouge); font-size: .9rem; }
.tri { display: flex; align-items: center; gap: 12px; }
.tri label { color: var(--d-encre); font-size: .7rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; white-space: nowrap; }
.tri select { min-width: 220px; }
.opp-liste .pagination, .opp-liste .nav-links { margin-top: 40px; }
.vide { padding: 56px 24px; border: 1px dashed var(--d-trait); border-radius: var(--d-rayon); text-align: center; }
.vide__icone { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; border-radius: 50%; background: var(--d-fond); color: var(--d-rouge); }
.vide__titre { margin: 16px 0 20px; color: var(--d-encre); font: 700 1.2rem/1.4 var(--f-serif); }

/* 13. Fiche opportunité ----------------------------------------------- */
.fiche__grille { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .fiche__grille { grid-template-columns: minmax(0, 1fr) 360px; gap: 56px; } }
.fiche__entete { display: flex; align-items: center; gap: 18px; margin-bottom: 30px; }
.fiche__logo { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 76px; height: 76px; overflow: hidden; border-radius: var(--d-rayon); background: var(--d-ciel); color: #fff; font: 700 1.6rem/1 var(--f-serif); }
.fiche__logo.has-logo { background: #fff; border: 1px solid var(--d-trait); padding: 6px; }
.fiche__logo img { width: 100%; height: 100%; object-fit: contain; }
.fiche__entete .carte__pastilles { justify-content: flex-start; margin-bottom: 8px; }
.fiche__org { margin: 0; font-size: .88rem; }
.fiche__org strong { color: var(--d-encre); }
.fiche__chapo { margin: 0 0 28px; color: var(--d-encre); font-size: 1.08rem; }
.fiche__bloc { margin-bottom: 34px; }
.fiche__bloc h2 { margin: 0 0 14px; font-size: 1.55rem; }
.fiche__bloc p { margin: 0 0 12px; }
.fiche__source { padding: 24px 26px; border-radius: var(--d-rayon); background: var(--d-fond); }
.fiche__source h2 { font-size: 1.2rem; }
.puces-rouges { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.puces-rouges li { position: relative; padding-left: 26px; }
.puces-rouges li::before { content: ""; position: absolute; left: 4px; top: .65em; width: 8px; height: 8px; border-radius: 50%; background: var(--d-rouge); }
.fiche__cloturee { margin-bottom: 26px; }
.fiche__cote { display: grid; gap: 20px; }
@media (min-width: 1024px) { .fiche__cote { position: sticky; top: calc(var(--header-h) + 40px); } }
.encadre { padding: 26px; border: 1px solid var(--d-trait); border-radius: var(--d-rayon); background: #fff; box-shadow: var(--d-ombre); }
.encadre__jours .days { display: flex; width: 100%; min-height: 76px; }
.encadre__details { margin: 18px 0; }
.encadre__details > div { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--d-trait); font-size: .88rem; }
.encadre__details dt { color: var(--d-gris); }
.encadre__details dd { margin: 0; color: var(--d-encre); font-weight: 600; text-align: right; }
.encadre__actions { display: grid; gap: 12px; margin-top: 8px; }
.encadre__note { margin: 0; padding: 12px 14px; border-radius: var(--d-rayon); background: var(--d-fond); font-size: .85rem; }
.encadre .share { margin-top: 18px; }
.btn--block { width: 100%; }

/* 14. Bandeau rouge d'appel à l'action -------------------------------- */
.cta-band-wrap { padding-block: 24px 0; background: #fff; }
.cta-band { position: relative; overflow: hidden; display: grid; gap: 24px; align-items: center; padding: clamp(28px, 4vw, 44px) clamp(24px, 4vw, 48px); border-radius: var(--d-rayon); background: linear-gradient(90deg, rgba(23, 116, 186, .96), rgba(18, 74, 134, .9)), var(--photo, none) center / cover, var(--d-rouge); color: #fff; box-shadow: 0 24px 50px rgba(23, 116, 186, .22); }
@media (min-width: 960px) { .cta-band { grid-template-columns: minmax(0, 1fr) auto; gap: 40px; } }
.cta-band__title { margin: 0 0 8px; color: #fff; font-size: clamp(1.4rem, 1.1rem + 1.2vw, 2rem); }
.cta-band__text p { margin: 0; color: rgba(255, 255, 255, .92); max-width: 62ch; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* 15. Pied de page blanc ------------------------------------------------ */
.site-footer { position: relative; background: #fff; color: var(--d-gris); border-top: 0; }
.site-footer::after { content: ""; display: block; height: 4px; background: linear-gradient(90deg, var(--d-rouge) 0 34%, var(--d-ciel) 34% 100%); }
.site-footer__grid { padding-block: 64px 44px; }
.site-footer__brand p { color: var(--d-gris); }
.footer__title { position: relative; margin-bottom: 22px; padding-bottom: 12px; color: var(--d-encre); font-size: .8rem; letter-spacing: .08em; }
.footer__title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 28px; height: 2px; background: var(--d-rouge); }
.footer__links a, .footer__contact a { color: var(--d-gris); transition: color .2s, transform .2s; }
.footer__links a:hover, .footer__contact a:hover { color: var(--d-rouge); text-decoration: none; transform: translateX(3px); }
.footer__contact .icon { color: var(--d-rouge); }
.site-footer .social a { background: #fff; color: var(--d-encre); border: 1px solid var(--d-trait); }
.site-footer .social a:hover { background: var(--d-rouge); border-color: var(--d-rouge); color: #fff; }
.site-footer__bottom { border-top: 1px solid var(--d-trait); }
.site-footer__bottom-inner { justify-content: center; text-align: center; font-size: .82rem; }
.legal-links a { color: var(--d-gris); }
.site-footer .brand--footer .brand__img, .site-footer .brand img { filter: none; background: none; }

/* 16. Animations --------------------------------------------------------- */
@keyframes monte { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes zoom-lent { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes flotte { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
@keyframes tourne { to { transform: rotate(360deg); } }
@keyframes trait-rouge { from { background-size: 0 6px; } to { background-size: 100% 6px; } }
@keyframes deplie { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes pulse-rouge { 0% { box-shadow: 0 0 0 0 rgba(23, 116, 186, .5); } 70%, 100% { box-shadow: 0 0 0 12px rgba(23, 116, 186, 0); } }
@keyframes pulse-vert { 0% { box-shadow: 0 0 0 0 rgba(42, 156, 228, .55); } 70%, 100% { box-shadow: 0 0 0 7px rgba(42, 156, 228, 0); } }

.has-animations .hero2__bg img { animation: zoom-lent 14s var(--d-ease) both; }
.has-animations .hero2__text > * { animation: monte .9s var(--d-ease) both; }
.has-animations .hero2__text > :nth-child(1) { animation-delay: .1s; }
.has-animations .hero2__text > :nth-child(2) { animation-delay: .22s; }
.has-animations .hero2__text > :nth-child(3) { animation-delay: .38s; }
.has-animations .hero2__text > :nth-child(4) { animation-delay: .52s; }
.has-animations .hero2__title em { animation: trait-rouge .9s 1s var(--d-ease) both; }
.hero2__title em { background-size: 100% 6px; }
.has-animations .hero2__disc { animation: flotte 6s ease-in-out infinite; }
.has-animations .hero2__rays { animation: tourne 40s linear infinite; }
.has-animations .bandeau-page__texte > * { animation: monte .8s var(--d-ease) both; }
.has-animations .bandeau-page__texte > :nth-child(2) { animation-delay: .1s; }
.has-animations .bandeau-page__texte > :nth-child(3) { animation-delay: .2s; }
.has-animations .bandeau-page__texte > :nth-child(4) { animation-delay: .3s; }
.has-animations .bandeau-page__fond img { animation: zoom-lent 12s var(--d-ease) both; }

/* Apparition au défilement (cascade dans les grilles) */
@media (prefers-reduced-motion: no-preference) {
	.has-animations .reveal { opacity: 0; transform: translateY(32px); transition: opacity .8s var(--d-ease), transform .8s var(--d-ease); transition-delay: calc(var(--i, 0) * 120ms); }
	.has-animations .reveal[data-reveal="left"] { transform: translateX(-48px); }
	.has-animations .reveal[data-reveal="right"] { transform: translateX(48px); }
	.has-animations .reveal.is-visible { opacity: 1; transform: none; }
	/* Une fois apparues, les cartes retrouvent des survols vifs. */
	.has-animations .carte.reveal.is-visible, .has-animations .card.reveal.is-visible, .has-animations .ligne.reveal.is-visible, .has-animations .impact__item.reveal.is-visible { transition: opacity .8s var(--d-ease), transform .3s var(--d-ease), box-shadow .3s, border-color .2s; }
	.has-animations .carte.reveal.is-visible:hover, .has-animations .card.reveal.is-visible:hover, .has-animations .impact__item.reveal.is-visible:hover { transform: translateY(-6px); transition-delay: 0s; }
	.has-animations .ligne.reveal.is-visible:hover { transform: translateX(6px); transition-delay: 0s; }
}
@media (prefers-reduced-motion: reduce) {
	.hero2 *, .bandeau-page *, .apropos__disque, .pill__dot, .days { animation: none !important; }
	.hero2__title em { background-size: 100% 6px; }
}

/* 17. Petits écrans ------------------------------------------------------ */
@media (max-width: 639px) {
	.hero2 { min-height: 0; padding-block: 72px 84px; }
	.hero2::before { background: linear-gradient(0deg, rgba(10, 18, 32, .9) 10%, rgba(10, 18, 32, .55) 100%); }
	.hero2__disc { width: 70px; height: 70px; left: -34px; }
	.hero2__actions .btn { width: 100%; }
	.search-pill { padding-left: 14px; }
	.search-pill__btn { padding: 0 16px; }
	.apropos__visuel { min-height: 0; padding: 20px 0 50px 16px; }
	.apropos__badge { bottom: 0; max-width: 180px; padding: 14px 16px; }
	.apropos__badge strong { font-size: 1.9rem; }
	.ligne { gap: 14px; padding: 16px; }
	.days { min-width: 70px; min-height: 62px; }
	.days__num { font-size: 1.5rem; }
	.carte__corps { padding: 20px; }
	.carte__infos { grid-template-columns: minmax(0, 1fr); }
	.tri { width: 100%; }
	.tri select { min-width: 0; flex: 1; }
	.cta-band__actions .btn { width: 100%; }
	.bandeau { grid-template-columns: minmax(0, 1fr); }
}

@media print {
	.barre-lecture, .search-band, .cta-band-wrap, .filtres { display: none !important; }
	.hero2, .bandeau-page { color: #000; background: none; min-height: 0; }
	.hero2__title, .bandeau-page__titre { color: #000; }
}

/* Visuel de remplacement (offre sans photo) : clair, aux couleurs du logo */
.carte__photo { position: relative; }
.carte__photo .opp-visual__placeholder, .fiche .opp-visual__placeholder {
	position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
	background: radial-gradient(circle at 85% 20%, rgba(42, 156, 228, .16), transparent 45%), repeating-linear-gradient(45deg, rgba(23, 116, 186, .05) 0 2px, transparent 2px 14px), #f3f7fb;
	color: var(--d-bleu); font: 700 .95rem/1.3 var(--f-serif); text-align: center;
}
.carte__photo .opp-visual__placeholder .icon { width: 58px; height: 58px; padding: 13px; border-radius: 50%; background: #fff; color: var(--d-rouge); box-shadow: 0 8px 20px rgba(15, 26, 43, .08); }
.carte__photo .opp-visual__placeholder span { color: var(--d-encre); }
/* La signature du photographe (coin inférieur droit) reste hors cadre. */
.hero2__bg { inset: 0 -7% -11% 0; }

/* Ajustements */
.section.section--tight { padding-block: 40px; }
.search-form__btn { background: var(--d-rouge); }
.search-form__btn:hover, .search-form__btn:focus-visible { background: var(--d-rouge-fonce); }
.book-filters .btn, .books-filters .btn { border-radius: 999px; }
.help-card { border-radius: var(--d-rayon); }
@media (max-width: 639px) {
	.hero2__rays { display: none; }
	.search-band__chips { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding: 2px var(--gutter) 6px; scrollbar-width: none; }
	.search-band__chips::-webkit-scrollbar { display: none; }
	.search-band__chips li { flex: none; }
	.impact__item { padding: 28px 20px 24px; }
}

/* ==========================================================================
   v2.2 — dispositions propres au site du Dr Michel Muvudi
   (couleurs du logo uniquement : #124A86, #1774BA, #2A9CE4 et blanc)
   ========================================================================== */
.section--clair { background: linear-gradient(180deg, #f4f9fe 0%, #fff 100%); }
.tete-section { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px 40px; margin-bottom: 44px; }
.tete-section > div { max-width: 640px; }
.tete-section__texte { margin: 12px 0 0; }
.surtitre { display: inline-flex; align-items: center; gap: 10px; }
.surtitre::before { content: ""; width: 26px; height: 2px; background: linear-gradient(90deg, var(--d-ciel), var(--d-rouge)); }
.entete .surtitre { justify-content: center; }

/* Ouverture (accueil) */
.ouverture { position: relative; overflow: hidden; padding: 56px 0 0; background: #fff; }
.ouverture__halo { position: absolute; top: -220px; right: -180px; width: 720px; height: 720px; border-radius: 50%; background: radial-gradient(circle, rgba(42, 156, 228, .16), rgba(42, 156, 228, 0) 68%); pointer-events: none; }
.ouverture__grille { position: relative; display: grid; gap: 44px; align-items: center; }
@media (min-width: 960px) { .ouverture__grille { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 56px; } }
.ouverture__surtitre { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 20px; padding: 8px 16px; border-radius: 999px; background: #eaf4fd; color: var(--d-rouge-fonce); font-size: .78rem; font-weight: 600; letter-spacing: .04em; }
.ouverture__surtitre span { width: 8px; height: 8px; border-radius: 50%; background: var(--d-ciel); box-shadow: 0 0 0 4px rgba(42, 156, 228, .2); }
.ouverture__titre { margin: 0 0 22px; color: var(--d-rouge-fonce); font-size: clamp(2.6rem, 1.7rem + 4vw, 4.8rem); line-height: 1.04; }
.ouverture__titre span { display: block; background: linear-gradient(90deg, var(--d-rouge) 0%, var(--d-ciel) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ouverture__intro { max-width: 58ch; margin: 0 0 32px; font-size: clamp(1rem, .95rem + .3vw, 1.13rem); color: var(--d-gris); }
.ouverture__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.ouverture__visuel { position: relative; justify-self: center; width: min(100%, 440px); padding: 20px 0 30px; }
.ouverture__arche { position: absolute; inset: 0 8% 10% 8%; border-radius: 220px 220px 28px 28px; background: linear-gradient(160deg, var(--d-ciel) 0%, var(--d-rouge) 55%, var(--d-rouge-fonce) 100%); }
.ouverture__points { position: absolute; right: -6px; top: 34%; width: 92px; height: 120px; background-image: radial-gradient(rgba(23, 116, 186, .45) 2px, transparent 2.5px); background-size: 16px 16px; }
.ouverture__portrait { position: relative; margin: 0 8%; overflow: hidden; border-radius: 210px 210px 24px 24px; aspect-ratio: 4 / 5; }
.ouverture__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.flottant { position: absolute; z-index: 2; display: flex; align-items: center; gap: 12px; max-width: 230px; padding: 12px 16px; border-radius: 14px; background: #fff; color: var(--d-gris); font-size: .8rem; line-height: 1.35; text-decoration: none; box-shadow: 0 16px 34px rgba(14, 42, 77, .16); transition: transform .3s var(--d-ease); }
.flottant:hover { transform: translateY(-4px); }
.flottant strong { color: var(--d-rouge-fonce); font-size: .95rem; }
.flottant--haut { top: 14%; left: -6%; }
.flottant--bas { bottom: 8%; right: -4%; }
.flottant__icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 10px; background: #eaf4fd; color: var(--d-rouge); }

.chercheur { position: relative; z-index: 3; display: grid; gap: 18px; margin-top: 40px; padding: 24px; border-radius: 18px; background: #fff; border: 1px solid #e3eef9; box-shadow: 0 24px 60px rgba(14, 42, 77, .12); }
@media (min-width: 960px) { .chercheur { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 18px 32px; margin-top: 48px; padding: 26px 32px; } .chercheur__liens { grid-column: 1 / -1; } }
.chercheur__tete { display: flex; align-items: center; gap: 14px; }
.chercheur__icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: var(--d-rouge); color: #fff; }
.chercheur__titre { margin: 0; color: var(--d-rouge-fonce); font: 700 1.1rem/1.2 var(--f-serif); }
.chercheur__aide { margin: 2px 0 0; font-size: .82rem; }
.search-pill--clair { max-width: none; background: #f4f9fe; border: 1px solid #dceaf8; box-shadow: none; }
.search-pill--clair input[type="search"] { padding-left: 4px; }
.chercheur__liens { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0; padding: 14px 0 0; list-style: none; border-top: 1px solid #e3eef9; }
.chercheur__liens a { display: inline-flex; align-items: center; gap: 6px; color: var(--d-rouge-fonce); font-size: .86rem; font-weight: 600; text-decoration: none; }
.chercheur__liens a:hover { color: var(--d-rouge); text-decoration: underline; }
.chercheur__liens span { padding: 1px 8px; border-radius: 999px; background: #eaf4fd; color: var(--d-rouge); font-size: .72rem; }

/* Chiffres : une bande unique */
.chiffres { padding-block: 56px 24px; }
.chiffres__bande { display: grid; gap: 24px; padding: 28px; border-radius: 18px; background: linear-gradient(120deg, var(--d-rouge-fonce), var(--d-rouge)); color: #fff; }
@media (min-width: 960px) { .chiffres__bande { grid-template-columns: minmax(0, .9fr) minmax(0, 2fr); align-items: center; gap: 32px; padding: 32px 40px; } }
.chiffres__titre { margin: 0; color: #fff; font-size: 1.35rem; line-height: 1.3; }
.chiffres__titre span { display: block; margin-bottom: 6px; color: #bfe1fa; font: 700 .7rem/1 var(--f-sans); letter-spacing: .16em; text-transform: uppercase; }
.chiffres__liste { display: grid; gap: 18px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .chiffres__liste { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; } }
.chiffre { display: flex; align-items: center; gap: 14px; }
@media (min-width: 640px) { .chiffre + .chiffre { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .22); } .chiffre { padding-right: 16px; } }
.chiffre__icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; }
.chiffre__num { display: block; color: #fff; font: 700 1.9rem/1.05 var(--f-serif); }
.chiffre__label { display: block; color: #d6eafb; font-size: .8rem; line-height: 1.35; }

/* Dernières chances : rangée de cartes avec anneau */
.echeances { margin-top: 56px; padding: 28px; border-radius: 18px; background: #fff; border: 1px solid #e3eef9; box-shadow: 0 18px 40px rgba(14, 42, 77, .06); }
.echeances__tete { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin-bottom: 24px; }
.echeances__tete > div { flex: 1; min-width: 220px; }
.echeances__tete p { margin: 2px 0 0; font-size: .9rem; }
.echeances__icone { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: #eaf4fd; color: var(--d-rouge); }
.echeances__titre { margin: 0; font-size: 1.4rem; }
.echeances__liste { display: grid; gap: 14px; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .echeances__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .echeances__liste { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.echeance { position: relative; display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: 14px; background: #f4f9fe; transition: background .2s, transform .3s var(--d-ease); }
.echeance:hover { background: #e8f3fd; transform: translateY(-4px); }
.echeance__texte { min-width: 0; }
.echeance__cat { margin: 0; color: var(--d-rouge); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.echeance__titre { margin: 2px 0 0; font: 700 .95rem/1.3 var(--f-serif); }
.echeance__titre a { color: var(--d-rouge-fonce); text-decoration: none; }
.echeance__titre a::after { content: ""; position: absolute; inset: 0; }
.echeance__lieu { display: flex; align-items: center; gap: 5px; margin: 4px 0 0; font-size: .76rem; }
.anneau { position: relative; flex: none; width: 64px; height: 64px; }
.anneau svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.anneau circle { fill: none; stroke: #d5e8f8; stroke-width: 4; }
.anneau .anneau__valeur { stroke: var(--d-rouge); stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: calc(1 - var(--p, 1)); transition: stroke-dashoffset 1.2s var(--d-ease); }
.echeance.is-urgent .anneau__valeur { stroke: var(--d-rouge-fonce); }
.anneau__texte { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--d-rouge-fonce); font-size: .58rem; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; }
.anneau__texte strong { font: 700 1.2rem/1 var(--f-serif); letter-spacing: 0; text-transform: none; }
.has-animations .echeance.reveal:not(.is-visible) .anneau__valeur { stroke-dashoffset: 1; }

/* Présentation */
.presentation__grille { display: grid; gap: 48px; align-items: center; }
@media (min-width: 1024px) { .presentation__grille { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 72px; } }
.presentation__para { margin: 16px 0 0; }
.presentation__sous-titre { display: flex; align-items: center; gap: 10px; margin: 30px 0 16px; color: var(--d-rouge-fonce); font: 700 1rem/1.3 var(--f-sans); }
.presentation__sous-titre .icon { color: var(--d-rouge); }
.frise { position: relative; margin: 0 0 30px; padding: 0 0 0 26px; list-style: none; }
.frise::before { content: ""; position: absolute; left: 6px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--d-ciel), var(--d-rouge-fonce)); }
.frise li { position: relative; padding: 4px 0 14px; color: var(--d-encre); font-weight: 500; font-size: .95rem; }
.frise li::before { content: ""; position: absolute; left: -26px; top: 10px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--d-rouge); }
.portrait-cadre { position: relative; justify-self: center; width: min(100%, 440px); padding: 0 24px 24px 0; }
.portrait-cadre__decal { position: absolute; right: 0; bottom: 0; width: calc(100% - 24px); height: calc(100% - 24px); border: 2px solid var(--d-ciel); border-radius: 22px; }
.portrait-cadre__photo { position: relative; margin: 0; overflow: hidden; border-radius: 22px; box-shadow: 0 24px 50px rgba(14, 42, 77, .16); }
.portrait-cadre__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .8s var(--d-ease); }
.portrait-cadre:hover .portrait-cadre__photo img { transform: scale(1.04); }
.portrait-cadre__note { position: absolute; left: -16px; bottom: 48px; display: grid; gap: 2px; margin: 0; padding: 16px 20px; border-radius: 14px; background: var(--d-rouge-fonce); color: #fff; box-shadow: 0 16px 34px rgba(14, 42, 77, .25); }
.portrait-cadre__note strong { font: 700 2rem/1 var(--f-serif); }
.portrait-cadre__note span { font-size: .78rem; color: #cfe6fa; }
.tuiles { display: grid; gap: 16px; list-style: none; margin: 64px 0 0; padding: 0; }
@media (min-width: 640px) { .tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tuile a { display: flex; align-items: flex-start; gap: 14px; height: 100%; padding: 20px; border-radius: 14px; border: 1px solid #e3eef9; background: #fff; color: var(--d-gris); text-decoration: none; transition: border-color .2s, box-shadow .3s, transform .3s var(--d-ease); }
.tuile a:hover { border-color: var(--d-ciel); box-shadow: 0 16px 34px rgba(14, 42, 77, .1); transform: translateY(-4px); }
.tuile__icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 12px; background: #eaf4fd; color: var(--d-rouge); transition: background .2s, color .2s; }
.tuile a:hover .tuile__icone { background: var(--d-rouge); color: #fff; }
.tuile__texte { font-size: .85rem; line-height: 1.5; }
.tuile__texte strong { display: block; margin-bottom: 2px; color: var(--d-rouge-fonce); font: 700 1.02rem/1.3 var(--f-serif); }

/* Domaines d'expertise */
.domaines__grille { display: grid; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .domaines__grille { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; } .domaines__intro { position: sticky; top: calc(var(--header-h) + 48px); } }
.domaines__intro > p:not(.surtitre) { margin: 16px 0 0; }
.domaines__intro > p.domaines__compte { margin: 22px 0 24px; color: var(--d-rouge-fonce); }
.domaines__compte strong { font: 700 2.4rem/1 var(--f-serif); color: var(--d-rouge); margin-right: 6px; }
.domaines__liste { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.domaine { position: relative; display: flex; gap: 18px; padding: 20px 22px; border-radius: 14px; background: #fff; border: 1px solid #e3eef9; overflow: hidden; transition: box-shadow .3s, transform .3s var(--d-ease), border-color .2s; }
.domaine::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(var(--d-ciel), var(--d-rouge-fonce)); transform: scaleY(0); transform-origin: top; transition: transform .35s var(--d-ease); }
.domaine:hover { border-color: transparent; box-shadow: 0 16px 34px rgba(14, 42, 77, .1); transform: translateX(4px); }
.domaine:hover::before { transform: scaleY(1); }
.domaine__icone { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%; background: #eaf4fd; color: var(--d-rouge); transition: background .2s, color .2s; }
.domaine:hover .domaine__icone { background: var(--d-rouge); color: #fff; }
.domaine__titre { margin: 2px 0 4px; font-size: 1.1rem; color: var(--d-rouge-fonce); }
.domaine p { margin: 0; font-size: .9rem; }

/* Animations des nouvelles sections */
.has-animations .ouverture__texte > * { animation: monte .9s var(--d-ease) both; }
.has-animations .ouverture__texte > :nth-child(2) { animation-delay: .12s; }
.has-animations .ouverture__texte > :nth-child(3) { animation-delay: .26s; }
.has-animations .ouverture__texte > :nth-child(4) { animation-delay: .4s; }
.has-animations .ouverture__portrait { animation: monte 1s .2s var(--d-ease) both; }
.has-animations .ouverture__arche { animation: zoom-lent 1.4s var(--d-ease) both; }
.has-animations .flottant--haut { animation: flotte 6s ease-in-out infinite; }
.has-animations .flottant--bas { animation: flotte 7s 1s ease-in-out infinite; }
.has-animations .ouverture__points { animation: flotte 8s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .ouverture *, .flottant { animation: none !important; } }

@media (max-width: 639px) {
	.ouverture { padding-top: 32px; }
	.ouverture__actions .btn { width: 100%; }
	.flottant { max-width: 180px; padding: 10px 12px; font-size: .72rem; }
	.flottant--haut { left: 0; }
	.flottant--bas { right: 0; }
	.chercheur { padding: 18px; }
	.chiffres__bande { padding: 22px; }
	.echeances { padding: 18px; }
	.portrait-cadre__note { left: 0; }
}

/* ==========================================================================
   v2.3 — diaporama plein écran et fonds photo voilés de bleu (accueil)
   ========================================================================== */

/* Voile bleu commun : bleu foncé du logo vers bleu du logo */
.section--photo,
.section--photo-bleu {
	background:
		linear-gradient(100deg, rgba(14, 42, 77, .94) 0%, rgba(18, 74, 134, .86) 45%, rgba(23, 116, 186, .62) 100%),
		var(--photo, none) center 35% / cover no-repeat,
		var(--d-rouge-fonce);
	color: rgba(255, 255, 255, .88);
}
@media (min-width: 1024px) and (hover: hover) { .section--photo-bleu { background-attachment: scroll, fixed, scroll; } }
.section--photo-bleu .titre-section, .section--photo-bleu .surtitre { color: #fff; }
.section--photo-bleu .surtitre::before { background: #fff; }
.section--photo-bleu .domaines__intro > p:not(.surtitre) { color: rgba(255, 255, 255, .86); }
.section--photo-bleu .domaines__intro > p.domaines__compte { color: #fff; }
.section--photo-bleu .domaines__compte strong { color: #bfe1fa; }
.section--photo-bleu .btn--accent { background: #fff; color: var(--d-rouge-fonce); border-color: #fff; box-shadow: 0 12px 28px rgba(0, 0, 0, .18); }
.section--photo-bleu .btn--accent:hover, .section--photo-bleu .btn--accent:focus-visible { background: #eaf4fd; color: var(--d-rouge-fonce); }
.section--photo-bleu .domaine { border-color: transparent; }
.section--photo-bleu .domaine:hover { box-shadow: 0 18px 40px rgba(0, 0, 0, .25); }
.section--photo .surtitre::before { background: #fff; }

/* Bande « En chiffres » sur photo */
.chiffres__bande.has-photo {
	background:
		linear-gradient(110deg, rgba(14, 42, 77, .95) 0%, rgba(18, 74, 134, .85) 50%, rgba(23, 116, 186, .72) 100%),
		var(--photo) center 40% / cover no-repeat;
	box-shadow: 0 24px 50px rgba(14, 42, 77, .22);
}

/* Citation sur photo, voilée de bleu */
.quote-section.has-photo { background: var(--d-rouge-fonce); }
.quote-section.has-photo::before { background: linear-gradient(110deg, rgba(14, 42, 77, .92), rgba(23, 116, 186, .72)); }
.quote-section.has-photo .quote-section__bg { opacity: 1; filter: none; }
.quote-section.has-photo blockquote p { color: #fff; }
.quote-section.has-photo figcaption { color: #cfe6fa; }
.quote-section.has-photo .quote__mark { color: #8fd0f7; }

/* Diaporama plein écran */
.ouverture.has-diapo { display: flex; flex-direction: column; justify-content: flex-end; min-height: min(92vh, 860px); padding: 0; background: var(--d-rouge-fonce); color: #fff; isolation: isolate; }
.diapo { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.diapo__item { position: absolute; inset: 0; opacity: 0; transition: opacity 1.4s ease; }
.diapo__item.is-active { opacity: 1; }
.diapo__img { width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transform: scale(1.1); transition: transform 8s linear; }
.diapo__item.is-active .diapo__img { transform: scale(1); }
.ouverture.has-diapo::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(95deg, rgba(14, 42, 77, .94) 0%, rgba(18, 74, 134, .78) 42%, rgba(23, 116, 186, .32) 75%, rgba(23, 116, 186, .15) 100%),
		linear-gradient(0deg, rgba(14, 42, 77, .65) 0%, rgba(14, 42, 77, 0) 45%);
}
.ouverture.has-diapo .ouverture__grille { flex: 1; padding-block: 96px 40px; }
.ouverture.has-diapo .ouverture__surtitre { background: rgba(255, 255, 255, .14); color: #fff; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.ouverture.has-diapo .ouverture__surtitre span { background: #8fd0f7; box-shadow: 0 0 0 4px rgba(143, 208, 247, .25); }
.ouverture.has-diapo .ouverture__titre { color: #fff; text-shadow: 0 6px 30px rgba(0, 0, 0, .2); }
.ouverture.has-diapo .ouverture__titre span { background: linear-gradient(90deg, #8fd0f7 0%, #ffffff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ouverture.has-diapo .ouverture__intro { color: rgba(255, 255, 255, .9); }
.ouverture.has-diapo .btn--outline-dark { color: #fff; border-color: rgba(255, 255, 255, .7); }
.ouverture.has-diapo .btn--outline-dark:hover, .ouverture.has-diapo .btn--outline-dark:focus-visible { background: #fff; color: var(--d-rouge-fonce); border-color: #fff; }
.ouverture.has-diapo .btn--accent { background: #fff; color: var(--d-rouge-fonce); border-color: #fff; box-shadow: 0 12px 30px rgba(0, 0, 0, .2); }
.ouverture.has-diapo .btn--accent:hover, .ouverture.has-diapo .btn--accent:focus-visible { background: #eaf4fd; color: var(--d-rouge-fonce); }
.ouverture.has-diapo .ouverture__visuel { align-self: end; display: grid; gap: 14px; justify-items: end; width: 100%; max-width: none; min-height: 0; padding: 0; }
.ouverture.has-diapo .flottant { position: static; background: rgba(255, 255, 255, .95); }
.diapo__nav { position: relative; z-index: 2; }
.diapo__points { display: flex; align-items: center; gap: 10px; padding-bottom: 18px; }
.diapo__point { width: 34px; height: 4px; padding: 0; border: 0; border-radius: 4px; background: rgba(255, 255, 255, .4); cursor: pointer; transition: background .3s, width .3s; }
.diapo__point:hover { background: rgba(255, 255, 255, .7); }
.diapo__point.is-active { width: 56px; background: #fff; }
.diapo__pause { position: relative; width: 30px; height: 30px; margin-left: 6px; padding: 0; border: 1px solid rgba(255, 255, 255, .5); border-radius: 50%; background: transparent; cursor: pointer; }
.diapo__pause::before, .diapo__pause::after { content: ""; position: absolute; top: 9px; width: 3px; height: 10px; border-radius: 1px; background: #fff; }
.diapo__pause::before { left: 10px; }
.diapo__pause::after { left: 15px; }
.diapo__pause[aria-pressed="true"]::before { left: 11px; width: 0; height: 0; border-radius: 0; background: none; border-style: solid; border-width: 5px 0 5px 9px; border-color: transparent transparent transparent #fff; }
.diapo__pause[aria-pressed="true"]::after { display: none; }
.diapo__point:focus-visible, .diapo__pause:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.ouverture.has-diapo .chercheur { margin-top: 0; margin-bottom: -56px; }
.ouverture.has-diapo + * { padding-top: 96px; }
.ouverture.has-diapo { overflow: visible; }
.ouverture.has-diapo .diapo { border-radius: 0; }
@media (min-width: 960px) {
	.ouverture.has-diapo .ouverture__grille { grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); }
}
@media (max-width: 959px) {
	.ouverture.has-diapo .ouverture__visuel { justify-items: start; grid-auto-flow: row; }
}
@media (max-width: 639px) {
	.ouverture.has-diapo { min-height: 0; }
	.ouverture.has-diapo .ouverture__grille { padding-block: 64px 28px; }
	.ouverture.has-diapo::before { background: linear-gradient(0deg, rgba(14, 42, 77, .95) 15%, rgba(18, 74, 134, .72) 100%); }
	.ouverture.has-diapo .flottant { max-width: none; }
	.ouverture.has-diapo .chercheur { margin-bottom: -40px; }
	.ouverture.has-diapo + * { padding-top: 72px; }
}
@media (prefers-reduced-motion: reduce) {
	.diapo__item, .diapo__img { transition: none !important; }
	.diapo__img { transform: none !important; }
}
/* Les signatures de photographe (coin inférieur droit) restent hors cadre. */
.diapo__img { width: 108%; height: 114%; max-width: none; object-position: 40% 30%; }
.section--photo-bleu .domaine, .section--photo-bleu .domaine p { color: var(--d-gris); }
.section--photo .role a, .section--photo .role__texte span { color: var(--d-gris); }

/* ==========================================================================
   v2.4 — couleur complémentaire : ambre doré (opposé chaud du bleu du logo)
   Utilisée par touches : actions principales sur fond bleu, repères, chiffres.
   Texte sur ambre : bleu nuit (contraste élevé).
   ========================================================================== */
:root {
	--d-or: #d99a2b;
	--d-or-fonce: #b57d17;
	--d-or-clair: #fbf1df;
}

/* Repères : trait des surtitres, barre de lecture, soulignement du menu */
.surtitre::before, .ouverture__surtitre span { background: var(--d-or); }
.ouverture__surtitre span { box-shadow: 0 0 0 4px rgba(217, 154, 43, .25); }
.section--photo .surtitre::before, .section--photo-bleu .surtitre::before { background: var(--d-or); }
.barre-lecture { background: linear-gradient(90deg, var(--d-ciel), var(--d-or)); }
@media (min-width: 1200px) { .primary-nav .menu > li > a::before { background: var(--d-or); } }

/* Ouverture sur diaporama : action principale en ambre, nom en dégradé bleu clair → ambre */
.ouverture.has-diapo .btn--accent { background: var(--d-or); border-color: var(--d-or); color: var(--d-encre); box-shadow: 0 14px 30px rgba(217, 154, 43, .35); }
.ouverture.has-diapo .btn--accent:hover, .ouverture.has-diapo .btn--accent:focus-visible { background: #e6ab45; border-color: #e6ab45; color: var(--d-encre); }
.ouverture.has-diapo .ouverture__titre span { background: linear-gradient(90deg, #8fd0f7 0%, #f0c06a 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.diapo__point.is-active { background: var(--d-or); }
.flottant__icone { background: var(--d-or-clair); color: var(--d-or-fonce); }

/* Chiffres : valeurs en ambre sur la bande bleue */
.chiffre__num { color: #f0c06a; }
.chiffre__icone { background: rgba(217, 154, 43, .18); color: #f0c06a; }

/* Recherche : bouton ambre, compteurs dorés */
.chercheur__icone { background: var(--d-or); color: var(--d-encre); }
.search-pill__btn { background: var(--d-or); color: var(--d-encre); }
.search-pill__btn:hover, .search-pill__btn:focus-visible { background: #e6ab45; color: var(--d-encre); }
.chercheur__liens span { background: var(--d-or-clair); color: #8a5c10; }

/* Opportunités : urgence et « dernières chances » en ambre */
.pill--urgent { background: var(--d-or); color: var(--d-encre); }
.pill--dr { background: var(--d-or-clair); color: #7a5210; }
.carte__dr { color: #9a6a14; }
.days--urgent { background: var(--d-or); color: var(--d-encre); }
.echeances__icone { background: var(--d-or-clair); color: var(--d-or-fonce); }
.echeance.is-urgent .anneau__valeur { stroke: var(--d-or); }
.anneau .anneau__valeur { stroke: var(--d-rouge); }

/* Présentation, domaines, tuiles : touches dorées */
.frise li::before { border-color: var(--d-or); }
.frise::before { background: linear-gradient(var(--d-or), var(--d-ciel)); }
.portrait-cadre__decal { border-color: var(--d-or); }
.portrait-cadre__note strong { color: #f0c06a; }
.domaine::before { background: linear-gradient(var(--d-or), var(--d-or-fonce)); }
.domaines__compte strong, .section--photo-bleu .domaines__compte strong { color: var(--d-or); }
.section--photo-bleu .btn--accent { background: var(--d-or); border-color: var(--d-or); color: var(--d-encre); }
.section--photo-bleu .btn--accent:hover, .section--photo-bleu .btn--accent:focus-visible { background: #e6ab45; color: var(--d-encre); }
.tuile a:hover { border-color: var(--d-or); }

/* Sections bleues et bandeau d'appel : action principale en ambre */
.role__fleche { color: var(--d-or-fonce); }
.cta-band .btn--white { background: var(--d-or); border-color: var(--d-or); color: var(--d-encre); }
.cta-band .btn--white:hover, .cta-band .btn--white:focus-visible { background: #e6ab45; border-color: #e6ab45; color: var(--d-encre); }
.quote-section.has-photo .quote__mark { color: var(--d-or); }

/* Pied de page : liseré bleu + ambre, soulignés dorés */
.site-footer::after { background: linear-gradient(90deg, var(--d-rouge-fonce) 0 40%, var(--d-ciel) 40% 80%, var(--d-or) 80% 100%); }
.footer__title::after { background: var(--d-or); }
.footer__contact .icon { color: var(--d-or-fonce); }

/* En-tête : bouton « Mon CV » doré au survol */
.site-header__cta:hover, .site-header__cta:focus-visible { background: var(--d-or); border-color: var(--d-or); color: var(--d-encre); }

/* ==========================================================================
   Palette officielle : bleu professionnel #1769AA (principal), orange doré
   #D99A2B (complémentaire), gris anthracite #263238 (textes), gris très clair
   #F4F6F8 (fonds). Le bleu foncé du logo reste la nuance sombre du bleu.
   ========================================================================== */
:root {
	--d-rouge: #1769aa;
	--d-ciel: #2a9ce4;
	--d-encre: #263238;
	--d-gris: rgba(38, 50, 56, .78);
	--d-fond: #f4f6f8;
	--c-ink: #263238;
	--c-gray: #f4f6f8;
	--c-accent: #1769aa;
	--c-red: #1769aa;
}
body { color: var(--d-gris); }
h1, h2, h3, h4, h5, h6, .titre-section, .section__title { color: var(--d-encre); }
.section--clair { background: linear-gradient(180deg, #f4f6f8 0%, #fff 100%); }
.section--soft, .impact, .filtres__note, .fiche__source, .encadre__note { background: #f4f6f8; }
.echeance { background: #f4f6f8; }
.echeance:hover { background: #eef1f4; }
.search-pill--clair { background: #f4f6f8; border-color: #e3e8ed; }
.ouverture__titre, .domaine__titre, .tuile__texte strong, .echeance__titre a, .chercheur__titre, .presentation__sous-titre { color: var(--d-encre); }
.ouverture.has-diapo .ouverture__titre { color: #fff; }
.ouverture.has-diapo .ouverture__titre span { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: #f0c06a; }


/* ==========================================================================
   v2.6.1 — ouverture : nouvelle disposition des textes uniquement
   (la section — photos, voile, cartes — reste inchangée)
   ========================================================================== */
.ouverture__raccourcis { display: contents; }
.ouverture__trait { display: none; }
.ouverture.has-diapo .ouverture__surtitre { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 0; border-radius: 0; background: none; backdrop-filter: none; -webkit-backdrop-filter: none; color: #f0c06a; font-size: .74rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ouverture.has-diapo .ouverture__surtitre span { width: 40px; height: 2px; border-radius: 0; background: var(--d-or); box-shadow: none; }
.ouverture.has-diapo .ouverture__titre { margin-bottom: 0; font-size: clamp(2.3rem, 1.5rem + 3vw, 4rem); line-height: 1.06; }
.ouverture.has-diapo .ouverture__titre span { display: inline; }
.ouverture.has-diapo .ouverture__trait { display: block; width: 84px; height: 3px; margin: 24px 0 22px; border-radius: 3px; background: var(--d-or); }
.ouverture.has-diapo .ouverture__intro { max-width: 54ch; margin-bottom: 30px; padding-left: 18px; border-left: 2px solid rgba(255, 255, 255, .35); }
@media (max-width: 639px) {
	.ouverture.has-diapo .ouverture__intro { padding-left: 14px; }
}

/* ==========================================================================
   v2.9 — page Médias (vidéos)
   ========================================================================== */
.medias { padding-top: 56px; }
.tete-section--compacte { margin: 64px 0 28px; align-items: baseline; }
.medias__compte { margin: 0; color: var(--d-gris); }

/* Lecteur (vignette → vidéo au clic) */
.lecteur { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 16px; background: var(--d-rouge-fonce); box-shadow: 0 24px 50px rgba(14, 42, 77, .2); }
.lecteur--vertical { aspect-ratio: 9 / 16; max-width: 360px; margin-inline: auto; }
.lecteur__vignette { position: absolute; inset: 0; display: block; }
.lecteur__vignette img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--d-ease); }
.lecteur__vignette::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(14, 42, 77, .45), rgba(14, 42, 77, 0) 55%); }
.lecteur__vignette:hover img { transform: scale(1.04); }
.lecteur iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.video-lecture { position: absolute; z-index: 1; left: 50%; top: 50%; display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; padding-left: 3px; border-radius: 50%; background: var(--d-or); color: var(--d-encre); box-shadow: 0 10px 30px rgba(0, 0, 0, .3); transform: translate(-50%, -50%); transition: transform .3s var(--d-ease), background .2s; }
.video-lecture--grand { width: 84px; height: 84px; }
.video-lecture::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 2px solid rgba(217, 154, 43, .55); animation: pulse-anneau 2s ease-out infinite; }
@keyframes pulse-anneau { 0% { transform: scale(.85); opacity: 1; } 100% { transform: scale(1.35); opacity: 0; } }
a:hover > .video-lecture, button:hover > .video-lecture { transform: translate(-50%, -50%) scale(1.08); background: #e6ab45; }

/* Vidéo à la une */
.video-une { display: grid; gap: 28px; align-items: center; }
@media (min-width: 1024px) { .video-une { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 48px; } }
.video-une__titre { margin: 0 0 10px; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); line-height: 1.2; }
.video-une__titre a { color: var(--d-encre); text-decoration: none; }
.video-une__titre a:hover { color: var(--d-rouge); }
.video-une__meta { margin: 0 0 14px; color: var(--d-gris); font-size: .86rem; }
.video-une__meta a { color: var(--d-rouge); }
.video-une__extrait { margin: 0 0 18px; }

/* Cartes vidéo */
.video-carte { display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid #e3e8ed; border-radius: 14px; overflow: hidden; transition: transform .3s var(--d-ease), box-shadow .3s, border-color .2s; }
.video-carte:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(14, 42, 77, .12); border-color: transparent; }
.video-carte__vignette { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; overflow: hidden; background: var(--d-rouge-fonce); cursor: pointer; }
.video-carte__vignette img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--d-ease); }
.video-carte:hover .video-carte__vignette img { transform: scale(1.06); }
.video-carte__vide { position: absolute; inset: 0; background: linear-gradient(135deg, var(--d-rouge-fonce), var(--d-rouge)); }
.video-carte__plateforme { position: absolute; z-index: 1; left: 12px; top: 12px; padding: 3px 10px; border-radius: 999px; background: rgba(14, 42, 77, .78); color: #fff; font-size: .7rem; font-weight: 600; letter-spacing: .04em; }
.video-carte__corps { padding: 16px 18px 20px; }
.video-carte__meta { margin: 0 0 6px; color: var(--d-gris); font-size: .78rem; }
.video-carte__meta a { color: var(--d-rouge); text-decoration: none; }
.video-carte__titre { margin: 0; font-size: 1.02rem; line-height: 1.35; }
.video-carte__titre a { color: var(--d-encre); text-decoration: none; }
.video-carte__titre a:hover { color: var(--d-rouge); }
.videos-grille .video-carte__vignette:focus-visible { outline: 3px solid var(--d-or); outline-offset: -3px; }

/* Fenêtre de lecture */
.video-fenetre { width: min(1100px, 94vw); max-width: none; padding: 0; border: 0; background: transparent; overflow: visible; }
.video-fenetre::backdrop { background: rgba(8, 20, 38, .86); backdrop-filter: blur(4px); }
.video-fenetre__boite { position: relative; }
.video-fenetre__cadre { position: relative; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #000; }
.video-fenetre__cadre iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-fenetre__cadre:has(iframe.is-vertical) { aspect-ratio: 9 / 16; width: min(380px, 90vw); max-height: 86vh; margin-inline: auto; }
.video-fenetre__fermer { position: absolute; right: -6px; top: -48px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: #fff; color: var(--d-encre); font-size: 26px; line-height: 1; cursor: pointer; }
.video-fenetre__fermer:focus-visible { outline: 3px solid var(--d-or); outline-offset: 2px; }

/* Fiche vidéo */
.video-fiche__tete { padding: 32px 0 0; background: linear-gradient(180deg, #f4f6f8 0%, #fff 100%); }
.video-fiche__lecteur { max-width: 980px; margin: 18px auto 0; }
.video-fiche__titre { margin: 0 0 18px; font-size: clamp(1.6rem, 1.3rem + 1.4vw, 2.4rem); line-height: 1.2; }
.video-fiche__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin: 26px 0; }

/* Chaînes officielles */
.chaines { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; margin-top: 64px; padding: 26px 30px; border-radius: 16px; background: #f4f6f8; border-left: 4px solid var(--d-or); }
.chaines__titre { margin: 0 0 4px; color: var(--d-encre); font: 700 1.2rem/1.3 var(--f-serif); }
.chaines p { margin: 0; }
.chaines__liens { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }

@media (prefers-reduced-motion: reduce) { .video-lecture::before { animation: none; } }
@media (max-width: 639px) {
	.video-lecture--grand { width: 66px; height: 66px; }
	.chaines { padding: 20px; }
	.video-fenetre__fermer { right: 0; }
}

/* ==========================================================================
   v2.10 — Mes vidéos : playlists et aperçu sur l'accueil
   ========================================================================== */
.puce__compte { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; margin-left: 2px; padding: 0 6px; border-radius: 999px; background: #eef2f6; color: var(--d-gris); font-size: .7rem; }
.puce.est-actif .puce__compte { background: rgba(255, 255, 255, .25); color: #fff; }

/* Cartes de playlists */
.playlists { margin-top: 8px; }
.playlists__liste { display: grid; gap: 22px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .playlists__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .playlists__liste { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.playlist a { display: flex; flex-direction: column; gap: 10px; height: 100%; color: var(--d-encre); text-decoration: none; }
.playlist__vignette { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: var(--d-rouge-fonce); box-shadow: 8px 8px 0 -2px #dfe7ef, 16px 16px 0 -4px #edf2f7; transition: transform .3s var(--d-ease), box-shadow .3s; }
.playlist a:hover .playlist__vignette { transform: translate(-3px, -3px); box-shadow: 11px 11px 0 -2px #d4e3f2, 22px 22px 0 -4px #e6eef7; }
.playlist__vignette img { width: 100%; height: 100%; object-fit: cover; }
.playlist__pile { position: absolute; top: 0; right: 0; bottom: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 38%; background: rgba(14, 42, 77, .82); color: #fff; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.playlist__pile strong { font: 700 1.6rem/1 var(--f-serif); letter-spacing: 0; color: #f0c06a; }
.playlist__pile svg { margin-bottom: 4px; color: #f0c06a; }
.playlist__nom { margin-top: 8px; font: 700 1.05rem/1.3 var(--f-serif); }
.playlist__voir { display: inline-flex; align-items: center; gap: 6px; color: var(--d-rouge); font-size: .82rem; font-weight: 600; }
.playlist a:hover .playlist__nom { color: var(--d-rouge); }

/* Aperçu sur l'accueil */
.apercu-videos__grille { display: grid; gap: 28px; align-items: start; }
@media (min-width: 1024px) { .apercu-videos__grille { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 36px; } }
.apercu-videos__une .video-une__meta { margin: 16px 0 4px; }
.apercu-videos__titre { margin: 0; font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.25; }
.apercu-videos__titre a { color: var(--d-encre); text-decoration: none; }
.apercu-videos__titre a:hover { color: var(--d-rouge); }
.apercu-videos__liste { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.mini-video { display: flex; gap: 14px; align-items: center; padding: 10px; border-radius: 14px; background: #fff; border: 1px solid #e3e8ed; transition: box-shadow .3s, transform .3s var(--d-ease); }
.mini-video:hover { transform: translateX(4px); box-shadow: 0 14px 30px rgba(14, 42, 77, .1); }
.mini-video__vignette { position: relative; flex: none; display: block; width: 150px; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 10px; overflow: hidden; background: var(--d-rouge-fonce); cursor: pointer; }
.mini-video__vignette img { width: 100%; height: 100%; object-fit: cover; }
.video-lecture--petit { width: 34px; height: 34px; padding-left: 2px; }
.video-lecture--petit::before { display: none; }
.mini-video__texte { min-width: 0; }
.mini-video__date { margin: 0 0 4px; color: var(--d-gris); font-size: .75rem; }
.mini-video__titre { margin: 0; font-size: .95rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.mini-video__titre a { color: var(--d-encre); text-decoration: none; }
.mini-video__titre a:hover { color: var(--d-rouge); }
.apercu-videos__playlists { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 34px; padding-top: 24px; border-top: 1px solid #e3e8ed; }
.apercu-videos__label { margin: 0; color: var(--d-encre); font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.apercu-videos__playlists .puces { margin: 0; }
@media (max-width: 639px) {
	.mini-video__vignette { width: 118px; }
}
