/* ==========================================================================
   Émilie Billon — Site sur mesure
   Direction artistique « L'entre-deux » — Eole Informatique
   Toutes les classes sont préfixées « eb- » pour éviter les conflits.
   ========================================================================== */

/* ---------- Polices (auto-hébergées, licence OFL) ---------- */
@font-face {
	font-family: "EB Newsreader";
	font-style: normal;
	font-display: swap;
	font-weight: 200 800;
	src: url("../fonts/newsreader-latin-opsz-normal.woff2") format("woff2-variations");
}
@font-face {
	font-family: "EB Newsreader";
	font-style: italic;
	font-display: swap;
	font-weight: 200 800;
	src: url("../fonts/newsreader-latin-opsz-italic.woff2") format("woff2-variations");
}
@font-face {
	font-family: "EB Hanken";
	font-style: normal;
	font-display: swap;
	font-weight: 100 900;
	src: url("../fonts/hanken-grotesk-latin-wght-normal.woff2") format("woff2-variations");
}

/* ---------- Jetons de design ---------- */
:root {
	--eb-nuit: #24161f;
	--eb-nuit-2: #2e1d28;
	--eb-nuit-3: #3d2935;
	--eb-poudre: #f4ece8;
	--eb-brume: #ebdfda;
	--eb-lin: #faf5f2;
	--eb-encre: #2a1d26;
	--eb-muted: #66545f;
	--eb-mure: #7a2e54;
	--eb-mure-2: #63223f;
	--eb-rose: #e59aa8;
	--eb-eau: #86b9b4;
	--eb-lilas: #b9a6d9;
	--eb-line: rgba(42, 29, 38, 0.14);
	--eb-line-light: rgba(255, 236, 242, 0.16);
	--eb-on-dark: #f7edf0;
	--eb-on-dark-2: rgba(247, 237, 240, 0.74);

	--eb-serif: "EB Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
	--eb-sans: "EB Hanken", "Segoe UI", system-ui, -apple-system, sans-serif;

	--eb-wrap: 1280px;
	--eb-gut: clamp(20px, 4.6vw, 64px);
	--eb-sec: clamp(88px, 11vw, 168px);
	--eb-radius: 26px;
	--eb-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--eb-header-h: 76px;

	--eb-fs-display: clamp(2.9rem, 7.4vw, 7.4rem);
	--eb-fs-h2: clamp(2.25rem, 4.9vw, 4.4rem);
	--eb-fs-h3: clamp(1.35rem, 1.9vw, 1.75rem);
	--eb-fs-lead: clamp(1.18rem, 1.55vw, 1.42rem);
	--eb-fs-body: 1.0625rem;
	--eb-fs-small: 0.875rem;
}

/* ---------- Base ---------- */
.eb-root {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--eb-header-h) + 16px);
	background: var(--eb-lin);
}
.eb-root.lenis,
.eb-root.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }

.eb-body {
	margin: 0;
	background: var(--eb-poudre);
	color: var(--eb-encre);
	font-family: var(--eb-sans);
	font-size: var(--eb-fs-body);
	line-height: 1.68;
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
:where(.eb-body) *,
:where(.eb-body) *::before,
:where(.eb-body) *::after { box-sizing: border-box; }
:where(.eb-body) img { max-width: 100%; height: auto; display: block; }
:where(.eb-body) a { color: inherit; }
:where(.eb-body) p { margin: 0 0 1em; }
:where(.eb-body) h1, :where(.eb-body) h2, :where(.eb-body) h3, :where(.eb-body) h4 { margin: 0; font-weight: inherit; }
:where(.eb-body) ul, :where(.eb-body) ol { margin: 0; padding: 0; list-style: none; }
:where(.eb-body) figure { margin: 0; }
:where(.eb-body) address { font-style: normal; }
:where(.eb-body) button { font: inherit; color: inherit; }
:where(.eb-body) ::selection { background: var(--eb-rose); color: var(--eb-nuit); }

.eb-body :focus-visible {
	outline: 2px solid var(--eb-mure);
	outline-offset: 3px;
	border-radius: 6px;
}
[data-tone="dark"] :focus-visible,
.eb-menu :focus-visible,
.eb-header.is-dark :focus-visible { outline-color: var(--eb-rose); }

.eb-main { display: block; outline: none; }

.eb-sr {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap; border: 0;
}
.eb-skip {
	position: fixed;
	left: 16px; top: -80px;
	z-index: 200;
	background: var(--eb-lin);
	color: var(--eb-encre);
	padding: 12px 18px;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 600;
	transition: top .2s;
}
.eb-skip:focus { top: 16px; }

.eb-wrap {
	width: 100%;
	max-width: calc(var(--eb-wrap) + var(--eb-gut) * 2);
	margin-inline: auto;
	padding-inline: var(--eb-gut);
}

.eb-section { padding-block: var(--eb-sec); position: relative; }

[data-tone="dark"] {
	background: var(--eb-nuit);
	color: var(--eb-on-dark);
}

/* ---------- Typographie ---------- */
.eb-display,
.eb-hero__title {
	font-family: var(--eb-serif);
	font-size: var(--eb-fs-display);
	font-weight: 300;
	font-optical-sizing: auto;
	line-height: 0.98;
	letter-spacing: -0.028em;
	text-wrap: balance;
}
.eb-display--s { font-size: clamp(2.6rem, 6.4vw, 6rem); }
.eb-display--m { font-size: clamp(2.7rem, 6.6vw, 6.4rem); }

.eb-h2 {
	font-family: var(--eb-serif);
	font-size: var(--eb-fs-h2);
	font-weight: 340;
	font-optical-sizing: auto;
	line-height: 1.03;
	letter-spacing: -0.022em;
	text-wrap: balance;
	margin-bottom: 0.5em;
}
.eb-h3 {
	font-family: var(--eb-serif);
	font-size: var(--eb-fs-h3);
	font-weight: 430;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin-bottom: 0.6em;
}
.eb-lead {
	font-family: var(--eb-serif);
	font-size: var(--eb-fs-lead);
	font-weight: 380;
	line-height: 1.45;
	max-width: 36em;
	letter-spacing: -0.005em;
}
.eb-small { font-size: var(--eb-fs-small); color: var(--eb-muted); line-height: 1.55; }
[data-tone="dark"] .eb-small { color: var(--eb-on-dark-2); }
:where(.eb-body) em { font-style: italic; }

.eb-head {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
	gap: 24px 64px;
	align-items: end;
	margin-bottom: clamp(40px, 6vw, 88px);
}
.eb-head .eb-h2 { margin-bottom: 0; }
.eb-head__text { margin: 0 0 0.4em; color: var(--eb-muted); max-width: 30em; }
[data-tone="dark"] .eb-head__text { color: var(--eb-on-dark-2); }

/* ---------- Liens & boutons ---------- */
.eb-link {
	text-decoration: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-size: 100% 1px;
	background-position: 0 100%;
	background-repeat: no-repeat;
	padding-bottom: 2px;
	transition: background-size .5s var(--eb-ease), color .3s;
}
.eb-link:hover { background-size: 0 1px; background-position: 100% 100%; }
.eb-link--light { color: var(--eb-on-dark); }

.eb-actions { display: flex; flex-wrap: wrap; gap: 12px 14px; align-items: center; }

.eb-btn {
	--bg: var(--eb-mure);
	--fg: var(--eb-lin);
	position: relative;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 52px;
	padding: 0 26px;
	border-radius: 999px;
	background: var(--bg);
	color: var(--fg);
	font-family: var(--eb-sans);
	font-size: 0.97rem;
	font-weight: 600;
	letter-spacing: 0.005em;
	line-height: 1.2;
	text-decoration: none;
	border: 1px solid transparent;
	overflow: hidden;
	cursor: pointer;
	transition: color .4s var(--eb-ease), border-color .4s, transform .4s var(--eb-ease);
	white-space: nowrap;
}
.eb-btn::before {
	content: "";
	position: absolute;
	inset: -2px;
	z-index: -1;
	border-radius: inherit;
	background: radial-gradient(120% 140% at 0% 100%, var(--eb-rose) 0%, transparent 60%),
		radial-gradient(120% 140% at 100% 0%, var(--eb-eau) 0%, transparent 60%), var(--eb-lilas);
	opacity: 0;
	transform: scale(.85);
	transition: opacity .5s var(--eb-ease), transform .6s var(--eb-ease);
}
.eb-btn:hover::before,
.eb-btn:focus-visible::before { opacity: 1; transform: scale(1); }
.eb-btn:hover,
.eb-btn:focus-visible { color: var(--eb-nuit); }
.eb-btn:active { transform: scale(.98); }

.eb-btn--small { min-height: 42px; padding: 0 18px; font-size: 0.9rem; }
.eb-btn--light { --bg: var(--eb-lin); --fg: var(--eb-nuit); }
.eb-btn--ghost {
	--bg: transparent;
	--fg: var(--eb-encre);
	border-color: rgba(42, 29, 38, 0.3);
}
.eb-btn--ghost-light {
	--bg: transparent;
	--fg: var(--eb-on-dark);
	border-color: rgba(247, 237, 240, 0.34);
}
.eb-btn--ghost:hover, .eb-btn--ghost-light:hover { border-color: transparent; }

.eb-round {
	width: 52px; height: 52px;
	border-radius: 50%;
	border: 1px solid var(--eb-line);
	background: transparent;
	display: inline-grid;
	place-items: center;
	cursor: pointer;
	transition: background .35s, border-color .35s, color .35s;
}
.eb-round:hover { background: var(--eb-encre); color: var(--eb-lin); border-color: var(--eb-encre); }

/* ---------- Pastille « À valider » (visible pour les éditeurs uniquement) ---------- */
.eb-todo {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 10px 0;
	padding: 5px 12px;
	border-radius: 999px;
	background: #ffe58a;
	color: #3a2c00;
	font-family: var(--eb-sans);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.35;
	font-style: normal;
	letter-spacing: 0;
	box-shadow: 0 0 0 1px rgba(0,0,0,.08);
}
.eb-todo::before { content: "●"; font-size: 8px; color: #c58a00; }

/* ---------- En-tête ---------- */
.eb-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 100;
	height: var(--eb-header-h);
	color: var(--eb-encre);
	transition: color .45s var(--eb-ease), background-color .45s var(--eb-ease), transform .5s var(--eb-ease), box-shadow .45s;
}
.admin-bar .eb-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .eb-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .eb-header { top: 0; } }

.eb-header::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(250, 245, 242, 0.82);
	-webkit-backdrop-filter: saturate(1.4) blur(18px);
	backdrop-filter: saturate(1.4) blur(18px);
	opacity: 0;
	transition: opacity .45s var(--eb-ease), background-color .45s;
	box-shadow: 0 1px 0 var(--eb-line);
}
.eb-header.is-scrolled::before { opacity: 1; }
.eb-header.is-dark { color: var(--eb-on-dark); }
.eb-header.is-dark::before { background: rgba(36, 22, 31, 0.66); box-shadow: 0 1px 0 var(--eb-line-light); }
.eb-header.is-hidden { transform: translateY(-110%); }
.eb-menu-open .eb-header { color: var(--eb-encre); transform: none; }
.eb-menu-open .eb-header::before { opacity: 0; }

.eb-header__inner {
	position: relative;
	height: 100%;
	max-width: calc(var(--eb-wrap) + var(--eb-gut) * 2);
	margin-inline: auto;
	padding-inline: var(--eb-gut);
	display: flex;
	align-items: center;
	gap: 28px;
}

.eb-brand {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	margin-right: auto;
	min-width: 0;
}
.eb-brand__mark { position: relative; width: 34px; height: 22px; flex: none; }
.eb-brand__mark i {
	position: absolute;
	top: 0;
	width: 22px; height: 22px;
	border-radius: 50%;
	border: 1.4px solid currentColor;
	transition: transform .6s var(--eb-ease);
}
.eb-brand__mark i:first-child { left: 0; }
.eb-brand__mark i:last-child { left: 12px; }
.eb-brand:hover .eb-brand__mark i:first-child { transform: translateX(3px); }
.eb-brand:hover .eb-brand__mark i:last-child { transform: translateX(-3px); }
.eb-brand__text { display: flex; flex-direction: column; line-height: 1.1; min-width: 0; }
.eb-brand__name { font-family: var(--eb-serif); font-size: 1.3rem; font-weight: 430; letter-spacing: -0.01em; }
.eb-brand__role { font-size: 0.75rem; opacity: .72; letter-spacing: 0.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.eb-nav ul { display: flex; gap: 6px; }
.eb-nav a {
	position: relative;
	display: block;
	padding: 10px 14px;
	font-size: 0.94rem;
	font-weight: 500;
	text-decoration: none;
	border-radius: 999px;
	transition: background-color .3s;
}
.eb-nav a::after {
	content: "";
	position: absolute;
	left: 50%; bottom: 3px;
	width: 5px; height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0;
	transform: scale(0);
	transition: transform .4s var(--eb-ease), opacity .3s;
}
.eb-nav a:hover::after,
.eb-nav a[aria-current="page"]::after { opacity: 1; transform: scale(1); }

.eb-nav__has-sub { position: relative; }
.eb-nav__toggle {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 10px 14px;
	background: none;
	border: 0;
	border-radius: 999px;
	font-size: 0.94rem;
	font-weight: 500;
	cursor: pointer;
	position: relative;
}
.eb-nav__toggle svg { transition: transform .4s var(--eb-ease); }
.eb-nav__has-sub.is-open .eb-nav__toggle svg { transform: rotate(180deg); }
.eb-nav__toggle.is-current::after {
	content: "";
	position: absolute;
	left: 50%; bottom: 3px;
	width: 5px; height: 5px;
	margin-left: -2.5px;
	border-radius: 50%;
	background: currentColor;
}
.eb-sub {
	position: absolute;
	top: calc(100% + 8px);
	left: -12px;
	min-width: 290px;
	padding: 10px;
	border-radius: 20px;
	background: rgba(251, 247, 244, 0.97);
	-webkit-backdrop-filter: blur(18px);
	backdrop-filter: blur(18px);
	box-shadow: 0 24px 60px -24px rgba(42, 29, 38, 0.28), 0 0 0 1px var(--eb-line);
	color: var(--eb-encre);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .3s var(--eb-ease), transform .4s var(--eb-ease), visibility 0s .3s;
}
.eb-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.eb-nav__has-sub.is-open .eb-sub { opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--eb-ease), transform .4s var(--eb-ease); }
.eb-nav .eb-sub ul { display: block; }
.eb-nav .eb-sub a {
	display: block;
	padding: 11px 14px;
	border-radius: 12px;
	font-size: 0.95rem;
	transition: background-color .25s, color .25s;
}
.eb-nav .eb-sub a::after { display: none; }
.eb-nav .eb-sub a:hover,
.eb-nav .eb-sub a:focus-visible { background: var(--eb-poudre); }
.eb-nav .eb-sub a[aria-current="page"] { color: var(--eb-mure); font-weight: 600; }

.eb-burger {
	display: none;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0 4px 0 14px;
	background: none;
	border: 0;
	cursor: pointer;
	font-size: 0.92rem;
	font-weight: 600;
}
.eb-burger__lines { position: relative; width: 26px; height: 12px; }
.eb-burger__lines i {
	position: absolute;
	left: 0; width: 100%; height: 1.6px;
	background: currentColor;
	border-radius: 2px;
	transition: transform .45s var(--eb-ease), top .45s var(--eb-ease);
}
.eb-burger__lines i:first-child { top: 1px; }
.eb-burger__lines i:last-child { top: 9px; }
.eb-burger[aria-expanded="true"] .eb-burger__lines i:first-child { top: 5px; transform: rotate(45deg); }
.eb-burger[aria-expanded="true"] .eb-burger__lines i:last-child { top: 5px; transform: rotate(-45deg); }

@media (max-width: 1099px) {
	.eb-nav, .eb-header__cta { display: none; }
	.eb-burger { display: inline-flex; }
}
@media (max-width: 420px) {
	.eb-brand__role { display: none; }
	.eb-burger__label { display: none; }
}

/* Menu plein écran (mobile) */
.eb-menu {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: var(--eb-lin);
	color: var(--eb-encre);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: calc(var(--eb-header-h) + 32px) var(--eb-gut) calc(32px + env(safe-area-inset-bottom));
	overflow: hidden auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity .5s var(--eb-ease), visibility 0s .5s;
}
.eb-menu[hidden] { display: flex; }
.eb-menu.is-open { opacity: 1; visibility: visible; transition: opacity .5s var(--eb-ease); }
.eb-menu__halo {
	position: absolute;
	right: -30vmax; top: -10vmax;
	width: 80vmax; height: 80vmax;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(229,154,168,.32), transparent 62%);
	pointer-events: none;
}
.eb-menu__nav li { overflow: hidden; }
.eb-menu__nav a {
	display: block;
	padding: 10px 0;
	font-family: var(--eb-serif);
	font-size: clamp(2.2rem, 9.5vw, 3.6rem);
	font-weight: 320;
	line-height: 1.08;
	letter-spacing: -0.02em;
	text-decoration: none;
	transform: translateY(100%);
	transition: transform .7s var(--eb-ease);
}
.eb-menu.is-open .eb-menu__nav a { transform: none; }
.eb-menu.is-open .eb-menu__nav li:nth-child(2) a { transition-delay: .06s; }
.eb-menu.is-open .eb-menu__nav li:nth-child(3) a { transition-delay: .12s; }
.eb-menu__nav a[aria-current="page"] { color: var(--eb-mure); }
.eb-menu__group { margin: 8px 0; }
.eb-menu__label { margin: 14px 0 2px; font-size: 0.82rem; font-weight: 600; color: var(--eb-mure); }
.eb-menu__nav .eb-menu__sub { font-size: clamp(1.45rem, 6vw, 2.1rem); padding: 6px 0 6px 16px; border-left: 1px solid var(--eb-line); }
.eb-menu__nav ul ul li { overflow: hidden; }
.eb-menu__foot { position: relative; padding-top: 40px; }
.eb-menu__foot p { margin-top: 16px; color: var(--eb-muted); font-size: var(--eb-fs-small); }

/* ---------- Halos (motif signature) ---------- */
.eb-halos { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.eb-halo {
	position: absolute;
	width: 64vmax; height: 64vmax;
	border-radius: 50%;
	mix-blend-mode: multiply;
	will-change: transform;
}
.eb-halo--rose {
	left: -16vmax; top: -24vmax;
	background: radial-gradient(circle at center, rgba(229, 154, 168, 0.55) 0%, rgba(229, 154, 168, 0.2) 40%, transparent 66%);
}
.eb-halo--eau {
	right: -22vmax; top: -10vmax;
	background: radial-gradient(circle at center, rgba(134, 185, 180, 0.5) 0%, rgba(134, 185, 180, 0.18) 40%, transparent 66%);
}
.eb-grain {
	position: absolute;
	inset: 0;
	pointer-events: none;
	opacity: .09;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- Accueil : ouverture ---------- */
.eb-hero {
	position: relative;
	min-height: 92vh;
	min-height: 92svh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	isolation: isolate;
	background: var(--eb-lin);
}
.eb-hero__inner {
	position: relative;
	padding-top: calc(var(--eb-header-h) + 64px);
	padding-bottom: clamp(56px, 9vh, 104px);
}
.eb-hero__title { max-width: 13ch; margin-bottom: clamp(36px, 6vh, 64px); }
.eb-hero__facts {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 clamp(24px, 3vw, 48px);
	margin-bottom: clamp(32px, 5vh, 52px);
}
.eb-hero__facts li {
	position: relative;
	padding: 18px 0 0 22px;
	border-top: 1px solid var(--eb-line);
	font-family: var(--eb-serif);
	font-size: clamp(1.12rem, 1.45vw, 1.32rem);
	line-height: 1.38;
}
.eb-hero__facts li::before {
	content: "";
	position: absolute;
	left: 0; top: 27px;
	width: 13px; height: 9px;
	background:
		radial-gradient(circle at 4.5px 4.5px, var(--eb-rose) 4px, transparent 4.5px),
		radial-gradient(circle at 8.5px 4.5px, var(--eb-eau) 4px, transparent 4.5px);
}
.eb-hero__facts [data-count] { display: inline-block; font-variant-numeric: tabular-nums; color: var(--eb-mure); }
.eb-hero__rdv .eb-small { margin: 18px 0 0; }

/* ---------- Accueil : l'entre-deux ---------- */
.eb-between { position: relative; overflow: hidden; background: var(--eb-poudre); }
.eb-between__stage {
	position: relative;
	min-height: 100vh;
	min-height: 100svh;
	display: flex;
	align-items: center;
	padding-block: 96px;
}
.eb-between__halos { position: absolute; inset: 0; pointer-events: none; }
.eb-between__c,
.eb-between__meet {
	position: absolute;
	top: 50%;
	left: 50%;
	width: min(56vmin, 520px);
	aspect-ratio: 1;
	margin: calc(min(56vmin, 520px) / -2) 0 0 calc(min(56vmin, 520px) / -2);
	border-radius: 50%;
	mix-blend-mode: multiply;
	will-change: transform;
}
.eb-between__c--rose {
	background: radial-gradient(circle at 40% 40%, rgba(229, 154, 168, 0.85), rgba(229, 154, 168, 0.3) 55%, rgba(229, 154, 168, 0) 71%);
	transform: translateX(-22%);
}
.eb-between__c--eau {
	background: radial-gradient(circle at 60% 45%, rgba(134, 185, 180, 0.88), rgba(134, 185, 180, 0.3) 55%, rgba(134, 185, 180, 0) 71%);
	transform: translateX(22%);
}
.eb-between__meet {
	width: min(18vmin, 170px);
	margin: calc(min(18vmin, 170px) / -2) 0 0 calc(min(18vmin, 170px) / -2);
	background: radial-gradient(circle, rgba(150, 120, 190, 0.55), rgba(185, 166, 217, 0.3) 45%, transparent 70%);
	opacity: 0.55;
}
.eb-between__texts {
	position: relative;
	display: grid;
	gap: 40px;
}
.eb-between__line {
	font-family: var(--eb-serif);
	font-size: clamp(1.75rem, 4vw, 3.6rem);
	font-weight: 330;
	line-height: 1.12;
	letter-spacing: -0.02em;
	max-width: 17em;
	margin: 0;
	text-wrap: balance;
	text-shadow: 0 1px 24px rgba(250, 245, 242, 0.7);
}
.eb-between__line:nth-child(2) { justify-self: end; text-align: right; }
.eb-between.is-pinned .eb-between__texts { display: block; min-height: 50vh; }
.eb-between.is-pinned .eb-between__line {
	position: absolute;
	left: var(--eb-gut);
	right: var(--eb-gut);
	top: 50%;
	transform: translateY(-50%);
	max-width: 16em;
	margin-inline: auto;
	text-align: center;
	justify-self: auto;
}

/* ---------- Accueil : accompagnements ---------- */
.eb-services__list { border-top: 1px solid var(--eb-line); margin-top: clamp(24px, 3vw, 40px); }
.eb-services { background: var(--eb-poudre); }
.eb-service { border-bottom: 1px solid var(--eb-line); }
.eb-service__link {
	--mx: 50%;
	--my: 50%;
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr) 40px;
	gap: 16px 48px;
	align-items: center;
	padding: clamp(28px, 3.6vw, 46px) 0;
	text-decoration: none;
	isolation: isolate;
}
.eb-service__link::before {
	content: "";
	position: absolute;
	inset: 0 calc(var(--eb-gut) * -0.5);
	z-index: -1;
	border-radius: 28px;
	background:
		radial-gradient(360px circle at var(--mx) var(--my), rgba(229, 154, 168, 0.32), transparent 60%),
		radial-gradient(420px circle at calc(var(--mx) + 140px) var(--my), rgba(134, 185, 180, 0.28), transparent 62%);
	opacity: 0;
	transition: opacity .5s var(--eb-ease);
}
.eb-service__link:hover::before,
.eb-service__link:focus-visible::before { opacity: 1; }
.eb-service__title {
	font-family: var(--eb-serif);
	font-size: clamp(1.6rem, 2.9vw, 2.6rem);
	font-weight: 360;
	line-height: 1.08;
	letter-spacing: -0.018em;
	transition: transform .6s var(--eb-ease);
}
.eb-service__link:hover .eb-service__title { transform: translateX(10px); }
.eb-service__text { color: var(--eb-muted); max-width: 34em; }
.eb-service__who { font-size: var(--eb-fs-small); color: var(--eb-mure); font-weight: 600; line-height: 1.4; }
.eb-service__arrow {
	width: 40px; height: 40px;
	border-radius: 50%;
	display: grid; place-items: center;
	border: 1px solid var(--eb-line);
	transition: background .4s, color .4s, transform .5s var(--eb-ease);
}
.eb-service__link:hover .eb-service__arrow { background: var(--eb-encre); color: var(--eb-lin); transform: rotate(90deg); }

/* ---------- Mise en page « aside collant + contenu » ---------- */
.eb-split {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 48px clamp(40px, 7vw, 120px);
	align-items: start;
}
.eb-sticky { position: sticky; top: calc(var(--eb-header-h) + 40px); }

/* ---------- Thérapie de couple ---------- */
.eb-couple { background: var(--eb-lin); }
.eb-quote {
	position: relative;
	margin: 0 0 40px;
	padding-left: clamp(22px, 3vw, 40px);
}
.eb-quote::before {
	content: "";
	position: absolute;
	left: 0; top: 0.3em; bottom: 0.3em;
	width: 2px;
	border-radius: 2px;
	background: linear-gradient(var(--eb-rose), var(--eb-eau));
}
.eb-quote p {
	font-family: var(--eb-serif);
	font-style: italic;
	font-size: clamp(1.55rem, 2.7vw, 2.35rem);
	font-weight: 340;
	line-height: 1.26;
	letter-spacing: -0.012em;
	margin: 0;
}
.eb-couple__note { color: var(--eb-muted); max-width: 36em; }
.eb-couple__for { margin-top: clamp(40px, 5vw, 64px); }
.eb-publics {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 40px;
}
.eb-public { padding: 26px 0 8px; border-top: 1px solid var(--eb-line); }
.eb-public__title {
	font-family: var(--eb-serif);
	font-size: 1.32rem;
	font-weight: 450;
	line-height: 1.25;
	margin-bottom: 10px;
}
.eb-public p { color: var(--eb-muted); font-size: 0.98rem; }

/* ---------- Sexologie ---------- */
.eb-sexo { background: var(--eb-poudre); }
.eb-sexo__head {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 24px clamp(40px, 7vw, 120px);
	align-items: start;
	margin-bottom: clamp(40px, 5vw, 72px);
}
.eb-sexo__head p { color: var(--eb-muted); max-width: 36em; padding-top: 0.6em; }
.eb-troubles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 48px clamp(28px, 5vw, 80px);
	align-items: start;
}
.eb-sexo__note { margin-top: 40px; max-width: 46em; }

/* Onco-sexologie */
.eb-onco { background: var(--eb-lin); }
.eb-prose-block > p { color: var(--eb-muted); max-width: 40em; }
.eb-prose-block .eb-quote { margin: 44px 0 28px; }
.eb-onco__when { margin-top: clamp(40px, 5vw, 64px); }
.eb-signs { margin: 28px 0 32px; border-top: 1px solid var(--eb-line); }
.eb-sign {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: 8px 32px;
	padding: 20px 0;
	border-bottom: 1px solid var(--eb-line);
}
.eb-sign dt { font-family: var(--eb-serif); font-size: 1.18rem; font-weight: 450; line-height: 1.3; }
.eb-sign dd { margin: 0; color: var(--eb-muted); }

/* Accordéons */
.eb-accordion { border-top: 1px solid var(--eb-line); }
[data-tone="dark"] .eb-accordion { border-top-color: var(--eb-line-light); }
.eb-acc { border-bottom: 1px solid var(--eb-line); }
[data-tone="dark"] .eb-acc { border-bottom-color: var(--eb-line-light); }
.eb-acc summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 60px;
	padding: 14px 0;
	cursor: pointer;
	list-style: none;
	font-weight: 550;
	font-size: 1.02rem;
	line-height: 1.35;
}
.eb-acc summary::-webkit-details-marker { display: none; }
.eb-acc summary i {
	position: relative;
	flex: none;
	width: 30px; height: 30px;
	border-radius: 50%;
	border: 1px solid currentColor;
	opacity: .55;
	transition: transform .5s var(--eb-ease), opacity .3s;
}
.eb-acc summary i::before,
.eb-acc summary i::after {
	content: "";
	position: absolute;
	left: 50%; top: 50%;
	width: 10px; height: 1.4px;
	margin: -0.7px 0 0 -5px;
	background: currentColor;
}
.eb-acc summary i::after { transform: rotate(90deg); transition: transform .5s var(--eb-ease); }
.eb-acc[open] summary i { transform: rotate(180deg); opacity: 1; }
.eb-acc[open] summary i::after { transform: rotate(0deg); }
.eb-acc summary:hover i { opacity: 1; }
.eb-acc__body { overflow: hidden; }
.eb-acc__body p { margin: 0; padding: 0 44px 22px 0; color: var(--eb-muted); }
[data-tone="dark"] .eb-acc__body p { color: var(--eb-on-dark-2); }
.eb-acc__n { font-family: var(--eb-serif); font-style: italic; color: var(--eb-mure); margin-right: 4px; }

/* ---------- Seul ou à deux ---------- */
.eb-alone { background: var(--eb-poudre); }
.eb-alone__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 48px clamp(40px, 7vw, 120px);
	align-items: center;
}
.eb-alone__text p:not(.eb-lead) { color: var(--eb-muted); max-width: 36em; }
.eb-alone__figure { border-radius: var(--eb-radius); overflow: hidden; aspect-ratio: 4 / 3; }
.eb-alone__figure img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Témoignages ---------- */
.eb-testis__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 24px; }
.eb-testis__stage { position: relative; min-height: clamp(180px, 18vw, 230px); margin-top: 16px; }
.eb-testi { margin: 0; }
.eb-testi blockquote { margin: 0; }
.eb-testi p {
	font-family: var(--eb-serif);
	font-size: clamp(1.45rem, 2.9vw, 2.5rem);
	font-weight: 330;
	line-height: 1.28;
	letter-spacing: -0.012em;
	max-width: 27em;
	margin: 0;
}
.eb-testi p::before { content: "« "; color: var(--eb-mure); }
.eb-testi p::after { content: " »"; color: var(--eb-mure); }
.eb-testis__nav { display: flex; align-items: center; gap: 18px; margin-top: 32px; }
.eb-testis__count { margin: 0; font-variant-numeric: tabular-nums; color: var(--eb-muted); min-width: 4.5em; text-align: center; }
.eb-testis__note { margin-top: 24px; }

/* ---------- Tarifs ---------- */
.eb-price { background: var(--eb-lin); }
.eb-testis { background: var(--eb-lin); }
.eb-price__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 32px clamp(40px, 7vw, 120px);
	align-items: start;
}
.eb-price__card { padding-top: 6px; border-top: 1px solid var(--eb-line); }
.eb-price__amount {
	font-family: var(--eb-serif);
	font-size: clamp(1.4rem, 2vw, 1.8rem);
	font-weight: 340;
	line-height: 1;
	margin: 22px 0 28px;
}
.eb-price__amount span { font-size: clamp(4.5rem, 10vw, 8.5rem); font-weight: 280; letter-spacing: -0.04em; }
.eb-price__amount small { font-size: 1rem; font-family: var(--eb-sans); color: var(--eb-muted); margin-left: 8px; }
.eb-price__card p:not(.eb-price__amount) { color: var(--eb-muted); max-width: 34em; }

/* ---------- Appel final ---------- */
.eb-cta { position: relative; overflow: hidden; padding-block: clamp(104px, 13vw, 180px) clamp(72px, 8vw, 120px); isolation: isolate; background: var(--eb-brume); }
.eb-halos--cta .eb-halo--rose { left: 6%; top: auto; bottom: -48vmax; }
.eb-halos--cta .eb-halo--eau { right: 0; top: auto; bottom: -44vmax; }
.eb-cta__inner { position: relative; }
.eb-cta__title {
	font-family: var(--eb-serif);
	font-size: clamp(2.3rem, 5.4vw, 5rem);
	font-weight: 300;
	line-height: 1.03;
	letter-spacing: -0.026em;
	max-width: 14em;
	margin-bottom: 24px;
	text-wrap: balance;
}
.eb-cta__text { color: var(--eb-muted); font-size: 1.1rem; max-width: 34em; margin-bottom: 32px; }
.eb-cta__note { margin-top: 18px; }
.eb-more { position: relative; margin-top: clamp(64px, 8vw, 112px); }
.eb-more__title { font-size: 0.82rem; font-weight: 600; color: var(--eb-mure); margin-bottom: 14px; }
.eb-more ul { display: flex; flex-wrap: wrap; gap: 10px; }
.eb-more__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 999px;
	border: 1px solid rgba(42, 29, 38, 0.2);
	background: rgba(251, 247, 244, 0.6);
	text-decoration: none;
	font-weight: 500;
	font-size: 0.94rem;
	transition: background .3s, color .3s, border-color .3s;
}
.eb-more__link:hover { background: var(--eb-encre); color: var(--eb-lin); border-color: var(--eb-encre); }

/* ---------- Pied de page ---------- */
.eb-footer { background: var(--eb-lin); color: var(--eb-encre); padding-top: clamp(64px, 8vw, 104px); font-size: 0.97rem; border-top: 1px solid var(--eb-line); }
.eb-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) repeat(3, minmax(0, 2.5fr));
	gap: 40px;
	padding-bottom: clamp(48px, 6vw, 80px);
}
.eb-footer__name { font-family: var(--eb-serif); font-size: 2rem; font-weight: 340; line-height: 1.1; margin-bottom: 8px; }
.eb-footer__role { color: var(--eb-muted); max-width: 22em; }
.eb-footer__h { font-size: 0.8rem; font-weight: 600; color: var(--eb-mure); margin-bottom: 14px; letter-spacing: 0.02em; }
.eb-footer__col p, .eb-footer__col li { margin: 0 0 8px; color: var(--eb-muted); }
.eb-footer__col address { color: var(--eb-muted); }
.eb-footer__col .eb-link { color: var(--eb-encre); }
.eb-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 8px 32px;
	padding-block: 24px calc(24px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--eb-line);
	font-size: 0.82rem;
	color: var(--eb-muted);
}
.eb-footer__bottom p { margin: 0; }

/* ==========================================================================
   Parcours & Publications
   ========================================================================== */
.eb-pc-hero { padding-top: calc(var(--eb-header-h) + clamp(56px, 9vw, 120px)); padding-bottom: clamp(64px, 8vw, 120px); overflow: hidden; }
.eb-pc-hero__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 48px clamp(32px, 5vw, 80px);
	align-items: center;
}
.eb-pc-hero .eb-display { margin-bottom: 32px; max-width: 9ch; }
.eb-pc-hero__jump { display: flex; flex-wrap: wrap; gap: 10px 28px; margin-top: 36px; font-weight: 600; }
.eb-pc-hero__visual { position: relative; }
.eb-stack { position: relative; aspect-ratio: 1 / 1.08; max-width: 520px; margin-left: auto; }
.eb-stack__item {
	position: absolute;
	width: 52%;
	border-radius: 4px 10px 10px 4px;
	overflow: hidden;
	box-shadow: 0 30px 60px -20px rgba(36, 22, 31, 0.45), 0 8px 18px -8px rgba(36, 22, 31, 0.3);
	will-change: transform;
}
.eb-stack__item img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; }
.eb-stack__item--0 { left: 0; top: 14%; transform: rotate(-7deg); z-index: 1; }
.eb-stack__item--1 { left: 26%; top: 0; transform: rotate(2deg); z-index: 3; }
.eb-stack__item--2 { right: 0; top: 20%; transform: rotate(8deg); z-index: 2; }
.eb-arch { border-radius: 999px 999px var(--eb-radius) var(--eb-radius); overflow: hidden; aspect-ratio: 4 / 5; max-width: 460px; margin-left: auto; }
.eb-arch img { width: 100%; height: 100%; object-fit: cover; }

/* Frise */
.eb-timeline { background: var(--eb-lin); }
.eb-tl { position: relative; padding-left: 44px; }
.eb-tl__rail { position: absolute; left: 7px; top: 10px; bottom: 10px; width: 1px; background: var(--eb-line); }
.eb-tl__rail span { position: absolute; inset: 0; background: linear-gradient(var(--eb-rose), var(--eb-lilas), var(--eb-eau)); transform-origin: top; }
.eb-tl__item { position: relative; padding-bottom: clamp(44px, 5vw, 72px); }
.eb-tl__item:last-child { padding-bottom: 0; }
.eb-tl__item::before {
	content: "";
	position: absolute;
	left: -44px; top: 8px;
	width: 15px; height: 15px;
	border-radius: 50%;
	background: var(--eb-lin);
	border: 1.5px solid var(--eb-mure);
}
.eb-tl__when { font-family: var(--eb-serif); font-style: italic; font-size: 1.15rem; color: var(--eb-mure); margin-bottom: 6px; }
.eb-tl__title { font-family: var(--eb-serif); font-size: clamp(1.45rem, 2.4vw, 2rem); font-weight: 400; line-height: 1.18; letter-spacing: -0.012em; margin-bottom: 12px; }
.eb-tl__item p:last-child { color: var(--eb-muted); max-width: 34em; }

/* Bibliothèque */
.eb-books { position: relative; background: var(--eb-poudre); padding-block: var(--eb-sec); overflow: hidden; }
.eb-books__head { margin-bottom: clamp(36px, 5vw, 64px); }
.eb-books__head.eb-wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 16px 64px; align-items: end; }
.eb-books__head .eb-h2 { margin-bottom: 0; }
.eb-books__viewport { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.eb-books__viewport::-webkit-scrollbar { display: none; }
.eb-books__track {
	display: flex;
	gap: clamp(28px, 4vw, 72px);
	padding-inline: max(var(--eb-gut), calc((100vw - var(--eb-wrap)) / 2));
	padding-bottom: 12px;
	width: max-content;
}
.eb-book {
	width: clamp(240px, 70vw, 330px);
	flex: none;
	scroll-snap-align: center;
}
.eb-book__object {
	position: relative;
	aspect-ratio: 2 / 3;
	transform-style: preserve-3d;
	transform: perspective(1400px) rotateY(var(--ry, -14deg)) rotateX(var(--rx, 2deg));
	transition: transform .8s var(--eb-ease);
	margin-bottom: 28px;
}
.eb-book__cover {
	position: absolute;
	inset: 0;
	border-radius: 3px 8px 8px 3px;
	overflow: hidden;
	box-shadow: 18px 26px 50px -18px rgba(36, 22, 31, 0.5), 4px 6px 14px -6px rgba(36, 22, 31, 0.35);
	background: var(--eb-nuit);
	transform: translateZ(14px);
}
.eb-book__cover::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0,0,0,.22) 0, rgba(255,255,255,.18) 3%, rgba(0,0,0,0) 7%, rgba(255,255,255,.06) 60%, rgba(0,0,0,.05));
	pointer-events: none;
}
.eb-book__cover img { width: 100%; height: 100%; object-fit: cover; }
.eb-book__spine {
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 28px;
	background: linear-gradient(90deg, #1a0f16, #3d2935);
	transform-origin: left;
	transform: rotateY(-90deg) translateX(-14px);
	border-radius: 3px 0 0 3px;
}
.eb-book__type {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 26px 22px;
	color: var(--eb-on-dark);
	overflow: hidden;
	background: var(--eb-nuit-2);
}
.eb-book__type--1 { background: var(--eb-mure-2); }
.eb-book__type--2 { background: #3f5f5c; }
.eb-book__type-author { position: relative; z-index: 1; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.04em; }
.eb-book__type-title { position: relative; z-index: 1; font-family: var(--eb-serif); font-size: 1.85rem; font-weight: 340; line-height: 1.05; letter-spacing: -0.015em; }
.eb-book__type-halo {
	position: absolute;
	right: -40%; top: 18%;
	width: 120%; aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(229,154,168,.55), transparent 62%), radial-gradient(circle at 30% 60%, rgba(134,185,180,.45), transparent 60%);
	mix-blend-mode: screen;
}
.eb-book__n { font-family: var(--eb-serif); font-style: italic; color: var(--eb-mure); margin-bottom: 4px; }
.eb-book__title { font-family: var(--eb-serif); font-size: 1.55rem; font-weight: 420; line-height: 1.15; margin-bottom: 4px; }
.eb-book__pub { font-size: var(--eb-fs-small); color: var(--eb-muted); margin-bottom: 14px; }
.eb-book__pitch { color: var(--eb-muted); font-size: 0.97rem; }
.eb-books__progress { margin-top: 32px; }
.eb-books__progress::before { content: ""; display: block; height: 1px; background: var(--eb-line); }
.eb-books__progress span { display: block; height: 2px; margin-top: -1.5px; width: 100%; background: var(--eb-encre); transform-origin: left; transform: scaleX(0.1); }

/* Grand écran : la bibliothèque devient une étagère horizontale épinglée,
   chaque livre en double page (couverture + texte) pour tenir dans la hauteur de l'écran. */
@media (min-width: 1024px) {
	.eb-books { padding-block: 0; }
	.eb-books__pin {
		min-height: 100vh;
		min-height: 100svh;
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-top: calc(var(--eb-header-h) + 24px);
		padding-bottom: 40px;
	}
	.eb-books__head { margin-bottom: clamp(28px, 4vh, 56px); }
	.eb-book {
		width: clamp(560px, 46vw, 700px);
		display: grid;
		grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr);
		gap: 40px;
		align-items: center;
	}
	.eb-book__object {
		width: 100%;
		max-height: calc(100svh - 360px);
		max-width: calc((100svh - 360px) * 0.6667);
		margin: 0 auto;
	}
	.eb-books__progress { margin-top: clamp(20px, 4vh, 40px); }
}

/* Radio */
.eb-radio { background: var(--eb-lin); }
.eb-casts { border-top: 1px solid var(--eb-line); }
.eb-cast { border-bottom: 1px solid var(--eb-line); }
.eb-cast__link {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 16px 32px;
	align-items: center;
	padding: 26px 0;
	text-decoration: none;
	transition: padding .5s var(--eb-ease);
}
.eb-cast__link:hover { padding-left: 12px; }
.eb-cast__wave { display: flex; align-items: center; gap: 4px; height: 36px; }
.eb-cast__wave i {
	width: 3px;
	height: 30%;
	border-radius: 3px;
	background: linear-gradient(var(--eb-rose), var(--eb-eau));
	transform-origin: center;
}
.eb-cast__wave i:nth-child(2) { height: 70%; }
.eb-cast__wave i:nth-child(3) { height: 100%; }
.eb-cast__wave i:nth-child(4) { height: 55%; }
.eb-cast__wave i:nth-child(5) { height: 25%; }
.eb-cast__link:hover .eb-cast__wave i { animation: eb-wave 1s ease-in-out infinite; }
.eb-cast__link:hover .eb-cast__wave i:nth-child(2) { animation-delay: -.2s; }
.eb-cast__link:hover .eb-cast__wave i:nth-child(3) { animation-delay: -.45s; }
.eb-cast__link:hover .eb-cast__wave i:nth-child(4) { animation-delay: -.7s; }
.eb-cast__link:hover .eb-cast__wave i:nth-child(5) { animation-delay: -.9s; }
@keyframes eb-wave { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.35); } }
.eb-cast__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.eb-cast__title { font-family: var(--eb-serif); font-size: clamp(1.25rem, 2.1vw, 1.75rem); font-weight: 380; line-height: 1.2; }
.eb-cast__meta { font-size: var(--eb-fs-small); color: var(--eb-muted); }
.eb-cast__cta {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0 18px;
	border-radius: 999px;
	border: 1px solid rgba(42, 29, 38, .22);
	font-size: 0.9rem;
	font-weight: 600;
	transition: background .35s, color .35s, border-color .35s;
}
.eb-cast__link:hover .eb-cast__cta { background: var(--eb-encre); color: var(--eb-lin); border-color: var(--eb-encre); }

/* ==========================================================================
   Cabinet & rendez-vous
   ========================================================================== */
/* Ouverture des pages intérieures */
.eb-intro {
	position: relative;
	overflow: hidden;
	isolation: isolate;
	background: var(--eb-lin);
	padding-top: calc(var(--eb-header-h) + clamp(56px, 9vw, 128px));
	padding-bottom: clamp(64px, 8vw, 112px);
}
.eb-halos--intro .eb-halo { width: 54vmax; height: 54vmax; }
.eb-halos--intro .eb-halo--rose { left: auto; right: 14vmax; top: -30vmax; }
.eb-halos--intro .eb-halo--eau { right: -24vmax; top: -12vmax; }
.eb-intro__grid { position: relative; }
.eb-intro--img .eb-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
	gap: 48px clamp(32px, 6vw, 96px);
	align-items: end;
}
.eb-intro .eb-display { margin-bottom: 28px; max-width: 14ch; }
.eb-intro .eb-lead { max-width: 38em; }
.eb-intro__figure { overflow: hidden; aspect-ratio: 4 / 5; max-width: 420px; justify-self: end; width: 100%; }
.eb-intro__figure img { width: 100%; height: 100%; object-fit: cover; }
.eb-intro__figure--arch { border-radius: 999px 999px var(--eb-radius) var(--eb-radius); }
.eb-intro__figure--round { border-radius: var(--eb-radius); }
.eb-cab-hero.eb-intro--img .eb-intro__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; }
.eb-intro__figure--photo { aspect-ratio: auto; max-width: none; overflow: visible; }
.eb-intro__figure--photo img { aspect-ratio: 4 / 3; border-radius: var(--eb-radius); box-shadow: 0 30px 70px -36px rgba(42, 29, 38, 0.45); }
.eb-intro__figure--photo figcaption { margin-top: 12px; font-size: var(--eb-fs-small); color: var(--eb-muted); }
.eb-cab-hero__addr { color: var(--eb-muted); line-height: 1.55; margin-top: 24px; }

.eb-rdv__grid {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: 48px clamp(40px, 7vw, 120px);
	align-items: start;
}
.eb-rdv .eb-lead { margin-bottom: 32px; }
.eb-rdv__note { margin-top: 28px; font-family: var(--eb-serif); font-style: italic; font-size: 1.1rem; color: var(--eb-muted); max-width: 32em; }
.eb-prices { border-top: 1px solid var(--eb-line); }
.eb-prices__item { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--eb-line); }
.eb-prices__label { font-family: var(--eb-serif); font-size: clamp(1.2rem, 1.8vw, 1.5rem); font-weight: 400; }
.eb-prices__amount { font-family: var(--eb-serif); font-size: clamp(2.2rem, 4vw, 3.4rem); font-weight: 300; letter-spacing: -0.02em; line-height: 1; white-space: nowrap; }
.eb-cover { margin: 36px 0 0; display: grid; gap: 22px; }
.eb-cover dt { font-weight: 600; font-size: var(--eb-fs-small); color: var(--eb-mure); margin-bottom: 4px; }
.eb-cover dd { margin: 0; color: var(--eb-muted); max-width: 38em; }
.eb-facts { margin: 0; border-top: 1px solid var(--eb-line); }
.eb-fact {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 8px 24px;
	padding: 20px 0;
	border-bottom: 1px solid var(--eb-line);
}
.eb-fact dt { font-weight: 600; font-size: var(--eb-fs-small); color: var(--eb-mure); padding-top: 2px; }
.eb-fact dd { margin: 0; color: var(--eb-encre); }
.eb-fact strong { font-family: var(--eb-serif); font-size: 1.3rem; font-weight: 450; }
.eb-hours { border-collapse: collapse; width: auto; }
.eb-hours th, .eb-hours td { text-align: left; padding: 3px 0; font-weight: 400; vertical-align: top; }
.eb-hours th { padding-right: 18px; white-space: nowrap; }

.eb-place { background: var(--eb-poudre); }
.eb-access { background: var(--eb-lin); }
.eb-rdv { background: var(--eb-poudre); }
.eb-gallery {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: clamp(16px, 2.4vw, 32px);
	align-items: start;
}
.eb-gallery__item { position: relative; }
.eb-gallery__item img { width: 100%; object-fit: cover; border-radius: var(--eb-radius); }
.eb-gallery__item figcaption { margin-top: 12px; font-size: var(--eb-fs-small); color: var(--eb-muted); }
.eb-gallery__item--a { grid-column: 1 / span 7; }
.eb-gallery__item--a img { aspect-ratio: 4 / 3; }
.eb-gallery__item--b { grid-column: 9 / span 4; margin-top: clamp(40px, 10vw, 160px); }
.eb-gallery__item--b img { aspect-ratio: 4 / 5; }
.eb-gallery__item--c { grid-column: 3 / span 6; margin-top: clamp(-80px, -4vw, -24px); }
.eb-gallery__item--c img { aspect-ratio: 4 / 3; }

.eb-access__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 48px clamp(40px, 6vw, 96px);
	align-items: start;
}
.eb-access__text .eb-lead { margin-bottom: 24px; }
.eb-access__from { margin-top: 32px; color: var(--eb-muted); }
.eb-distances { border-top: 1px solid var(--eb-line); }
.eb-distances li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--eb-line); }
.eb-distances li span:last-child { font-family: var(--eb-serif); font-style: italic; color: var(--eb-mure); }

.eb-map {
	position: relative;
	border-radius: var(--eb-radius);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: var(--eb-poudre);
	color: var(--eb-encre);
	box-shadow: inset 0 0 0 1px var(--eb-line);
}
.eb-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.eb-map__placeholder { position: absolute; inset: 0; }
.eb-map__art { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--eb-encre); }
.eb-map__ui {
	position: absolute;
	left: 20px; right: 20px; bottom: 20px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	padding: 16px 16px 16px 20px;
	border-radius: 18px;
	background: rgba(251, 247, 244, 0.86);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border: 1px solid var(--eb-line);
}
.eb-map__ui p { margin: 0; font-size: var(--eb-fs-small); color: var(--eb-muted); max-width: 30em; }
.eb-map .eb-todo { position: absolute; top: 12px; left: 12px; margin: 0; }

/* Encadré d'information */
.eb-notice {
	position: relative;
	padding: 22px 24px 22px 28px;
	border-radius: 20px;
	background: var(--eb-poudre);
	margin-top: 8px;
}
.eb-notice::before {
	content: "";
	position: absolute;
	left: 0; top: 20px; bottom: 20px;
	width: 2px;
	background: linear-gradient(var(--eb-rose), var(--eb-eau));
	border-radius: 2px;
}
.eb-notice p { margin: 0; color: var(--eb-muted); }
.eb-notice strong { color: var(--eb-encre); font-weight: 600; }

/* ==========================================================================
   Thérapie de couple, méthodes
   ========================================================================== */
.eb-couple { background: var(--eb-lin); }
.eb-situations { margin: 6px 0 20px; border-top: 1px solid var(--eb-line); }
.eb-situations li {
	position: relative;
	padding: 15px 0 15px 30px;
	border-bottom: 1px solid var(--eb-line);
	font-family: var(--eb-serif);
	font-size: clamp(1.08rem, 1.4vw, 1.25rem);
	line-height: 1.4;
}
.eb-situations li::before {
	content: "";
	position: absolute;
	left: 0; top: 23px;
	width: 13px; height: 9px;
	background:
		radial-gradient(circle at 4.5px 4.5px, var(--eb-rose) 4px, transparent 4.5px),
		radial-gradient(circle at 8.5px 4.5px, var(--eb-eau) 4px, transparent 4.5px);
}
.eb-couple .eb-publics { margin-top: clamp(32px, 4vw, 56px); }
.eb-principles { background: var(--eb-poudre); }
.eb-principles .eb-split__main > p { color: var(--eb-muted); max-width: 38em; }

.eb-methods { background: var(--eb-poudre); }
.eb-methods__list { border-top: 1px solid var(--eb-line); }
.eb-method {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
	gap: 10px clamp(40px, 7vw, 120px);
	padding: clamp(24px, 3vw, 36px) 0;
	border-bottom: 1px solid var(--eb-line);
	align-items: baseline;
}
.eb-method__title { font-family: var(--eb-serif); font-size: clamp(1.4rem, 2.3vw, 2rem); font-weight: 360; line-height: 1.15; letter-spacing: -0.012em; }
.eb-method__text { margin: 0; color: var(--eb-muted); max-width: 36em; }
.eb-process { background: var(--eb-lin); }
.eb-process__list { border-top: 1px solid var(--eb-line); }
.eb-process__item { padding: 26px 0 14px; border-bottom: 1px solid var(--eb-line); }
.eb-process__item p { color: var(--eb-muted); max-width: 36em; }

/* ==========================================================================
   Mentions légales
   ========================================================================== */
.eb-legal-hero { padding-top: calc(var(--eb-header-h) + clamp(56px, 8vw, 112px)); padding-bottom: clamp(32px, 4vw, 56px); }
.eb-legal-hero .eb-display { margin-bottom: 24px; max-width: 14ch; }
.eb-legal { background: var(--eb-lin); }
.eb-legal__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: 40px clamp(40px, 6vw, 96px); align-items: start; }
.eb-legal__toc { position: sticky; top: calc(var(--eb-header-h) + 32px); }
.eb-legal__toc li { margin-bottom: 10px; }
.eb-prose { max-width: 44em; }
.eb-prose h2 {
	font-family: var(--eb-serif);
	font-size: clamp(1.6rem, 2.6vw, 2.2rem);
	font-weight: 380;
	line-height: 1.15;
	letter-spacing: -0.012em;
	margin: 56px 0 16px;
}
.eb-prose h2:first-child { margin-top: 0; }
.eb-prose p { color: var(--eb-muted); }
.eb-prose strong { color: var(--eb-encre); font-weight: 600; }

/* ==========================================================================
   Animations : états initiaux (uniquement si JS + mouvement autorisé)
   ========================================================================== */
.eb-motion [data-fade] { opacity: 0; transform: translateY(18px); }
.eb-motion [data-eb-mask] { clip-path: inset(10% 8% 10% 8% round 32px); }
.eb-motion [data-eb-mask] img { transform: scale(1.14); }
.eb-motion .eb-hero [data-reveal="hero"],
.eb-motion [data-reveal] { visibility: hidden; }
.eb-motion.eb-ready [data-reveal] { visibility: visible; }
.eb-w { display: inline-block; overflow: hidden; vertical-align: top; padding: 0.16em 0.04em 0.12em; margin: -0.16em -0.04em -0.12em; }
.eb-wi { display: inline-block; will-change: transform; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1199px) {
	.eb-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.eb-footer__id { grid-column: 1 / -1; }
}

@media (max-width: 1023px) {
	:root { --eb-header-h: 68px; }
	.eb-head,
	.eb-books__head.eb-wrap { grid-template-columns: minmax(0, 1fr); align-items: start; }
	.eb-split,
	.eb-sexo__head,
	.eb-alone__grid,
	.eb-price__grid,
	.eb-pc-hero__grid,
	.eb-intro--img .eb-intro__grid,
	.eb-rdv__grid,
	.eb-access__grid,
	.eb-legal__grid,
	.eb-method { grid-template-columns: minmax(0, 1fr); }
	.eb-sticky, .eb-legal__toc { position: static; }
	.eb-intro__figure { justify-self: start; max-width: 340px; aspect-ratio: 1 / 1.05; }
	.eb-intro__figure--photo { max-width: 640px; aspect-ratio: auto; }
	.eb-cab-hero.eb-intro--img .eb-intro__grid { grid-template-columns: minmax(0, 1fr); }
	.eb-hero__facts { grid-template-columns: minmax(0, 1fr); }
	.eb-hero__facts li { padding-bottom: 14px; }
	.eb-stack { max-width: 420px; margin: 0 auto; }
	.eb-arch { margin: 0 auto; max-width: 360px; }
	.eb-pc-hero .eb-display { max-width: none; }
	.eb-gallery__item--a { grid-column: 1 / -1; }
	.eb-gallery__item--b { grid-column: 1 / span 5; margin-top: 0; }
	.eb-gallery__item--c { grid-column: 6 / -1; margin-top: 0; }
	.eb-gallery__item--c img { aspect-ratio: 4 / 5; }
	.eb-legal__toc ol { display: flex; flex-wrap: wrap; gap: 6px 22px; }
	.eb-between__line:nth-child(2) { justify-self: start; text-align: left; }
	.eb-sign { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 767px) {
	:root { --eb-radius: 20px; }
	.eb-body { font-size: 1rem; }
	.eb-hero { min-height: 0; }
	.eb-hero__inner { padding-top: calc(var(--eb-header-h) + 72px); padding-bottom: 64px; }
	.eb-hero .eb-actions .eb-btn,
	.eb-cta .eb-actions .eb-btn,
	.eb-rdv .eb-actions .eb-btn { flex: 1 1 100%; }
	.eb-actions .eb-btn { white-space: normal; text-align: center; }
	.eb-service__link { grid-template-columns: minmax(0, 1fr) 40px; gap: 12px 16px; }
	.eb-service__title { grid-column: 1; }
	.eb-service__text { grid-column: 1; grid-row: 2; }
	.eb-service__arrow { grid-column: 2; grid-row: 1; align-self: start; }
	.eb-service__link:hover .eb-service__title { transform: none; }
	.eb-publics { grid-template-columns: minmax(0, 1fr); }
	.eb-troubles { grid-template-columns: minmax(0, 1fr); }
	.eb-footer__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.eb-footer__col:last-child { grid-column: 1 / -1; }
	.eb-cast__link { grid-template-columns: 40px minmax(0, 1fr); gap: 10px 16px; }
	.eb-cast__cta { grid-column: 2; justify-self: start; }
	.eb-fact { grid-template-columns: minmax(0, 1fr); }
	.eb-prices__item { flex-wrap: wrap; }
	.eb-gallery__item--b, .eb-gallery__item--c { grid-column: 1 / -1; }
	.eb-gallery__item--b img { aspect-ratio: 4 / 4.4; }
	.eb-gallery__item--c img { aspect-ratio: 4 / 3; }
	.eb-map { aspect-ratio: 4 / 5; }
	.eb-map__ui { left: 12px; right: 12px; bottom: 12px; }
	.eb-map__ui .eb-btn { width: 100%; }
	.eb-between__stage { min-height: 0; padding-block: 96px; }
	.eb-between__texts { gap: 32px; }
	.eb-between__halos { opacity: .6; }
	.eb-acc__body p { padding-right: 0; }
	.eb-intro { padding-top: calc(var(--eb-header-h) + 48px); }
}

@media (max-width: 380px) {
	.eb-footer__grid { grid-template-columns: minmax(0, 1fr); }
	.eb-brand__name { font-size: 1.15rem; }
}

/* Écrans très larges : on garde des proportions maîtrisées. */
@media (min-width: 1800px) {
	:root { --eb-wrap: 1480px; }
}

/* ---------- Préférence « réduire les animations » ---------- */
@media (prefers-reduced-motion: reduce) {
	.eb-body *,
	.eb-body *::before,
	.eb-body *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}
}

/* ---------- Impression ---------- */
@media print {
	.eb-header, .eb-menu, .eb-halos, .eb-map, .eb-cta { display: none !important; }
	[data-tone="dark"], .eb-body { background: #fff !important; color: #000 !important; }
}
