@font-face { font-family: 'Host Grotesk'; font-style: normal; font-weight: 300 800; font-display: swap; src: url('../fonts/host-grotesk.woff2') format('woff2'); }
@font-face { font-family: 'Host Grotesk'; font-style: italic; font-weight: 300 800; font-display: swap; src: url('../fonts/host-grotesk-italic.woff2') format('woff2'); }

:root {
	--ink: #2F2F31;
	--ink-2: #4A4A4D;
	--ink-soft: #3A3A3D;
	--paper: #F8F7F2;
	--paper-2: #EFEEE8;
	--white: #FFFFFF;
	--line: #DDDBD4;
	--line-dark: #45454A;
	--mute: #5E5D5A;
	--mute-light: #ABB7B4;
	--violet: #331A5B;
	--lilac: #8E83A5;
	--green: #093F32;
	--sage: #ABB7B4;
	--plan: #E3E7E5;
	--plan-2: #ABB7B4;
	--signal: #331A5B;
	--ok: #093F32;
	--error: #A8321E;

	--font-display: 'Host Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--font-body: 'Host Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--font-mono: 'Host Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;

	--fs-h1: clamp(2.45rem, 1.5rem + 3.4vw, 4.4rem);
	--fs-h2: clamp(1.8rem, 1.25rem + 1.9vw, 2.7rem);
	--fs-h3: 1.3rem;
	--fs-lead: clamp(1.08rem, 1rem + 0.35vw, 1.25rem);
	--fs-body: 1.0625rem;
	--fs-small: 0.9375rem;
	--fs-label: 0.75rem;

	--container: 1200px;
	--narrow: 780px;
	--gutter: clamp(16px, 4vw, 40px);
	--section: clamp(4.5rem, 6vw + 2rem, 8.5rem);
	--radius: 4px;
	--ease: cubic-bezier(0.2, 0.7, 0.2, 1);
	--header-h: 76px;
	--corner: clamp(28px, 6vw, 96px);
	interpolate-size: allow-keywords;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
body.nav-open, body.modal-open { overflow: hidden; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); font-weight: 700; letter-spacing: -0.02em; line-height: 1.08; text-wrap: balance; }
h3 { font-size: var(--fs-h3); letter-spacing: -0.01em; line-height: 1.25; }
dl, dt, dd { margin: 0; }
button { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; border-radius: 2px; }
::selection { background: var(--ink); color: var(--paper); }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: 16px; top: -100px; z-index: 100; background: var(--ink); color: var(--paper); padding: 10px 16px; }
.skip-link:focus { top: 12px; }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.container.narrow { max-width: var(--narrow); }
.section { padding: var(--section) 0 calc(var(--section) + var(--corner)); background: var(--paper); }
.section--tall { padding-top: calc(var(--section) * 1.4); padding-bottom: calc(var(--section) * 1.4 + var(--corner)); }
.section--tint { background: var(--paper-2); }
.section--dark { background: var(--ink); color: var(--paper); }
.section--dark ::selection { background: var(--paper); color: var(--ink); }
.section--dark, .site-footer { --signal: var(--lilac); }
.section + .section:not(.section--tint):not(.section--dark):not(.section--offer) { border-top: 1px solid var(--line); }
.section--dark + .section--dark { border-top: 1px solid var(--line-dark); }

.eyebrow {
	font-family: var(--font-mono);
	font-size: var(--fs-label);
	font-weight: 300;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--mute);
	margin: 0 0 1.1rem;
	display: flex;
	align-items: center;
	gap: 10px;
}
.eyebrow::before { content: ''; width: 10px; height: 10px; background: var(--signal); border-radius: 100% 0 0 0; flex: none; }
.eyebrow--light { color: var(--mute-light); }

.section-head { max-width: 760px; margin-bottom: clamp(2.5rem, 4vw, 4rem); }
.section-head__title { font-size: var(--fs-h2); }
.section-head__lead { font-size: var(--fs-lead); color: var(--ink-2); margin: 1.25rem 0 0; max-width: 62ch; text-wrap: pretty; }
.section-head--light .section-head__title { color: var(--paper); }
.section-head--light .section-head__lead { color: var(--mute-light); }
.section-head--light .eyebrow { color: var(--mute-light); }
.section--dark .section-head__title { color: var(--paper); }
.section--dark .section-head__lead { color: var(--mute-light); }
.section--dark .eyebrow { color: var(--mute-light); }

.page-head { padding: calc(var(--section) * 0.9) 0 calc(var(--section) * 0.55 + var(--corner)); border-bottom: 1px solid var(--line); background: var(--white); }
.page-head .section-head { margin-bottom: 0; max-width: 860px; }
.page-head .section-head__title { font-size: clamp(2.2rem, 1.4rem + 2.6vw, 3.6rem); }
.page-head--article { background: transparent; border-bottom: 0; padding-bottom: 2rem; }
.page-head--article .section-head { max-width: none; }
.page-head--article .eyebrow a:hover { color: var(--ink); }

.btn {
	--btn-bg: var(--ink);
	--btn-fg: var(--paper);
	position: relative;
	overflow: hidden;
	isolation: isolate;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 0.95em 1.5em;
	background: var(--btn-bg);
	color: var(--btn-fg);
	border: 1px solid var(--btn-bg);
	border-radius: var(--radius);
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.2;
	cursor: pointer;
	transition: background-color 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease);
	white-space: nowrap;
}
.btn::before { content: ''; position: absolute; inset: 0; z-index: -1; background: var(--lilac); opacity: 0.32; transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease); }
.btn:hover::before, .btn:focus-visible::before { transform: scaleX(1); }
.btn__mark { width: 10px; height: 10px; background: var(--signal); border-radius: 100% 0 0 0; transition: transform 0.4s var(--ease); }
.btn:hover .btn__mark, .btn:focus-visible .btn__mark { transform: rotate(90deg); }
.btn:hover { transform: translateY(-1px); }
.btn--ink { --btn-bg: var(--violet); --btn-fg: var(--paper); }
.btn--ink .btn__mark { background: var(--lilac); }
.btn--paper .btn__mark { background: var(--violet); }
.btn--paper { --btn-bg: var(--paper); --btn-fg: var(--ink); }
.btn--ghost { --btn-bg: transparent; --btn-fg: var(--ink); border-color: var(--ink); }
.btn.is-busy { opacity: 0.6; pointer-events: none; }
.btn:disabled { opacity: 0.6; cursor: default; }

.link { font-weight: 400; text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 1.5px; text-underline-offset: 0.28em; transition: text-decoration-color 0.2s; }
.link:hover { text-decoration-color: currentColor; }
.link--light { color: var(--paper); }
.actions { margin: 2rem 0 0; display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; }
.actions--center { justify-content: center; margin-top: 3rem; }

.shape { display: inline-block; width: 18px; height: 18px; background: var(--ink); flex: none; }
.shape--q-tl { border-radius: 100% 0 0 0; }
.shape--q-tr { border-radius: 0 100% 0 0; }
.shape--q-br { border-radius: 0 0 100% 0; }
.shape--q-bl { border-radius: 0 0 0 100%; }
.shape--disc { border-radius: 50%; }
.shape--half-b { height: 9px; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 1'><path d='M0 0H1A1 1 0 0 1 2 1H1A1 1 0 0 1 0 0Z'/></svg>") center / 100% 100% no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 1'><path d='M0 0H1A1 1 0 0 1 2 1H1A1 1 0 0 1 0 0Z'/></svg>") center / 100% 100% no-repeat; }
.shape--half-t { height: 9px; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 1'><path d='M2 1H1A1 1 0 0 1 0 0H1A1 1 0 0 1 2 1Z'/></svg>") center / 100% 100% no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 1'><path d='M2 1H1A1 1 0 0 1 0 0H1A1 1 0 0 1 2 1Z'/></svg>") center / 100% 100% no-repeat; }
.shape--leaf { width: 9px; -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 2'><path d='M1 0A1 1 0 0 0 0 1V2A1 1 0 0 0 1 1Z'/></svg>") center / 100% 100% no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 2'><path d='M1 0A1 1 0 0 0 0 1V2A1 1 0 0 0 1 1Z'/></svg>") center / 100% 100% no-repeat; }
.section--dark .shape { background: var(--paper); }

.picto { fill: currentColor; }

.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	view-transition-name: site-header;
	transform: translateY(0);
	background: color-mix(in srgb, var(--paper) 88%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color 0.3s, background-color 0.3s, transform 0.45s var(--ease);
}
.site-header.is-scrolled { border-bottom-color: var(--line); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; height: var(--header-h); gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); }
.brand__logo { height: 30px; width: auto; transition: opacity 0.3s var(--ease); }
.brand:hover .brand__logo { opacity: 0.75; }
.site-nav { display: flex; align-items: center; gap: 2.25rem; }
.site-nav__list { display: flex; gap: 1.75rem; list-style: none; }
.site-nav__list a { font-size: var(--fs-small); font-weight: 400; color: var(--ink-2); padding: 6px 0; position: relative; transition: color 0.2s; }
.site-nav__list a::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 1.5px; background: var(--signal); transform: scaleX(0); transform-origin: left; transition: transform 0.3s var(--ease); }
.site-nav__list a:hover, .site-nav__list .current-menu-item > a, .site-nav__list .current_page_parent > a { color: var(--ink); }
.site-nav__list a:hover::after, .site-nav__list .current-menu-item > a::after, .site-nav__list .current_page_parent > a::after { transform: scaleX(1); }
.site-nav__cta .btn { padding: 0.75em 1.15em; font-size: 0.9375rem; }
.nav-toggle { display: none; width: 44px; height: 44px; background: transparent; border: 0; cursor: pointer; position: relative; margin-right: -8px; }
.nav-toggle__bar { position: absolute; left: 11px; width: 22px; height: 2px; background: var(--ink); transition: transform 0.3s var(--ease), top 0.3s var(--ease); }
.nav-toggle__bar:first-child { top: 17px; }
.nav-toggle__bar:nth-child(2) { top: 25px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:first-child { top: 21px; transform: rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) { top: 21px; transform: rotate(-45deg); }

.hero { padding: clamp(3rem, 6vw, 6rem) 0 calc(clamp(4rem, 7vw, 7rem) + var(--corner)); background: var(--white); border-bottom: 1px solid var(--line); overflow: hidden; }
.hero__inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; }
.hero__title { font-size: var(--fs-h1); max-width: 14ch; }
.hero__lead { font-size: var(--fs-lead); color: var(--ink-2); margin: 1.75rem 0 0; max-width: 56ch; text-wrap: pretty; }
.hero__actions { margin-top: 2.25rem; display: flex; align-items: center; gap: 1.75rem; flex-wrap: wrap; }
.hero__facts { list-style: none; display: flex; flex-wrap: wrap; gap: 0.6rem 1.75rem; margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid var(--line); font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); }
.hero__facts li { display: flex; align-items: center; gap: 8px; }
.hero__facts li::before { content: ''; width: 6px; height: 6px; background: var(--ink); border-radius: 50%; }
.hero__visual { display: flex; justify-content: center; }
.hero__text > * { transform: translateY(14px); animation: rise 0.6s var(--ease) forwards; }
.hero__text > :nth-child(1) { animation-delay: 0.05s; }
.hero__text > :nth-child(2) { animation-delay: 0.15s; }
.hero__text > :nth-child(3) { animation-delay: 0.28s; }
.hero__text > :nth-child(4) { animation-delay: 0.4s; }
.hero__text > :nth-child(5) { animation-delay: 0.52s; }
@keyframes rise { to { opacity: 1; transform: none; } }

.map { margin: 0; width: min(100%, 420px); }
.map__grid { position: relative; aspect-ratio: 1; }
.map__tile {
	position: absolute;
	left: calc(var(--x) * 33.3333%);
	top: calc(var(--y) * 33.3333%);
	width: calc(var(--w, 1) * 33.3333%);
	height: calc(var(--h, 1) * 33.3333%);
	background: var(--ink);
	transform: translate(var(--dx), var(--dy)) rotate(var(--r));
	opacity: 0.55;
	transition: transform 0.9s var(--ease), opacity 0.6s var(--ease);
}
.map__tile--q-tl { border-radius: 0 0 100% 0; }
.map__tile--q-br { border-radius: 0 0 0 100%; }
.map__tile--disc { border-radius: 50%; }
.map__tile--half-b { -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 1'><path d='M0 0H1A1 1 0 0 1 2 1H1A1 1 0 0 1 0 0Z'/></svg>") center / 100% 100% no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2 1'><path d='M0 0H1A1 1 0 0 1 2 1H1A1 1 0 0 1 0 0Z'/></svg>") center / 100% 100% no-repeat; }
.map__tile--leaf { -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 2'><path d='M1 0A1 1 0 0 0 0 1V2A1 1 0 0 0 1 1Z'/></svg>") center / 100% 100% no-repeat; mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 2'><path d='M1 0A1 1 0 0 0 0 1V2A1 1 0 0 0 1 1Z'/></svg>") center / 100% 100% no-repeat; }
.map__tile:nth-child(2) { transition-delay: 0.08s; }
.map__tile:nth-child(3) { transition-delay: 0.16s; }
.map__tile:nth-child(4) { transition-delay: 0.24s; }
.map__tile:nth-child(5) { transition-delay: 0.32s; }
.map.is-ordered .map__tile { transform: none; opacity: 1; }
.map__tile { z-index: 1; }
.map__line { position: absolute; z-index: 0; background: var(--plan-2); opacity: 0; transition: opacity 0.6s var(--ease) 0.9s; }
.map__line--h { left: 0; right: 0; top: 33.3333%; height: 1px; }
.map__line--h.map__line--2 { top: 66.6666%; }
.map__line--v { top: 0; bottom: 0; left: 33.3333%; width: 1px; }
.map__line--v.map__line--2 { left: 66.6666%; }
.map.is-ordered .map__line { opacity: 1; }
.map__caption { margin-top: 1.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); min-height: 1.5em; }
.map__state { transition: opacity 0.5s var(--ease); }
.map__state--after { display: none; }
.map.is-ordered .map__state--before { display: none; }
.map.is-ordered .map__state--after { display: inline; color: var(--ink); }
.map__replay { width: 32px; height: 32px; border: 1px solid var(--line); background: transparent; border-radius: 50%; cursor: pointer; color: var(--mute); font-size: 1rem; transition: color 0.2s, border-color 0.2s; }
.map__replay:hover { color: var(--ink); border-color: var(--ink); }

.section--pains { background: var(--white); }
.pains { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.pains .section-head { margin-bottom: 1.5rem; }
.pains__note { margin: 0; padding: 1.25rem 1.5rem; border-left: 2px solid var(--signal); background: var(--paper); color: var(--ink-2); font-size: var(--fs-small); max-width: 46ch; text-wrap: pretty; }
.pains__list { list-style: none; border-top: 1px solid var(--line); }
.pain { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.5rem 0; border-bottom: 1px solid var(--line); }
.pain__shape { flex: none; width: 22px; height: 22px; margin-top: 5px; transition: transform 0.5s var(--ease), background-color 0.4s; }
.pain__shape.shape--half-b { height: 11px; margin-top: 9px; }
.pain__shape.shape--leaf { width: 14px; height: 26px; margin-top: 2px; }
.pain:hover .pain__shape { transform: rotate(90deg); background: var(--violet); }
.pain__title { margin-bottom: 0.4rem; font-size: 1.2rem; }
.pain__body p { color: var(--ink-2); margin-bottom: 0; }
.pain__cost { margin-top: 0.6rem !important; font-size: var(--fs-small); color: var(--ink) !important; }
.pain__cost span { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--signal); margin-right: 0.5rem; }

.stages { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); background: var(--white); }
.stage { padding: 2.25rem 2rem 2.5rem; border-right: 1px solid var(--line); position: relative; }
.stage:last-child { border-right: 0; }
.stage__head { display: flex; align-items: center; gap: 12px; margin-bottom: 1.5rem; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); }
.stage__shape { width: 22px; height: 22px; transition: transform 0.6s var(--ease); }
.stage:hover .stage__shape { transform: rotate(90deg); }
.stage__shape.shape--half-b { height: 11px; }
.stage__title { margin-bottom: 0.9rem; }
.stage p { color: var(--ink-2); margin-bottom: 0; }
.stage__note { margin-top: 1.25rem !important; padding-top: 1rem; border-top: 1px dashed var(--line); font-family: var(--font-mono); font-size: 0.8125rem; color: var(--signal) !important; display: flex; gap: 10px; align-items: flex-start; }
.stage__note::before { content: ''; flex: none; width: 10px; height: 10px; margin-top: 4px; border-radius: 50%; background: var(--signal); }
.stage--marked::after { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 3px; background: var(--signal); }

.informal { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.informal .section-head { margin-bottom: 1.5rem; }
.informal__body { color: var(--ink-2); font-size: var(--fs-lead); max-width: 48ch; text-wrap: pretty; }
.informal__list { list-style: none; border-top: 1px solid var(--line); }
.informal__list li { display: flex; gap: 1.25rem; align-items: flex-start; padding: 1.25rem 0; border-bottom: 1px solid var(--line); font-size: 1.125rem; line-height: 1.4; }
.informal__list .shape { margin-top: 5px; }
.informal__list .shape--half-b, .informal__list .shape--half-t { margin-top: 9px; }

.steps { list-style: none; display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border-top: 1px solid var(--line-dark); }
.step { padding: 2.25rem 1.75rem 2.5rem 0; border-right: 1px solid var(--line-dark); margin-right: 1.75rem; display: flex; flex-direction: column; gap: 1.25rem; }
.step:last-child { border-right: 0; margin-right: 0; }
.step__num { font-family: var(--font-display); font-size: 2.75rem; font-weight: 300; letter-spacing: -0.04em; line-height: 1; color: var(--paper); display: flex; align-items: baseline; gap: 10px; }
.step__num::after { content: ''; width: 12px; height: 12px; background: var(--signal); border-radius: 0 0 100% 0; }
.step__title { color: var(--paper); margin-bottom: 0.75rem; }
.step__body p { color: var(--mute-light); font-size: var(--fs-small); margin-bottom: 0; }
.step__deliverable { margin-top: 1.25rem !important; padding-top: 1rem; border-top: 1px dashed var(--line-dark); color: var(--paper) !important; font-size: var(--fs-small); }
.step__deliverable span { display: block; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute-light); margin-bottom: 4px; }

.poles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.pole { background: var(--white); padding: 2rem 1.75rem 2.25rem; position: relative; display: flex; flex-direction: column; }
.pole__shape { width: 28px; height: 28px; margin-bottom: 1.75rem; transition: transform 0.6s var(--ease); }
.pole:hover .pole__shape { transform: rotate(90deg); }
.pole__shape.shape--half-b { height: 14px; margin-top: 14px; }
.pole__title { margin-bottom: 0.35rem; }
.pole__def { color: var(--mute); font-size: var(--fs-small); margin-bottom: 1.5rem; }
.pole__dl { display: grid; gap: 1rem; margin-top: auto; }
.pole__dl dt { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); margin-bottom: 4px; }
.pole__dl dd { font-size: var(--fs-small); color: var(--ink-2); }
.poles__note { margin: 2rem 0 0; max-width: 70ch; color: var(--ink-2); font-size: var(--fs-lead); text-wrap: pretty; }

.nots { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 3rem); }
.not { padding-top: 1.5rem; border-top: 2px solid var(--ink); }
.not__title { margin-bottom: 0.9rem; text-decoration: line-through; text-decoration-color: var(--signal); text-decoration-thickness: 2px; }
.not p { color: var(--ink-2); margin-bottom: 0; }

.doc { background: var(--white); border: 1px solid var(--line); box-shadow: 0 1px 0 var(--line), 0 24px 48px -32px rgba(47, 47, 49, 0.25); max-width: 900px; font-size: var(--fs-small); }
.doc__head { display: grid; grid-template-columns: auto 1fr auto; gap: 1.5rem; align-items: baseline; padding: 1.25rem 2rem; border-bottom: 1px solid var(--ink); }
.doc__ref, .doc__version { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); margin: 0; }
.doc__title { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.01em; margin: 0; }
.doc__meta { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); }
.doc__meta > div { padding: 1rem 2rem; border-right: 1px solid var(--line); }
.doc__meta > div:last-child { border-right: 0; }
.doc__meta dt { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); margin-bottom: 4px; }
.doc__steps { list-style: none; counter-reset: docstep; padding: 0.5rem 0; }
.doc__steps li { counter-increment: docstep; display: grid; grid-template-columns: 2.5rem 9rem 1fr; gap: 1rem; padding: 0.9rem 2rem; border-bottom: 1px solid var(--paper-2); align-items: baseline; }
.doc__steps li:last-child { border-bottom: 0; }
.doc__steps li::before { content: counter(docstep, decimal-leading-zero); font-family: var(--font-mono); font-size: var(--fs-label); color: var(--mute); }
.doc__step-label { font-weight: 700; }
.doc__foot { margin: 0; padding: 1rem 2rem 1.25rem; border-top: 1px solid var(--line); background: var(--paper); color: var(--ink-2); display: flex; gap: 10px; align-items: baseline; }
.doc__foot::before { content: ''; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--signal); transform: translateY(1px); }

.section--offer { background: var(--white); border-top: 1px solid var(--line); }
.offer { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.offer .section-head { margin-bottom: 1.5rem; }
.offer__text p { color: var(--ink-2); font-size: var(--fs-lead); max-width: 52ch; text-wrap: pretty; }
.offer__price { display: flex; flex-direction: column; gap: 0.25rem; padding: 1.25rem 1.5rem; border: 1px solid var(--line); background: var(--paper); font-family: var(--font-display); font-weight: 700; font-size: 1.35rem !important; color: var(--ink) !important; max-width: max-content !important; }
.offer__price .eyebrow { margin: 0; }
.offer__list { list-style: none; border-top: 1px solid var(--line); }
.offer__list li { display: flex; align-items: center; gap: 1.25rem; padding: 1.1rem 0; border-bottom: 1px solid var(--line); font-size: 1.0625rem; }
.offer__list .shape--half-b { height: 9px; }

.faq { border-top: 1px solid var(--line); }
.faq__item { border-bottom: 1px solid var(--line); }
.faq__q { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.4rem 0; font-family: var(--font-display); font-size: 1.2rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.3; }
.faq__q::-webkit-details-marker { display: none; }
.faq__mark { flex: none; width: 14px; height: 14px; background: var(--ink); border-radius: 100% 0 0 0; transition: transform 0.4s var(--ease), border-radius 0.4s var(--ease); }
.faq__item[open] .faq__mark { transform: rotate(180deg); background: var(--signal); }
.faq__a { padding: 0 0 1.75rem; color: var(--ink-2); max-width: 66ch; }
.faq__a p:last-child { margin-bottom: 0; }

.cta-band { position: relative; overflow: hidden; background: var(--violet); --signal: var(--lilac); --line-dark: #4E3D74; --mute-light: #C3BBD3; }
.cta-band .btn--paper { --btn-fg: var(--violet); }
.cta-band .shape { background: var(--lilac); }
.cta-band__inner { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.cta-band__shapes { display: grid; grid-template-columns: repeat(2, 44px); gap: 6px; }
.cta-band__shapes .shape { width: 44px; height: 44px; }
.cta-band__shapes .shape--half-b { height: 22px; grid-column: span 2; width: 94px; }
.cta-band__title { font-size: var(--fs-h2); color: var(--paper); max-width: 16ch; }
.cta-band__lead { color: var(--mute-light); margin: 1.25rem 0 0; max-width: 56ch; font-size: var(--fs-lead); text-wrap: pretty; }
.cta-band__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem; }

.site-footer { background: var(--ink); color: var(--paper); padding: calc(var(--section) * 0.8) 0 2.5rem; position: relative; margin-top: calc(-1 * var(--corner)); border-top-left-radius: var(--corner); }
.site-footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); padding-bottom: 3rem; border-bottom: 1px solid var(--line-dark); }
.site-footer__logo { height: 40px; width: auto; margin-bottom: 1.75rem; color: var(--paper); }
.site-footer__tagline { font-family: var(--font-display); font-size: 1.25rem; font-weight: 700; letter-spacing: -0.01em; max-width: 24ch; margin-bottom: 0.75rem; }
.site-footer__scope { color: var(--mute-light); font-size: var(--fs-small); max-width: 34ch; margin: 0; }
.site-footer .eyebrow { color: var(--mute-light); }
.site-footer__list { list-style: none; display: grid; gap: 0.6rem; }
.site-footer__list a { color: var(--paper); font-size: var(--fs-small); transition: color 0.2s; }
.site-footer__list a:hover { color: var(--mute-light); }
.site-footer__foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; padding-top: 1.75rem; font-size: 0.8125rem; color: var(--mute-light); }
.site-footer__foot p { margin: 0; }
.site-footer__legal { list-style: none; display: flex; gap: 1.5rem; }
.site-footer__legal a:hover { color: var(--paper); }

.phases { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.phase { background: var(--white); padding: 1.75rem 1.5rem 2rem; }
.phase__num { font-family: var(--font-display); font-size: 2.25rem; font-weight: 300; letter-spacing: -0.04em; line-height: 1; margin-bottom: 1.25rem; display: flex; align-items: baseline; gap: 8px; }
.phase__num::after { content: ''; width: 10px; height: 10px; background: var(--signal); border-radius: 0 0 100% 0; }
.phase__title { margin-bottom: 1rem; }
.phase__list { list-style: none; display: grid; gap: 0.6rem; font-size: var(--fs-small); color: var(--ink-2); }
.phase__list li { padding-left: 1.1rem; position: relative; }
.phase__list li::before { content: ''; position: absolute; left: 0; top: 0.6em; width: 6px; height: 6px; border-radius: 50%; background: var(--ink); }

.poletable { border-top: 1px solid var(--ink); }
.poletable__row { display: grid; grid-template-columns: 1.1fr 1.6fr 1.6fr 1.3fr; gap: 2rem; padding: 1.75rem 0; border-bottom: 1px solid var(--line); }
.poletable__row--head { padding: 0.75rem 0; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); }
.poletable__pole { display: flex; align-items: center; gap: 12px; font-size: 1.2rem; }
.poletable__pole .shape { width: 20px; height: 20px; }
.poletable__pole .shape--half-b { height: 10px; }
.poletable__row p { margin: 0; font-size: var(--fs-small); color: var(--ink-2); }
.poletable__label { display: none; }

.tools { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line-dark); border: 1px solid var(--line-dark); }
.tool { background: var(--ink); padding: 2rem 1.75rem 2.25rem; position: relative; display: flex; flex-direction: column; }
.tool__shape { width: 28px; height: 28px; margin-bottom: 1.75rem; background: var(--lilac); transition: transform 0.6s var(--ease); }
.tool:hover .tool__shape { transform: rotate(90deg); }
.tool__shape.shape--half-b { height: 14px; margin-top: 14px; }
.tool__title { color: var(--paper); margin-bottom: 0.35rem; }
.tool__lead { color: var(--mute-light); font-size: var(--fs-small); margin-bottom: 1.5rem; }
.tool__list { list-style: none; margin-top: auto; display: grid; gap: 0.6rem; border-top: 1px dashed var(--line-dark); padding-top: 1.25rem; }
.tool__list li { position: relative; padding-left: 1.4rem; color: var(--paper); font-size: var(--fs-small); }
.tool__list li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 10px; height: 10px; background: var(--lilac); border-radius: 0 0 100% 0; }
.tools__note { margin: 2rem 0 0; max-width: 70ch; color: var(--mute-light); font-size: var(--fs-lead); text-wrap: pretty; }

.ampleur { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.ampleur .section-head { margin-bottom: 1.5rem; }
.ampleur__text p { color: var(--ink-2); font-size: var(--fs-lead); text-wrap: pretty; }
.ampleur__factors { border-top: 1px solid var(--ink); }
.ampleur__factors > div { padding: 1.5rem 0; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 11rem 1fr; gap: 1.5rem; }
.ampleur__factors dt { font-family: var(--font-display); font-weight: 700; font-size: 1.1rem; letter-spacing: -0.01em; }
.ampleur__factors dd { color: var(--ink-2); font-size: var(--fs-small); }

.review { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.review .section-head { margin-bottom: 1.5rem; }
.review__text p { color: var(--mute-light); font-size: var(--fs-lead); text-wrap: pretty; }
.review__agenda { list-style: none; counter-reset: agenda; border-top: 1px solid var(--line-dark); }
.review__agenda li { counter-increment: agenda; display: grid; grid-template-columns: 2.5rem 1fr; gap: 1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line-dark); color: var(--mute-light); font-size: var(--fs-small); }
.review__agenda li::before { content: counter(agenda, decimal-leading-zero); font-family: var(--font-mono); font-size: var(--fs-label); color: var(--mute-light); padding-top: 4px; }
.review__agenda li span { display: block; font-family: var(--font-display); font-weight: 700; font-size: 1.15rem; color: var(--paper); margin-bottom: 4px; letter-spacing: -0.01em; }

.fit { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(2rem, 5vw, 5rem); }
.fit__title { display: flex; align-items: center; gap: 12px; padding-bottom: 1rem; border-bottom: 1px solid var(--ink); margin-bottom: 1.5rem; }
.fit__title::before { content: ''; width: 14px; height: 14px; border-radius: 50%; }
.fit__title--yes::before { background: var(--ok); }
.fit__title--no::before { background: var(--lilac); }
.fit__list { list-style: none; display: grid; gap: 1rem; color: var(--ink-2); }
.fit__list li { padding-left: 1.25rem; position: relative; }
.fit__list li::before { content: ''; position: absolute; left: 0; top: 0.65em; width: 7px; height: 7px; background: var(--ink); border-radius: 100% 0 0 0; }

.method { display: grid; gap: 0; border-top: 1px solid var(--ink); }
.method__step { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(2rem, 5vw, 5rem); padding: clamp(2.5rem, 4vw, 4rem) 0; border-bottom: 1px solid var(--line); }
.method__num { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); margin-bottom: 1rem; display: flex; align-items: center; gap: 10px; }
.method__num::before { content: ''; width: 10px; height: 10px; background: var(--signal); border-radius: 0 0 100% 0; }
.method__title { font-size: var(--fs-h2); }
.method__duration { margin: 1.25rem 0 0; font-size: var(--fs-small); color: var(--mute); }
.method__lead { font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; letter-spacing: -0.01em; line-height: 1.3; margin-bottom: 1.25rem; text-wrap: pretty; }
.method__body > p:not(.method__lead) { color: var(--ink-2); max-width: 66ch; }
.method__dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px dashed var(--line); }
.method__dl dt { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); margin-bottom: 6px; }
.method__dl dd { font-size: var(--fs-small); color: var(--ink-2); }
.method__note { margin: 2rem 0 0; color: var(--mute); font-size: var(--fs-small); }

.artefacts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.artefact { background: var(--white); padding: 1.75rem; }
.artefact__visual { background: var(--paper); border: 1px solid var(--line); margin-bottom: 1.5rem; }
.artefact__svg { width: 100%; height: auto; }
.artefact__nodes { fill: var(--ink); }
.artefact__links { fill: none; stroke: var(--ink); stroke-width: 1.5; }
.artefact__page { fill: var(--white); stroke: var(--ink); stroke-width: 1; }
.artefact__svg rect { fill: var(--ink); }
.artefact__svg .artefact__line { fill: var(--plan-2); }
.artefact__svg--journal circle { fill: var(--ok); }
.artefact__svg--journal .artefact__open { fill: var(--signal); }
.artefact__title { margin-bottom: 0.6rem; }
.artefact p { color: var(--ink-2); font-size: var(--fs-small); margin-bottom: 0; }
.artefact a { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 0.2em; }

.vision__body { max-width: 64ch; color: var(--ink-2); }
.vision__body p:last-child { margin-bottom: 0; }

.principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.5rem, 3vw, 3rem) clamp(1.5rem, 4vw, 4rem); }
.principle { padding-top: 1.5rem; border-top: 1px solid var(--ink); }
.principle__shape { width: 24px; height: 24px; margin-bottom: 1.25rem; transition: transform 0.6s var(--ease); }
.principle:hover .principle__shape { transform: rotate(90deg); }
.principle__shape.shape--half-b { height: 12px; margin-top: 12px; }
.principle__shape.shape--leaf { width: 12px; }
.principle__title { margin-bottom: 0.75rem; }
.principle p { color: var(--ink-2); font-size: var(--fs-small); margin-bottom: 0; }

.founder { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.founder__photo img { width: 100%; border-radius: 0 0 40% 0; }
.founder__role { color: var(--mute); margin: 0.5rem 0 1.25rem; }
.founder__text p { color: var(--ink-2); }

.ways { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(1.5rem, 3vw, 3rem) clamp(2rem, 5vw, 5rem); }
.way { padding-top: 1.25rem; border-top: 1px solid var(--ink); }
.way__title { margin-bottom: 0.6rem; }
.way p { color: var(--ink-2); margin-bottom: 0; }

.contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: start; }
.contact__col .eyebrow { margin-bottom: 1.5rem; }
.contact__fallback { color: var(--ink-2); padding: 1.25rem 1.5rem; border: 1px solid var(--line); background: var(--white); }
.contact__details { margin-top: 2.5rem; display: grid; gap: 1.25rem; }
.contact__details p { margin: 0; }
.contact__details .eyebrow { margin-bottom: 4px; }
.contact__details a { text-decoration: underline; text-decoration-color: var(--signal); text-underline-offset: 0.2em; }
.contact__expect { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.contact__steps { list-style: none; counter-reset: expect; display: grid; gap: 0.9rem; color: var(--ink-2); font-size: var(--fs-small); }
.contact__steps li { counter-increment: expect; display: grid; grid-template-columns: 2rem 1fr; gap: 0.5rem; }
.contact__steps li::before { content: counter(expect, decimal-leading-zero); font-family: var(--font-mono); font-size: var(--fs-label); color: var(--mute); padding-top: 3px; }
.calendly-inline { background: var(--white); border: 1px solid var(--line); padding: 1.5rem; }
.calendly-inline__note { margin: 1rem 0 0; font-size: 0.8125rem; color: var(--mute); }
.calendly-inline.is-loaded { padding: 0; }
.calendly-inline.is-loaded .calendly-inline__note { display: none; }
.calendly-inline iframe { width: 100%; height: 700px; border: 0; }

.form { display: grid; gap: 1.25rem; }
.form__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
.field { display: grid; gap: 0.4rem; }
.field__label { font-size: var(--fs-small); font-weight: 400; }
.field__input { width: 100%; font: inherit; color: var(--ink); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 0.8em 0.9em; transition: border-color 0.2s; -webkit-appearance: none; appearance: none; }
select.field__input { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%232F2F31' stroke-width='1.5'/></svg>"); background-repeat: no-repeat; background-position: right 0.9em center; padding-right: 2.5em; }
.field__input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px var(--plan); }
textarea.field__input { resize: vertical; min-height: 160px; }
.field--hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__foot { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 0.5rem; }
.form__legal { margin: 0; font-size: 0.8125rem; color: var(--mute); max-width: 36ch; }
.form__legal a { text-decoration: underline; text-underline-offset: 0.15em; }
.form__notice { margin: 0; padding: 1rem 1.25rem; border: 1px solid; border-radius: var(--radius); font-size: var(--fs-small); }
.form__notice--ok { border-color: var(--ok); color: var(--ok); background: #EAF4EE; }
.form__notice--error { border-color: var(--error); color: var(--error); background: #F8ECE8; }

.filters { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2.5rem; }
.filters__item { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; padding: 0.55em 1em; border: 1px solid var(--line); border-radius: 999px; color: var(--mute); transition: color 0.2s, border-color 0.2s, background-color 0.2s; }
.filters__item:hover { color: var(--ink); border-color: var(--ink); }
.filters__item.is-active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.card { background: var(--white); transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease); }
.card:hover { transform: translateY(-4px); box-shadow: 0 28px 44px -30px rgba(47, 47, 49, 0.4); z-index: 1; }
.card__link { display: flex; flex-direction: column; height: 100%; padding: 1.5rem; gap: 0.75rem; transition: background-color 0.25s; }
.card__link:hover { background: var(--paper); }
.card__media { aspect-ratio: 16 / 9; overflow: hidden; margin: -1.5rem -1.5rem 0.75rem; border-bottom: 1px solid var(--line); }
.card__media img { width: 100%; height: 100%; object-fit: cover; }
.card__media--empty { background: var(--paper-2); display: flex; align-items: flex-end; justify-content: flex-start; gap: 0; padding: 1.25rem; }
.card__media--empty .shape { width: 48px; height: 48px; background: var(--sage); }
.card__meta { display: flex; gap: 0.75rem; align-items: center; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); margin: 0; }
.card__cat { color: var(--ink); }
.card__cat::after { content: '·'; margin-left: 0.75rem; color: var(--mute); }
.card__title { font-size: 1.3rem; line-height: 1.25; }
.card__excerpt { color: var(--ink-2); font-size: var(--fs-small); margin: 0; }
.pagination { margin-top: 3rem; }
.pagination .nav-links { display: flex; gap: 0.5rem; justify-content: center; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--line); font-family: var(--font-mono); font-size: var(--fs-small); }
.pagination .page-numbers.current { background: var(--ink); color: var(--paper); border-color: var(--ink); }

.article__media { margin-bottom: 3rem; }
.article__media img { width: 100%; }
.article__foot { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--line); }

.prose { font-size: 1.125rem; line-height: 1.7; }
.prose > * { margin-top: 0; margin-bottom: 1.35em; }
.prose h2 { font-size: 1.85rem; margin-top: 2.5em; margin-bottom: 0.7em; }
.prose h3 { font-size: 1.35rem; margin-top: 2em; margin-bottom: 0.6em; }
.prose h2:first-child, .prose h3:first-child { margin-top: 0; }
.prose a { text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; }
.prose a:hover { text-decoration-color: currentColor; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li { margin-bottom: 0.5em; }
.prose ul li::marker { color: var(--signal); }
.prose blockquote { margin-left: 0; padding-left: 1.5rem; border-left: 3px solid var(--ink); color: var(--ink-2); font-size: 1.2rem; }
.prose blockquote p:last-child { margin-bottom: 0; }
.prose strong { font-weight: 700; }
.prose figure { margin-left: 0; margin-right: 0; }
.prose figcaption { font-size: 0.875rem; color: var(--mute); margin-top: 0.5rem; }
.prose code { font-family: var(--font-mono); font-size: 0.9em; background: var(--paper-2); padding: 0.1em 0.35em; }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--fs-small); }
.prose th, .prose td { text-align: left; padding: 0.75em 0.5em; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose th { font-family: var(--font-mono); font-size: var(--fs-label); text-transform: uppercase; letter-spacing: 0.06em; color: var(--mute); font-weight: 400; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 3em 0; }
.prose .todo, mark.todo { background: #ECE8F1; color: var(--violet); padding: 0.05em 0.3em; font-family: var(--font-mono); font-size: 0.85em; }
.prose img { border: 1px solid var(--line); }

.calendly-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 16px; }
.calendly-modal[hidden] { display: none; }
.calendly-modal__backdrop { position: absolute; inset: 0; background: rgba(47, 47, 49, 0.7); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.calendly-modal__box { position: relative; width: min(100%, 1000px); height: min(100%, 760px); background: var(--paper); border-radius: var(--radius); overflow: hidden; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, 0.5); }
.calendly-modal__frame, .calendly-modal__frame iframe { width: 100%; height: 100%; border: 0; }
.calendly-modal__frame, .calendly-inline { position: relative; }
.calendly-loading { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; padding: var(--gutter); background: var(--paper); text-align: center; }
.calendly-loading__rule { display: block; width: min(220px, 55%); height: 1px; background: var(--line); overflow: hidden; }
.calendly-loading__rule::after { content: ''; display: block; height: 100%; background: var(--signal); transform: scaleX(0); transform-origin: left; animation: calendly-draw calc(var(--beat, 90ms) * 18) var(--ease-hold, ease-in-out) infinite; }
.calendly-loading__label { font-family: var(--font-mono); font-size: var(--fs-label); text-transform: uppercase; letter-spacing: 0.06em; color: var(--mute); }
@keyframes calendly-draw {
	0% { transform: scaleX(0); transform-origin: left; }
	48% { transform: scaleX(1); transform-origin: left; }
	52% { transform: scaleX(1); transform-origin: right; }
	100% { transform: scaleX(0); transform-origin: right; }
}
.calendly-mount iframe { opacity: 0; transition: opacity var(--t-arrive, 0.55s) var(--ease-settle, ease); }
.calendly-mount.is-ready iframe { opacity: 1; }
.calendly-mount.is-ready .calendly-loading { display: none; }
.calendly-modal__close { position: absolute; top: 8px; right: 8px; z-index: 2; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: 1.4rem; line-height: 1; cursor: pointer; }

.reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.55s var(--ease), transform 0.55s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.stages .reveal:nth-child(2), .poles .reveal:nth-child(2), .nots .reveal:nth-child(2), .steps .reveal:nth-child(2), .phases .reveal:nth-child(2), .principles .reveal:nth-child(2), .artefacts .reveal:nth-child(2), .cards .reveal:nth-child(2), .informal__list .reveal:nth-child(2), .ways .reveal:nth-child(2) { transition-delay: 0.1s; }
.stages .reveal:nth-child(3), .poles .reveal:nth-child(3), .nots .reveal:nth-child(3), .steps .reveal:nth-child(3), .phases .reveal:nth-child(3), .principles .reveal:nth-child(3), .artefacts .reveal:nth-child(3), .cards .reveal:nth-child(3), .informal__list .reveal:nth-child(3), .ways .reveal:nth-child(3) { transition-delay: 0.2s; }
.poles .reveal:nth-child(4), .steps .reveal:nth-child(4), .phases .reveal:nth-child(4), .principles .reveal:nth-child(4), .informal__list .reveal:nth-child(4), .ways .reveal:nth-child(4) { transition-delay: 0.3s; }
.steps .reveal:nth-child(5), .phases .reveal:nth-child(5), .principles .reveal:nth-child(5), .informal__list .reveal:nth-child(5) { transition-delay: 0.4s; }
.informal__list .reveal:nth-child(6) { transition-delay: 0.5s; }

@media (max-width: 1100px) {
	.steps { grid-template-columns: repeat(3, 1fr); row-gap: 0; }
	.step { border-bottom: 1px solid var(--line-dark); }
	.step:nth-child(3) { border-right: 0; margin-right: 0; }
	.step:nth-child(4), .step:nth-child(5) { border-bottom: 0; }
	.phases { grid-template-columns: repeat(3, 1fr); }
	.poles { grid-template-columns: repeat(2, 1fr); }
	.doc__meta { grid-template-columns: repeat(2, 1fr); }
	.doc__meta > div:nth-child(2) { border-right: 0; }
	.doc__meta > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
	.poletable__row { grid-template-columns: 1fr 1fr; row-gap: 1.25rem; }
	.poletable__row--head { display: none; }
	.poletable__pole { grid-column: 1 / -1; }
	.poletable__label { display: block; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); margin-bottom: 4px; }
	.cta-band__inner { grid-template-columns: minmax(0, 1fr) auto; }
	.cta-band__shapes { display: none; }
}

@media (max-width: 900px) {
	:root { --header-h: 64px; }
	.nav-toggle { display: block; }
	.site-nav { position: fixed; inset: var(--header-h) 0 0; background: var(--paper); flex-direction: column; align-items: flex-start; justify-content: flex-start; padding: 2rem var(--gutter); gap: 2.5rem; opacity: 0; transform: translateY(-10px); transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0s 0.3s; visibility: hidden; border-top: 1px solid var(--line); overflow-y: auto; }
	body.nav-open .site-nav { opacity: 1; transform: none; visibility: visible; transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0s; }
	.site-nav__list { flex-direction: column; gap: 0; width: 100%; }
	.site-nav__list li { border-bottom: 1px solid var(--line); }
	.site-nav__list a { display: block; padding: 1rem 0; font-family: var(--font-display); font-size: 1.6rem; font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }
	.site-nav__list a::after { display: none; }
	.hero__inner { grid-template-columns: 1fr; }
	.hero__visual { order: -1; justify-content: flex-start; }
	.map { width: min(100%, 300px); }
	.stages { grid-template-columns: 1fr; }
	.stage { border-right: 0; border-bottom: 1px solid var(--line); }
	.stage:last-child { border-bottom: 0; }
	.informal, .pains, .offer, .ampleur, .review, .contact__grid, .founder { grid-template-columns: 1fr; }
	.tools { grid-template-columns: 1fr; }
	.nots, .artefacts, .principles, .cards { grid-template-columns: 1fr; }
	.artefacts { grid-template-columns: repeat(2, 1fr); }
	.method__step { grid-template-columns: 1fr; gap: 1.5rem; }
	.site-footer__grid { grid-template-columns: 1fr 1fr; }
	.site-footer__brand { grid-column: 1 / -1; }
	.fit { grid-template-columns: 1fr; }
	.ways { grid-template-columns: 1fr; }
	.cta-band__inner { grid-template-columns: 1fr; }
	.phases { grid-template-columns: repeat(2, 1fr); }
	.doc__head { grid-template-columns: 1fr; gap: 0.35rem; }
}

@media (max-width: 640px) {
	.section { padding: calc(var(--section) * 0.8) 0; }
	.hero__title { max-width: none; }
	.hero__facts { gap: 0.5rem 1.25rem; }
	.steps { grid-template-columns: 1fr; border-top: 0; }
	.step { border-right: 0; margin-right: 0; border-bottom: 1px solid var(--line-dark); padding: 2rem 0; }
	.step:nth-child(4) { border-bottom: 1px solid var(--line-dark); }
	.step:last-child { border-bottom: 0; }
	.poles, .phases, .artefacts { grid-template-columns: 1fr; }
	.doc__meta { grid-template-columns: 1fr; }
	.doc__meta > div { border-right: 0; border-bottom: 1px solid var(--line); }
	.doc__meta > div:last-child { border-bottom: 0; }
	.doc__steps li { grid-template-columns: 2rem 1fr; }
	.doc__step-label { grid-column: 2; }
	.doc__steps li > span:last-child { grid-column: 2; }
	.doc__head, .doc__meta > div, .doc__steps li, .doc__foot { padding-left: 1.25rem; padding-right: 1.25rem; }
	.form__row { grid-template-columns: 1fr; }
	.ampleur__factors > div { grid-template-columns: 1fr; gap: 0.5rem; }
	.method__dl { grid-template-columns: 1fr; }
	.site-footer__grid { grid-template-columns: 1fr; }
	.site-footer__foot { flex-direction: column; }
	.poletable__row { grid-template-columns: 1fr; }
	.informal__list li { font-size: 1.0625rem; }
	.faq__q { font-size: 1.08rem; }
	.calendly-modal { padding: 0; }
	.calendly-modal__box { height: 100%; border-radius: 0; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.hero__text > * { animation: none; opacity: 1; transform: none; }
	.map__tile, .map__line, .reveal, .btn, .btn__mark, .brand__picto, .faq__mark, .site-nav { transition: none !important; }
	.map__tile { transform: none; opacity: 1; }
	.map__line { opacity: 1; }
	.reveal { opacity: 1; transform: none; }
}

@media print {
	.site-header, .site-footer, .cta-band, .calendly-modal, .map__replay, .nav-toggle { display: none !important; }
	.calendly-loading { display: none; }
	body { background: #fff; color: #000; }
	.reveal { opacity: 1; transform: none; }
	.section { padding: 1.5rem 0; }
}

/* Architectural logo choreography: a pausable fourteen-second sequence. */
.map__overline { display:flex; justify-content:space-between; gap:1rem; margin-bottom:2rem; font:.625rem var(--font-mono); text-transform:uppercase; letter-spacing:.12em; color:var(--mute); }
.map__grid { isolation:isolate; }
.map__tile { transition:none; transform:none; opacity:1; }
.map__blueprint { position:absolute; inset:-5%; width:110%; height:110%; overflow:visible; fill:none; stroke:var(--plan-2); stroke-width:1; opacity:0; }
.map__blueprint > path { stroke-dasharray:3 7; }
.map__blueprint .map__route { stroke:var(--signal); stroke-width:1.5; stroke-dasharray:1800; }
.map__nodes { fill:var(--signal); stroke:none; }
.map__caption { font-size:clamp(.58rem,.8vw,.69rem); letter-spacing:.025em; min-height:34px; }
.map__state { transition:none; }
.map__progress { height:2px; background:var(--paper-2); margin-top:1rem; overflow:hidden; }
.map__progress span { display:block; height:100%; background:var(--signal); transform-origin:left; }
.map__replay { flex-shrink:0; }
.map__replay:focus-visible { outline:2px solid var(--signal); outline-offset:4px; }
.card__media--illustrated { background:var(--paper-2); overflow:hidden; }
.card__media--illustrated img { width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease); }
.card__link:hover .card__media--illustrated img { transform:scale(1.035); }
.article__media--illustrated img { display:block; width:100%; height:auto; border:1px solid var(--line); }
@media (prefers-reduced-motion:reduce) {
	.card__link:hover .card__media--illustrated img { transform:none; }
	.map__blueprint { display:none; }
}
.map__line { transition:none; }

.site-main > * { position: relative; }
.site-main > * + * { margin-top: calc(-1 * var(--corner)); }
.site-main > *:nth-child(even) { border-top-left-radius: var(--corner); }
.site-main > *:nth-child(odd):not(:first-child) { border-top-right-radius: var(--corner); }
.site-main > .article { background: var(--paper); padding-bottom: var(--corner); }
.cta-band { padding-bottom: calc(var(--section) + var(--corner)); }

.w { display: inline-block; overflow: hidden; vertical-align: bottom; padding: 0 0.04em 0.12em 0; margin: 0 -0.04em -0.12em 0; }
.w > span { display: inline-block; transform: translateY(110%); animation: word-up 0.8s var(--ease) forwards; animation-delay: calc(var(--i, 0) * 40ms + 80ms); }
@keyframes word-up { to { transform: none; } }

.rule { position: relative; }
.rule::before { content: ''; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--signal); transform: scaleX(0); transform-origin: left; transition: transform 1.2s var(--ease); z-index: 1; }
.rule.is-visible::before { transform: scaleX(1); }
.stage--marked::after { transform: scaleX(0); transform-origin: left; transition: transform 1s var(--ease) 0.2s; }
.stage--marked.is-visible::after { transform: scaleX(1); }

.cta-band__shapes .shape { animation: drift 9s ease-in-out infinite alternate; }
.cta-band__shapes .shape:nth-child(2) { animation-delay: -3s; animation-duration: 11s; }
.cta-band__shapes .shape:nth-child(3) { animation-delay: -6s; animation-duration: 13s; }
@keyframes drift { from { transform: translate(0, 0) rotate(0deg); } to { transform: translate(6px, -8px) rotate(6deg); } }

.article__media img { animation: wipe 1s var(--ease) both; }
@keyframes wipe { from { clip-path: inset(0 0 100% 0); transform: scale(1.03); } to { clip-path: inset(0); transform: none; } }
.article__progress { position: fixed; left: 0; top: 0; z-index: 60; height: 3px; width: 100%; background: var(--violet); transform: scaleX(0); transform-origin: left; pointer-events: none; opacity: 1; }

.faq__item::details-content { height: 0; overflow: clip; transition: height 0.45s var(--ease), content-visibility 0.45s allow-discrete; }
.faq__item[open]::details-content { height: auto; }
.faq__q span:first-child { transition: transform 0.4s var(--ease); }
.faq__item:hover .faq__q span:first-child, .faq__item[open] .faq__q span:first-child { transform: translateX(6px); }

.map { transition: transform 0.4s var(--ease); transform-style: preserve-3d; will-change: transform; }

@view-transition { navigation: auto; }
::view-transition-old(root) { animation: 0.22s var(--ease) both vt-out; }
::view-transition-new(root) { animation: 0.5s var(--ease) both vt-in; }
::view-transition-old(site-header), ::view-transition-new(site-header) { animation: none; mix-blend-mode: normal; }
@keyframes vt-out { to { opacity: 0; transform: translateY(-10px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(14px); } }

@supports (animation-timeline: view()) {
	.reveal, .reveal.is-visible { transition: none; opacity: 1; transform: none; animation: reveal-up linear both; animation-timeline: view(); animation-range: entry 5% entry 40%; }
	.reveal:nth-child(2) { animation-range: entry 10% entry 45%; }
	.reveal:nth-child(3) { animation-range: entry 15% entry 50%; }
	.reveal:nth-child(4) { animation-range: entry 20% entry 55%; }
	.reveal:nth-child(5) { animation-range: entry 25% entry 60%; }
	.reveal:nth-child(n+6) { animation-range: entry 30% entry 65%; }
	.rule::before, .rule.is-visible::before { transition: none; animation: draw-x linear both; animation-timeline: view(); animation-range: entry 0% entry 70%; }
	.article__progress, .article__progress.is-visible { animation: draw-x linear both; animation-timeline: scroll(root); animation-range: 0% 100%; }
}
@keyframes reveal-up { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
@keyframes draw-x { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
	@view-transition { navigation: none; }
	.w > span { animation: none; transform: none; }
	.reveal, .reveal.is-visible, .section-head, .rule::before, .article__media img, .cta-band__shapes .shape { animation: none !important; transition: none !important; opacity: 1; transform: none; clip-path: none; }
	.article__progress { display: none; }
	.calendly-loading__rule::after { animation: none; transform: scaleX(1); }
	.calendly-mount iframe { transition: none; }
	.rule::before { transform: scaleX(1); }
	.stage--marked::after { transform: scaleX(1); transition: none; }
	.site-header { transition: none; }
	.site-header.is-hidden { transform: none; }
	.map { transition: none; }
	.faq__item::details-content { transition: none; }
	.btn::before { transition: none; }
	.card, .pole__shape, .stage__shape, .principle__shape, .pain__shape, .tool__shape { transition: none; }
}

/* Architectural light, tactile surfaces and reading rhythm. */
.reading-progress { position:fixed; inset:0 0 auto; height:3px; z-index:90; background:linear-gradient(90deg,var(--violet),var(--lilac),var(--green)); transform:scaleX(0); transform-origin:left; pointer-events:none; }
.hero { isolation:isolate; }
.hero::before { content:''; position:absolute; z-index:-1; width:min(70vw,900px); aspect-ratio:1; right:-18%; top:-25%; border-radius:50%; background:radial-gradient(circle,rgba(142,131,165,.15),rgba(171,183,180,.08) 45%,transparent 70%); pointer-events:none; }
.hero__visual { position:relative; }
.hero__visual::before { content:''; position:absolute; inset:-12%; border:1px solid rgba(142,131,165,.16); border-radius:50%; pointer-events:none; }
.hero__visual::after { content:''; position:absolute; width:12px; height:12px; right:9%; top:-4%; background:var(--lilac); border-radius:50%; box-shadow:0 0 0 8px rgba(142,131,165,.1); pointer-events:none; }
.motion-card { position:relative; isolation:isolate; }
.pole__title, .stage__title, .card__title { transition:color .3s var(--ease); }
.site-header.is-scrolled { box-shadow:0 8px 32px rgba(47,47,49,.045); }
.site-header:focus-within { transform:none; }
.link { background-image:linear-gradient(var(--signal),var(--signal)); background-size:0% 1px; background-position:0 100%; background-repeat:no-repeat; transition:background-size .4s var(--ease),text-decoration-color .3s; }
.link:hover, .link:focus-visible { background-size:100% 1px; }
.btn { transition:box-shadow .35s var(--ease),transform .35s var(--ease),background-color .25s,color .25s; }
.btn:active { transform:translateY(1px) scale(.98); }
.map__replay { transition:transform .6s var(--ease),background-color .3s,color .3s; }
.map__replay:hover { transform:rotate(-45deg); background:var(--paper-2); }
.step__num { transition:color .4s var(--ease); }
.step__num::after { transition:transform .5s var(--ease),border-radius .5s; }
.informal__list .shape, .offer__list .shape { transition:transform .5s var(--ease),background-color .4s; }
.calendly-modal:not([hidden]) .calendly-modal__box { animation:modal-arrive .4s var(--ease) both; }
@keyframes modal-arrive { from { opacity:0; transform:translateY(22px) scale(.97); } to { opacity:1; transform:none; } }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
	.btn:hover { transform:translateY(-3px); box-shadow:0 10px 24px -12px var(--violet); }
	.motion-card:hover .pole__title, .motion-card:hover .stage__title, .motion-card:hover .card__title { color:var(--violet); }
	.step:hover .step__num { color:var(--lilac); }
	.step:hover .step__num::after { transform:rotate(90deg) scale(1.3); border-radius:50%; }
	.informal__list li:hover .shape, .offer__list li:hover .shape { transform:rotate(90deg); background:var(--violet); }
}
@media (max-width:900px) {
	.site-nav { bottom:auto; height:calc(100dvh - var(--header-h)); }
	.site-nav__list li, .site-nav__cta { opacity:0; transform:translateY(16px); transition:opacity .3s var(--ease),transform .4s var(--ease); }
	.nav-open .site-nav__list li, .nav-open .site-nav__cta { opacity:1; transform:none; transition-delay:calc(60ms + var(--nav-i,4) * 45ms); }
	.hero__visual::before { inset:-6%; }
}
@media (prefers-reduced-motion:reduce) {
	.reading-progress, .hero__visual::after { display:none; }
	*, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:0s !important; transition-delay:0s !important; }
	.site-nav__list li, .site-nav__cta { transform:none; }
}
@media print {
	.reading-progress, .hero::before, .hero__visual::before, .hero__visual::after { display:none; }
	.reveal, .reveal.is-visible, .section-head { animation:none !important; opacity:1 !important; transform:none !important; }
}
.schema { --schema-bg: var(--paper); }
.section--tint .schema, .section--tint .schema-legende { --schema-bg: var(--paper-2); }
.section--dark .schema, .section--dark .schema-legende { --schema-bg: var(--ink); }
.stage .schema { --schema-bg: var(--paper); }

.schema-legende { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem 1.75rem; margin: 0 0 1.75rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--line); }
.schema-legende__title { margin: 0; font-family: var(--font-mono); font-size: var(--fs-label); font-weight: 300; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink); }
.schema-legende__list { display: flex; flex-wrap: wrap; gap: 0.7rem 1.5rem; list-style: none; }
.schema-legende__list li { display: flex; align-items: center; gap: 9px; font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: 0.06em; text-transform: uppercase; color: var(--mute); }
.schema-key { flex: none; display: block; }
.schema-key--pole { width: 12px; height: 12px; background: var(--ink); border-radius: 100% 0 0 0; }
.schema-key--personne { width: 10px; height: 10px; background: var(--ink); border-radius: 50%; }
.schema-key--flux { width: 20px; height: 1px; background: var(--ink); }
.schema-key--informel { width: 20px; height: 1px; background: repeating-linear-gradient(to right, var(--plan-2) 0 3px, transparent 3px 7px); }
.schema-key--rupture { width: 12px; height: 12px; border: 1px solid var(--signal); border-radius: 50%; }
.section--dark .schema-key--pole, .section--dark .schema-key--personne, .section--dark .schema-key--flux { background: var(--paper); }

.schema--topologie { max-width: 340px; margin: 0 0 1.5rem; padding: 0.75rem; background: var(--paper); border: 1px solid var(--line); }
.schema__svg { width: 100%; height: auto; overflow: visible; }
.schema__links path { fill: none; stroke: var(--ink); stroke-width: 0.6; stroke-linecap: round; }
.schema__links .schema__link--soft { stroke: var(--plan-2); stroke-width: 0.9; stroke-dasharray: 2 4; }
.schema__nodes circle { fill: var(--ink); }
.schema__ring { fill: none; stroke: var(--signal); stroke-width: 0.6; stroke-dasharray: 3 4; opacity: 0.5; }

.sonde-bar { display: flex; justify-content: flex-end; margin: 0 0 1rem; }
.schema-legende { justify-content: space-between; }
.schema-legende .sonde-bar { margin: 0 0 0 auto; }
.sonde { display: inline-flex; align-items: center; gap: 10px; padding: 0.55em 1em; background: transparent; border: 1px solid var(--line); border-radius: var(--radius); font-family: var(--font-mono); font-size: var(--fs-label); font-weight: 300; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); cursor: pointer; }
.sonde::before { content: ''; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--ink); }
.sonde:hover, .sonde[aria-pressed='true'] { color: var(--ink); border-color: var(--ink); }
.sonde[aria-pressed='true']::before { background: transparent; box-shadow: inset 0 0 0 1px var(--signal); }
.stages.is-sonde .schema__dep, .stages.is-sonde .schema__hub { opacity: 0.12; }
.stages.is-sonde .schema__ring { opacity: 1; }

.schema--flux { margin: 0 0 clamp(2rem, 3vw, 3rem); }
.schema__flow { position: relative; list-style: none; display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); }
.schema__flow::before { content: ''; position: absolute; top: 11px; left: 0; right: 0; height: 1px; background: var(--ink); }
.schema__post { position: relative; padding: 0 0.75rem; text-align: center; }
.schema__post-mark { position: relative; z-index: 1; display: inline-flex; height: 22px; align-items: center; padding: 0 12px; background: var(--schema-bg); }
.schema__post-mark .shape { width: 22px; height: 22px; transition: transform 0.6s var(--ease); }
.schema__post-mark .shape--half-b { height: 11px; }
.schema__post-mark .shape--leaf { width: 11px; }
.schema__post:hover .shape { transform: rotate(90deg); }
.schema__post-name { display: block; margin-top: 0.9rem; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-small); letter-spacing: -0.01em; }
.schema__ties { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); margin-top: 1.4rem; }
.schema__ties span { display: block; width: 1px; height: 26px; margin: 0 auto; background: var(--plan-2); }
.schema__band { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; align-items: baseline; padding: 1.1rem 1.35rem 1.2rem; background: var(--white); border: 1px solid var(--line); border-top: 1px solid var(--ink); }
.schema__band-label { display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-size: var(--fs-label); font-weight: 300; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); white-space: nowrap; }
.schema__band-label::before { content: ''; flex: none; width: 10px; height: 10px; background: var(--signal); border-radius: 0 0 0 100%; }
.schema__band-text { flex: 1 1 32ch; font-size: var(--fs-small); color: var(--ink-2); text-wrap: pretty; }

.schema--ruban { margin: 0 0 clamp(2.5rem, 4vw, 3.5rem); }
.schema--ruban .eyebrow { margin-bottom: 1.1rem; }
.schema__ruban { list-style: none; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); border-top: 1px solid var(--ink); }
.schema__etape { --gutter-rule: clamp(1rem, 1.6vw, 1.75rem); border-right: 1px solid var(--line); margin-right: var(--gutter-rule); }
.schema__etape:last-child { border-right: 0; margin-right: 0; }
.schema__etape a { position: relative; display: block; padding: 1.35rem var(--gutter-rule) 1.65rem 0; }
.schema__etape-mark { position: absolute; top: -5px; left: 0; width: 10px; height: 10px; background: var(--signal); border-radius: 0 0 100% 0; transition: transform 0.5s var(--ease); }
.schema__etape-num { display: block; font-family: var(--font-mono); font-size: var(--fs-label); font-weight: 300; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mute); margin-bottom: 0.7rem; }
.schema__etape-title { display: block; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; letter-spacing: -0.01em; line-height: 1.2; transition: color 0.25s var(--ease); }
.schema__etape-meta { display: block; margin-top: 0.55rem; font-size: 0.8125rem; line-height: 1.5; color: var(--mute); text-wrap: pretty; }
.schema__etape a:hover .schema__etape-title { color: var(--signal); }
.schema__etape a:hover .schema__etape-mark { transform: rotate(90deg); }

@media (max-width: 900px) {
	.schema--topologie { max-width: 300px; }
}
@media (max-width: 720px) {
	.schema__flow { grid-template-columns: 1fr; }
	.schema__flow::before { top: 0; bottom: 0; right: auto; width: 1px; height: auto; }
	.schema__post { display: flex; align-items: center; gap: 14px; text-align: left; padding: 0.7rem 0 0.7rem 1.4rem; }
	.schema__post::after { content: ''; position: absolute; top: 50%; left: 0; width: 14px; height: 1px; background: var(--ink); }
	.schema__post-mark { padding: 0; background: transparent; }
	.schema__post-name { margin-top: 0; }
	.schema__ties { display: none; }
	.schema__band { margin-top: 1.4rem; }
	.schema__ruban { grid-template-columns: 1fr; border-top: 0; border-left: 1px solid var(--ink); }
	.schema__etape { border-right: 0; margin-right: 0; border-bottom: 1px solid var(--line); }
	.schema__etape:last-child { border-bottom: 0; }
	.schema__etape a { padding: 1.05rem 0 1.15rem 1.4rem; }
	.schema__etape-mark { top: 1.25rem; left: -5px; }
	.sonde-bar { justify-content: flex-start; }
}

.container { padding-left: max(var(--gutter), env(safe-area-inset-left)); padding-right: max(var(--gutter), env(safe-area-inset-right)); }
.prose { overflow-wrap: break-word; }
.prose pre { overflow-x: auto; }
.prose iframe, .prose video, .prose embed, .prose object { max-width: 100%; }
.prose .wp-block-embed__wrapper iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }
.prose figure.wp-block-table, .prose .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.prose th, .prose td { overflow-wrap: break-word; }
.contact__details a, .site-footer__list a, .prose a { overflow-wrap: anywhere; }

@media (min-width: 641px) and (max-width: 900px) {
	.nots, .principles, .ways, .fit, .cards { grid-template-columns: repeat(2, 1fr); }
	.steps { grid-template-columns: repeat(2, 1fr); }
	.step { border-bottom: 1px solid var(--line-dark); padding-bottom: 2rem; }
	.step:nth-child(2n+1) { border-right: 1px solid var(--line-dark); margin-right: 1.75rem; }
	.step:nth-child(2n) { border-right: 0; margin-right: 0; }
	.step:nth-child(4) { border-bottom: 1px solid var(--line-dark); }
	.step:last-child { border-right: 0; margin-right: 0; border-bottom: 0; }
	.schema__ruban { grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--ink); border-left: 0; }
	.schema__etape { border-bottom: 1px solid var(--line); }
	.schema__etape:nth-child(2n+1) { border-right: 1px solid var(--line); margin-right: var(--gutter-rule); }
	.schema__etape:nth-child(2n) { border-right: 0; margin-right: 0; }
	.schema__etape a { padding: 1.35rem var(--gutter-rule) 1.65rem 0; }
	.schema__etape-mark { top: -5px; left: 0; }
	.schema__etape:last-child { border-right: 0; margin-right: 0; border-bottom: 0; }
}

@media (max-width: 900px) {
	.hero { padding-top: clamp(2rem, 5vw, 3rem); }
	.hero__inner { gap: clamp(2.5rem, 6vw, 3.5rem); }
	.hero__visual { order: 0; }
	.hero__text { order: -1; }
	.hero__lead { margin-top: 1.25rem; }
	.hero__actions { margin-top: 1.75rem; gap: 1.25rem; }
	.hero__facts { margin-top: 2rem; }
	.map { width: min(100%, 300px); }
	.map__overline { font-size: 0.6875rem; margin-bottom: 1.5rem; }
	.map__caption { font-size: 0.6875rem; }
	.site-nav { overscroll-behavior: contain; padding-bottom: calc(2rem + env(safe-area-inset-bottom)); }
	.site-nav__cta { width: 100%; }
	.site-nav__cta .btn { width: 100%; justify-content: center; padding: 1em 1.25em; font-size: 1rem; }
	.brand { padding: 7px 0; }
	.map__replay { width: 44px; height: 44px; }
	.sonde { min-height: 44px; padding: 0.55em 1.1em; }
	.filters__item { min-height: 44px; display: inline-flex; align-items: center; }
	.pagination .page-numbers { min-width: 44px; height: 44px; }
	.calendly-modal__close { width: 44px; height: 44px; }
	.site-footer__list { gap: 0; }
	.site-footer__list a { display: inline-block; padding: 0.6rem 0; }
	.site-footer__legal a { display: inline-block; padding: 0.7rem 0; }
	.site-footer__foot { gap: 0.5rem; }
	.contact__details a, .contact__fallback a { display: inline-block; padding: 0.35rem 0; }
	.link { padding: 0.5rem 0; background-origin: content-box; }
	.faq__a a, .artefact a, .form__legal a, .contact__steps a, .pains__note a { padding: 0.3rem 0; }
}

@media (max-width: 640px) {
	.btn { white-space: normal; text-wrap: balance; }
	.calendly-inline { padding: 1.15rem; }
	.calendly-inline iframe { height: min(1000px, 145vh); }
	h1, h2, .hero__title, .section-head__title, .cta-band__title, .method__title { overflow-wrap: break-word; hyphens: auto; }
	.eyebrow { overflow-wrap: anywhere; }
	.stage { padding: 1.75rem 1.25rem 2rem; }
	.pole, .tool { padding: 1.5rem 1.25rem 1.75rem; }
	.phase { padding: 1.5rem 1.25rem 1.75rem; }
	.artefact { padding: 1.25rem; }
	.card__link { padding: 1.25rem; }
	.card__media { margin: -1.25rem -1.25rem 0.75rem; }
	.pains__note { padding: 1rem 1.15rem; }
	.contact__fallback { padding: 1rem 1.15rem; }
	.schema__band { padding: 1rem 1.15rem 1.1rem; }
	.offer__price { padding: 1rem 1.15rem; max-width: none !important; }
	.pole__dl { gap: 1.1rem; }
	.pole__dl dd { margin-bottom: 0; }
	.map { width: min(100%, 260px); }
	.map__overline { gap: 0.5rem; }
	.schema--topologie { max-width: 100%; }
	.faq__q { gap: 1rem; padding: 1.25rem 0; }
	.form__foot { gap: 1rem; }
	.form__legal { max-width: none; }
	.actions { gap: 1rem 1.25rem; }
	.doc__steps li { column-gap: 0.75rem; }
	.site-footer { padding-top: calc(var(--section) * 0.7); }
	.site-footer__grid { gap: 2.25rem; padding-bottom: 2.25rem; }
}

@media (max-width: 380px) {
	.hero__facts { gap: 0.45rem 1rem; }
	.schema-legende { gap: 0.6rem 1rem; }
	.schema-legende__list { gap: 0.6rem 1rem; }
}

@media (hover: none) {
	.btn:hover { transform: none; box-shadow: none; }
	.btn:hover::before { transform: scaleX(0); }
	.btn:focus-visible::before { transform: scaleX(1); }
	.btn:hover .btn__mark { transform: none; }
	.card:hover { transform: none; box-shadow: none; }
	.card__link:hover { background: var(--white); }
	.card__link:hover .card__media--illustrated img { transform: none; }
	.pain:hover .pain__shape { transform: none; background: var(--ink); }
	.informal__list li:hover .shape, .offer__list li:hover .shape { transform: none; background: var(--ink); }
	.stage:hover .stage__shape, .pole:hover .pole__shape, .principle:hover .principle__shape, .tool:hover .tool__shape { transform: none; }
	.schema__post:hover .shape, .schema__etape a:hover .schema__etape-mark { transform: none; }
	.schema--ruban.is-visible .schema__etape a:hover .schema__etape-mark { transform: none; }
	.faq__item:hover .faq__q span:first-child { transform: none; }
	.faq__item[open] .faq__q span:first-child { transform: translateX(6px); }
	.map__replay:hover { transform: none; background: transparent; }
	.brand:hover .brand__logo { opacity: 1; }
	.site-nav__list a:hover::after { transform: scaleX(0); }
	.site-nav__list .current-menu-item > a::after, .site-nav__list .current_page_parent > a::after { transform: scaleX(1); }
	.link:hover { background-size: 0% 1px; }
}

/* Elementor pages: keep each Struqio module full bleed and preserve the
   original sheet stacking despite Elementor's container/widget wrappers. */
.site-main > .elementor {
	overflow-x: clip;
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container {
	--padding-top: 0;
	--padding-right: 0;
	--padding-bottom: 0;
	--padding-left: 0;
	--gap: 0px;
	--row-gap: 0px;
	--column-gap: 0px;
	display: block;
	width: 100%;
	max-width: none;
	padding: 0;
	gap: 0;
	position: relative;
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container > .elementor-widget {
	width: 100%;
	margin: 0;
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container > .elementor-widget > .elementor-widget-container {
	margin: 0;
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container + .e-con.e-parent.struqio-module-container {
	margin-top: calc(-1 * var(--corner));
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container:nth-child(even) > .elementor-widget > .elementor-widget-container > :first-child {
	border-top-left-radius: var(--corner);
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container:nth-child(odd):not(:first-child) > .elementor-widget > .elementor-widget-container > :first-child {
	border-top-right-radius: var(--corner);
}
.site-main > .elementor > .e-con.e-parent.struqio-module-container:has(.section) + .e-con.e-parent .section:not(.section--tint):not(.section--dark):not(.section--offer) {
	border-top: 1px solid var(--line);
}

body.struqio-no-founder .site-main > .elementor > .e-con.struqio-optional-founder {
	display: none;
}
body.struqio-no-founder .site-main > .elementor > .e-con:has(.elementor-widget-struqio_apropos_ways) > .elementor-widget > .elementor-widget-container > :first-child,
body.struqio-no-founder .site-main > .elementor > .e-con:has(.elementor-widget-struqio_global_band) > .elementor-widget > .elementor-widget-container > :first-child {
	border-top-left-radius: var(--corner);
	border-top-right-radius: 0;
}
body.struqio-no-founder .site-main > .elementor > .e-con:has(.elementor-widget-struqio_apropos_terrain) > .elementor-widget > .elementor-widget-container > :first-child {
	border-top-right-radius: var(--corner);
	border-top-left-radius: 0;
}
.elementor-editor-active .sq-editor-placeholder{padding:32px;border:2px dashed #77658f;border-radius:12px;background:#f8f7f2;color:#331a5b;font:16px/1.6 sans-serif}
.elementor-editor-active .elementor-widget [class*="reveal"]{opacity:1;visibility:visible;transform:none}

/* Editorial illustrations: shared by Elementor and classic templates. */
.page-head__layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:center; gap:clamp(2rem,5vw,5rem); }
.page-head--illustrated .section-head { max-width:none; margin-bottom:0; }
.page-head--illustrated .section-head__title { font-size:clamp(2.2rem,3.6vw,3.5rem); }
.page-head--illustrated .section-head__lead { max-width:none; }
.editorial-visual { margin:0; overflow:hidden; border-radius:var(--corner) 4px var(--corner) 4px; background:var(--paper); }
.editorial-visual img { width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; }
.page-head__layout > .editorial-visual img { aspect-ratio:3/2; }
.editorial-split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); align-items:center; gap:clamp(2rem,5vw,5rem); }
.editorial-split .section-head { margin-bottom:2rem; }
.editorial-split .vision__body p:last-child { margin-bottom:0; }
.editorial-split--terrain .section-head { margin:0; }
@media(max-width:900px) {
 .page-head__layout,.editorial-split { grid-template-columns:minmax(0,1fr); gap:2.5rem; }
 .page-head__layout > .editorial-visual img { aspect-ratio:3/2; }
 .editorial-split > .editorial-visual { order:2; }
 .page-head--illustrated .section-head__title { font-size:clamp(2.2rem,6vw,3.5rem); }
}

/* Logo volume series: generous framing and a shared editorial rhythm. */
#plafond .pains__text > .editorial-visual { margin-top:2.5rem; }
.editorial-heading { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:clamp(2rem,5vw,5rem); align-items:center; margin-bottom:3rem; }
.editorial-heading > .section-head { margin-bottom:0; }
.card__media--illustrated { aspect-ratio:3/2; }
@media(max-width:900px) {
 .editorial-heading { grid-template-columns:minmax(0,1fr); gap:2rem; }
}

/* Articles index: one lead story, followed by a balanced supporting row. */
.section--articles .cards {
	gap: clamp(1rem, 1.6vw, 1.5rem);
	background: transparent;
	border: 0;
}
.section--articles .card {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--line);
	box-shadow: 0 18px 42px -38px rgba(47, 47, 49, 0.55);
}
.section--articles .card__link:focus-visible {
	outline: 2px solid var(--violet);
	outline-offset: -3px;
}

@media (min-width: 901px) {
	.section--articles .cards {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.section--articles .card:first-child {
		grid-column: 1 / -1;
		border-radius: 0 var(--corner) 0 0;
	}
	.section--articles .card:first-child .card__link {
		display: grid;
		grid-template-columns: minmax(0, 1.55fr) minmax(19rem, 0.85fr);
		grid-template-rows: 1fr auto auto auto 1fr;
		min-height: clamp(24rem, 34vw, 31rem);
		padding: 0;
		gap: 0;
		background: var(--white);
	}
	.section--articles .card:first-child .card__media {
		grid-column: 1;
		grid-row: 1 / -1;
		height: 100%;
		min-height: 100%;
		margin: 0;
		border-right: 1px solid var(--line);
		border-bottom: 0;
		aspect-ratio: auto;
	}
	.section--articles .card:first-child .card__meta,
	.section--articles .card:first-child .card__title,
	.section--articles .card:first-child .card__excerpt {
		grid-column: 2;
		padding-inline: clamp(1.75rem, 3vw, 3rem);
	}
	.section--articles .card:first-child .card__meta {
		grid-row: 2;
		margin: 0 0 1rem;
	}
	.section--articles .card:first-child .card__title {
		grid-row: 3;
		max-width: 16ch;
		margin: 0 0 1rem;
		font-size: clamp(1.75rem, 2.4vw, 2.4rem);
		line-height: 1.08;
		text-wrap: balance;
	}
	.section--articles .card:first-child .card__excerpt {
		grid-row: 4;
		max-width: 44ch;
		margin: 0;
		font-size: 1rem;
		line-height: 1.65;
	}
}

@media (max-width: 900px) {
	.section--articles .cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.25rem;
	}
}

/* Contextual booking actions and a prominent Calendly card. */
.section-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; margin-top: 2rem; }
.section-actions .btn { max-width: 100%; white-space: normal; text-align: left; }
.section-actions .btn__mark { flex-shrink: 0; }
.pains__text > .section-actions { margin: 1.75rem 0 2rem; }
.contact__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); }
.contact__col--calendly { padding: clamp(1.4rem, 3vw, 2.75rem); border: 1px solid var(--line); border-top: 4px solid var(--violet); border-radius: 0 0 2rem 0; background: var(--white); min-width: 0; }
.contact__booking-title { font-size: clamp(1.8rem, 2.5vw, 2.6rem); line-height: 1.12; letter-spacing: -.035em; margin: 0 0 1rem; }
.contact__booking-lead { color: var(--ink-2); margin: 0 0 1.75rem; }
.contact__col--calendly .calendly-inline { background: var(--paper); }
.contact__col--calendly .calendly-inline .btn { width: 100%; justify-content: center; white-space: normal; }
.contact__agenda-link { display: inline-block; margin-top: 1rem; font-size: var(--fs-small); text-decoration: underline; text-underline-offset: .2em; }
.contact__col--form { padding-top: 1.5rem; }
.contact__col--form .form__foot .btn { --btn-bg: transparent; --btn-fg: var(--ink); border-color: var(--ink); }
#rendez-vous, #contact-form { scroll-margin-top: 6rem; }
@media (max-width: 900px) { .contact__grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
 .section-actions { align-items: stretch; flex-direction: column; gap: 1rem; }
 .section-actions .btn { justify-content: space-between; }
 .section-actions .link { align-self: flex-start; }
 .contact__col--calendly { padding: 1.25rem; }
 .contact__col--calendly .calendly-inline { padding: 1rem; }
 .contact__col--calendly .calendly-inline.is-loaded { padding: 0; }
}

/* Client testimonial supplied by Réussir bancassurance. */
.client-proof { background: var(--white); padding: clamp(2rem,4vw,3.5rem) 0 calc(clamp(2rem,4vw,3.5rem) + var(--corner)); border-bottom: 1px solid var(--line); }
.client-proof__inner { display: grid; grid-template-columns: 240px minmax(0,1fr); align-items: center; gap: clamp(2rem,5vw,5rem); }
.client-proof__brand { padding-right: 2rem; border-right: 1px solid var(--line); }
.client-proof__brand img { display: block; width: 100%; height: auto; }
.client-proof__quote { margin: 0; }
.client-proof__quote .eyebrow { margin-bottom: 1rem; }
.client-proof__quote blockquote { margin: 0; padding: 0; border: 0; }
.client-proof__quote blockquote p { margin: 0 0 1.25rem; font-size: clamp(1.35rem,2.2vw,1.9rem); line-height: 1.4; letter-spacing: -.025em; }
.client-proof__quote figcaption { display: flex; flex-wrap: wrap; gap: .25rem 1rem; font-size: var(--fs-small); }
.client-proof__quote figcaption span { color: var(--ink-2); }
@media(max-width:650px) {
 .client-proof__inner { grid-template-columns: minmax(0,1fr); gap: 1.75rem; }
 .client-proof__brand { width: 170px; border: 0; padding: 0; }
 .client-proof__quote figcaption { flex-direction: column; }
}

/* Short homepage: orient visitors towards the detailed pages. */
.home-situations, .home-overview { padding-top: clamp(3rem,5vw,5rem); padding-bottom: calc(clamp(3rem,5vw,5rem) + var(--corner)); }
.home-situations .section-head, .home-overview .section-head { margin-bottom: 2.5rem; }
.home-situations__grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; }
.home-situation { border-top: 1px solid var(--line); padding-top: 1.5rem; }
.home-situation__shape { width: 24px; height: 24px; margin-bottom: 1rem; background: var(--violet); }
.home-situation h3, .home-overview__card h3 { font-size: 1.4rem; line-height: 1.2; margin: 0 0 .8rem; }
.home-situation p, .home-overview__card p { color: var(--ink-2); margin: 0; }
.home-overview__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
.home-overview__card { padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid var(--line); background: var(--white); display: flex; align-items: flex-start; flex-direction: column; }
.home-overview__card p { margin-bottom: 1.5rem; }
.home-overview__card .link { margin-top: auto; }
@media(max-width:650px) {
 .home-situations__grid, .home-overview__grid { grid-template-columns: minmax(0,1fr); gap: 1.5rem; }
 .home-situation { padding-top: 1.25rem; }
 .home-situation__shape { float: right; margin-left: 1rem; }
 .home-situations .section-head, .home-overview .section-head { margin-bottom: 1.75rem; }
}

/* Concise detail for the balanced homepage. */
.home-deliverables { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
.home-deliverables h3 { font-size: 1.4rem; margin: 0 0 1.25rem; }
.home-deliverables ul { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; list-style: none; padding: 0; margin: 0; }
.home-deliverables li { padding-left: 1rem; border-left: 2px solid var(--lilac); color: var(--ink-2); }
@media(max-width:650px) { .home-deliverables ul { grid-template-columns: 1fr; gap: 1rem; } }
