/*
Theme Name: Maison Française
Description: Thème sur mesure pour la Maison Française des Affaires Civiles & Patrimoniales (Florence Albugues).
Author: Agence NEWP
Author URI: https://www.newp.fr
Version: 0.7.1
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: maison-francaise
*/

:root {
	--mf-bleu: #17386B;
	--mf-nuit: #0E2345;
	--mf-nuit-2: #081730;
	--mf-rouge: #C9252D;
	--mf-encre: #111B2E;
	--mf-texte-2: #3C4A63;
	--mf-pierre: #F5F6F8;
	--mf-trait: #D9DEE7;
	--mf-clair: #C5D0E4;
	--mf-serif: Marcellus, Georgia, 'Times New Roman', serif;
	--mf-sans: 'Hanken Grotesk', 'Segoe UI', system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--mf-sans); font-size: 17px; line-height: 1.6; color: var(--mf-encre); background: #fff; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--mf-bleu); }
a:hover { color: var(--mf-nuit); }
h1, h2, h3, p, ul, ol { margin: 0; }
:focus-visible { outline: 3px solid var(--mf-rouge); outline-offset: 3px; }
[id] { scroll-margin-top: 120px; }
.screen-reader-text, .mf-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.mf-skip { position: absolute; left: -9999px; top: 0; background: #fff; padding: 12px 18px; z-index: 10; }
.mf-skip:focus { left: 8px; top: 8px; }

/* Mise en page */
.mf-wrap { max-width: 1200px; margin: 0 auto; padding-inline: 32px; }
.mf-section { padding-block: 96px; }
.mf-section--white { background: #fff; }
.mf-section--stone { background: var(--mf-pierre); }
.mf-section--night { background: var(--mf-nuit); color: #fff; }
.mf-stack { display: flex; flex-direction: column; gap: 14px; }
.mf-stack--lg { gap: 24px; }
.mf-stack--xl { gap: 48px; }
.mf-heading { max-width: 760px; }
.mf-narrow { max-width: 28em; }
.mf-muted { color: var(--mf-texte-2); }
.mf-grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 24px; }
.mf-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 64px; }
.mf-split--center { align-items: center; }
.mf-actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* Typographie */
.mf-h1 { font-family: var(--mf-serif); font-weight: 400; font-size: clamp(38px, 4.6vw, 62px); line-height: 1.1; text-wrap: balance; }
.mf-h1--page { font-size: clamp(34px, 4vw, 52px); }
.mf-h2 { font-family: var(--mf-serif); font-weight: 400; font-size: clamp(30px, 3.2vw, 42px); line-height: 1.15; text-wrap: balance; }
.mf-h3 { font-family: var(--mf-serif); font-weight: 400; font-size: 26px; line-height: 1.2; }
.mf-eyebrow { font-size: 13px; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--mf-bleu); text-decoration: none; }
.mf-eyebrow--light, a.mf-eyebrow--light:hover { color: var(--mf-clair); }

/* Bleu, blanc, rouge : le liseré du logo repris dans tout le site */
.mf-lisere { display: block; height: 4px; background: linear-gradient(90deg, var(--mf-bleu) 0 33.34%, #fff 33.34% 66.67%, var(--mf-rouge) 66.67% 100%); }
.mf-lisere--site { height: 5px; position: sticky; top: 0; z-index: 51; }
.mf-lisere--pied { margin-bottom: 56px; }
.mf-eyebrow::before { content: ''; display: inline-block; width: 39px; height: 3px; margin-right: 14px; vertical-align: middle; position: relative; top: -1px; background: linear-gradient(90deg, var(--mf-bleu) 0 33.34%, #fff 33.34% 66.67%, var(--mf-rouge) 66.67% 100%); box-shadow: 0 0 0 1px rgba(23, 56, 107, .08); }
.mf-eyebrow--light::before { background: linear-gradient(90deg, #5C86CC 0 33.34%, #fff 33.34% 66.67%, var(--mf-rouge) 66.67% 100%); box-shadow: none; }
.mf-pagehead { border-bottom: 5px solid transparent; border-image: linear-gradient(90deg, var(--mf-bleu) 0 33.34%, #fff 33.34% 66.67%, var(--mf-rouge) 66.67% 100%) 1; }
.mf-passage--rouge { border-top-color: var(--mf-rouge); }
.mf-passage--rouge .mf-passage__lien { color: #8E1A21; }
.mf-passage--rouge:hover { background: #FBECED; }

/* Boutons */
.mf-btn { display: inline-flex; align-items: center; gap: 12px; min-height: 54px; padding: 0 26px; border: 1px solid transparent; font: inherit; font-weight: 600; font-size: 16px; text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
.mf-btn--sm { min-height: 46px; padding: 0 22px; font-size: 15px; }
.mf-btn--primary { background: var(--mf-bleu); color: #fff; }
.mf-btn--primary:hover { background: var(--mf-nuit); color: #fff; }
.mf-btn--light { background: #fff; color: var(--mf-nuit); }
.mf-btn--light:hover { background: var(--mf-clair); color: var(--mf-nuit); }
.mf-btn--ghost { border-color: #8FA3C7; color: #fff; }
.mf-btn--ghost:hover { border-color: #fff; color: #fff; }

/* En-tête */
.mf-header { position: sticky; top: 5px; z-index: 50; background: #fff; border-bottom: 1px solid var(--mf-trait); box-shadow: 0 6px 20px rgba(14, 35, 69, .06); }
.mf-header__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-block: 18px; }
.mf-logo { display: flex; align-items: center; gap: 16px; text-decoration: none; color: var(--mf-bleu); }
.mf-logo--inverse { color: #fff; }
.mf-logo__text { display: flex; flex-direction: column; gap: 4px; }
.mf-logo__name { font-family: var(--mf-serif); font-size: 21px; letter-spacing: .08em; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.mf-logo__base { font-size: 7.4px; letter-spacing: .215em; text-transform: uppercase; font-weight: 600; line-height: 1; white-space: nowrap; }
.mf-nav { display: flex; gap: 32px; align-items: center; font-size: 15px; font-weight: 500; }
.mf-nav a { color: var(--mf-encre); text-decoration: none; padding-block: 12px; }
.mf-nav a[aria-current] { color: var(--mf-bleu); box-shadow: inset 0 -2px 0 var(--mf-rouge); }
.mf-nav a:hover { color: var(--mf-bleu); text-decoration: underline; text-underline-offset: 6px; }

/* Haut de page */
.mf-hero { position: relative; overflow: hidden; background: var(--mf-nuit); color: #fff; }
.mf-hero__in { position: relative; }

/* Vidéo de fond : des gouttes tombent sur une eau calme, teintée dans le bleu du site et gardée discrète. */
.mf-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.55) brightness(1.02); pointer-events: none; }
.mf-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 35, 69, .7) 0%, rgba(14, 35, 69, .3) 60%, rgba(14, 35, 69, .12) 100%), #2B4E90; mix-blend-mode: multiply; pointer-events: none; }
.mf-hero__in { z-index: 1; }

.mf-hero__in { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 64px; align-items: center; padding-block: 88px 96px; }
.mf-hero__kicker { display: flex; align-items: center; gap: 14px; font-size: 13px; letter-spacing: .22em; text-transform: uppercase; font-weight: 500; color: var(--mf-clair); }
.mf-tricolore { display: flex; width: 54px; height: 3px; }
.mf-tricolore i { flex: 1; background: #5C86CC; }
.mf-tricolore i:nth-child(2) { background: #fff; }
.mf-tricolore i:nth-child(3) { background: var(--mf-rouge); }
.mf-hero__lead { font-size: 19px; color: #D6DEEC; max-width: 34em; }
.mf-portrait { position: relative; justify-self: center; width: 100%; max-width: 440px; }
.mf-portrait__card { position: absolute; left: -20px; bottom: 28px; background: #fff; color: var(--mf-nuit); padding: 16px 22px; display: flex; flex-direction: column; gap: 2px; box-shadow: 0 18px 40px rgba(4, 14, 34, .35); }
.mf-portrait__name { font-family: var(--mf-serif); font-size: 20px; }
.mf-portrait__role { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; font-weight: 500; color: var(--mf-texte-2); }
.mf-photo { width: 100%; background: repeating-linear-gradient(135deg, #1B3560 0 14px, #17305A 14px 28px); border: 1px solid #3A5488; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; color: var(--mf-clair); }
.mf-photo span { padding: 24px; }
.mf-photo img { width: 100%; height: 100%; object-fit: cover; }
.mf-photo--45 { aspect-ratio: 4 / 5; }
.mf-photo--11 { aspect-ratio: 1 / 1; max-width: 460px; }
.mf-todo { border: 1px dashed #5A72A0; padding: 20px 22px; color: var(--mf-clair); }

/* En-tête des pages intérieures */
.mf-pagehead { background: var(--mf-nuit); color: #fff; padding-block: 72px; }

/* Cartes */
.mf-card { background: var(--mf-pierre); border-top: 3px solid var(--mf-bleu); padding: 40px; display: flex; flex-direction: column; gap: 22px; }
.mf-section--stone .mf-card { background: #fff; }
.mf-card--rouge { border-top-color: var(--mf-rouge); }
.mf-card--link { text-decoration: none; color: var(--mf-encre); transition: box-shadow .2s; }
.mf-card--link:hover { color: var(--mf-encre); box-shadow: 0 14px 34px rgba(14, 35, 69, .12); }
.mf-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 14px; color: #2A364C; }
.mf-list li { position: relative; padding-left: 32px; }
.mf-list li::before { content: ''; position: absolute; left: 0; top: .8em; width: 18px; height: 1px; background: var(--mf-bleu); }
.mf-card--rouge .mf-list li::before { background: var(--mf-rouge); }

.mf-card--oui { background: #EAEFF7; border-top-color: var(--mf-bleu); }
.mf-card--non { background: #FBECED; border-top-color: var(--mf-rouge); }
.mf-card--non .mf-h3 { color: #8E1A21; }
.mf-card__reponse { display: flex; align-items: center; gap: 10px; font-weight: 600; color: var(--mf-bleu); margin-top: auto; }
.mf-card--rouge .mf-card__reponse { color: var(--mf-encre); }
.mf-card__format { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--mf-trait); font-size: 13px; font-weight: 600; color: var(--mf-texte-2); white-space: nowrap; }
.mf-list--non li::before { background: var(--mf-rouge); }
.mf-grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 24px; }
.mf-grid-3 .mf-card { padding-inline: 30px; }
.mf-on-night { color: var(--mf-clair); }
.mf-reseau { border: 1px solid #3A5488; padding: 40px; display: flex; flex-direction: column; gap: 18px; color: #D6DEEC; align-self: start; }
.mf-reseau .mf-h3 { color: #fff; }
.mf-steps.mf-steps--4 { grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 32px; }
.mf-article__photo img { width: 100%; max-width: 420px; }
.mf-footer__note { margin-top: 36px; max-width: 62em; font-size: 14px; color: var(--mf-clair); }
.mf-photo img { object-position: 50% 18%; }

.mf-illus { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.mf-illus--contact { margin-top: 26px; }
.mf-illus--haut { aspect-ratio: 4 / 5; max-height: 560px; }
.mf-card--photo { padding: 0 0 32px; gap: 16px; overflow: hidden; }
.mf-card--photo img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 12px; }
.mf-card--photo > :not(img) { padding-inline: 40px; }
.mf-article__photo { position: sticky; top: 120px; }

/* Photos harmonisées : toutes les photos de rubrique passent dans le bleu du logo. */
.mf-duo { display: block; background: #3B4E70; overflow: hidden; }
.mf-duo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.08) brightness(1.06); mix-blend-mode: luminosity; }
.mf-duo--haut { aspect-ratio: 4 / 5; max-height: 560px; }
.mf-duo--contact { aspect-ratio: 3 / 2; margin-top: 26px; }
.mf-article__photo .mf-duo { aspect-ratio: 4 / 3; }
.mf-article__photo .mf-duo img { max-width: none; }

/* Rubriques photo */
.mf-tuiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr)); gap: 24px; }
/* quatre tuiles (« Les autres situations ») : deux lignes de deux plutôt que trois et une seule */
@media (min-width: 761px) { .mf-tuiles:has(> .mf-tuile:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.mf-tuile { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--mf-trait); border-radius: 4px; box-shadow: 0 1px 2px rgba(14, 35, 69, .04), 0 12px 32px rgba(14, 35, 69, .06); text-decoration: none; color: var(--mf-encre); transition: transform .25s, box-shadow .25s, border-color .25s; }
.mf-tuile:hover { transform: translateY(-4px); border-color: #B9C3D6; box-shadow: 0 2px 4px rgba(14, 35, 69, .05), 0 22px 44px rgba(14, 35, 69, .11); color: var(--mf-encre); }
.mf-tuile__photo { aspect-ratio: 16 / 10; }
.mf-tuile__photo img { transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.mf-tuile:hover .mf-tuile__photo img { transform: scale(1.04); }
.mf-tuile__corps { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 26px 28px; }
.mf-tuile__label { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--mf-texte-2); }
.mf-tuile__titre { font-family: var(--mf-serif); font-size: 23px; line-height: 1.2; }
.mf-tuile__texte { font-size: 15.5px; line-height: 1.6; color: var(--mf-texte-2); }
.mf-tuile__lien { margin-top: auto; padding-top: 14px; display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; color: var(--mf-bleu); }

/* Valeur ajoutée */
.mf-atouts { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--mf-trait); border: 1px solid var(--mf-trait); border-radius: 4px; overflow: hidden; }
.mf-atouts li { display: flex; flex-direction: column; gap: 10px; padding: 30px 26px; background: #fff; }
.mf-atouts__num { font-family: var(--mf-serif); font-size: 30px; line-height: 1; color: var(--mf-rouge); }
.mf-atouts h3 { font-family: var(--mf-serif); font-weight: 400; font-size: 21px; line-height: 1.2; color: var(--mf-bleu); }
.mf-atouts p { font-size: 15px; line-height: 1.55; color: var(--mf-texte-2); }

/* Passages vers les pages Offres et Méthode */
.mf-passage { display: flex; flex-direction: column; gap: 12px; padding: 36px 36px 32px; background: var(--mf-pierre); border-top: 3px solid var(--mf-bleu); text-decoration: none; color: var(--mf-encre); transition: background-color .2s; }
.mf-passage:hover { background: #EAEFF7; color: var(--mf-encre); }
.mf-passage__titre { font-family: var(--mf-serif); font-size: 27px; line-height: 1.2; text-wrap: balance; }
.mf-passage__lien { margin-top: 8px; display: inline-flex; align-items: center; gap: 10px; font-weight: 600; color: var(--mf-bleu); }

/* Besoins : cartes */
.mf-needs { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 20px; }
.mf-need { display: flex; flex-direction: column; gap: 14px; padding: 30px 28px 28px; background: #fff; border: 1px solid var(--mf-trait); border-radius: 4px; box-shadow: 0 1px 2px rgba(14, 35, 69, .04), 0 12px 32px rgba(14, 35, 69, .06); transition: transform .25s, box-shadow .25s, border-color .25s; }
.mf-need:hover { transform: translateY(-4px); border-color: #B9C3D6; box-shadow: 0 2px 4px rgba(14, 35, 69, .05), 0 22px 44px rgba(14, 35, 69, .11); }
.mf-need__ico { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: #EAEFF7; color: var(--mf-bleu); margin-bottom: 6px; }
.mf-need__titre { font-family: var(--mf-serif); font-weight: 400; font-size: 23px; line-height: 1.2; }
.mf-need__texte { font-size: 15.5px; line-height: 1.6; color: var(--mf-texte-2); }
.mf-need__reponse { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--mf-trait); font-size: 15.5px; line-height: 1.5; font-weight: 600; color: var(--mf-bleu); }
.mf-need__reponse span { display: block; margin-bottom: 6px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: #5A6780; }
.mf-entree { position: relative; display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); min-height: 220px; overflow: hidden; background: #fff; border: 1px solid var(--mf-trait); border-radius: 4px; box-shadow: 0 1px 2px rgba(14, 35, 69, .04), 0 12px 32px rgba(14, 35, 69, .06); text-decoration: none; color: var(--mf-encre); transition: transform .25s, box-shadow .25s, border-color .25s; }
.mf-entree__photo { width: 100%; height: 100%; object-fit: cover; }
.mf-entree__corps { display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 28px 84px 28px 30px; }
.mf-entree:hover { transform: translateY(-4px); border-color: #B9C3D6; box-shadow: 0 2px 4px rgba(14, 35, 69, .05), 0 22px 44px rgba(14, 35, 69, .11); color: var(--mf-encre); }
.mf-entree__label { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--mf-texte-2); }
.mf-tricolore--clair { width: 36px; height: 2px; }
.mf-tricolore--clair i:first-child { background: var(--mf-bleu); }
.mf-tricolore--clair i:nth-child(2) { background: var(--mf-trait); }
.mf-entree__titre { font-family: var(--mf-serif); font-size: 24px; line-height: 1.2; }
.mf-entree__texte { color: var(--mf-texte-2); }
.mf-entree__fleche { position: absolute; right: 30px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--mf-trait); border-radius: 50%; color: var(--mf-bleu); transition: background-color .2s, color .2s, border-color .2s; }
.mf-entree:hover .mf-entree__fleche { background: var(--mf-bleu); border-color: var(--mf-bleu); color: #fff; }

/* Volet dépliant */
.mf-fold { display: flex; gap: 12px; height: 540px; }
.mf-panel { flex: 1 1 0; min-width: 0; position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 12px; padding: 24px 24px 26px; color: #fff; cursor: pointer; background: linear-gradient(180deg, rgba(14, 35, 69, .25) 0%, rgba(14, 35, 69, .94) 72%), var(--mf-img, repeating-linear-gradient(135deg, #1B3560 0 14px, #17305A 14px 28px)) center / cover; transition: flex-grow .55s cubic-bezier(.2, .7, .2, 1); }
.mf-panel.is-open { flex-grow: 5; cursor: default; }
.mf-panel__ph { position: absolute; top: 22px; left: 24px; right: 24px; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--mf-clair); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mf-panel__head { display: flex; flex-direction: column; gap: 12px; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; min-height: 44px; }
.mf-panel__num { font-size: 13px; letter-spacing: .2em; font-weight: 600; color: var(--mf-clair); }
.mf-panel__title { font-family: var(--mf-serif); font-size: 24px; line-height: 1.15; }
.mf-panel__body { display: none; flex-direction: column; gap: 14px; max-width: 30em; font-size: 16px; color: #E3E9F3; }
.mf-panel.is-open .mf-panel__body { display: flex; }
.mf-panel__link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: #fff; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-decoration: none; }
.mf-panel__link:hover { color: #fff; text-decoration: underline; text-underline-offset: 5px; }

/* Méthode */
.mf-steps { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 40px; }
.mf-steps li { display: flex; flex-direction: column; gap: 14px; border-top: 1px solid var(--mf-encre); padding-top: 24px; }
.mf-steps__num { font-family: var(--mf-serif); font-size: 44px; line-height: 1; color: var(--mf-bleu); }
.mf-steps h3 { font-size: 20px; font-weight: 600; }
.mf-steps p { color: var(--mf-texte-2); }

/* Formulaire */
.mf-form { background: #fff; border: 1px solid var(--mf-trait); padding: 40px; display: flex; flex-direction: column; gap: 22px; }
.mf-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: 22px; }
.mf-field { display: flex; flex-direction: column; gap: 8px; }
.mf-field label { font-size: 14px; font-weight: 600; }
.mf-field input, .mf-field select, .mf-field textarea { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid #8A96AB; border-radius: 0; background: #fff; font: inherit; color: inherit; }
.mf-field textarea { resize: vertical; }
.mf-check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: var(--mf-texte-2); }
.mf-check input { width: 20px; height: 20px; margin: 2px 0 0; flex: none; accent-color: var(--mf-bleu); }
.mf-notice { padding: 14px 18px; border-left: 3px solid var(--mf-rouge); background: var(--mf-pierre); font-size: 15px; }
.mf-notice--ok { border-left-color: var(--mf-bleu); }

/* Contenu des pages intérieures */
.mf-article--photo { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 56px; align-items: start; }
.mf-prose { max-width: 720px; }
.mf-prose > * + * { margin-top: 1.1em; }
.mf-prose h2 { font-family: var(--mf-serif); font-weight: 400; font-size: 30px; line-height: 1.2; margin-top: 1.6em; }
.mf-prose h3 { font-size: 20px; font-weight: 600; margin-top: 1.4em; }
.mf-prose ul, .mf-prose ol { padding-left: 1.3em; }
.mf-prose li + li { margin-top: .4em; }

/* Pied de page */
.mf-footer { background: var(--mf-nuit-2); color: var(--mf-clair); padding-block: 0 40px; }
.mf-footer__top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.mf-footer__nav { display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 15px; }
.mf-footer__nav a { color: #fff; text-decoration: none; padding-block: 10px; }
.mf-footer__nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.mf-footer__bottom { margin-top: 24px; border-top: 1px solid #25375A; padding-top: 24px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 14px; }
.mf-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.mf-footer__legal a { color: var(--mf-clair); }

/* Panneaux fermés : titre à la verticale, lisible même dans une colonne étroite. */
@media (min-width: 901px) {
	.mf-panel:not(.is-open) .mf-panel__title { writing-mode: vertical-rl; text-orientation: sideways; transform: rotate(180deg); white-space: nowrap; font-size: 21px; align-self: flex-start; }
	.mf-panel:not(.is-open) .mf-panel__head { flex-direction: column-reverse; }
}

@media (max-width: 1150px) {
	.mf-nav { gap: 20px; }
	.mf-header__in { gap: 16px; }
}
@media (max-width: 900px) {
	.mf-wrap { padding-inline: 20px; }
	.mf-section { padding-block: 64px; }
	.mf-hero__in { padding-block: 56px 72px; gap: 48px; }
	.mf-split { gap: 40px; }
	.mf-header__in { padding-block: 12px; gap: 6px 16px; }
	.mf-nav { order: 3; width: 100%; gap: 22px; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.mf-nav a { white-space: nowrap; padding-block: 8px; }
	.mf-article__photo { position: static; }
	.mf-fold { flex-direction: column; height: auto; }
	.mf-entree { grid-template-columns: 1fr; }
	.mf-entree__photo { height: 170px; }
	.mf-entree__corps { padding: 24px 76px 26px 22px; }
	.mf-entree__fleche { right: 18px; }
	.mf-panel { min-height: 130px; }
	.mf-panel.is-open { min-height: 320px; }
	.mf-card, .mf-form { padding: 28px 22px; }
	.mf-portrait__card { left: 0; }
}
@media (max-width: 520px) {
	.mf-header .mf-btn { display: none; }
	.mf-logo__name { font-size: 18px; }
	.mf-logo__base { font-size: 6.4px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.mf-panel, .mf-btn, .mf-need, .mf-entree, .mf-tuile, .mf-tuile__photo img { transition: none; }
	.mf-tuile:hover { transform: none; }
	.mf-need:hover, .mf-entree:hover { transform: none; }
}
.mf-tuile__label .mf-tricolore { display: none; }

/* Bouton de menu (téléphone et tablette) */
.mf-burger { display: none; flex-direction: column; justify-content: center; gap: 6px; width: 48px; height: 48px; padding: 0 11px; border: 1px solid var(--mf-trait); border-radius: 4px; background: #fff; cursor: pointer; }
.mf-burger span { display: block; height: 2px; background: var(--mf-bleu); transition: transform .2s, opacity .2s; }
.mf-header.is-open .mf-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.mf-header.is-open .mf-burger span:nth-child(2) { opacity: 0; }
.mf-header.is-open .mf-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

@media (max-width: 1100px) {
	.mf-atouts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mf-atouts li:last-child { grid-column: 1 / -1; }
}

/* Tablette et téléphone : menu replié dès que le menu complet ne tient plus sur une ligne */
@media (max-width: 1180px) {
	.mf-header__in { flex-wrap: wrap; padding-block: 10px; gap: 0 12px; }
	.mf-logo { flex: 1 1 0; min-width: 0; }
	.mf-logo__text { min-width: 0; }
	.mf-burger { flex: none; }
	.mf-burger { display: flex; }
	.mf-header .mf-emblem { width: 50px; height: auto; }
	.mf-logo { gap: 12px; }
	.mf-nav, .mf-header .mf-header__cta { display: none; }
	.mf-header.is-open .mf-nav { display: flex; order: 3; width: 100%; flex-direction: column; align-items: stretch; gap: 0; overflow: visible; margin-top: 10px; border-top: 1px solid var(--mf-trait); }
	.mf-header.is-open .mf-nav a { padding: 15px 2px; font-size: 17px; border-bottom: 1px solid var(--mf-trait); white-space: normal; box-shadow: none; }
	.mf-header.is-open .mf-nav a[aria-current] { color: var(--mf-bleu); font-weight: 600; }
	.mf-header.is-open .mf-header__cta { display: flex; order: 4; width: 100%; justify-content: center; margin: 14px 0 6px; min-height: 52px; }
	[id] { scroll-margin-top: 90px; }
	.mf-section { padding-block: 56px; }
	.mf-stack--xl { gap: 32px; }
	.mf-hero__in { padding-block: 44px 60px; gap: 40px; }
	.mf-portrait { max-width: 340px; }
	.mf-pagehead { padding-block: 44px; }
	.mf-duo--haut { aspect-ratio: 16 / 10; max-height: none; }
	.mf-reseau, .mf-passage { padding: 28px 24px; }
	.mf-footer__legal a, .mf-footer__nav a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 0; }
	.mf-pagehead .mf-eyebrow { display: inline-flex; align-items: center; min-height: 44px; }
	.mf-lisere--pied { margin-bottom: 40px; }
}

/* Téléphone */
@media (max-width: 600px) {
	body { font-size: 16px; }
	.mf-wrap { padding-inline: 18px; }
	.mf-section { padding-block: 48px; }
	.mf-h1 { font-size: 34px; }
	.mf-h1--page { font-size: 30px; }
	.mf-h2 { font-size: 27px; }
	.mf-h3 { font-size: 23px; }
	.mf-hero__lead { font-size: 17px; }
	.mf-hero__kicker { font-size: 12px; letter-spacing: .18em; }
	.mf-actions { flex-direction: column; align-items: stretch; }
	.mf-actions .mf-btn { justify-content: center; padding-inline: 18px; }
	.mf-portrait { max-width: 280px; }
	.mf-portrait__card { left: -8px; bottom: 18px; padding: 12px 16px; }
	.mf-logo__name { font-size: 17px; }
	.mf-logo__base { font-size: 6px; }

	/* Rubriques : cartes compactes, photo à gauche, pour ne pas allonger la page */
	.mf-tuiles { gap: 12px; }
	.mf-tuile { flex-direction: row; align-items: stretch; }
	.mf-tuile__photo { flex: none; width: 104px; aspect-ratio: auto; }
	.mf-tuile .mf-lisere { display: none; }
	.mf-tuile__corps { padding: 14px 16px; gap: 6px; justify-content: center; }
	.mf-tuile__label { font-size: 11px; letter-spacing: .16em; }
	.mf-tuile__titre { font-size: 18px; }
	.mf-tuile__texte { display: none; }
	.mf-tuile__lien { padding-top: 4px; font-size: 13px; }

	/* Compétences : une ligne par compétence, numéro à gauche */
	.mf-atouts { grid-template-columns: 1fr; }
	.mf-atouts li { display: grid; grid-template-columns: 44px 1fr; gap: 4px 6px; padding: 18px 16px; }
	.mf-atouts__num { grid-row: span 2; font-size: 24px; padding-top: 2px; }
	.mf-atouts h3 { font-size: 19px; }

	.mf-card { padding: 24px 20px; gap: 16px; }
	.mf-grid-3 .mf-card { padding-inline: 20px; }
	.mf-card__format { white-space: normal; }
	.mf-form { padding: 22px 18px; gap: 18px; }
	.mf-duo--contact { display: none; }
	.mf-steps.mf-steps--4, .mf-steps { gap: 24px; }
	.mf-steps__num { font-size: 34px; }
	.mf-prose h2 { font-size: 24px; }
	.mf-passage__titre { font-size: 23px; }
	.mf-footer__top { flex-direction: column; align-items: flex-start; gap: 18px; }
	.mf-footer__nav { gap: 0 22px; }
}

/* Petits téléphones : logo resserré pour que le bouton de menu reste sur la même ligne */
@media (max-width: 400px) {
	.mf-wrap { padding-inline: 16px; }
	.mf-header .mf-emblem { width: 42px; }
	.mf-logo { gap: 10px; }
	.mf-logo__name { font-size: 15px; letter-spacing: .06em; }
	.mf-logo__base { font-size: 5.4px; letter-spacing: .18em; }
	.mf-burger { width: 44px; height: 44px; padding: 0 10px; }
	.mf-h1 { font-size: 31px; }
	.mf-h1--page { font-size: 28px; }
	.mf-h2 { font-size: 25px; }
	.mf-tuile__photo { width: 92px; }
	.mf-tuile__titre { font-size: 17px; }
	.mf-portrait__card { left: 0; }
}
@media (max-width: 340px) {
	.mf-logo__base { display: none; }
}

/* Haut de page sans portrait : le texte prend la largeur */
.mf-hero__in--seul { display: block; padding-block: 96px 104px; }
.mf-hero__in--seul > .mf-stack { max-width: 860px; }
.mf-hero__in--seul .mf-hero__lead { max-width: 40em; }
.mf-convictions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 16px 40px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .28); color: #E3E9F3; }
.mf-convictions strong { display: block; margin-bottom: 4px; font-family: var(--mf-serif); font-weight: 400; font-size: 21px; color: #fff; }

/* Présentation façon CV */
.mf-photo--cv { max-width: 400px; justify-self: center; }
.mf-cv__titre { font-family: var(--mf-serif); font-size: 23px; line-height: 1.3; color: #fff; }
.mf-cv { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255, 255, 255, .28); }
.mf-cv li { display: grid; grid-template-columns: 130px 1fr; gap: 6px 20px; padding-block: 15px; border-bottom: 1px solid rgba(255, 255, 255, .18); color: #E3E9F3; }
.mf-cv span { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--mf-clair); padding-top: 5px; }
.mf-cv-clair { margin-bottom: 2em; padding: 26px 28px; background: var(--mf-pierre); border-top: 3px solid var(--mf-bleu); }
.mf-cv-clair .mf-cv__titre { color: var(--mf-bleu); }
.mf-cv-clair .mf-cv { border-top-color: var(--mf-trait); margin-top: 14px; padding-left: 0; }
.mf-cv-clair .mf-cv li { border-bottom-color: var(--mf-trait); color: var(--mf-encre); margin-top: 0; }
.mf-cv-clair .mf-cv li:last-child { border-bottom: 0; padding-bottom: 0; }
.mf-cv-clair .mf-cv span { color: var(--mf-texte-2); }

/* Honoraires */
.mf-honoraires { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: 28px 64px; align-items: start; }
.mf-honoraires__liste { list-style: none; margin: 0; padding: 0; counter-reset: honoraires; border-top: 1px solid var(--mf-encre); }
.mf-honoraires__liste li { counter-increment: honoraires; position: relative; padding: 18px 0 18px 54px; border-bottom: 1px solid var(--mf-trait); color: var(--mf-texte-2); }
.mf-honoraires__liste li::before { content: '0' counter(honoraires); position: absolute; left: 0; top: 16px; font-family: var(--mf-serif); font-size: 24px; line-height: 1.2; color: var(--mf-rouge); }
.mf-honoraires__liste strong { color: var(--mf-encre); font-weight: 600; }
.mf-card__format strong { color: var(--mf-bleu); font-size: 15px; }

@media (max-width: 600px) {
	.mf-hero__in--seul { padding-block: 48px 60px; }
	.mf-cv li { grid-template-columns: 1fr; gap: 2px; }
	.mf-cv span { padding-top: 0; }
	.mf-cv__titre { font-size: 20px; }
	.mf-cv-clair { padding: 20px 18px; }
	.mf-photo--cv { max-width: 260px; }
}

/* Menu par public : libellés plus longs, espacement resserré */
.mf-nav { gap: 26px; }

/* Rubriques regroupées par onglet sur l'accueil */
.mf-groupe { font-family: var(--mf-serif); font-weight: 400; font-size: 27px; line-height: 1.2; padding-bottom: 14px; border-bottom: 1px solid var(--mf-encre); }
.mf-groupe a { display: inline-flex; align-items: center; gap: 12px; color: var(--mf-encre); text-decoration: none; min-height: 44px; }
.mf-groupe a:hover { color: var(--mf-bleu); }
.mf-groupe svg { color: var(--mf-rouge); }
.mf-section--valeur .mf-atouts, .mf-section--cadre .mf-card--oui, .mf-section--cadre .mf-card--non { box-shadow: none; }
.mf-section--cadre .mf-card--oui { background: #E4EAF5; }
.mf-section--cadre .mf-card--non { background: #F9E6E7; }

/* Cas concrets */
.mf-cas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 24px; }
.mf-cas--seul { grid-template-columns: minmax(0, 820px); }
.mf-cas__carte { display: flex; flex-direction: column; gap: 14px; padding: 38px 38px 34px; background: #fff; border: 1px solid var(--mf-trait); border-top: 3px solid var(--mf-bleu); border-radius: 0 0 4px 4px; box-shadow: 0 1px 2px rgba(14, 35, 69, .04), 0 12px 32px rgba(14, 35, 69, .06); }
.mf-cas__carte:nth-child(even) { border-top-color: var(--mf-rouge); }
.mf-cas__carte .mf-h3 { margin-bottom: 4px; }
.mf-cas__carte p { color: #2A364C; }
.mf-cas__cle { margin-top: auto; padding: 18px 20px; background: var(--mf-pierre); border-left: 3px solid var(--mf-rouge); font-family: var(--mf-serif); font-size: 20px; line-height: 1.35; color: var(--mf-bleu) !important; }
.mf-cas__cle span { display: block; margin-bottom: 6px; font-family: var(--mf-sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--mf-texte-2); }

@media (max-width: 600px) {
	.mf-groupe { font-size: 23px; }
	.mf-cas__carte { padding: 24px 20px; }
	.mf-cas__cle { font-size: 18px; padding: 14px 16px; }
}

/* Ouverture des pages d'onglet */
.mf-pagehead__lead { max-width: 24em; font-family: var(--mf-serif); font-size: clamp(22px, 2.4vw, 30px); line-height: 1.3; color: #D6DEEC; text-wrap: balance; }
.mf-pagehead__piliers { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.mf-pagehead__piliers a { display: inline-flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 20px 8px 14px; border: 1px solid rgba(197, 208, 228, .35); color: #fff; text-decoration: none; font-size: 16px; transition: background-color .2s, border-color .2s; }
.mf-pagehead__piliers a:hover, .mf-pagehead__piliers a:focus-visible { background: rgba(255, 255, 255, .08); border-color: var(--mf-clair); }
.mf-pagehead__piliers span { font-family: var(--mf-serif); font-size: 22px; line-height: 1; color: #E8545B; }
.mf-piliers li { scroll-margin-top: 110px; }
@media (max-width: 600px) {
	.mf-pagehead__piliers { flex-direction: column; }
	.mf-pagehead__piliers a { width: 100%; }
}
.mf-piliers { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; border-top: 1px solid var(--mf-encre); }
.mf-piliers--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mf-piliers--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mf-piliers li { display: flex; flex-direction: column; gap: 12px; padding: 30px 32px 6px 0; }
.mf-piliers li + li { padding-left: 32px; border-left: 1px solid var(--mf-trait); }
.mf-piliers__num { font-family: var(--mf-serif); font-size: 40px; line-height: 1; color: var(--mf-rouge); }
.mf-piliers__nom { font-family: var(--mf-serif); font-weight: 400; font-size: 26px; line-height: 1.2; color: var(--mf-bleu); }
.mf-piliers p { color: var(--mf-texte-2); }
.mf-section--tuiles .mf-tuile { box-shadow: 0 1px 2px rgba(14, 35, 69, .05), 0 10px 26px rgba(14, 35, 69, .07); }

@media (max-width: 700px) {
	.mf-piliers--3, .mf-piliers--2 { grid-template-columns: 1fr; }
	.mf-piliers li, .mf-piliers li + li { padding: 22px 0; border-left: 0; }
	.mf-piliers li + li { border-top: 1px solid var(--mf-trait); }
	.mf-piliers__num { font-size: 32px; }
	.mf-piliers__nom { font-size: 23px; }
}
.mf-intro { padding-bottom: 24px; }
.mf-section--tuiles { padding-top: 40px; }

/* Tablette : les colonnes numérotées restent côte à côte, resserrées */
@media (min-width: 701px) and (max-width: 900px) {
	.mf-piliers li { padding-right: 20px; }
	.mf-piliers li + li { padding-left: 20px; }
	.mf-piliers__num { font-size: 32px; }
	.mf-piliers__nom { font-size: 21px; }
}

/* Tablette : trois tuiles sur deux colonnes laissaient la dernière seule ; elle prend toute la largeur, photo à gauche */
@media (min-width: 701px) and (max-width: 1047px) {
	.mf-tuiles:has(> .mf-tuile:nth-child(3):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.mf-tuiles > .mf-tuile:nth-child(3):last-child { grid-column: 1 / -1; flex-direction: row; }
	.mf-tuiles > .mf-tuile:nth-child(3):last-child .mf-tuile__photo { flex: none; width: 44%; aspect-ratio: auto; min-height: 240px; }
	.mf-tuiles > .mf-tuile:nth-child(3):last-child .mf-lisere { display: none; }
}

/* Étiquettes en capitales : un peu plus grandes sur téléphone pour rester lisibles */
@media (max-width: 600px) {
	.mf-cv span, .mf-cas__cle span { font-size: 12px; letter-spacing: .16em; }
}

/* Anti-robot Turnstile du formulaire */
.mf-turnstile:empty:not([data-attente]) { display: none; }
.mf-turnstile { min-height: 65px; }
.mf-turnstile[data-attente]::before { content: attr(data-attente); display: block; font-size: 14px; color: var(--mf-bleu); margin-bottom: 6px; }

/* Liens externes du pied de page (Apparence > Menus, « Réseaux et liens externes ») */
.mf-footer__reseaux { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 28px; font-size: 15px; }
.mf-footer__reseaux a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: #fff; text-decoration: none; }
.mf-footer__reseaux a:hover { text-decoration: underline; text-underline-offset: 6px; }
.mf-footer__reseaux .mf-icone { flex: none; opacity: .9; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Page « Nos partenaires » (page-partenaires.php) */
.mf-section--serre { padding-block: 48px 8px; }
.mf-partenaires__intro { max-width: 46em; }
.mf-partenaires { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat( auto-fill, minmax( 230px, 1fr ) ); gap: 20px; }
.mf-partenaire { display: flex; flex-direction: column; gap: 8px; height: 100%; padding: 22px 22px 20px; background: #fff; border: 1px solid var(--mf-trait); border-top: 3px solid var(--mf-bleu); border-radius: 4px; color: var(--mf-encre); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
a.mf-partenaire:hover, a.mf-partenaire:focus-visible { border-top-color: var(--mf-rouge); box-shadow: 0 8px 24px rgba(23, 56, 107, .08); }
.mf-partenaire__logo { display: flex; align-items: center; justify-content: flex-start; height: 72px; margin-bottom: 6px; }
.mf-partenaire__logo img { max-height: 72px; max-width: 180px; width: auto; height: auto; object-fit: contain; }
.mf-partenaire__initiales { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--mf-bleu); color: #fff; font-size: 26px; font-family: "Marcellus", serif; }
.mf-partenaire__nom { font-family: "Marcellus", serif; font-size: 20px; line-height: 1.3; color: var(--mf-bleu); }
.mf-partenaire__texte { font-size: 15px; line-height: 1.55; color: var(--mf-texte-2); }
.mf-partenaire__lien { margin-top: auto; padding-top: 8px; font-size: 14px; font-weight: 600; color: var(--mf-bleu); }

/* Formulaire « Devenir partenaire » : champ fichier. */
.mf-field input[type="file"] { padding: 10px 0; border: 0; background: none; font-size: 15px; }

/* Menu à cinq onglets (avec Partenaires) : resserré dès que le menu complet s’affiche, pour que le bouton Contact reste sur la ligne. */
@media (min-width: 1181px) {
	.mf-header__in { gap: 16px; }
	.mf-nav { gap: 14px; font-size: 14.5px; }
}

/* Sélecteur de langue (posé par scripts/traduction-en.mjs sur le site en ligne) : FR | EN */
.mf-langue { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 0 8px; border: 1px solid var(--mf-trait); border-radius: 4px; font-size: 13px; font-weight: 600; letter-spacing: .08em; color: var(--mf-bleu); text-decoration: none; }
.mf-langue:hover, .mf-langue:focus-visible { border-color: var(--mf-bleu); background: var(--mf-pierre); }
@media (min-width: 1181px) {
	.mf-langue { order: 10; }
	.mf-header__in { gap: 12px; }
	.mf-nav { gap: 11px; font-size: 14px; }
}
@media (max-width: 1180px) {
	.mf-langue { margin-left: 4px; }
}
