/* ==========================================================================
   AF GESTION — système de design institutionnel
   Couleurs du logo (indigo, turquoise) posées en aplats sur fond blanc.
   Titres : Source Serif 4. Texte : Source Sans 3. Polices auto-hébergées.
   ========================================================================== */

@font-face { font-family: "Source Sans 3"; src: url("../fonts/source-sans-3.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }
@font-face { font-family: "Source Serif 4"; src: url("../fonts/source-serif-4.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }

:root {
	--navy: #1D2550;
	--navy-deep: #151B3D;
	--indigo: #3F3C75;
	--blue: #1891B6;
	--blue-dark: #11718F;
	--blue-soft: #E8F4F8;
	--text: #2F3650;
	--muted: #5D6580;
	--line: #DCE1E8;
	--line-soft: #E9EDF2;
	--surface: #F3F5F8;
	--paper: #FFFFFF;
	--success: #0F7B53;
	--warning: #A15C07;
	--danger: #B42318;
	--band: #1D2550;
	--fill: #1D2550;
	--on-fill: #FFFFFF;
	--accent-fill: #11718F;
	--accent-fill-hover: #0F6582;
	--field-line: #B9C1CD;
	--success-bg: #E8F5EF;
	--danger-bg: #FCEDEB;
	--overlay: rgba(21, 27, 61, .45);

	--font-sans: "Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
	--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;

	--radius: 6px;
	--radius-l: 10px;
	--shadow: 0 1px 2px rgba(21, 27, 61, .06), 0 4px 16px rgba(21, 27, 61, .06);
	--gutter: clamp(16px, 4vw, 40px);
	--section: clamp(64px, 8vw, 112px);
	--header-h: 84px;
	--topbar-h: 40px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
/* Thème sombre : choisi par le bouton jour / nuit, ou par le réglage de l'appareil.
   Les bandeaux marine restent sombres ; le texte « marine » devient clair. L'impression reste en clair. */
@media screen {
	:root[data-theme="dark"] {
		color-scheme: dark;
		--navy: #EEF1F9;
		--navy-deep: #080B1C;
		--indigo: #A9A6E8;
		--blue: #3FAED3;
		--blue-dark: #6FC8E6;
		--blue-soft: #16314A;
		--text: #D5DAE8;
		--muted: #A3ABC4;
		--line: #2A3358;
		--line-soft: #20284A;
		--surface: #0D1229;
		--paper: #131936;
		--success: #4CC38A;
		--warning: #E8A74E;
		--danger: #F28B82;
		--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 4px 16px rgba(0, 0, 0, .35);
		--band: #1A2250;
		--fill: #2C6E8C;
		--on-fill: #FFFFFF;
		--accent-fill: #1A7594;
		--accent-fill-hover: #145F79;
		--field-line: #47507A;
		--success-bg: #12301F;
		--danger-bg: #3A1D1C;
		--overlay: rgba(0, 0, 0, .6);
	}
	:root[data-theme="dark"] .site-header.is-scrolled { box-shadow: 0 2px 12px rgba(0, 0, 0, .4); }
	:root[data-theme="dark"] .breadcrumb li + li::before { color: var(--muted); }
	:root[data-theme="dark"] img:not([src$=".svg"]) { filter: brightness(.92); }
}

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; font-family: var(--font-sans); font-size: 18px; line-height: 1.6; color: var(--text); background: var(--paper); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--blue-dark); text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; }
h1, h2, h3, h4 { margin: 0; color: var(--navy); font-family: var(--font-serif); font-weight: 600; letter-spacing: -.01em; line-height: 1.18; text-wrap: balance; }
h3, h4 { font-family: var(--font-sans); letter-spacing: 0; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; list-style: none; }
.hl { color: var(--blue-dark); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
::selection { background: var(--blue-soft); color: var(--navy); }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: 16px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--band); color: #fff; border-radius: var(--radius); }
.skip-link:focus { top: 12px; }
.icon { width: 1.1em; height: 1.1em; flex: none; }
.container { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: var(--gutter); }
.container--narrow { max-width: 820px; }
.hp { position: absolute; left: -9999px; }
.tabular { font-variant-numeric: tabular-nums; }

/* ---------- Sections ---------- */
.section { padding-block: var(--section); }
.section--surface { background: var(--surface); }
.section--navy { background: var(--band); color: rgba(255, 255, 255, .82); }
.section--navy h2, .section--navy h3, .section--navy strong { color: #fff; }
.section--navy .hl { color: #7FD0EA; }
.section--tight { padding-block: clamp(40px, 5vw, 64px); }
.eyebrow { font-size: 14px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--blue-dark); }
.section--navy .eyebrow { color: #7FD0EA; }
.section-head { max-width: 760px; margin-bottom: clamp(32px, 4vw, 48px); }
.section-head--row { max-width: none; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 32px; }
.section-head--row > div { max-width: 720px; }
.section-title { margin-top: 10px; font-size: clamp(30px, 3.4vw, 42px); }
.section-intro { margin-top: 16px; font-size: 19px; color: var(--muted); }
.section--navy .section-intro { color: rgba(255, 255, 255, .75); }

/* ---------- Boutons & liens ---------- */
.btn { white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: var(--radius); border: 1px solid transparent; font-size: 17px; font-weight: 600; line-height: 1.2; text-align: center; transition: background-color .15s, border-color .15s, color .15s; }
.btn--primary { background: var(--accent-fill); color: var(--on-fill); }
.btn--primary:hover { background: var(--accent-fill-hover); }
.btn--secondary { background: var(--paper); color: var(--navy); border-color: var(--navy); }
.btn--secondary:hover { background: var(--fill); border-color: var(--fill); color: var(--on-fill); }
.btn--navy { background: var(--fill); color: var(--on-fill); }
.btn--navy:hover { background: var(--navy-deep); }
.btn--light { background: #fff; color: #1D2550; }
.btn--light:hover { background: var(--blue-soft); }
.btn--outline-light { border-color: rgba(255, 255, 255, .6); color: #fff; background: transparent; }
.btn--outline-light:hover { background: rgba(255, 255, 255, .1); border-color: #fff; }
.btn--sm { min-height: 40px; padding: 0 16px; font-size: 15.5px; }
.btn--block { width: 100%; }
.link { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--blue-dark); }
.link .icon { transition: transform .15s; }
.link:hover { text-decoration: underline; text-underline-offset: 3px; }
.link:hover .icon { transform: translateX(3px); }
.section--navy .link { color: #7FD0EA; }
.tag { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 4px; background: var(--blue-soft); color: var(--blue-dark); font-size: 14px; font-weight: 600; }
.tag--neutral { background: var(--surface); color: var(--muted); }
.status { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--muted); }
.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.status--live { color: var(--success); }

/* ---------- Bandeau supérieur & en-tête ---------- */
.topbar { background: var(--band); color: rgba(255, 255, 255, .85); font-size: 15px; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--topbar-h); }
.topbar__info { margin: 0; }
.topbar ul { display: flex; align-items: center; gap: 24px; }
.topbar a { display: inline-flex; align-items: center; gap: 8px; color: #fff; }
.topbar a:hover { text-decoration: underline; }
.topbar .icon { color: #7FD0EA; }
.site-header { position: sticky; top: 0; z-index: 50; background: var(--paper); border-bottom: 1px solid var(--line); }
.site-header.is-scrolled { box-shadow: 0 2px 12px rgba(21, 27, 61, .08); }
.site-header__inner { display: flex; align-items: center; gap: 28px; height: var(--header-h); }
.brand { flex: none; display: block; width: 150px; }
.brand img { width: 150px; height: auto; }
.nav { display: flex; align-items: center; flex: 1; gap: 20px; }
.nav__list { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.nav__item { position: relative; }
.nav__link { display: flex; align-items: center; gap: 4px; white-space: nowrap; padding: 10px 12px; font-size: 17px; font-weight: 600; color: var(--navy); border-radius: var(--radius); background: none; border: 0; }
.nav__link:hover, .nav__item:focus-within > .nav__link { color: var(--blue-dark); background: var(--surface); }
.nav__link[aria-current="page"] { color: var(--blue-dark); }
.nav__link .icon { width: 14px; height: 14px; transition: transform .15s; }
.nav__sub { position: absolute; top: 100%; left: 0; min-width: 300px; padding: 8px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-l); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility .15s; }
.nav__item:hover > .nav__sub, .nav__item:focus-within > .nav__sub, .nav__item.is-open > .nav__sub { opacity: 1; visibility: visible; transform: none; }
.nav__sub a { display: block; padding: 10px 12px; border-radius: var(--radius); color: var(--navy); font-size: 16.5px; font-weight: 600; }
.nav__sub a:hover { background: var(--surface); color: var(--blue-dark); }
.nav__sub small { display: block; color: var(--muted); font-size: 14.5px; font-weight: 400; }
.nav__actions { display: flex; align-items: center; gap: 10px; }
.nav-toggle, .nav__mobile-only, .header-tools .search-toggle { display: none; }
.search-toggle { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--navy); }
.search-toggle:hover { border-color: var(--navy); }
.brand__logo--dark, .theme-toggle__sun { display: none; }
:root[data-theme="dark"] .brand__logo { display: none; }
:root[data-theme="dark"] .brand__logo--dark { display: block; }
:root[data-theme="dark"] .theme-toggle__moon { display: none; }
:root[data-theme="dark"] .theme-toggle__sun { display: block; }

/* ---------- Fil d'Ariane & en-têtes de pages ---------- */
.breadcrumb { font-size: 15px; color: var(--muted); }
.breadcrumb ol { display: flex; flex-wrap: wrap; gap: 6px; }
.breadcrumb li + li::before { content: "/"; margin-right: 6px; color: #A9B1BF; }
.breadcrumb a { color: var(--muted); }
.breadcrumb a:hover { color: var(--blue-dark); text-decoration: underline; }
.page-hero { padding-block: clamp(36px, 5vw, 60px); background: var(--surface); border-bottom: 1px solid var(--line); }
.page-title { margin-top: 18px; font-size: clamp(34px, 4.4vw, 52px); }
.page-lead { margin-top: 16px; max-width: 760px; font-size: 20px; color: var(--muted); }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.page-hero__meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 18px; font-size: 15.5px; color: var(--muted); }

/* ---------- Accueil : ouverture ---------- */
.home-hero { padding-block: clamp(48px, 6vw, 88px) clamp(48px, 6vw, 72px); background: var(--paper); }
.home-hero__inner { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.home-hero__title { margin-top: 16px; font-size: clamp(38px, 4.8vw, 58px); line-height: 1.1; }
.home-hero__lead { margin-top: 22px; max-width: 620px; font-size: 20.5px; color: var(--muted); }
.home-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.quick { border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); box-shadow: var(--shadow); overflow: hidden; }
.quick__head { padding: 18px 22px; background: var(--band); color: #fff; }
.quick__head p { font-family: var(--font-serif); font-size: 21px; font-weight: 600; }
.quick__head small { display: block; margin-top: 2px; font-size: 15px; color: rgba(255, 255, 255, .75); }
.quick__list a { display: flex; align-items: center; gap: 14px; padding: 16px 22px; border-top: 1px solid var(--line-soft); color: var(--navy); font-weight: 600; }
.quick__list li:first-child a { border-top: 0; }
.quick__list a:hover { background: var(--surface); }
.quick__list a > .icon:first-child { width: 22px; height: 22px; color: var(--blue-dark); }
.quick__list a > .icon:last-child { margin-left: auto; color: var(--muted); }
.quick__list small { display: block; font-weight: 400; color: var(--muted); font-size: 15px; }

.keyfacts { border-block: 1px solid var(--line); background: var(--surface); }
.keyfacts__list { display: grid; grid-template-columns: repeat(4, 1fr); }
.keyfacts__list li { padding: 26px 24px; }
.keyfacts__list li + li { border-left: 1px solid var(--line); }
.keyfacts__value { display: block; font-family: var(--font-serif); font-size: 34px; font-weight: 600; color: var(--navy); line-height: 1.1; font-variant-numeric: tabular-nums; }
.keyfacts__label { display: block; margin-top: 4px; font-size: 16px; color: var(--muted); }
.keyfacts__value--text { font-size: 21px; line-height: 1.3; }

/* ---------- Cartes ---------- */
.cards { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 28px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-l); transition: border-color .15s, box-shadow .15s; }
.card:has(.card__title a):hover { border-color: var(--blue); box-shadow: var(--shadow); }
.card__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: var(--radius); background: var(--blue-soft); color: var(--blue-dark); }
.card__icon .icon { width: 24px; height: 24px; }
.card__title { font-size: 21px; font-weight: 700; color: var(--navy); line-height: 1.3; }
.card__title a { color: inherit; }
.card__title a::after { content: ""; position: absolute; inset: 0; }
.card__text { color: var(--muted); font-size: 17px; }
.card__list { display: grid; gap: 8px; margin-top: 4px; padding-top: 16px; border-top: 1px solid var(--line-soft); font-size: 16.5px; }
.card__list li { display: flex; gap: 10px; }
.card__list .icon { color: var(--blue-dark); margin-top: 5px; width: 16px; height: 16px; }
.card__foot { margin-top: auto; padding-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.card--navy { background: var(--band); border-color: var(--band); color: rgba(255, 255, 255, .82); }
.card--navy .card__title { color: #fff; }
.card--navy .card__text { color: rgba(255, 255, 255, .78); }
.card--navy .btn { position: relative; z-index: 1; align-self: flex-start; }
.card--surface { background: var(--surface); border-color: transparent; }

/* ---------- Vous êtes… (onglets) ---------- */
.profiles { display: grid; grid-template-columns: 340px minmax(0, 1fr); border: 1px solid var(--line); border-radius: var(--radius-l); overflow: hidden; background: var(--paper); }
.profiles__tabs { display: flex; flex-direction: column; background: var(--surface); border-right: 1px solid var(--line); }
.profiles__tab { display: flex; align-items: center; gap: 12px; width: 100%; padding: 20px 22px; border: 0; border-bottom: 1px solid var(--line); background: none; text-align: left; font-size: 17.5px; font-weight: 600; color: var(--text); }
.profiles__tab:hover { background: var(--paper); color: var(--navy); }
.profiles__tab[aria-selected="true"] { background: var(--paper); color: var(--navy); box-shadow: inset 4px 0 0 var(--blue-dark); }
.profiles__tab .icon { margin-left: auto; color: var(--muted); }
.profiles__panel { padding: clamp(24px, 4vw, 44px); }
.profiles__question { font-family: var(--font-serif); font-size: clamp(24px, 2.4vw, 30px); font-weight: 600; color: var(--navy); line-height: 1.25; }
.checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 28px; margin-top: 26px; }
.checklist li { display: flex; gap: 12px; color: var(--text); }
.checklist .icon { margin-top: 4px; color: var(--success); width: 20px; height: 20px; stroke-width: 2; }
.checklist--single { grid-template-columns: 1fr; }
.profiles__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--line); }
.profiles__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 15px; color: var(--muted); }

/* ---------- Mon espace (orientation) ---------- */
.portal { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); overflow: hidden; }
.portal__form { padding: clamp(22px, 3vw, 36px); display: grid; gap: 28px; border-right: 1px solid var(--line); }
.portal__label { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-weight: 700; color: var(--navy); }
.portal__label span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--fill); color: var(--on-fill); font-size: 14px; }
.segmented { display: flex; flex-wrap: wrap; gap: 8px; }
.segmented button { min-height: 42px; padding: 0 16px; border: 1px solid var(--field-line); border-radius: var(--radius); background: var(--paper); font-size: 16.5px; font-weight: 600; color: var(--text); }
.segmented button:hover { border-color: var(--navy); }
.segmented button[aria-checked="true"] { background: var(--fill); border-color: var(--fill); color: var(--on-fill); }
.portal__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.portal__action { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); font-size: 16.5px; text-align: left; line-height: 1.3; color: var(--text); }
.portal__action .icon { color: var(--blue-dark); width: 20px; height: 20px; }
.portal__action:hover { border-color: var(--navy); }
.portal__action[aria-checked="true"] { border-color: var(--blue-dark); background: var(--blue-soft); color: var(--navy); font-weight: 600; box-shadow: inset 0 0 0 1px var(--blue-dark); }
.portal__result { padding: clamp(22px, 3vw, 36px); background: var(--surface); }
.portal__placeholder { color: var(--muted); }
.result__kicker { font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-dark); }
.result__title { margin-top: 8px; font-family: var(--font-serif); font-size: 26px; font-weight: 600; color: var(--navy); line-height: 1.25; }
.result__text { margin-top: 10px; color: var(--muted); }
.result__tip { display: flex; gap: 10px; margin-top: 18px; padding: 14px 16px; border-left: 3px solid var(--blue-dark); background: var(--paper); font-size: 16.5px; }
.result__tip .icon { color: var(--blue-dark); margin-top: 3px; }
.result__ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.result__choices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.result__choices button { min-height: 40px; padding: 0 14px; border: 1px solid var(--navy); border-radius: var(--radius); background: var(--paper); color: var(--navy); font-weight: 600; }
.result__choices button:hover { background: var(--fill); border-color: var(--fill); color: var(--on-fill); }
.tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.tool { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); display: flex; flex-direction: column; gap: 8px; }
.tool__name { display: flex; align-items: center; gap: 10px; font-size: 20px; font-weight: 700; color: var(--navy); }
.tool__name span { width: 10px; height: 10px; border-radius: 2px; }
.tool p { color: var(--muted); font-size: 16.5px; }
.tool__links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: auto; padding-top: 10px; }

/* ---------- Méthode ---------- */
.steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.steps__item { padding-top: 22px; border-top: 3px solid var(--navy); }
.steps__num { display: block; font-size: 15px; font-weight: 700; color: var(--blue-dark); letter-spacing: .06em; }
.steps__item h3 { margin-top: 8px; font-size: 20px; }
.steps__item p { margin-top: 8px; color: var(--muted); font-size: 16.5px; }
.values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 48px; }
.values li { padding: 24px; background: var(--surface); border-radius: var(--radius-l); }
.values strong { display: block; font-family: var(--font-serif); font-size: 22px; color: var(--navy); }
.values span { display: block; margin-top: 6px; color: var(--muted); font-size: 16.5px; }

/* ---------- Facturation électronique ---------- */
.einvoice { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.timeline { display: grid; gap: 0; margin-top: 8px; }
.timeline li { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 20px; padding: 18px 0; border-top: 1px solid var(--line); }
.section--navy .timeline li { border-color: rgba(255, 255, 255, .18); }
.timeline time { font-weight: 700; color: var(--blue-dark); }
.section--navy .timeline time { color: #7FD0EA; }
.timeline strong { display: block; color: var(--navy); font-size: 18.5px; }
.timeline span { display: block; color: var(--muted); font-size: 16.5px; }
.section--navy .timeline span { color: rgba(255, 255, 255, .72); }
.source-note { margin-top: 16px; font-size: 15px; color: var(--muted); }
.source-note a { text-decoration: underline; }
.section--navy .source-note, .section--navy .source-note a { color: rgba(255, 255, 255, .72); }

/* ---------- Questionnaires (diagnostics) ---------- */
.diag { padding: clamp(22px, 3vw, 36px); border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); color: var(--text); }
.diag__kicker { font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-dark); }
.diag h3, .diag h2 { margin: 6px 0 12px; font-family: var(--font-serif); font-size: 26px; color: var(--navy); }
.diag__q { margin: 0; padding: 18px 0; border: 0; border-top: 1px solid var(--line); }
.diag__q legend { float: left; width: 100%; margin-bottom: 12px; padding: 0; font-weight: 700; color: var(--navy); }
.diag__progress { height: 6px; margin: 8px 0 4px; background: var(--surface); border-radius: 3px; overflow: hidden; }
.diag__progress span { display: block; height: 100%; width: 0; background: var(--blue-dark); transition: width .2s; }
.diag__result { margin-top: 8px; padding: 22px; border-radius: var(--radius); background: var(--blue-soft); }
.diag__result h4 { font-family: var(--font-serif); font-size: 21px; color: var(--navy); }
.diag__result p { margin-top: 6px; }
.diag__result ul { display: grid; gap: 8px; margin: 14px 0 18px; }
.diag__result li { display: flex; gap: 10px; }
.diag__result li .icon { color: var(--success); margin-top: 4px; }
.diag__legal { margin-top: 14px; font-size: 14.5px; color: var(--muted); }
.score { display: grid; gap: 14px; margin: 18px 0; }
.score__row { display: grid; grid-template-columns: 200px minmax(0, 1fr) 70px; gap: 14px; align-items: center; font-size: 16px; }
.score__bar { height: 10px; border-radius: 5px; background: var(--paper); overflow: hidden; }
.score__bar span { display: block; height: 100%; background: var(--blue-dark); }
.score__row b { text-align: right; color: var(--navy); font-variant-numeric: tabular-nums; }

/* ---------- Formulaires ---------- */
.field { display: grid; gap: 6px; }
.field__label { font-size: 16px; font-weight: 700; color: var(--navy); }
.field__input { display: flex; align-items: center; border: 1px solid var(--field-line); border-radius: var(--radius); background: var(--paper); transition: border-color .15s, box-shadow .15s; }
.field__input:focus-within { border-color: var(--blue-dark); box-shadow: 0 0 0 3px rgba(24, 145, 182, .2); }
.field__input input, .field__input textarea, .field__input select { width: 100%; padding: 12px 14px; border: 0; background: none; font: inherit; font-size: 17px; color: var(--navy); outline: none; }
.field__input em { padding-right: 14px; font-style: normal; color: var(--muted); }
.field__help { font-size: 15px; color: var(--muted); }
.choices { display: flex; flex-wrap: wrap; gap: 8px; clear: both; }
.choices label { position: relative; }
.choices input { position: absolute; opacity: 0; inset: 0; cursor: pointer; margin: 0; }
.choices span { display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px; border: 1px solid var(--field-line); border-radius: var(--radius); background: var(--paper); font-size: 16.5px; color: var(--text); transition: border-color .15s, background-color .15s; }
.choices label:hover span { border-color: var(--navy); }
.choices input:checked + span { background: var(--fill); border-color: var(--fill); color: var(--on-fill); }
.choices input:focus-visible + span { outline: 3px solid var(--blue); outline-offset: 2px; }
.form { display: grid; gap: 24px; padding: clamp(22px, 4vw, 40px); border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); }
.form__group { margin: 0; padding: 0; border: 0; display: grid; gap: 10px; }
.form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.consent { display: flex; gap: 12px; font-size: 15.5px; color: var(--muted); }
.consent input { margin-top: 4px; accent-color: var(--blue-dark); width: 18px; height: 18px; flex: none; }
.consent a { text-decoration: underline; }
.form .btn { justify-self: start; }
.notice { padding: 14px 18px; border-radius: var(--radius); font-size: 16.5px; border-left: 4px solid currentColor; }
.notice--success { background: var(--success-bg); color: var(--success); }
.notice--error { background: var(--danger-bg); color: var(--danger); }
.notice--info { background: var(--blue-soft); color: var(--navy); border-color: var(--blue-dark); }

/* ---------- Équipe ---------- */
.team { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.member { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 24px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); }
.member__media { aspect-ratio: 4 / 5; border-radius: var(--radius); background: var(--band); overflow: hidden; display: grid; place-items: center; }
.member__media img { width: 100%; height: 100%; object-fit: cover; }
.member__monogram { font-family: var(--font-serif); font-size: 48px; font-weight: 600; color: #fff; letter-spacing: .02em; }
.member h3 { font-family: var(--font-serif); font-size: 24px; }
.member__role { margin-top: 2px; font-weight: 600; color: var(--blue-dark); }
.member p:not([class]) { margin-top: 12px; color: var(--muted); font-size: 16.5px; }
.member__spec { margin-top: 12px; font-size: 15.5px; color: var(--text); }
.member__spec strong { color: var(--navy); }

/* ---------- Témoignages ---------- */
.reviews { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.review { margin: 0; display: flex; flex-direction: column; gap: 20px; padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); }
.review blockquote { margin: 0; position: relative; padding-top: 28px; }
.review blockquote::before { content: "\201C"; position: absolute; top: -14px; left: -2px; font-family: var(--font-serif); font-size: 64px; color: var(--blue); line-height: 1; }
.review blockquote p { font-size: 17px; color: var(--text); }
.review figcaption { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.review figcaption strong { display: block; color: var(--navy); }
.review figcaption small { color: var(--muted); font-size: 15px; }
.review__src { margin-left: auto; font-size: 14px; color: var(--muted); white-space: nowrap; text-decoration: underline; }

/* ---------- Ressources & tutoriels ---------- */
.post-card { display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); position: relative; }
.post-card:hover { border-color: var(--blue); }
.post-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: 15px; color: var(--muted); }
.post-card__title { font-family: var(--font-serif); font-size: 22px; font-weight: 600; color: var(--navy); line-height: 1.3; }
.post-card__title a { color: inherit; }
.post-card__title a::after { content: ""; position: absolute; inset: 0; }
.post-card p { color: var(--muted); font-size: 16.5px; }
.filters { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin-bottom: 32px; padding: 20px; background: var(--surface); border-radius: var(--radius-l); }
.filters .field { flex: 1 1 220px; }
.empty { padding: 40px; text-align: center; border: 1px dashed var(--line); border-radius: var(--radius-l); color: var(--muted); }

/* ---------- Contenu éditorial ---------- */
.content-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(32px, 5vw, 72px); align-items: start; }
.aside { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 20px; }
.aside__box { padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); }
.aside__box--navy { background: var(--band); border-color: var(--band); color: rgba(255, 255, 255, .85); }
.aside__box--navy h2, .aside__box--navy strong { color: #fff; }
.aside__box h2 { font-size: 21px; margin-bottom: 10px; }
.aside__box p { font-size: 16.5px; }
.aside__box .btn { margin-top: 16px; }
.toc { display: grid; gap: 2px; font-size: 16px; }
.toc a { display: block; padding: 6px 0 6px 12px; color: var(--text); border-left: 2px solid var(--line); }
.toc a:hover { color: var(--blue-dark); border-color: var(--blue-dark); }
.prose { max-width: 760px; font-size: 18.5px; line-height: 1.7; }
.prose > * + * { margin-top: 1em; }
.prose h2 { margin-top: 2em; font-size: clamp(26px, 2.6vw, 32px); }
.prose h3 { margin-top: 1.6em; font-size: 21px; }
.prose ul, .prose ol { padding-left: 1.3em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: .4em; }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.prose strong { color: var(--navy); }
.prose table { width: 100%; border-collapse: collapse; font-size: 16.5px; }
.prose th, .prose td { padding: 10px 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.prose th { background: var(--surface); color: var(--navy); }
.prose blockquote { margin: 1.5em 0; padding: 16px 20px; border-left: 4px solid var(--blue-dark); background: var(--surface); }
.table-wrap { overflow-x: auto; }
.callout { padding: 20px 24px; border-left: 4px solid var(--blue-dark); background: var(--blue-soft); border-radius: 0 var(--radius) var(--radius) 0; }
.callout strong { color: var(--navy); }

/* FAQ (details/summary natif, accessible sans JS) */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 20px 4px; cursor: pointer; list-style: none; font-weight: 700; font-size: 18.5px; color: var(--navy); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--line); border-radius: 50%; font-weight: 400; font-size: 20px; color: var(--blue-dark); }
.faq details[open] summary::after { content: "\2212"; }
.faq__answer { padding: 0 4px 22px; color: var(--text); max-width: 760px; }
.faq__answer > * + * { margin-top: .8em; }
.faq-group + .faq-group { margin-top: 48px; }
.faq-group h2 { font-size: 26px; margin-bottom: 12px; }

/* Parcours de création (étapes) */
.journey { display: grid; gap: 16px; }
.journey__step { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 20px; padding: 24px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--paper); }
.journey__step.is-done { background: var(--surface); }
.journey__num { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--navy); font-family: var(--font-serif); font-size: 20px; font-weight: 600; color: var(--navy); }
.journey__step.is-done .journey__num { background: var(--success); border-color: var(--success); color: var(--on-fill); }
.journey__step h3 { font-size: 21px; }
.journey__step ul { margin-top: 10px; padding-left: 1.2em; list-style: disc; display: grid; gap: 4px; }
.journey__step > div > p { margin-top: 6px; color: var(--muted); }
.journey__af { margin-top: 14px; padding: 14px 16px; border-left: 3px solid var(--blue-dark); background: var(--blue-soft); font-size: 16.5px; }
.journey__af strong { color: var(--navy); }
.journey__check { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; font-size: 16px; font-weight: 600; color: var(--navy); cursor: pointer; }
.journey__check input { width: 20px; height: 20px; accent-color: var(--success); }
.progressbar { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; font-weight: 600; color: var(--navy); }
.progressbar div { flex: 1; height: 8px; border-radius: 4px; background: var(--surface); overflow: hidden; }
.progressbar span { display: block; height: 100%; width: 0; background: var(--success); transition: width .2s; }

/* Échéancier */
.deadlines { display: grid; gap: 0; border-top: 1px solid var(--line); }
.deadline { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 20px; align-items: start; padding: 18px 4px; border-bottom: 1px solid var(--line); }
.deadline time { font-weight: 700; color: var(--navy); }
.deadline strong { display: block; color: var(--navy); }
.deadline p { color: var(--muted); font-size: 16.5px; }
.deadline__tags { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.month-title { margin: 40px 0 8px; font-size: 24px; }

/* Recherche / assistant d'orientation */
.search-dialog { width: min(720px, calc(100% - 32px)); max-height: min(80vh, 720px); margin: 10vh auto auto; padding: 0; border: 1px solid var(--line); border-radius: var(--radius-l); box-shadow: 0 20px 60px rgba(21, 27, 61, .25); color: var(--text); }
.search-dialog::backdrop { background: var(--overlay); }
.search-dialog__head { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.search-dialog__head .icon { color: var(--muted); width: 22px; height: 22px; }
.search-dialog__head input { flex: 1; min-width: 0; border: 0; font: inherit; font-size: 19px; color: var(--navy); outline: none; background: none; }
.search-dialog__head button { border: 0; background: none; color: var(--muted); padding: 6px; }
.search-dialog__body { padding: 12px; overflow-y: auto; max-height: calc(min(80vh, 720px) - 140px); }
.search-dialog__hint { padding: 12px; font-size: 15.5px; color: var(--muted); }
.search-dialog__hint button { margin: 6px 6px 0 0; padding: 6px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--navy); font-size: 15px; }
.search-results a { display: block; padding: 12px; border-radius: var(--radius); color: var(--text); }
.search-results a:hover, .search-results a:focus { background: var(--surface); outline: none; }
.search-results strong { display: block; color: var(--navy); }
.search-results small { color: var(--muted); }
.search-results .tag { margin-right: 8px; }
.search-dialog__foot { padding: 14px 20px; border-top: 1px solid var(--line); background: var(--surface); font-size: 15.5px; display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; }

/* ---------- Appel à l'action final ---------- */
.cta-band { background: var(--band); color: rgba(255, 255, 255, .85); }
.cta-band__inner { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 48px; align-items: center; padding-block: clamp(48px, 6vw, 80px); }
.cta-band h2 { color: #fff; font-size: clamp(30px, 3.4vw, 42px); }
.cta-band p { margin-top: 14px; font-size: 19px; }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.cta-band__modes { display: grid; gap: 0; }
.cta-band__modes li { display: flex; gap: 14px; padding: 16px 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.cta-band__modes .icon { color: #7FD0EA; margin-top: 4px; }
.cta-band__modes strong { display: block; color: #fff; }
.cta-band__modes small { font-size: 16px; color: rgba(255, 255, 255, .72); }

/* ---------- Pied de page ---------- */
.site-footer { background: var(--navy-deep); color: rgba(255, 255, 255, .75); padding: clamp(56px, 7vw, 80px) 0 28px; font-size: 16.5px; }
.site-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1.3fr; gap: 36px; }
.site-footer__brand img { width: 170px; }
.site-footer__brand p { margin-top: 18px; max-width: 300px; }
.site-footer__ordre { display: flex; gap: 10px; font-size: 15px; }
.site-footer__ordre .icon { color: #7FD0EA; margin-top: 3px; }
.site-footer__title { font-family: var(--font-sans); font-size: 15px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin-bottom: 16px; }
.site-footer__links { display: grid; gap: 9px; }
.site-footer a { color: rgba(255, 255, 255, .8); }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer__contact { display: grid; gap: 12px; font-style: normal; }
.site-footer__contact > * { display: flex; gap: 12px; line-height: 1.5; }
.site-footer__contact .icon { color: #7FD0EA; margin-top: 4px; }
.site-footer__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .15); font-size: 14.5px; color: rgba(255, 255, 255, .6); }
.site-footer__bottom ul { display: flex; flex-wrap: wrap; align-items: baseline; gap: 20px; }
.site-footer__credit { font-size: 13px; color: rgba(255, 255, 255, .5); }
.site-footer__credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.site-footer__credit a:hover { color: #fff; }

/* ---------- Apparition discrète ---------- */
.js [data-reveal] { opacity: 0; transform: translateY(12px); transition: opacity .5s ease, transform .5s ease; }
.js [data-reveal].is-in { opacity: 1; transform: none; }
.is-preview [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1240px) {
	.nav__link { padding: 10px 8px; font-size: 16.5px; }
	.site-footer__grid { grid-template-columns: repeat(4, 1fr); }
	.site-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
	:root { --header-h: 72px; }
	.topbar__info { display: none; }
	.topbar__inner { justify-content: flex-end; }
	.nav-toggle { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); color: var(--navy); }
	.header-tools { margin-left: auto; display: flex; gap: 8px; }
	.header-tools .search-toggle { display: grid; width: 46px; height: 46px; }
	.search-toggle--desktop { display: none; }
	.nav-toggle__close { display: none; }
	.nav-open .nav-toggle__open { display: none; }
	.nav-open .nav-toggle__close { display: block; }
	.nav { position: fixed; inset: var(--nav-top, 112px) 0 0; z-index: 40; flex-direction: column; align-items: stretch; gap: 0; padding: 8px var(--gutter) 32px; background: var(--paper); overflow-y: auto; visibility: hidden; opacity: 0; transition: opacity .2s, visibility .2s; border-top: 1px solid var(--line); }
	.nav-open .nav { visibility: visible; opacity: 1; }
	.nav-open { overflow: hidden; }
	.nav__list { flex-direction: column; align-items: stretch; margin: 0; }
	.nav__link { width: 100%; justify-content: space-between; padding: 16px 4px; font-size: 19px; border-bottom: 1px solid var(--line); border-radius: 0; }
	.nav__link:hover, .nav__item:focus-within > .nav__link { background: none; }
	.nav__sub { position: static; display: none; min-width: 0; padding: 4px 0 12px 12px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
	.nav__item.is-open > .nav__sub { display: block; }
	.nav__item.is-open > .nav__link .icon { transform: rotate(180deg); }
	.nav__actions { flex-direction: column; align-items: stretch; margin-top: 24px; }
	.nav__actions .btn { min-height: 52px; }
	.nav__mobile-only { display: grid; gap: 12px; margin-top: 24px; }
	.nav__mobile-only a { display: flex; align-items: center; gap: 10px; color: var(--navy); }
	.nav__mobile-only .icon { color: var(--blue-dark); }
	.home-hero__inner, .einvoice, .content-grid, .cta-band__inner, .portal { grid-template-columns: 1fr; }
	.portal__form { border-right: 0; border-bottom: 1px solid var(--line); }
	.aside { position: static; }
	.profiles { grid-template-columns: 1fr; }
	.profiles__tabs { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); scrollbar-width: thin; }
	.profiles__tab { flex: none; width: auto; border-bottom: 0; border-right: 1px solid var(--line); padding: 16px 18px; font-size: 16.5px; }
	.profiles__tab[aria-selected="true"] { box-shadow: inset 0 -3px 0 var(--blue-dark); }
	.profiles__tab .icon { display: none; }
	.cards, .tools, .reviews, .cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 32px; }
	.keyfacts__list { grid-template-columns: repeat(2, 1fr); }
	.keyfacts__list li:nth-child(3) { border-left: 0; }
	.keyfacts__list li:nth-child(n+3) { border-top: 1px solid var(--line); }
	.team { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
	body { font-size: 17px; }
	.topbar { font-size: 14px; }
	.topbar ul { gap: 16px; }
	.topbar__hide-sm { display: none !important; }
	.brand, .brand img { width: 124px; }
	.home-hero__ctas .btn, .page-hero__actions .btn, .cta-band__actions .btn { flex: 1 1 100%; }
	.cards, .cards--2, .cards--4, .tools, .reviews, .checklist, .portal__actions, .form__grid, .values, .steps { grid-template-columns: 1fr; }
	.member { grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 18px; }
	.member__monogram { font-size: 32px; }
	.timeline li, .deadline { grid-template-columns: 1fr; gap: 4px; }
	.deadline__tags { justify-content: flex-start; }
	.keyfacts__list li { padding: 18px 16px; }
	.keyfacts__value { font-size: 28px; }
	.keyfacts__value--text { font-size: 18px; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.journey__step { grid-template-columns: 1fr; gap: 12px; padding: 20px; }
	.section-head--row { display: block; }
	.section-head--row .link { margin-top: 16px; }
	.score__row { grid-template-columns: 1fr 60px; }
	.score__bar { grid-column: 1 / -1; grid-row: 2; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
	.js [data-reveal] { opacity: 1; transform: none; }
}

@media print {
	.topbar, .site-header, .site-footer, .cta-band, .nav, .search-dialog, .no-print { display: none !important; }
	body { font-size: 11pt; color: #000; }
	.section { padding-block: 12pt; }
	.page-hero { background: none; border: 0; padding: 0 0 12pt; }
}
.section--navy .timeline strong { color: #fff; }

/* ---------- Philosophie, valeurs, histoire, vidéos ---------- */
.philosophy { border-block: 1px solid var(--line); }
.philosophy__signature { margin-top: 10px; font-size: clamp(28px, 3.2vw, 40px); max-width: 900px; }
.philosophy__quotes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-top: 32px; border-top: 1px solid var(--line); }
.philosophy__quotes li { padding: 24px 24px 0 0; }
.philosophy__quotes li + li { padding-left: 24px; border-left: 1px solid var(--line); }
.philosophy__quotes blockquote { margin: 0; }
.philosophy__quotes p { font-family: var(--font-serif); font-size: 19px; line-height: 1.45; color: var(--navy); }
.values--grid { margin-top: 0; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.values--grid li { grid-column: span 3; }
.values--grid li:nth-child(-n+3) { grid-column: span 4; }
.values--grid li { background: var(--paper); border: 1px solid var(--line); }
.history li { grid-template-columns: 120px minmax(0, 1fr); align-items: baseline; }
.history time { font-family: var(--font-serif); font-size: 22px; line-height: 1.2; }
.history span { color: var(--text) !important; font-size: 17.5px !important; }
.tuto-video { width: 100%; aspect-ratio: 16 / 9; border-radius: var(--radius); background: var(--band); }
.site-footer__devise { font-family: var(--font-serif); font-size: 18px; color: #fff; }
@media (max-width: 1100px) {
	.philosophy__quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.values--grid li, .values--grid li:nth-child(-n+3) { grid-column: span 6; }
	.values--grid li:nth-child(3) { grid-column: span 12; }
	.philosophy__quotes li:nth-child(3) { border-left: 0; padding-left: 0; }
}
@media (max-width: 680px) {
	.philosophy__quotes { grid-template-columns: 1fr; }
	.values--grid li, .values--grid li:nth-child(-n+3) { grid-column: span 12; }
	.philosophy__quotes li, .philosophy__quotes li + li { padding: 18px 0 0; border-left: 0; }
	.history li { grid-template-columns: 1fr; }
}

/* ---------- Fiche Google : note et carte ---------- */
.g-rating { display: grid; gap: 10px; justify-items: start; }
.g-rating__score { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; color: var(--muted); }
.g-rating__score strong { font-family: var(--font-serif); font-size: 36px; color: var(--navy); line-height: 1; }
.g-rating__score small { width: 100%; font-size: 15px; }
.g-stars { --r: 5; position: relative; display: inline-block; font-size: 20px; letter-spacing: 2px; line-height: 1; }
.g-stars::before { content: "★★★★★"; background: linear-gradient(90deg, #E8A317 calc(var(--r) / 5 * 100%), var(--line) 0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.g-rating__links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.section-head--row .g-rating { margin-bottom: clamp(32px, 4vw, 48px); justify-items: end; }
.map { position: relative; aspect-ratio: 16 / 7; min-height: 320px; border: 1px solid var(--line); border-radius: var(--radius-l); overflow: hidden; background: var(--paper); }
.map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.map__placeholder { position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px; padding: 24px; text-align: center; background: repeating-linear-gradient(45deg, var(--surface) 0 12px, var(--paper) 12px 24px); }
.map__placeholder > .icon { width: 36px; height: 36px; color: var(--blue-dark); }
.map__placeholder small { max-width: 460px; font-size: 14.5px; color: var(--muted); }
.map__placeholder small a { text-decoration: underline; }
@media (max-width: 680px) { .map { aspect-ratio: auto; min-height: 380px; } .section-head--row .g-rating { justify-items: start; } }

.history li.is-current { margin-top: 8px; padding: 22px 24px; border: 1px solid var(--blue); border-radius: var(--radius-l); background: var(--blue-soft); }
.history li.is-current time { color: var(--navy); }
.history time small { display: block; margin-top: 4px; font-family: var(--font-sans); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-dark); }
.history li.is-current span { color: var(--navy) !important; font-weight: 600; }
.history__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.history__links .tag { background: var(--paper); border: 1px solid var(--line); font-size: 15px; padding: 6px 12px; }
.history__links .tag:hover { border-color: var(--blue-dark); }

/* ---------- Devenir client (étapes) ---------- */
.quote__progress { height: 6px; border-radius: 3px; background: var(--surface); overflow: hidden; }
.quote__progress span { display: block; height: 100%; width: 25%; background: var(--blue-dark); transition: width .2s; }
.quote__count { font-size: 15px; color: var(--muted); }
.quote__step { margin: 0; padding: 0; border: 0; display: grid; gap: 12px; }
.quote__step legend { display: grid; gap: 6px; margin-bottom: 8px; padding: 0; }
.quote__step legend strong { font-family: var(--font-serif); font-size: 26px; font-weight: 600; color: var(--navy); }
.js .quote [data-quote-step]:not(.is-active) { display: none; }
.quote__nav { display: flex; flex-wrap: wrap; gap: 12px; }
.quote__nav [data-quote-next], .quote__nav [data-quote-submit] { margin-left: auto; }
.quote .choices input[type="checkbox"] + span::before { content: ""; width: 14px; height: 14px; margin-right: 8px; border: 1.5px solid currentColor; border-radius: 3px; }
.quote .choices input[type="checkbox"]:checked + span::before { background: var(--on-fill); box-shadow: inset 0 0 0 3px var(--fill); }
.alerts .choices input[type="checkbox"] + span::before { content: ""; width: 14px; height: 14px; margin-right: 8px; border: 1.5px solid currentColor; border-radius: 3px; }
.alerts .choices input[type="checkbox"]:checked + span::before { background: var(--on-fill); box-shadow: inset 0 0 0 3px var(--fill); }

/* ---------- Études de cas ---------- */
.case { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: var(--radius-l); overflow: hidden; }
.case__block { padding: clamp(24px, 3vw, 36px); background: var(--paper); }
.case__block + .case__block { border-left: 1px solid var(--line); }
.case__block--result { background: var(--blue-soft); }
.case__step { display: block; margin-bottom: 14px; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue-dark); }
.case__block > p { font-size: 18px; color: var(--text); }
.case__figures { margin-top: 24px; border: 1px solid var(--line); border-radius: var(--radius-l); background: var(--surface); grid-template-columns: repeat(3, 1fr); }
.case__quote { margin: 40px 0 0; padding: 28px 32px; border-left: 4px solid var(--blue-dark); background: var(--surface); }
.case__quote blockquote { margin: 0; }
.case__quote p { font-family: var(--font-serif); font-size: clamp(20px, 2vw, 24px); line-height: 1.4; color: var(--navy); }
.case__quote figcaption { margin-top: 12px; font-weight: 600; color: var(--muted); }
.case-card__figure { color: var(--muted); font-size: 16px; }
.case-card__figure strong { font-family: var(--font-serif); font-size: 26px; color: var(--navy); }
@media (max-width: 1100px) { .case { grid-template-columns: 1fr; } .case__block + .case__block { border-left: 0; border-top: 1px solid var(--line); } }
@media (max-width: 680px) { .case__figures { grid-template-columns: 1fr; } .case__figures li + li { border-left: 0; border-top: 1px solid var(--line); } }

/* ---------- Photographies ---------- */
.photo { margin: 0; position: relative; }
.photo img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-l); }
.photo--wide { margin-bottom: 32px; }
.photo--wide img { aspect-ratio: 21 / 8; object-position: center 15%; }
.photo--portrait img { aspect-ratio: 4 / 5; }
.photo__credit { margin-top: 8px; font-size: 13px; color: var(--muted); }
.photo__credit a { color: inherit; }
.photo__credit a:hover { text-decoration: underline; }
.philosophy--photo .philosophy__inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.philosophy--photo .philosophy__quotes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.philosophy--photo .philosophy__quotes li:nth-child(3) { border-left: 0; padding-left: 0; }
.philosophy--photo .philosophy__quotes li:nth-child(n+3) { border-top: 1px solid var(--line); }
@media (max-width: 1100px) {
	.philosophy--photo .philosophy__inner { grid-template-columns: 1fr; }
	.photo--portrait img { aspect-ratio: 16 / 10; }
}
@media (max-width: 680px) { .photo--wide img { aspect-ratio: 4 / 3; } }
