/* Page À propos — mise en page « aab » et effets au défilement. */

/* ---------- Cadre de page ---------- */
.aora-aab .body-container { overflow: clip; } /* « hidden » casserait position: sticky */
html:has(body.aora-aab) { scroll-behavior: smooth; }
.aora-aab .content-wrapper { margin-top: 0 !important; margin-bottom: 0 !important; }
.aora-aab .content-wrapper .content-inner::after { display: none; }

.aab {
	--ink: #141A21; --ink-2: #3A4650; --muted: #5E6974; --line: #E3E9ED; --wash: #F5F7F9;
	--red: #D62F2B; --red-2: #A3121E; --red-wash: #FDECEA; --green: #2E8B68; --night: #0B0708;
	--ease: cubic-bezier(.16, 1, .3, 1); --radius: 28px;
	--gap: clamp(96px, 12vw, 168px);
	color: var(--ink-2); font-size: 16px; line-height: 1.7;
}
body.aora-aab .aab h1, body.aora-aab .aab h2, body.aora-aab .aab h3 { font-family: Sora, Arial, sans-serif; color: var(--ink); margin: 0; letter-spacing: -.025em; text-wrap: balance; }
body.aora-aab .aab h2 { font-size: clamp(30px, 3.6vw, 52px); line-height: 1.08; font-weight: 500; margin: 0 0 22px; }
body.aora-aab .aab h3 { font-size: clamp(20px, 1.7vw, 24px); line-height: 1.25; font-weight: 500; margin: 0 0 12px; }
body.aora-aab .aab h2 em, body.aora-aab .aab h1 em { font-style: normal; color: var(--red); }
body.aora-aab .aab p { margin: 0 0 14px; }
body.aora-aab .aab p:last-child { margin-bottom: 0; }
body.aora-aab .aab ul, body.aora-aab .aab ol { list-style: none; margin: 0; padding: 0 !important; }
body.aora-aab .aab li { margin: 0; padding: 0; }
body.aora-aab .aab li::before, body.aora-aab .aab blockquote::before { content: none !important; display: none !important; }
body.aora-aab .aab figure { margin: 0; }
body.aora-aab .aab img { display: block; max-width: none; }
.aab .asf-svg svg { display: block; width: 100%; height: auto; }

.aab > section { position: relative; margin-top: var(--gap); }
.aab > section:first-child { margin-top: 0; }
.aab-wrap { max-width: 1240px; margin-left: auto; margin-right: auto; }
.aab-hero, .aab-stats, .aab-gallery, .aab-why { box-sizing: border-box; width: 100vw; margin-left: calc(50% - 50vw) !important; }

.aab-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: 12px !important; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--red); margin: 0 0 18px !important; }
.aab-kicker::before { content: ""; width: 26px; height: 2px; background: currentColor; border-radius: 2px; }
.aab-kicker--light { color: #FFB3AC; }
body.aora-aab .aab .aab-lead { font-size: clamp(18px, 1.5vw, 21px); line-height: 1.6; color: var(--ink); }
body.aora-aab .aab .aab-small { font-size: 14px; color: var(--muted); font-weight: 600; }
.aab-ico { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* Boutons et liens */
.aab-btn { position: relative; display: inline-flex; align-items: center; gap: 12px; padding: 17px 28px; border-radius: 999px; font-weight: 700; font-size: 15px; line-height: 1; text-decoration: none !important; transition: transform .45s var(--ease), background-color .3s, color .3s, box-shadow .45s var(--ease); will-change: transform; }
.aab-btn::after { content: "→"; transition: transform .35s var(--ease); }
.aab-btn:hover::after { transform: translateX(4px); }
.aab-btn--light { background: #fff; color: var(--ink) !important; box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .55); }
.aab-btn--light::after { color: var(--red); }
.aab-btn--light:hover { background: var(--red); color: #fff !important; }
.aab-btn--light:hover::after { color: #fff; }
.aab-btn--ghost { color: #fff !important; border: 1px solid rgba(255, 255, 255, .45); backdrop-filter: blur(6px); background: rgba(255, 255, 255, .06); }
.aab-btn--ghost:hover { background: rgba(255, 255, 255, .16); }
.aab-more { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; font-weight: 700; font-size: 15px; color: var(--ink) !important; text-decoration: none !important; background: linear-gradient(var(--red), var(--red)) 0 100% / 0 2px no-repeat; padding-bottom: 4px; transition: background-size .5s var(--ease), color .3s; }
.aab-more::after { content: "→"; color: var(--red); transition: transform .35s var(--ease); }
.aab-more:hover { background-size: 100% 2px; color: var(--red) !important; }
.aab-more:hover::after { transform: translateX(4px); }

/* Photos */
.aab-photo { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--wash); aspect-ratio: 16 / 10; }
.aab-photo__in { position: absolute; inset: -9% 0; will-change: transform; }
.aab-photo__in img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- 1. Héros ---------- */
.aab-hero { padding: 21px 20px 0; }
.aab-hero__frame {
	--hp: 0;
	position: relative; overflow: hidden; isolation: isolate;
	min-height: max(600px, calc(100svh - 150px)); max-height: 920px;
	border-radius: calc(var(--radius) + var(--hp) * 24px);
	background: var(--night); color: #fff;
	display: flex; flex-direction: column; justify-content: flex-end;
	clip-path: inset(0 calc(var(--hp) * 3%) round calc(var(--radius) + var(--hp) * 24px));
}
.admin-bar .aab-hero__frame { min-height: max(600px, calc(100svh - 182px)); }
.aab-hero__media { position: absolute; inset: 0; z-index: -3; transform: translate3d(0, calc(var(--hp) * 18%), 0) scale(calc(1.12 - var(--hp) * .06)); transform-origin: 50% 30%; will-change: transform; }
.aab-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.aab-hero__veil { position: absolute; inset: 0; z-index: -2;
	background:
		linear-gradient(90deg, rgba(11, 7, 8, .92) 0%, rgba(11, 7, 8, .72) 38%, rgba(11, 7, 8, .25) 75%, rgba(11, 7, 8, .1) 100%),
		radial-gradient(60% 80% at 85% 10%, rgba(214, 47, 43, .55), transparent 70%),
		linear-gradient(0deg, rgba(11, 7, 8, .85) 0%, transparent 45%);
}
.aab-hero__veil::after { content: ""; position: absolute; inset: 0; opacity: .22; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.aab-hero__net { position: absolute; inset: 0; z-index: -1; opacity: .9; transform: translate3d(0, calc(var(--hp) * -12%), 0); }
.aab-hero__net .asf-svg, .aab-hero__net svg { width: 100%; height: 100%; }
.aab-hero__inner { position: relative; padding: clamp(28px, 5vw, 72px); padding-bottom: clamp(88px, 9vw, 120px); max-width: 1060px; transform: translate3d(0, calc(var(--hp) * -90px), 0); opacity: calc(1 - var(--hp) * 1.5); }
.aab-crumbs { display: flex; gap: 10px; font-size: 13px; color: rgba(255, 255, 255, .6); margin-bottom: 28px; }
.aab-crumbs a { color: rgba(255, 255, 255, .85) !important; text-decoration: none; }
.aab-crumbs a:hover { color: #fff !important; }
body.aora-aab .aab .aab-hero__title { color: #fff; font-size: clamp(38px, 5.2vw, 80px); line-height: 1.03; font-weight: 500; letter-spacing: -.035em; margin: 0 0 26px; }
body.aora-aab .aab .aab-hero__title em { color: #FF6A5E; }
body.aora-aab .aab .aab-hero__lead { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.6; color: rgba(255, 255, 255, .8); max-width: 640px; margin-bottom: 34px; }
.aab-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.aab-cue { position: absolute; right: clamp(24px, 4vw, 56px); bottom: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; align-items: center; gap: 10px; color: rgba(255, 255, 255, .7) !important; font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; text-decoration: none !important; }
.aab-cue__mouse { width: 26px; height: 40px; border: 1.5px solid rgba(255, 255, 255, .6); border-radius: 14px; position: relative; }
.aab-cue__mouse::after { content: ""; position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: aab-cue 1.8s var(--ease) infinite; }
@keyframes aab-cue { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { opacity: 0; } }

/* Titres découpés en mots (héros + h2) */
.aab-w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .08em; margin-bottom: -.08em; }
.aab-w > span { display: inline-block; }
html.aab-js .aab [data-split] .aab-w > span, html.aab-js .aab [data-title] .aab-w > span { transform: translate3d(0, 105%, 0) rotate(4deg); transform-origin: 0 100%; transition: transform 1.1s var(--ease); transition-delay: calc(var(--wi) * 55ms); }
html.aab-js .aab [data-split].is-in .aab-w > span, html.aab-js .aab [data-title].is-in .aab-w > span { transform: none; }
html.aab-js .aab [data-hero-fade] { opacity: 0; transform: translate3d(0, 24px, 0); transition: opacity 1s var(--ease), transform 1.2s var(--ease); }
html.aab-js .aab .is-ready [data-hero-fade] { opacity: 1; transform: none; }
html.aab-js .aab .is-ready .aab-hero__lead { transition-delay: .55s; }
html.aab-js .aab .is-ready .aab-hero__actions { transition-delay: .7s; }

/* ---------- 2. Conviction ---------- */
.aab-manifesto { height: 210vh; margin-top: 0 !important; }
.aab-manifesto__sticky { position: sticky; top: 0; height: 100vh; display: grid; place-items: center; overflow: hidden; }
.aab-manifesto__inner { max-width: 1100px; padding: 0 12px; text-align: center; position: relative; z-index: 1; }
body.aora-aab .aab .aab-scrub { font-family: Sora, Arial, sans-serif; font-size: clamp(28px, 4.4vw, 62px); line-height: 1.18; letter-spacing: -.03em; font-weight: 500; color: var(--ink); }
.aab-scrub mark { background: none; color: inherit; padding: 0; }
.aab-sw { transition: color .35s linear, opacity .35s linear; }
html.aab-js .aab-scrub .aab-sw { opacity: .14; }
html.aab-js .aab-scrub .aab-sw.is-on { opacity: 1; }
html.aab-js .aab-scrub mark .aab-sw.is-on { color: var(--red); }
.aab-orb { position: absolute; border-radius: 50%; filter: blur(2px); pointer-events: none; }
.aab-orb--a { width: 380px; height: 380px; left: -120px; top: 12%; background: radial-gradient(circle at 35% 35%, #FDE3E0, rgba(253, 227, 224, 0) 70%); }
.aab-orb--b { width: 460px; height: 460px; right: -140px; bottom: 4%; background: radial-gradient(circle at 60% 40%, #E6EEF4, rgba(230, 238, 244, 0) 70%); }
.aab-ring { position: absolute; width: 180px; height: 180px; right: 14%; top: 14%; border: 1.5px dashed #F3C3BF; border-radius: 50%; animation: aab-spin 30s linear infinite; }
@keyframes aab-spin { to { rotate: 360deg; } }

/* ---------- 3. Qui sommes-nous ---------- */
.aab-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(40px, 6vw, 96px); align-items: center; margin-top: 0 !important; }
.aab-intro__media { position: relative; padding: 0 0 48px 0; }
.aab-photo--tall { aspect-ratio: 4 / 5; }
.aab-badge { position: absolute; display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-radius: 18px; background: #fff; box-shadow: 0 30px 60px -30px rgba(20, 26, 33, .45); right: -28px; top: 14%; color: var(--ink); }
.aab-badge .aab-ico { width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--red-wash); color: var(--red); }
.aab-badge strong { display: block; font-size: 15px; line-height: 1.3; }
.aab-badge span { display: block; font-size: 13px; color: var(--muted); line-height: 1.3; }
.aab-badge--dark { background: var(--ink); color: #fff; right: auto; left: -24px; top: auto; bottom: 0; }
.aab-badge--dark .aab-ico { background: rgba(255, 255, 255, .1); color: #FF6A5E; }
.aab-badge--dark span { color: #AEB8C0; }
.aab-offer { display: grid; gap: 10px; margin-top: 30px !important; }
.aab-offer a { display: flex; align-items: center; gap: 16px; padding: 14px 18px 14px 14px; border: 1px solid var(--line); border-radius: 16px; color: var(--ink) !important; text-decoration: none !important; font-weight: 600; font-size: 15px; line-height: 1.45; background: #fff; transition: border-color .3s, transform .45s var(--ease), box-shadow .45s var(--ease); }
.aab-offer a::after { content: "→"; margin-left: auto; color: var(--red); opacity: 0; transform: translateX(-8px); transition: opacity .3s, transform .45s var(--ease); }
.aab-offer a:hover { border-color: #F3C3BF; transform: translateX(6px); box-shadow: 0 20px 40px -30px rgba(20, 26, 33, .5); }
.aab-offer a:hover::after { opacity: 1; transform: none; }
.aab-offer__ico { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: var(--red-wash); color: var(--red); transition: background-color .3s, color .3s; }
.aab-offer a:hover .aab-offer__ico { background: var(--red); color: #fff; }

/* ---------- 4. Chiffres + bandeau ---------- */
.aab-stats { background: var(--night); color: #fff; padding: clamp(72px, 9vw, 120px) 20px 0; overflow: hidden;
	background-image: radial-gradient(50% 80% at 90% 0%, rgba(214, 47, 43, .45), transparent 70%), radial-gradient(40% 70% at 0% 100%, rgba(163, 18, 30, .4), transparent 70%); }
.aab-stats__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.aab-stat { position: relative; display: grid; justify-items: center; text-align: center; padding: 8px; }
.aab-stat__ring { width: min(190px, 100%); height: auto; grid-area: 1 / 1; transform: rotate(-90deg); }
.aab-stat__ring circle { fill: none; stroke: rgba(255, 255, 255, .1); stroke-width: 2; }
.aab-stat__ring .aab-stat__arc { stroke: #FF6A5E; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: 0; transition: stroke-dashoffset 2s var(--ease); transition-delay: calc(var(--i) * 120ms); }
html.aab-js .aab-stat:not(.is-in) .aab-stat__arc { stroke-dashoffset: 100; }
body.aora-aab .aab .aab-stat__num { grid-area: 1 / 1; align-self: center; font-family: Sora, Arial, sans-serif; font-size: clamp(40px, 4.6vw, 64px); font-weight: 500; line-height: 1; letter-spacing: -.04em; color: #fff; margin: 0; font-variant-numeric: tabular-nums; }
body.aora-aab .aab .aab-stat__label { margin: 18px 0 0; font-size: 15px; line-height: 1.45; color: #C9D2D9; max-width: 200px; }
.aab-marquee { margin: clamp(64px, 8vw, 104px) -20px 0; padding: 28px 0; border-top: 1px solid rgba(255, 255, 255, .12); overflow: hidden; white-space: nowrap; }
.aab-marquee__track { display: inline-flex; align-items: center; gap: 36px; will-change: transform; }
.aab-marquee span { font-family: Sora, Arial, sans-serif; font-size: clamp(28px, 4vw, 56px); letter-spacing: -.03em; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .55); transition: color .4s, -webkit-text-stroke-color .4s; }
.aab-marquee span:hover { color: #fff; -webkit-text-stroke-color: #fff; }
.aab-marquee i { font-style: normal; color: #FF6A5E; font-size: 22px; }
html:not(.aab-js) .aab-marquee__track { animation: aab-marquee 40s linear infinite; }
@keyframes aab-marquee { to { transform: translateX(-50%); } }

/* ---------- 5. Mission ---------- */
.aab-mission { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.aab-mission__media { position: relative; display: grid; gap: 18px; }
.aab-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px !important; }
.aab-chips li { padding: 8px 14px !important; border-radius: 999px; background: var(--wash); border: 1px solid var(--line); font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.aab-chips--links li { padding: 0 !important; background: none; border: 0; }
.aab-chips--links a { display: inline-block; padding: 9px 15px; border-radius: 999px; border: 1px solid var(--line); background: #fff; font-size: 13.5px; font-weight: 600; color: var(--ink) !important; text-decoration: none !important; transition: border-color .3s, color .3s, background-color .3s, transform .4s var(--ease); }
.aab-chips--links a:hover { border-color: var(--red); background: var(--red); color: #fff !important; transform: translateY(-2px); }
.aab-principles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.aab-principles li { display: flex; gap: 14px; align-items: flex-start; padding: 18px !important; border-radius: 18px; background: var(--wash); font-size: 14.5px; line-height: 1.5; color: var(--ink); font-weight: 600; }
.aab-principles .aab-ico { width: 36px; height: 36px; padding: 8px; border-radius: 10px; background: #fff; color: var(--red); }

/* ---------- 6. Services IA ---------- */
.aab-head { margin-bottom: clamp(40px, 5vw, 64px); }
.aab-head > * { max-width: 760px; }
.aab-head > p:not(.aab-kicker) { font-size: 17px; }
.aab-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; perspective: 1400px; }
.aab-card { --rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%; position: relative; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); overflow: hidden; display: flex; flex-direction: column; transform: rotateX(var(--rx)) rotateY(var(--ry)); transform-style: preserve-3d; transition: transform .6s var(--ease), box-shadow .6s var(--ease), border-color .3s; }
.aab-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(420px circle at var(--mx) var(--my), rgba(214, 47, 43, .08), transparent 60%); transition: opacity .4s; }
.aab-card:hover { box-shadow: 0 40px 80px -50px rgba(20, 26, 33, .55); border-color: #F3C3BF; }
.aab-card:hover::after { opacity: 1; }
.aab-card.is-tilting { transition: transform .12s linear, box-shadow .6s var(--ease), border-color .3s; }
.aab-card__art { background: linear-gradient(160deg, #F7F9FB, #EEF3F7); padding: 18px 18px 0; border-bottom: 1px solid var(--line); }
.aab-card__body { padding: clamp(24px, 3vw, 36px); position: relative; }
.aab-card__num { position: absolute; right: clamp(24px, 3vw, 36px); top: clamp(24px, 3vw, 36px); font-family: Sora, Arial, sans-serif; font-size: 14px; font-weight: 600; color: var(--red); }
.aab-card h3 { padding-right: 40px; }
body.aora-aab .aab .aab-card p { font-size: 15.5px; }
.aab-ticks { display: grid; gap: 9px; margin-top: 18px !important; }
.aab-ticks li { position: relative; padding-left: 30px !important; font-size: 14.5px; line-height: 1.5; color: var(--ink); }
.aab-ticks li::after { content: ""; position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; background: var(--red-wash) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.6 2.6L14 7.5' fill='none' stroke='%23D62F2B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 20px no-repeat; }
.aab-sectors { margin-top: 36px; padding: 26px 28px; border-radius: 22px; background: var(--wash); }
.aab-sectors .aab-small { margin-bottom: 4px !important; }

/* ---------- 7. Cartes empilées ---------- */
.aab-stack { display: grid; gap: 28px; padding-bottom: 20px; }
.aab-stack__card { --s: 1; --d: 0; position: sticky; top: calc(110px + var(--i) * 28px); }
.admin-bar .aab-stack__card { top: calc(142px + var(--i) * 28px); }
.aab-stack__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: min(560px, 72vh); border-radius: 32px; background: #fff; border: 1px solid var(--line); overflow: hidden; box-shadow: 0 -20px 60px -40px rgba(20, 26, 33, .35); transform: scale(var(--s)); transform-origin: 50% 0; will-change: transform; position: relative; }
.aab-stack__inner::after { content: ""; position: absolute; inset: 0; background: var(--ink); opacity: calc(var(--d) * .35); pointer-events: none; border-radius: inherit; }
.aab-stack__card:nth-child(2) .aab-stack__inner { background: #FBF6F5; }
.aab-stack__card:nth-child(3) .aab-stack__inner { background: var(--ink); border-color: var(--ink); }
.aab-stack__card:nth-child(3) h3, .aab-stack__card:nth-child(3) .aab-ticks li, .aab-stack__card:nth-child(3) .aab-more { color: #fff !important; }
.aab-stack__card:nth-child(3) p { color: #C9D2D9; }
.aab-stack__card:nth-child(3) .aab-ticks li::after { background-color: rgba(255, 255, 255, .1); }
.aab-stack__text { padding: clamp(28px, 4vw, 56px); display: flex; flex-direction: column; justify-content: center; }
body.aora-aab .aab .aab-stack__text h3 { font-size: clamp(24px, 2.4vw, 34px); line-height: 1.12; margin-bottom: 16px; }
.aab-stack__tag { display: inline-flex; align-items: center; gap: 10px; align-self: flex-start; margin-bottom: 22px; padding: 7px 14px 7px 8px; border-radius: 999px; background: var(--red-wash); color: var(--red); font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.aab-stack__tag .aab-ico { width: 26px; height: 26px; padding: 5px; border-radius: 50%; background: var(--red); color: #fff; }
.aab-stack__media { position: relative; overflow: hidden; margin: 12px !important; border-radius: 24px; }

/* Carte plus haute que l'écran : l'empilement masquerait son texte, on revient à une pile simple. */
@media (max-width: 900px), (max-height: 720px) {
	.aab-stack__card, .admin-bar .aab-stack__card { position: relative; top: auto; }
	.aab-stack__inner { transform: none; }
	.aab-stack__inner::after { display: none; }
}

/* ---------- 8. Méthode ---------- */
.aab-method { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 110px); align-items: start; }
.aab-method__sticky { position: sticky; top: 130px; }
.admin-bar .aab-method__sticky { top: 162px; }
.aab-method__art { width: min(360px, 80%); margin-top: 28px; }
body.aora-aab .aab .aab-steps { position: relative; display: grid; gap: clamp(48px, 9vh, 96px); padding: 24px 0 24px 64px !important; }
.aab-steps__rail { position: absolute; left: 19px; top: 0; bottom: 0; width: 2px; background: var(--line); border-radius: 2px; padding: 0 !important; }
.aab-steps__rail span { position: absolute; inset: 0; background: linear-gradient(var(--red), #FF6A5E); transform-origin: 0 0; transform: scaleY(var(--tp, 0)); border-radius: 2px; }
.aab-step { position: relative; padding: 0 !important; }
.aab-step__dot { position: absolute; left: -55px; top: 6px; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 2px solid var(--line); transition: border-color .4s, background-color .4s, box-shadow .6s var(--ease); }
.aab-step.is-on .aab-step__dot { border-color: var(--red); background: var(--red); box-shadow: 0 0 0 8px var(--red-wash); }
.aab-step__num { display: block; font-family: Sora, Arial, sans-serif; font-size: clamp(56px, 7vw, 96px); line-height: .9; font-weight: 500; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px var(--line); transition: -webkit-text-stroke-color .5s, color .5s; margin-bottom: 14px; }
.aab-step.is-on .aab-step__num { color: var(--ink); -webkit-text-stroke-color: var(--ink); }
body.aora-aab .aab .aab-step h3 { font-size: clamp(24px, 2.2vw, 30px); }
.aab-step p { font-size: 16.5px; max-width: 460px; }
html.aab-js .aab-step { opacity: .35; transform: translate3d(0, 20px, 0); transition: opacity .6s var(--ease), transform .8s var(--ease); }
html.aab-js .aab-step.is-on { opacity: 1; transform: none; }

/* ---------- 9. Pourquoi ---------- */
.aab-why { padding: 0 20px; }
.aab-why__panel { --k: 1; position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); border-radius: 36px; overflow: hidden; background: var(--night); color: #C9D2D9;
	background-image: radial-gradient(60% 90% at 100% 0%, rgba(214, 47, 43, .5), transparent 65%), radial-gradient(45% 70% at 40% 100%, rgba(163, 18, 30, .35), transparent 70%);
	clip-path: inset(0 calc((1 - var(--k)) * 5%) round calc(36px + (1 - var(--k)) * 40px)); }
.aab-why__media { position: relative; overflow: hidden; min-height: 520px; }
.aab-why__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 55%, var(--night)); }
.aab-why__text { padding: clamp(40px, 6vw, 88px) clamp(28px, 5vw, 72px); }
body.aora-aab .aab .aab-why h2 { color: #fff; }
.aab-why__list { display: grid; gap: 4px; margin-top: 10px !important; }
.aab-why__list li { display: flex; gap: 18px; align-items: flex-start; padding: 16px 0 !important; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.aab-why__ico { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: rgba(255, 255, 255, .07); color: #FF6A5E; transition: background-color .3s, color .3s, transform .5s var(--ease); }
.aab-why__list li:hover .aab-why__ico { background: var(--red); color: #fff; transform: rotate(-8deg) scale(1.06); }
body.aora-aab .aab .aab-why__list p { margin: 0; font-size: 15.5px; line-height: 1.55; color: #C9D2D9; padding-top: 10px; }
.aab-why__list strong { color: #fff; font-weight: 700; }
body.aora-aab .aab .aab-quote { margin: 32px 0 0 !important; padding: 0 0 0 22px !important; border-left: 3px solid var(--red); font-family: Sora, Arial, sans-serif; font-weight: 400; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; color: #fff; }

/* ---------- 10. Galerie en mouvement ---------- */
.aab-gallery { padding: 0; overflow: hidden; }
.aab-gallery .aab-head { padding: 0 20px; box-sizing: content-box; max-width: 1240px; }
.aab-gallery__row { overflow: visible; }
.aab-gallery__row + .aab-gallery__row { margin-top: 18px; }
.aab-gallery__track { --gx: 0px; display: flex; gap: 18px; width: max-content; transform: translate3d(var(--gx), 0, 0); will-change: transform; }
.aab-gallery__row[data-row="1"] .aab-gallery__track { margin-left: -22vw; }
.aab-gallery figure { width: clamp(260px, 30vw, 460px); aspect-ratio: 16 / 10; border-radius: 22px; overflow: hidden; flex: none; }
.aab-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .6s; filter: saturate(.9); }
.aab-gallery figure:hover img { transform: scale(1.06); filter: saturate(1.1); }

/* ---------- 11. FAQ ---------- */
.aab-faq { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.aab-faq__head { position: sticky; top: 140px; }
.aab-faq__head a { color: var(--red) !important; font-weight: 700; }
.aab-q { border-bottom: 1px solid var(--line); }
.aab-q:first-child { border-top: 1px solid var(--line); }
.aab-q summary { cursor: pointer; list-style: none; padding: 24px 56px 24px 0; position: relative; font-family: Sora, Arial, sans-serif; font-size: clamp(17px, 1.4vw, 20px); font-weight: 500; line-height: 1.4; color: var(--ink); transition: color .3s; }
.aab-q summary::-webkit-details-marker { display: none; }
.aab-q summary::after { content: ""; position: absolute; right: 4px; top: 50%; width: 36px; height: 36px; margin-top: -18px; border-radius: 50%; border: 1px solid var(--line); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Cpath d='M12 18h12M18 12v12' stroke='%23D62F2B' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center / 36px no-repeat; transition: transform .5s var(--ease), background-color .3s, border-color .3s; }
.aab-q summary:hover { color: var(--red); }
.aab-q[open] summary::after { transform: rotate(135deg); border-color: var(--red); }
.aab-q summary:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; border-radius: 8px; }
.aab-q > div { padding: 0 56px 24px 0; }
.aab-q > div p { font-size: 16px; }
.aab-q[open] > div { animation: aab-open .6s var(--ease); }
@keyframes aab-open { from { opacity: 0; transform: translateY(-8px); } }

/* ---------- 12. Appel à l'action ---------- */
.aab-cta { margin-bottom: clamp(80px, 10vw, 140px); }
.aab-cta__panel { --k: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(28px, 4vw, 56px); padding: clamp(32px, 5vw, 64px); border-radius: 36px; color: #E9D9D8; overflow: hidden; position: relative;
	background: radial-gradient(60% 90% at 85% 15%, rgba(214, 47, 43, .95), rgba(163, 18, 30, .6) 45%, transparent 75%), radial-gradient(45% 70% at 10% 100%, rgba(163, 18, 30, .7), transparent 70%), var(--night);
	clip-path: inset(0 calc((1 - var(--k)) * 5%) round calc(36px + (1 - var(--k)) * 40px)); }
body.aora-aab .aab .aab-cta h2 { color: #fff; }
body.aora-aab .aab .aab-cta p { color: rgba(255, 255, 255, .82); max-width: 58ch; }
.aab-contacts { display: grid; gap: 12px; margin: 26px 0 32px !important; }
.aab-contacts li { display: flex; align-items: center; gap: 14px; font-size: 15.5px; color: #fff; }
.aab-contacts .aab-ico { width: 38px; height: 38px; padding: 9px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: #FFB3AC; }
.aab-contacts a { color: #fff !important; text-decoration: none !important; background: linear-gradient(#fff, #fff) 0 100% / 0 1px no-repeat; transition: background-size .5s var(--ease); }
.aab-contacts a:hover { background-size: 100% 1px; }
.aab-cta__media { position: relative; display: grid; gap: 14px; grid-template-rows: 1fr auto; }
.aab-cta__photo { position: relative; overflow: hidden; border-radius: 24px; min-height: 240px; }
.aab-cta__map { border-radius: 24px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); backdrop-filter: blur(8px); }

/* ---------- Barre de progression de lecture ---------- */
.aab-progress { position: fixed; left: 0; top: 0; z-index: 100000; height: 3px; width: 100%; background: linear-gradient(90deg, var(--red, #D62F2B), #FF6A5E); transform-origin: 0 0; transform: scaleX(0); pointer-events: none; }
.admin-bar .aab-progress { top: 32px; }

/* ---------- Apparitions (seulement si le script tourne) ---------- */
html.aab-js .aab-reveal { opacity: 0; transform: translate3d(0, 36px, 0); transition: opacity 1s var(--ease), transform 1.2s var(--ease); transition-delay: var(--d, 0ms); }
html.aab-js .aab-reveal.is-in { opacity: 1; transform: none; }
html.aab-js .aab [data-clip] { clip-path: inset(18% 12% 18% 12% round 40px); transition: clip-path 1.6s var(--ease); }
html.aab-js .aab [data-clip].is-in { clip-path: inset(0 0 0 0 round var(--radius)); }
html.aab-js .aab-card { opacity: 0; translate: 0 60px; transition: opacity 1s var(--ease), translate 1.2s var(--ease), transform .6s var(--ease), box-shadow .6s var(--ease), border-color .3s; transition-delay: calc(var(--i) * 110ms), calc(var(--i) * 110ms), 0s, 0s, 0s; }
html.aab-js .aab-card.is-in { opacity: 1; translate: 0 0; }
html.aab-js .aab-stat { opacity: 0; translate: 0 30px; transition: opacity .9s var(--ease), translate 1.1s var(--ease); transition-delay: calc(var(--i) * 120ms); }
html.aab-js .aab-stat.is-in { opacity: 1; translate: 0 0; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.aab-badge { right: -8px; }
	.aab-badge--dark { left: -8px; }
	.aab-principles { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	.aab-intro, .aab-mission, .aab-method, .aab-faq { grid-template-columns: 1fr; }
	.aab-intro__media { max-width: 560px; }
	.aab-cards { grid-template-columns: 1fr; }
	.aab-stats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
	.aab-stack__inner { grid-template-columns: 1fr; min-height: 0; }
	.aab-stack__media { aspect-ratio: 16 / 9; order: -1; }
	.aab-method__sticky, .aab-faq__head { position: static; }
	.aab-method__art { display: none; }
	.aab-why__panel, .aab-cta__panel { grid-template-columns: 1fr; }
	.aab-why__media { min-height: 280px; }
	.aab-why__media::after { background: linear-gradient(180deg, transparent 50%, var(--night)); }
	.aab-manifesto { height: 170vh; }
}
@media (max-width: 600px) {
	.aab { --radius: 22px; }
	.aab-hero { padding: 12px 10px 0; }
	.aab-hero__frame { min-height: calc(100svh - 120px); }
	.aab-cue { display: none; }
	.aab-badge { position: relative; right: auto; left: auto; top: auto; bottom: auto; margin-top: 12px; }
	.aab-intro__media { padding: 0; }
	.aab-stats__grid { gap: 12px; }
	body.aora-aab .aab .aab-steps { padding-left: 48px !important; }
	.aab-step__dot { left: -39px; }
	.aab-steps__rail { left: 9px; }
	.aab-why, .aab-stats { padding-left: 10px; padding-right: 10px; }
	.aab-q summary { padding-right: 48px; }
	.aab-q > div { padding-right: 0; }
}

@media (prefers-reduced-motion: reduce) {
	html:has(body.aora-aab) { scroll-behavior: auto; }
	html.aab-js .aab *, html.aab-js .aab *::after { transition: none !important; animation: none !important; }
	html.aab-js .aab .aab-reveal, html.aab-js .aab .aab-card, html.aab-js .aab .aab-stat, html.aab-js .aab .aab-step, html.aab-js .aab [data-hero-fade] { opacity: 1 !important; transform: none !important; translate: none !important; }
	html.aab-js .aab [data-clip] { clip-path: none !important; }
	html.aab-js .aab .aab-w > span { transform: none !important; }
	html.aab-js .aab-scrub .aab-sw { opacity: 1 !important; }
	.aab-manifesto { height: auto; padding: 120px 0; }
	.aab-manifesto__sticky { position: static; height: auto; }
}
