/* AND VISION – interface (mu-plugin av-ui) */
/* Lexend (SIL OFL), variable 300–800, sous-ensemble latin, auto-hébergée */
@font-face { font-family: "Lexend"; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/lexend-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
	--o: #ff6600;
	--o2: #ff8a3d;
	--v: #7c5cff;
	--noir: #0e0e10;
	--noir2: #17171b;
	--encre: #222226;
	--gris: #5d5d66;
	--gris2: #9a9aa4;
	--creme: #efe6d8;
	--creme2: #f7f2ea;
	--blanc: #fff;
	--ligne: rgba(34, 34, 38, .1);
	--ligne-c: rgba(255, 255, 255, .12);
	--r: 22px;
	--r-s: 14px;
	--ombre: 0 24px 60px -24px rgba(14, 14, 16, .28);
	--ease: cubic-bezier(.22, 1, .36, 1);
	--font: "Lexend", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--hh: 76px;
	/* thème clair */
	--bg: #f7f2ea;
	--bg-alt: #fff;
	--bg-warm: #efe6d8;
	--surface: #fff;
	--text: #222226;
	--muted: #5d5d66;
	--faint: rgba(34, 34, 38, .22);
	--client: rgba(34, 34, 38, .38);
	--line: rgba(34, 34, 38, .1);
	--glass: rgba(255, 255, 255, .7);
	--glass-b: rgba(255, 255, 255, .9);
	--chip: #0e0e10;
	color-scheme: light;
}
/* thème sombre (bouton ou réglage de l'appareil) */
:root[data-theme="dark"] {
	--bg: #0f0f12;
	--bg-alt: #141418;
	--bg-warm: #19181c;
	--surface: #1b1b20;
	--text: #efece6;
	--muted: #a4a4ae;
	--faint: rgba(255, 255, 255, .2);
	--client: rgba(255, 255, 255, .42);
	--line: rgba(255, 255, 255, .1);
	--glass: rgba(255, 255, 255, .04);
	--glass-b: rgba(255, 255, 255, .08);
	--chip: #26262d;
	--ombre: 0 24px 60px -24px rgba(0, 0, 0, .8);
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	:root:not([data-theme]) { --bg: #0f0f12; --bg-alt: #141418; --bg-warm: #19181c; --surface: #1b1b20; --text: #efece6; --muted: #a4a4ae; --faint: rgba(255, 255, 255, .2); --client: rgba(255, 255, 255, .42); --line: rgba(255, 255, 255, .1); --glass: rgba(255, 255, 255, .04); --glass-b: rgba(255, 255, 255, .08); --chip: #26262d; color-scheme: dark; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--hh) + 12px); }
body.av { transition: background-color .4s, color .4s; margin: 0; font-family: var(--font); font-size: 1.0625rem; line-height: 1.7; color: var(--text); background: var(--bg); -webkit-font-smoothing: antialiased; overflow-x: hidden; overflow-x: clip; }
.av img { max-width: 100%; height: auto; display: block; }
.av a { color: inherit; text-decoration: none; }
.av h1, .av h2, .av h3 { margin: 0; font-weight: 700; line-height: 1.12; letter-spacing: -.02em; color: inherit; overflow-wrap: break-word; hyphens: manual; text-wrap: balance; }
.av p { margin: 0 0 1em; }
.av ul, .av ol { margin: 0; padding: 0; list-style: none; }
.av-ico { flex: none; display: inline-block; vertical-align: middle; }
.av-wrap { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
.av-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.av-skip { position: fixed; left: 12px; top: -60px; z-index: 200; background: var(--o); color: #fff !important; padding: 10px 16px; border-radius: 10px; font-weight: 600; transition: top .2s; }
.av-skip:focus { top: 12px; }
.av :focus-visible { outline: 3px solid var(--o2); outline-offset: 3px; border-radius: 8px; }
.av-main { display: block; }
.av [hidden] { display: none !important; }
.av-main > :first-child:not(.av-hero) { padding-top: calc(var(--hh) + 40px); }

/* ---------- Boutons ---------- */
.av-btn { --bg: var(--text); --fg: #fff; position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .55em; min-height: 52px; padding: .85em 1.6em; border-radius: 999px; border: 0; background: var(--bg); color: var(--fg) !important; font: 600 1rem/1.2 var(--font); cursor: pointer; isolation: isolate; overflow: hidden; transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .3s; white-space: nowrap; }
.av-btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .35) 50%, transparent 70%); transform: translateX(-120%); transition: transform .7s var(--ease); }
.av-btn:hover::before { transform: translateX(120%); }
.av-btn:hover { box-shadow: 0 16px 34px -14px var(--sh, rgba(0, 0, 0, .5)); }
.av-btn .av-ico { transition: transform .35s var(--ease); }
.av-btn:hover .av-ico { transform: translateX(3px); }
.av-btn--orange { --bg: linear-gradient(135deg, var(--o), var(--o2)); --sh: rgba(255, 102, 0, .65); background: var(--bg); }
.av-btn--ghost { --bg: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); backdrop-filter: blur(6px); }
.av-btn--ghost:hover { --bg: rgba(255, 255, 255, .14); }
.av-btn--blanc { --bg: #fff; --fg: var(--noir); }
.av-btn--wa { --bg: #1faa53; --sh: rgba(31, 170, 83, .6); }
.av-btn--contour { --bg: transparent; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55); }
.av-btn--sm { min-height: 44px; padding: .6em 1.15em; font-size: .9375rem; }
.av-lien { display: inline-flex; align-items: center; gap: .4em; font-weight: 600; color: var(--o) !important; }
.av-lien .av-ico { transition: transform .3s var(--ease); }
.av-lien:hover .av-ico { transform: translateX(4px); }

/* ---------- En-tête ---------- */
.av-header { position: fixed; inset: 0 0 auto; z-index: 100; height: var(--hh); color: #fff; transition: transform .45s var(--ease), background .35s, box-shadow .35s, height .35s; }
.av-header::before { content: ""; position: absolute; inset: 0; background: rgba(14, 14, 16, .72); backdrop-filter: saturate(160%) blur(16px); -webkit-backdrop-filter: saturate(160%) blur(16px); border-bottom: 1px solid var(--ligne-c); opacity: 0; transition: opacity .35s; }
.av-header.is-scrolled::before { opacity: 1; }
.av-header.is-scrolled { --hh: 66px; height: 66px; }
.av-header.is-hidden { transform: translateY(-100%); }
.av-header__in { position: relative; height: 100%; display: flex; align-items: center; gap: 24px; }
.av-logo { display: inline-flex; align-items: center; gap: 10px; flex: none; }
.av-logo img { width: 46px; height: auto; transition: transform .6s var(--ease); }
.av-logo:hover img { transform: scale(1.08); }
.av-logo__txt { font-weight: 600; font-size: 1.12rem; letter-spacing: .1em; white-space: nowrap; color: #fff; }
.av-logo__txt b { font-weight: 600; color: var(--o); }
.av-nav { margin-left: auto; display: none; }
.av-nav > ul { display: flex; gap: 4px; }
.av-nav > ul > li { position: relative; }
.av-nav > ul > li > a { position: relative; display: inline-flex; align-items: center; gap: 4px; padding: 10px 14px; font-size: .95rem; font-weight: 500; border-radius: 999px; color: rgba(255, 255, 255, .86); transition: color .25s, background .25s; }
.av-nav > ul > li > a::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 5px; height: 2px; border-radius: 2px; background: var(--o); transform: scaleX(0); transform-origin: right; transition: transform .4s var(--ease); }
.av-nav > ul > li > a:hover, .av-nav > ul > li > a[aria-current] { color: #fff; }
.av-nav > ul > li > a:hover::after, .av-nav > ul > li > a[aria-current]::after { transform: scaleX(1); transform-origin: left; }
.av-nav .av-ico { transition: transform .3s; }
.av-has-mega:hover > a .av-ico, .av-has-mega:focus-within > a .av-ico { transform: rotate(180deg); }
.av-mega { position: absolute; left: 50%; top: calc(100% + 12px); width: min(760px, 92vw); padding: 14px; border-radius: var(--r); background: rgba(23, 23, 27, .96); backdrop-filter: blur(18px); border: 1px solid var(--ligne-c); box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7); opacity: 0; visibility: hidden; transform: translate(-50%, 10px) scale(.98); transform-origin: top center; transition: opacity .3s, transform .4s var(--ease), visibility .3s; }
.av-mega::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 14px; }
.av-has-mega:hover .av-mega, .av-has-mega:focus-within .av-mega { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); }
.av-mega__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.av-mega__item { display: flex; gap: 14px; align-items: flex-start; padding: 12px; border-radius: var(--r-s); transition: background .25s; }
.av-mega__item:hover { background: rgba(255, 255, 255, .06); }
.av-mega__item strong { display: block; font-size: .95rem; font-weight: 600; color: #fff; line-height: 1.3; }
.av-mega__item small { display: block; font-size: .8rem; line-height: 1.45; color: var(--gris2); margin-top: 3px; }
.av-mega__ico { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: rgba(255, 102, 0, .14); color: var(--o2); transition: background .3s, color .3s, transform .4s var(--ease); }
.av-mega__item:hover .av-mega__ico { background: var(--o); color: #fff; transform: rotate(-8deg); }
.av-mega__cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; padding: 14px 16px; border-radius: var(--r-s); background: linear-gradient(110deg, rgba(255, 102, 0, .22), rgba(124, 92, 255, .18)); color: #fff; font-size: .9rem; }
.av-mega__cta b { color: var(--o2); }
.av-header__cta { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.av-icon-btn { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--ligne-c); transition: background .25s, transform .3s; }
.av-icon-btn--tel { display: none; }
.av-icon-btn:hover { background: rgba(255, 255, 255, .1); transform: rotate(12deg); }
.av-header__cta .av-btn--sm { display: none; }
.av-theme-btn { border: 0; background: transparent; color: #fff; cursor: pointer; padding: 0; }
.av-theme-btn .av-ico { grid-area: 1 / 1; transition: transform .5s var(--ease), opacity .3s; }
.av-ico--soleil { opacity: 0; transform: rotate(-90deg) scale(.5); }
:root[data-theme="dark"] .av-ico--lune { opacity: 0; transform: rotate(90deg) scale(.5); }
:root[data-theme="dark"] .av-ico--soleil { opacity: 1; transform: none; }
.av-burger { display: grid; place-content: center; gap: 5px; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px var(--ligne-c); cursor: pointer; }
.av-burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: #fff; transition: transform .4s var(--ease), opacity .3s; }
.av-burger span:nth-child(3) { width: 13px; justify-self: end; }
.av-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.av-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.av-burger[aria-expanded="true"] span:nth-child(3) { width: 20px; transform: translateY(-7px) rotate(-45deg); }
@media (min-width: 560px) {
	.av-header__cta .av-btn--sm { display: inline-flex; }
}
@media (min-width: 1100px) {
	.av-nav { display: block; }
	.av-header__cta { margin-left: 8px; }
	.av-icon-btn--tel { display: grid; }
	.av-burger { display: none; }
}

/* Tiroir mobile */
.av-drawer { position: fixed; inset: 0; z-index: 90; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: calc(var(--hh) + 24px) clamp(20px, 6vw, 48px) 32px; background: radial-gradient(120% 70% at 100% 0, rgba(255, 102, 0, .28), transparent 60%), radial-gradient(90% 60% at 0 100%, rgba(124, 92, 255, .22), transparent 60%), var(--noir); color: #fff; overflow-y: auto; clip-path: circle(0 at calc(100% - 44px) 38px); transition: clip-path .7s var(--ease); }
.av-drawer[hidden] { display: none; }
.av-drawer.is-open { clip-path: circle(150% at calc(100% - 44px) 38px); }
.av-drawer__link { display: flex; align-items: center; justify-content: space-between; padding: 14px 0; border-bottom: 1px solid var(--ligne-c); font-size: clamp(1.6rem, 7vw, 2.4rem); font-weight: 600; letter-spacing: -.02em; opacity: 0; transform: translateY(24px); transition: opacity .5s, transform .6s var(--ease), color .2s; transition-delay: calc(.15s + var(--i) * .05s); }
.av-drawer__link .av-ico { color: var(--o); }
.av-drawer__link:hover { color: var(--o2); }
.av-drawer.is-open .av-drawer__link { opacity: 1; transform: none; }
.av-drawer__bas { display: grid; gap: 12px; opacity: 0; transition: opacity .5s .5s; }
.av-drawer.is-open .av-drawer__bas { opacity: 1; }
.av-drawer__bas p { margin: 6px 0 0; display: flex; gap: 8px; align-items: center; justify-content: center; color: var(--gris2); font-size: .9rem; }
body.av-lock { overflow: hidden; }

/* ---------- Hero ---------- */
.av-hero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--noir); padding: calc(var(--hh) + clamp(28px, 6vw, 72px)) 0 clamp(64px, 9vw, 120px); }
.av-hero__fond { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.av-blob { position: absolute; border-radius: 50%; opacity: .5; will-change: transform; }
.av-blob--1 { width: 46vw; height: 46vw; max-width: 620px; max-height: 620px; right: -8vw; top: -10vw; background: radial-gradient(circle, var(--o) 0, rgba(255, 102, 0, 0) 68%); animation: av-blob 18s ease-in-out infinite alternate; }
.av-blob--2 { width: 40vw; height: 40vw; max-width: 520px; max-height: 520px; left: -12vw; bottom: -14vw; background: radial-gradient(circle, var(--v) 0, rgba(124, 92, 255, 0) 68%); opacity: .45; animation: av-blob 22s ease-in-out infinite alternate-reverse; }
.av-grille { position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 64px 64px; -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 75%); mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 75%); }
.av-hero__amp { position: absolute; right: -2vw; bottom: -12vw; font-size: clamp(260px, 42vw, 640px); font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1.5px rgba(255, 255, 255, .06); user-select: none; }
.av-hero__in { display: grid; gap: clamp(40px, 6vw, 64px); align-items: center; }
.av-pill { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 10px; border-radius: 999px; font-size: .85rem; color: rgba(255, 255, 255, .85); background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px var(--ligne-c); backdrop-filter: blur(8px); }
.av-pulse { position: relative; width: 9px; height: 9px; border-radius: 50%; background: #2bd576; }
.av-pulse::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid #2bd576; animation: av-pulse 2s ease-out infinite; }
.av-hero__h1 { margin-top: 22px !important; font-size: clamp(2.3rem, 6.2vw + .4rem, 4.6rem); font-weight: 800 !important; line-height: 1.04 !important; letter-spacing: -.035em !important; max-width: 13ch; }
.av-grad { background: linear-gradient(100deg, var(--o) 0%, #ff9a52 55%, var(--o) 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.av-hero__rot { line-height: 1.45; margin: 22px 0 0 !important; font-size: clamp(1.15rem, 2.2vw, 1.5rem); font-weight: 500; color: rgba(255, 255, 255, .9); }
.av-rot { display: inline-grid; vertical-align: top; height: 1.45em; line-height: 1.45; overflow: hidden; color: var(--o2); font-weight: 700; }
.av-rot > span { grid-area: 1 / 1; white-space: nowrap; transform: translateY(110%); opacity: 0; animation: av-rot 10s var(--ease) infinite; }
.av-rot > span:nth-child(2) { animation-delay: 2.5s; }
.av-rot > span:nth-child(3) { animation-delay: 5s; }
.av-rot > span:nth-child(4) { animation-delay: 7.5s; }
.av-rot > span:nth-child(5) { display: none; }
.av-hero__lead { margin: 16px 0 0 !important; max-width: 560px; color: rgba(255, 255, 255, .68); font-size: clamp(1rem, 1.4vw, 1.125rem); }
.av-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.av-chiffres { display: flex; flex-wrap: wrap; gap: clamp(20px, 4vw, 44px); margin-top: 38px !important; padding-top: 26px !important; border-top: 1px solid var(--ligne-c); }
.av-chiffres strong { display: block; font-size: clamp(1.9rem, 3.4vw, 2.6rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; background: linear-gradient(180deg, #fff, rgba(255, 255, 255, .6)); -webkit-background-clip: text; background-clip: text; color: transparent; font-variant-numeric: tabular-nums; }
.av-chiffres span { display: block; margin-top: 6px; font-size: .85rem; color: var(--gris2); }
.av-anim { animation: av-glisse .9s var(--ease) both; animation-delay: var(--d, 0s); }
.av-pill.av-anim { animation-name: av-up; }

.av-hero__visuel { position: relative; width: min(100%, 520px); aspect-ratio: 1; margin-inline: auto; container-type: inline-size; }
.av-hero__photo { position: absolute; inset: 8% 6% 8% 12%; border-radius: 32px; overflow: hidden; box-shadow: 0 50px 90px -30px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .08); transform: rotate(3deg); animation: av-in-photo 1.2s var(--ease) .2s both; }
.av-hero__photo img, .av-hero__photo2 img { width: 100%; height: 100%; object-fit: cover; }
.av-hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, transparent 50%, rgba(14, 14, 16, .5)); }
.av-hero__photo2 { position: absolute; left: 0; bottom: 2%; width: 44%; aspect-ratio: 5 / 4; border-radius: 22px; overflow: hidden; border: 5px solid var(--noir); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .8); transform: rotate(-6deg); animation: av-in-photo2 1.2s var(--ease) .45s both; }
.av-carte { position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 16px 12px 12px; border-radius: 18px; background: rgba(255, 255, 255, .94); color: #222226; box-shadow: 0 24px 50px -18px rgba(0, 0, 0, .6); font-size: .78rem; line-height: 1.25; animation: av-float 6s ease-in-out infinite; }
.av-carte small { display: block; color: #5d5d66; font-size: .72rem; }
.av-carte strong { display: block; font-size: .92rem; font-weight: 700; white-space: nowrap; }
.av-carte__ico { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: linear-gradient(135deg, var(--o), var(--o2)); color: #fff; }
.av-carte__ico--v { background: linear-gradient(135deg, var(--v), #a48bff); }
.av-carte--1 { top: 2%; left: 0; animation-delay: -1s; }
.av-carte--2 { right: -2%; bottom: 20%; animation-delay: -3.5s; }
.av-orbite { position: absolute; inset: -4%; border-radius: 50%; border: 1px dashed rgba(255, 255, 255, .16); animation: av-spin 40s linear infinite; }
.av-orbite__ico { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 46px; height: 46px; margin: -23px; border-radius: 50%; background: var(--noir2); color: var(--o2); box-shadow: 0 0 0 1px var(--ligne-c), 0 10px 30px -10px rgba(255, 102, 0, .5); transform: rotate(var(--a)) translateX(54cqw) rotate(calc(-1 * var(--a))); }
.av-orbite__ico .av-ico { animation: av-spin 40s linear infinite reverse; }
.av-hero__scroll { position: absolute; left: 50%; bottom: 22px; display: none; width: 26px; height: 42px; margin-left: -13px; border-radius: 14px; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .3); }
.av-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--o); animation: av-scroll 1.8s ease-in-out infinite; }
[data-depth] { will-change: transform; }
@media (max-width: 559px) {
	.av-hero__cta .av-btn { flex: 1 1 100%; }
	.av-carte { font-size: .7rem; padding: 9px 12px 9px 9px; }
	.av-carte strong { font-size: .8rem; }
	.av-carte__ico { width: 32px; height: 32px; }
}
@media (min-width: 980px) {
	.av-hero { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; }
	.av-hero__in { grid-template-columns: 1.08fr .92fr; }
	.av-hero__scroll { display: block; }
}

/* ---------- Bandeau défilant ---------- */
.av-bande { position: relative; z-index: 2; margin-top: -28px; overflow: hidden; background: linear-gradient(90deg, var(--o), #ff7d26); color: #fff; transform: rotate(-1.6deg); box-shadow: 0 20px 40px -20px rgba(255, 102, 0, .7); }
.av-bande__piste { display: flex; width: max-content; padding: 16px 0; animation: av-defile 38s linear infinite; }
.av-bande span { padding-inline: 22px; font-size: clamp(1rem, 1.8vw, 1.35rem); font-weight: 700; letter-spacing: -.01em; white-space: nowrap; text-transform: uppercase; }
.av-bande i { font-style: normal; opacity: .7; }
.av-bande:hover .av-bande__piste { animation-play-state: paused; }

/* ---------- Clients ---------- */
.av-clients { padding: clamp(56px, 7vw, 80px) 0 clamp(16px, 3vw, 24px); text-align: center; }
.av-clients__t { margin: 0 0 22px !important; font-size: .85rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.av-clients__liste { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px clamp(24px, 4vw, 52px); }
.av-clients__liste li { font-size: clamp(1.05rem, 2vw, 1.4rem); font-weight: 700; letter-spacing: -.02em; color: var(--client); transition: color .3s, transform .3s; }
.av-clients__liste li:hover { color: var(--o); transform: translateY(-2px); }

/* ---------- Sections ---------- */
.av-section { position: relative; padding: clamp(72px, 10vw, 128px) 0; }
.av-titre { max-width: 720px; margin-bottom: clamp(36px, 5vw, 56px); }
.av-titre--centre { margin-inline: auto; text-align: center; }
.av-titre h2 { font-size: clamp(1.85rem, 3.6vw + .3rem, 3.1rem); font-weight: 800; letter-spacing: -.03em; }
.av-titre p { margin: 18px 0 0 !important; font-size: 1.075rem; color: var(--muted); }
.av-kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 16px; font-size: .8rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--o); }
.av-kicker::before { content: ""; width: 26px; height: 2px; border-radius: 2px; background: currentColor; }
.av-titre--centre .av-kicker::after { content: ""; width: 26px; height: 2px; border-radius: 2px; background: currentColor; }
.av-kicker--clair { color: rgba(255, 255, 255, .85); }
.av-titre-ligne { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 24px; margin-bottom: clamp(36px, 5vw, 56px); }
.av-titre-ligne .av-titre { margin-bottom: 0; }

/* Agence */
.av-agence { background: var(--bg); padding-top: clamp(48px, 7vw, 88px); }
.av-agence__grid { display: grid; gap: clamp(40px, 6vw, 80px); align-items: center; }
.av-agence__visuel { position: relative; }
.av-agence__visuel img { width: 100%; border-radius: var(--r); box-shadow: var(--ombre); aspect-ratio: 4 / 3; object-fit: cover; }
.av-agence__visuel::before { content: ""; position: absolute; inset: -14px 14px 14px -14px; z-index: -1; border-radius: var(--r); border: 2px solid var(--o); opacity: .35; }
.av-agence__badge { position: absolute; right: clamp(-10px, -1vw, 0px); bottom: -24px; max-width: 220px; padding: 18px 20px; border-radius: 18px; background: var(--noir); color: #fff; box-shadow: var(--ombre); }
.av-agence__badge strong { display: block; font-size: 2rem; font-weight: 800; line-height: 1; color: var(--o); }
.av-agence__badge span { display: block; margin-top: 6px; font-size: .85rem; line-height: 1.4; color: rgba(255, 255, 255, .75); }
.av-agence p { color: var(--muted); }
.av-piliers { display: grid; gap: 14px; margin-top: 28px !important; }
.av-piliers li { display: flex; gap: 16px; padding: 18px; border-radius: var(--r-s); background: var(--surface); box-shadow: 0 1px 0 var(--line); transition: transform .35s var(--ease), box-shadow .35s; }
.av-piliers li:hover { transform: translateX(6px); box-shadow: var(--ombre); }
.av-piliers li > span { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; background: rgba(255, 102, 0, .1); color: var(--o); }
.av-piliers h3 { font-size: 1.05rem; margin-bottom: 4px !important; }
.av-piliers p { margin: 0 !important; font-size: .95rem; line-height: 1.55; }
@media (min-width: 900px) { .av-agence__grid { grid-template-columns: .95fr 1.05fr; } .av-agence__visuel img { aspect-ratio: 4 / 5; } }

/* Services */
.av-services { background: var(--bg-alt); }
.av-services::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 40% at 50% 0, rgba(255, 102, 0, .07), transparent 70%); pointer-events: none; }
.av-cartes { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.av-service { --mx: 50%; --my: 50%; position: relative; display: flex; flex-direction: column; gap: 10px; padding: 28px 24px 24px; border-radius: var(--r); background: var(--bg); isolation: isolate; overflow: hidden; transition: transform .45s var(--ease), box-shadow .45s var(--ease), background .4s; }
.av-service::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(420px circle at var(--mx) var(--my), rgba(255, 102, 0, .16), transparent 45%); opacity: 0; transition: opacity .4s; }
.av-service:hover { transform: translateY(-8px); background: var(--surface); box-shadow: 0 30px 60px -28px rgba(14, 14, 16, .35), inset 0 0 0 1px rgba(255, 102, 0, .25); }
.av-service:hover::before { opacity: 1; }
.av-service__num { position: absolute; top: 20px; right: 22px; font-size: .85rem; font-weight: 700; color: var(--faint); }
.av-service__ico { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 10px; border-radius: 18px; background: var(--chip); color: var(--o2); transition: transform .5s var(--ease), background .4s, color .4s; }
.av-service:hover .av-service__ico { transform: rotate(-10deg) scale(1.06); background: linear-gradient(135deg, var(--o), var(--o2)); color: #fff; }
.av-service h3 { font-size: 1.2rem; }
.av-service p { margin: 0 !important; font-size: .95rem; line-height: 1.6; color: var(--muted); flex: 1; }
.av-service__go { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: .9rem; font-weight: 600; color: var(--o); }
.av-service__go .av-ico { transition: transform .35s var(--ease); }
@media (max-width: 559px) {
	.av-cartes { gap: 12px; }
	.av-service { display: grid; grid-template-columns: 50px 1fr; column-gap: 16px; row-gap: 4px; padding: 20px 18px; }
	.av-service__ico { grid-row: span 3; width: 50px; height: 50px; margin: 0; border-radius: 15px; }
	.av-service__num { display: none; }
	.av-service h3 { font-size: 1.08rem; }
	.av-service__go { margin-top: 4px; }
}
.av-service:hover .av-service__go .av-ico { transform: translateX(5px); }

/* Méthode */
.av-methode { background: var(--noir); color: #fff; overflow: hidden; }
.av-methode::before { content: ""; position: absolute; width: 700px; height: 700px; left: 50%; top: -360px; margin-left: -350px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 102, 0, .22), transparent 65%); filter: blur(20px); }
.av-methode .av-titre p { color: rgba(255, 255, 255, .62); }
.av-etapes { position: relative; display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); counter-reset: e; }
.av-etape { position: relative; padding: 30px 24px 26px; border-radius: var(--r); background: rgba(255, 255, 255, .04); box-shadow: inset 0 0 0 1px var(--ligne-c); transition: background .4s, transform .45s var(--ease); }
.av-etape:hover { background: rgba(255, 255, 255, .07); transform: translateY(-6px); }
.av-etape__n { position: absolute; top: 14px; right: 18px; font-size: 3.4rem; font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .18); }
.av-etape__ico { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 20px; border-radius: 16px; background: linear-gradient(135deg, var(--o), var(--o2)); box-shadow: 0 14px 30px -12px rgba(255, 102, 0, .8); }
.av-etape h3 { font-size: 1.15rem; margin-bottom: 8px !important; }
.av-etape p { margin: 0 !important; font-size: .95rem; line-height: 1.6; color: rgba(255, 255, 255, .62); }

/* Réalisations */
.av-projets { background: var(--bg); }
.av-galerie { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.av-projet { position: relative; display: block; border-radius: var(--r); overflow: hidden; background: var(--bg-warm); aspect-ratio: 4 / 3; isolation: isolate; box-shadow: 0 1px 0 var(--line); }
.av-projet img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.av-projet.av-p--haut img { object-position: 50% 15%; }
.av-projet::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(14, 14, 16, .85)); opacity: .9; transition: opacity .4s; }
.av-projet__info { position: absolute; left: 20px; right: 70px; bottom: 18px; z-index: 1; color: #fff; transition: transform .5s var(--ease); }
.av-projet__info small { display: block; font-size: .8rem; color: rgba(255, 255, 255, .75); }
.av-projet__info strong { display: block; font-size: 1.25rem; font-weight: 700; line-height: 1.2; }
.av-projet__go { position: absolute; right: 18px; bottom: 18px; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--o); color: #fff; transform: scale(.7) rotate(-45deg); opacity: 0; transition: transform .5s var(--ease), opacity .4s; }
.av-projet:hover img { transform: scale(1.07); }
.av-projet:hover .av-projet__go { transform: none; opacity: 1; }
.av-projet:hover .av-projet__info { transform: translateY(-4px); }
@media (hover: none) { .av-projet__go { transform: none; opacity: 1; } }
@media (max-width: 639px) {
	.av-galerie { gap: 10px; }
	.av-projet:not(.av-p--grand):not(.av-p--large) { aspect-ratio: 1; }
	.av-projet:not(.av-p--grand):not(.av-p--large) .av-projet__go { display: none; }
	.av-projet:not(.av-p--grand) .av-projet__info { left: 12px; right: 12px; bottom: 10px; }
	.av-projet:not(.av-p--grand) .av-projet__info strong { font-size: 1rem; }
	.av-projet:not(.av-p--grand) .av-projet__info small { display: none; }
	.av-projet:not(.av-p--grand)::after { background: linear-gradient(180deg, transparent 70%, rgba(14, 14, 16, .8)); }
}
.av-p--grand, .av-p--large { grid-column: span 2; }
.av-p--large { aspect-ratio: 2 / 1; }
@media (min-width: 980px) {
	.av-galerie { grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; }
	.av-projet, .av-p--large { aspect-ratio: auto; }
	.av-p--grand { grid-row: span 2; }
	.av-p--grand .av-projet__info strong { font-size: 1.8rem; }
}

/* Enjeux */
.av-enjeux { background: var(--bg-warm); }
.av-enjeux__grid { display: grid; gap: clamp(36px, 5vw, 72px); align-items: center; }
.av-enjeux p { color: var(--muted); }
.av-enjeux__liste { display: grid; gap: 16px; }
.av-enjeux__liste li { display: flex; gap: 18px; padding: 24px; border-radius: var(--r); background: var(--glass); box-shadow: inset 0 0 0 1px var(--glass-b); transition: transform .45s var(--ease), background .3s, box-shadow .45s; }
.av-enjeux__liste li:hover { transform: translateY(-4px); background: var(--surface); box-shadow: var(--ombre); }
.av-enjeux__ico { flex: none; display: grid; place-items: center; width: 50px; height: 50px; border-radius: 15px; background: var(--chip); color: var(--o2); }
.av-enjeux__liste h3 { font-size: 1.12rem; margin-bottom: 6px !important; }
.av-enjeux__liste p { margin: 0 !important; font-size: .96rem; line-height: 1.6; }
@media (min-width: 900px) { .av-enjeux__grid { grid-template-columns: 1.1fr .9fr; } }

/* Pourquoi */
.av-pourquoi { background: var(--bg-alt); }
.av-pourquoi__grid { display: grid; gap: clamp(40px, 6vw, 80px); align-items: center; }
.av-raisons { display: grid; gap: 16px; margin-bottom: 34px !important; }
.av-raisons li { display: flex; gap: 14px; align-items: flex-start; color: var(--muted); }
.av-raisons li > .av-ico { flex: none; margin-top: 3px; padding: 4px; width: 26px; height: 26px; border-radius: 50%; background: var(--o); color: #fff; stroke-width: 3; }
.av-raisons strong { color: var(--text); font-weight: 600; }
.av-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.av-stat { display: flex; flex-direction: column; justify-content: flex-end; min-height: 180px; padding: 26px; border-radius: var(--r); background: var(--bg); transition: transform .45s var(--ease); }
.av-stat:nth-child(2) { transform: translateY(28px); }
.av-stat:nth-child(4) { transform: translateY(28px); }
.av-stat--o { background: var(--noir); color: #fff; }
.av-stat:nth-child(2) { background: linear-gradient(140deg, var(--o), #ff8f45); }
.av-stat strong { font-size: clamp(2.6rem, 5vw, 3.8rem); font-weight: 800; line-height: 1; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.av-stat span { margin-top: 8px; font-size: .95rem; opacity: .8; }
@media (min-width: 900px) { .av-pourquoi__grid { grid-template-columns: 1fr 1fr; } }

/* Témoignages */
.av-avis { background: var(--bg-warm); overflow: hidden; }
.av-avis__liste { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.av-avis__carte { position: relative; display: flex; flex-direction: column; margin: 0; padding: 30px 28px 26px; border-radius: var(--r); background: var(--surface); box-shadow: 0 1px 0 var(--line); transition: transform .45s var(--ease), box-shadow .45s; }
.av-avis__carte:hover { transform: translateY(-6px) rotate(-.4deg); box-shadow: var(--ombre); }
.av-avis__q { position: absolute; top: 24px; right: 24px; color: rgba(255, 102, 0, .2); }
.av-etoiles { display: flex; gap: 3px; color: #ffb020; }
.av-etoiles .av-ico { fill: currentColor; }
.av-avis blockquote { flex: 1; margin: 16px 0 22px; }
.av-avis blockquote p { margin: 0 !important; font-size: 1.02rem; line-height: 1.65; color: var(--text); }
.av-avis figcaption { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.av-avis__init { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(135deg, var(--noir), #3a3a44); color: var(--o2); font-weight: 700; font-size: .95rem; }
.av-avis figcaption strong { display: block; font-size: .98rem; line-height: 1.3; }
.av-avis figcaption small { display: block; color: var(--muted); font-size: .85rem; }

/* Équipe */
.av-equipe { background: var(--bg); }
.av-membres { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); max-width: 680px; margin-inline: auto; }
.av-membre { display: block; text-align: center; }
.av-membre__photo { position: relative; display: block; margin-bottom: 18px; border-radius: var(--r); overflow: hidden; background: var(--bg-warm); aspect-ratio: 560 / 659; }
.av-membre__photo::after { content: ""; position: absolute; inset: auto 0 0; height: 40%; background: linear-gradient(transparent, rgba(255, 102, 0, .35)); opacity: 0; transition: opacity .5s; }
.av-membre__photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.25); transition: transform .9s var(--ease), filter .5s; }
.av-membre:hover .av-membre__photo img { transform: scale(1.05); filter: none; }
.av-membre:hover .av-membre__photo::after { opacity: 1; }
.av-membre strong { display: block; font-size: 1.2rem; font-weight: 700; }
.av-membre small { display: block; margin-top: 2px; color: var(--o); font-size: .92rem; font-weight: 500; }

/* FAQ */
.av-faq { background: var(--bg-alt); }
.av-faq__grid { display: grid; gap: clamp(32px, 5vw, 72px); align-items: start; }
.av-faq__liste { display: grid; gap: 12px; }
.av-q { border-radius: var(--r-s); background: var(--bg); transition: background .3s, box-shadow .3s; }
.av-q[open] { background: var(--surface); box-shadow: var(--ombre), inset 0 0 0 1px rgba(255, 102, 0, .2); }
.av-q summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px; cursor: pointer; list-style: none; }
.av-q summary::-webkit-details-marker { display: none; }
.av-q summary h3 { font-size: 1.02rem; font-weight: 600; line-height: 1.4; letter-spacing: -.01em; }
.av-q__ico { flex: none; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--bg-alt); color: var(--o); box-shadow: 0 0 0 1px var(--line); transition: transform .4s var(--ease), background .3s, color .3s; }
.av-q[open] .av-q__ico { transform: rotate(45deg); background: var(--o); color: #fff; }
.av-q p { margin: 0 !important; padding: 0 22px 22px; color: var(--muted); font-size: .98rem; }
.av-q[open] p { animation: av-up .5s var(--ease); }
@media (min-width: 900px) { .av-faq__grid { grid-template-columns: .8fr 1.2fr; } .av-faq__grid > div:first-child { position: sticky; top: calc(var(--hh) + 30px); } }

/* Blog */
.av-blog { background: var(--bg); }
.av-articles { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.av-article { display: flex; flex-direction: column; gap: 10px; padding: 12px 12px 22px; border-radius: var(--r); background: var(--surface); transition: transform .45s var(--ease), box-shadow .45s; }
.av-article:hover { transform: translateY(-6px); box-shadow: var(--ombre); }
.av-article__img { display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 10; background: var(--bg-warm); }
.av-article__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.av-article:hover .av-article__img img { transform: scale(1.06); }
.av-article__date { padding: 6px 10px 0; font-size: .82rem; color: var(--muted); }
.av-article h3 { padding: 0 10px; font-size: 1.12rem; line-height: 1.35; flex: 1; }
.av-article .av-lien { padding: 4px 10px 0; font-size: .92rem; }

/* CTA final */
.av-cta { padding: 0 0 clamp(72px, 10vw, 120px); background: var(--bg); }
.av-cta__in { position: relative; display: grid; gap: 28px; align-items: center; padding: clamp(36px, 6vw, 72px) clamp(24px, 5vw, 64px); border-radius: 32px; background: radial-gradient(80% 120% at 100% 0, #ff9a55 0, transparent 60%), linear-gradient(130deg, var(--o) 0, #e85500 100%); color: #fff; overflow: hidden; isolation: isolate; box-shadow: 0 40px 80px -36px rgba(255, 102, 0, .8); }
.av-cta__amp { position: absolute; right: -30px; top: -90px; z-index: -1; font-size: 360px; font-weight: 800; line-height: 1; color: rgba(255, 255, 255, .1); animation: av-float 9s ease-in-out infinite; }
.av-cta h2 { font-size: clamp(1.9rem, 4vw, 3.2rem); font-weight: 800; letter-spacing: -.03em; }
.av-cta p { margin: 14px 0 0 !important; max-width: 560px; color: rgba(255, 255, 255, .88); }
.av-cta__btns { display: flex; flex-wrap: wrap; gap: 12px; }
.av-cta .av-kicker::before { background: #fff; }
@media (max-width: 559px) { .av-cta__btns .av-btn { flex: 1 1 100%; } }
@media (min-width: 1000px) { .av-cta__in { grid-template-columns: 1.3fr 1fr; } .av-cta__btns { justify-content: flex-end; } }

/* ---------- Bandeau des pages intérieures ---------- */
.av-phero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--noir); padding: calc(var(--hh) + clamp(36px, 6vw, 72px)) 0 clamp(48px, 7vw, 88px); }
.av-main > .av-phero:first-child { padding-top: calc(var(--hh) + clamp(36px, 6vw, 72px)); }
.av-phero__h1 { margin-top: 18px !important; max-width: 18ch; font-size: clamp(2.1rem, 5vw + .3rem, 3.9rem); font-weight: 800 !important; line-height: 1.06 !important; letter-spacing: -.035em !important; }
.av-phero__lead { margin: 18px 0 0 !important; max-width: 620px; color: rgba(255, 255, 255, .7); font-size: clamp(1rem, 1.4vw, 1.15rem); }
.av-fil { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; font-size: .85rem; color: rgba(255, 255, 255, .55); }
.av-fil a:hover { color: var(--o2); }
.av-fil [aria-current] { color: rgba(255, 255, 255, .85); }

/* ---------- Formulaire de devis ---------- */
.av-devis { padding-top: clamp(40px, 6vw, 72px); }
.av-devis__grid { display: grid; gap: clamp(24px, 4vw, 48px); align-items: start; }
@media (min-width: 1000px) { .av-devis__grid { grid-template-columns: 1.45fr .85fr; } .av-devis__aside { position: sticky; top: calc(var(--hh) + 24px); } }
.av-form { position: relative; padding: clamp(22px, 4vw, 44px); border-radius: 28px; background: var(--surface); box-shadow: var(--ombre), inset 0 0 0 1px var(--line); }
.av-form__etapes { display: flex; gap: 8px; margin-bottom: 14px !important; font-size: .85rem; font-weight: 600; color: var(--muted); }
.av-form__etapes li { display: flex; align-items: center; gap: 8px; flex: 1; transition: color .3s; }
.av-form__etapes li span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); font-size: .8rem; transition: background .3s, color .3s; }
.av-form__etapes li.is-actif { color: var(--text); }
.av-form__etapes li.is-actif span { background: var(--o); color: #fff; box-shadow: none; }
.av-form__barre { height: 4px; margin-bottom: 30px; border-radius: 4px; background: var(--bg); overflow: hidden; }
.av-form__barre span { display: block; width: 33%; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--o), var(--o2)); transition: width .6s var(--ease); }
.av-form fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.av-form__pas.is-actif { animation: av-up .6s var(--ease); }
.av-form legend { padding: 0; margin-bottom: 6px; font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 800; letter-spacing: -.02em; color: var(--text); }
.av-form__aide { margin: 0 0 18px !important; color: var(--muted); font-size: .95rem; }
.av-form fieldset > legend + .av-champ, .av-form fieldset > legend + .av-champs { margin-top: 20px; }
.av-puces { display: flex; flex-wrap: wrap; gap: 10px; }
.av-puce { position: relative; cursor: pointer; }
.av-puce input { position: absolute; opacity: 0; pointer-events: none; }
.av-puce span { display: inline-flex; align-items: center; gap: 9px; padding: 12px 16px; border-radius: 999px; background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); font-size: .95rem; font-weight: 500; transition: background .25s, box-shadow .25s, color .25s, transform .25s var(--ease); }
.av-puce span .av-ico { color: var(--o); transition: color .25s; }
.av-puce:hover span { transform: translateY(-2px); box-shadow: inset 0 0 0 1px rgba(255, 102, 0, .5); }
.av-puce input:checked + span { background: var(--o); color: #fff; box-shadow: 0 10px 24px -12px rgba(255, 102, 0, .8); }
.av-puce input:checked + span .av-ico { color: #fff; }
.av-puce input:focus-visible + span { outline: 3px solid var(--o2); outline-offset: 2px; }
.av-puces--petit .av-puce span { padding: 9px 14px; font-size: .9rem; }
.av-champs { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); margin-bottom: 18px; }
.av-champ { display: grid; gap: 8px; }
.av-champ > span { font-size: .9rem; font-weight: 600; color: var(--text); }
.av-champ--large { margin-bottom: 16px; }
.av-form input:not([type=checkbox]):not([type=radio]), .av-form select, .av-form textarea { width: 100%; padding: 14px 16px; border: 0; border-radius: 14px; background: var(--bg); color: var(--text); box-shadow: inset 0 0 0 1px var(--line); font: 400 1rem/1.4 var(--font); transition: box-shadow .25s, background .25s; }
.av-form textarea { resize: vertical; min-height: 120px; }
.av-form input:focus, .av-form select:focus, .av-form textarea:focus { outline: none; box-shadow: inset 0 0 0 2px var(--o); background: var(--surface); }
.av-form ::placeholder { color: var(--muted); opacity: .7; }
.av-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.av-form__erreur { margin-top: 18px; padding: 12px 16px; border-radius: 12px; background: rgba(229, 57, 53, .1); color: #d32f2f; font-size: .92rem; font-weight: 500; }
:root[data-theme="dark"] .av-form__erreur { color: #ff8a80; }
.av-form__nav { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--line); }
.av-form__nav [data-prec] { margin-right: auto; }
.av-btn--ghost-d { --bg: transparent; --fg: var(--text); box-shadow: inset 0 0 0 1px var(--line); }
.av-ico--retour { transform: rotate(180deg); }
.av-btn--ghost-d:hover .av-ico--retour { transform: rotate(180deg) translateX(3px); }
.av-form.is-envoi { opacity: .7; pointer-events: none; }
.av-form.is-fini > :not(.av-form__merci) { display: none; }
.av-form__merci { text-align: center; padding: clamp(20px, 4vw, 40px) 0; outline: none; animation: av-up .7s var(--ease); }
.av-form__merci-ico { display: inline-grid; place-items: center; width: 76px; height: 76px; margin-bottom: 20px; border-radius: 50%; background: linear-gradient(135deg, var(--o), var(--o2)); color: #fff; box-shadow: 0 20px 40px -16px rgba(255, 102, 0, .8); }
.av-form__merci h2 { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; }
.av-form__merci p { max-width: 460px; margin: 14px auto 24px !important; color: var(--muted); }
@media (max-width: 559px) { .av-form__nav .av-btn { flex: 1 1 100%; } .av-form__nav [data-prec] { order: 3; } .av-form__etapes { font-size: .78rem; } }
.av-devis__aside { display: grid; gap: 18px; }
.av-devis__carte { padding: 28px; border-radius: 24px; background: var(--bg-warm); }
.av-devis__carte h2 { font-size: 1.2rem; font-weight: 700; margin-bottom: 18px !important; }
.av-devis__suite { display: grid; gap: 16px; }
.av-devis__suite li { display: flex; gap: 14px; }
.av-devis__suite li > span { flex: none; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--o); color: #fff; font-weight: 700; font-size: .85rem; }
.av-devis__suite strong { display: block; font-size: .98rem; }
.av-devis__suite p { margin: 2px 0 0 !important; color: var(--muted); font-size: .9rem; line-height: 1.5; }
.av-devis__carte--sombre { background: var(--noir); color: #fff; }
.av-devis__lien { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--ligne-c); transition: color .25s; }
.av-devis__lien .av-ico { color: var(--o); }
.av-devis__lien small { display: block; font-size: .75rem; color: rgba(255, 255, 255, .55); }
.av-devis__lien span { font-weight: 600; word-break: break-word; }
.av-devis__lien:hover { color: var(--o2); }
.av-devis__horaires { display: flex; gap: 8px; align-items: flex-start; margin: 16px 0 0 !important; font-size: .85rem; color: rgba(255, 255, 255, .6); line-height: 1.5; }

/* ---------- Pages de services ---------- */
.av-phero .av-hero__cta { margin-top: 28px; }
.av-svc-intro__grid { display: grid; gap: clamp(36px, 5vw, 72px); align-items: start; }
@media (min-width: 960px) { .av-svc-intro__grid { grid-template-columns: 1.1fr .9fr; } .av-svc-intro__visuel { position: sticky; top: calc(var(--hh) + 24px); } }
.av-prose p { color: var(--muted); }
.av-prose a { color: var(--o); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.av-svc-intro__visuel { position: relative; }
.av-svc-intro__visuel img { width: 100%; aspect-ratio: 8 / 9; object-fit: cover; border-radius: var(--r); box-shadow: var(--ombre); }
.av-svc-intro__visuel::before { content: ""; position: absolute; inset: 14px -14px -14px 14px; z-index: -1; border-radius: var(--r); border: 2px solid var(--o); opacity: .35; }
.av-svc-badge { position: absolute; left: -12px; bottom: 28px; display: flex; align-items: center; gap: 12px; padding: 14px 18px 14px 14px; border-radius: 18px; background: var(--noir); color: #fff; box-shadow: var(--ombre); animation: av-float 6s ease-in-out infinite; }
.av-svc-badge > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: linear-gradient(135deg, var(--o), var(--o2)); }
.av-svc-badge strong { display: block; font-size: 1.05rem; }
.av-svc-badge small { display: block; font-size: .78rem; color: rgba(255, 255, 255, .7); }
.av-sommaire { margin-top: 26px; padding: 22px 24px; border-radius: var(--r-s); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); }
.av-sommaire strong { display: block; margin-bottom: 10px; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; color: var(--o); }
.av-sommaire ol { display: grid; gap: 6px; counter-reset: s; }
.av-sommaire li { counter-increment: s; }
.av-sommaire a { display: flex; gap: 10px; font-size: .95rem; font-weight: 500; transition: color .2s, transform .3s var(--ease); }
.av-sommaire a::before { content: counter(s, decimal-leading-zero); color: var(--faint); font-weight: 700; font-variant-numeric: tabular-nums; }
.av-sommaire a:hover { color: var(--o); transform: translateX(4px); }
.av-service--fixe { cursor: default; }
@media (min-width: 900px) { .av-svc-offre .av-cartes { grid-template-columns: repeat(3, 1fr); } }
.av-mini-projets { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.av-mini-projets .av-projet { aspect-ratio: 4 / 3; }
.av-autres { background: var(--bg); }
.av-autres__grille { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.av-autre { display: flex; align-items: center; gap: 14px; padding: 18px; border-radius: var(--r-s); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); transition: transform .35s var(--ease), box-shadow .35s; }
.av-autre > .av-ico:last-child { margin-left: auto; color: var(--faint); transition: color .3s, transform .3s var(--ease); }
.av-autre:hover { transform: translateY(-3px); box-shadow: var(--ombre), inset 0 0 0 1px rgba(255, 102, 0, .3); }
.av-autre:hover > .av-ico:last-child { color: var(--o); transform: rotate(45deg); }
.av-autre__ico { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--chip); color: var(--o2); }
.av-autre strong { display: block; font-size: 1rem; }
.av-autre small { display: block; font-size: .85rem; line-height: 1.45; color: var(--muted); }

/* ---------- Page Services ---------- */
.av-svc-liste { display: grid; gap: 18px; }
@media (min-width: 900px) { .av-svc-liste { grid-template-columns: 1fr 1fr; } }
.av-svc-carte { display: grid; grid-template-columns: 38% 1fr; border-radius: var(--r); overflow: hidden; background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); transition: transform .45s var(--ease), box-shadow .45s; }
.av-svc-carte:hover { transform: translateY(-6px); box-shadow: var(--ombre), inset 0 0 0 1px rgba(255, 102, 0, .3); }
.av-svc-carte__img { overflow: hidden; }
.av-svc-carte__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.av-svc-carte:hover .av-svc-carte__img img { transform: scale(1.06); }
.av-svc-carte__txt { display: flex; flex-direction: column; gap: 8px; padding: 24px; }
.av-svc-carte__txt .av-service__ico { width: 48px; height: 48px; margin: 0 0 6px; border-radius: 14px; }
.av-svc-carte h3 { font-size: 1.25rem; }
.av-svc-carte p { margin: 0 !important; color: var(--muted); font-size: .95rem; line-height: 1.55; }
.av-svc-carte ul { display: grid; gap: 4px; margin: 6px 0 !important; font-size: .88rem; }
.av-svc-carte li { display: flex; gap: 8px; align-items: center; }
.av-svc-carte li .av-ico { color: var(--o); stroke-width: 3; }
.av-svc-carte:hover .av-service__go .av-ico { transform: translateX(5px); }
@media (max-width: 559px) { .av-svc-carte { grid-template-columns: 1fr; } .av-svc-carte__img { aspect-ratio: 16 / 9; } }
.av-scenarios { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.av-scenario { padding: 28px 24px; border-radius: var(--r); background: var(--glass); box-shadow: inset 0 0 0 1px var(--glass-b); transition: transform .45s var(--ease), box-shadow .45s; }
.av-scenario:hover { transform: translateY(-4px); box-shadow: var(--ombre); }
.av-scenario .av-enjeux__ico { margin-bottom: 16px; }
.av-scenario h3 { font-size: 1.15rem; margin-bottom: 6px !important; }
.av-scenario p { margin: 0 0 14px !important; color: var(--muted); font-size: .95rem; }
.av-scenario ul { display: grid; gap: 8px; }
.av-scenario li a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--surface); font-size: .92rem; font-weight: 600; transition: color .25s, transform .3s var(--ease); }
.av-scenario li a .av-ico { color: var(--o); }
.av-scenario li a:hover { color: var(--o); transform: translateX(4px); }
@media (min-width: 900px) { .av-cartes--3 { grid-template-columns: repeat(3, 1fr); } }

/* ---------- Page Contact ---------- */
.av-contact { padding-top: clamp(40px, 6vw, 72px); }
.av-contact__cartes { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); margin-bottom: clamp(28px, 4vw, 48px); }
.av-contact__carte { display: flex; flex-direction: column; gap: 2px; padding: 22px; border-radius: var(--r); background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); transition: transform .4s var(--ease), box-shadow .4s; }
.av-contact__carte:hover { transform: translateY(-5px); box-shadow: var(--ombre), inset 0 0 0 1px rgba(255, 102, 0, .3); }
.av-contact__carte > span { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 12px; border-radius: 15px; background: var(--chip); color: var(--o2); }
.av-contact__carte--wa > span { background: #1faa53; color: #fff; }
.av-contact__carte small { font-size: .8rem; color: var(--muted); }
.av-contact__carte strong { font-size: 1.02rem; word-break: break-word; }
.av-contact__carte em { font-style: normal; font-size: .85rem; color: var(--o); font-weight: 600; margin-top: 4px; }
.av-contact__grid { display: grid; gap: clamp(24px, 4vw, 40px); align-items: start; }
@media (min-width: 1000px) { .av-contact__grid { grid-template-columns: 1.2fr 1fr; } }
.av-contact__t { font-size: clamp(1.35rem, 2.4vw, 1.75rem); font-weight: 800; margin-bottom: 6px !important; }
.av-form__aide a { color: var(--o); font-weight: 600; }
.av-carte-plan { border-radius: 28px; overflow: hidden; background: var(--noir); color: #fff; box-shadow: var(--ombre); }
.av-carte-plan__fond { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-height: 340px; padding: 30px; text-align: center; background: radial-gradient(circle at 50% 40%, rgba(255, 102, 0, .35), transparent 55%), repeating-linear-gradient(0deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 40px), repeating-linear-gradient(90deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 40px), #141418; }
.av-carte-plan__fond.is-carte { padding: 0; }
.av-carte-plan__fond iframe { width: 100%; height: 380px; border: 0; display: block; }
.av-carte-plan__pin { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 6px; border-radius: 50%; background: var(--o); box-shadow: 0 0 0 10px rgba(255, 102, 0, .2), 0 0 0 22px rgba(255, 102, 0, .08); animation: av-float 4s ease-in-out infinite; }
.av-carte-plan__fond > span:not(.av-carte-plan__pin) { color: rgba(255, 255, 255, .7); font-size: .95rem; margin-bottom: 10px; }
.av-carte-plan__infos { display: grid; gap: 14px; padding: 24px 28px 28px; }
.av-carte-plan__infos li { display: flex; gap: 12px; }
.av-carte-plan__infos .av-ico { color: var(--o); margin-top: 3px; }
.av-carte-plan__infos strong { display: block; font-size: .85rem; color: rgba(255, 255, 255, .6); font-weight: 500; }

.av-contact__venir { display: grid; gap: clamp(20px, 3vw, 36px); align-items: center; margin-bottom: clamp(28px, 4vw, 48px); padding: clamp(18px, 3vw, 28px); border-radius: 28px; background: var(--bg-warm); }
.av-contact__venir img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: var(--r); }
.av-contact__venir h2 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); font-weight: 800; margin-bottom: 12px !important; }
.av-contact__venir p { color: var(--muted); }
@media (min-width: 900px) { .av-contact__venir { grid-template-columns: .8fr 1.2fr; } }

/* ---------- Page Réalisations ---------- */
.av-filtres { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.av-filtre { padding: 10px 18px; border: 0; border-radius: 999px; background: var(--surface); color: var(--text); box-shadow: inset 0 0 0 1px var(--line); font: 600 .92rem/1.2 var(--font); cursor: pointer; transition: background .25s, color .25s, transform .25s var(--ease); }
.av-filtre:hover { transform: translateY(-2px); }
.av-filtre.is-actif { background: var(--o); color: #fff; box-shadow: 0 10px 24px -12px rgba(255, 102, 0, .8); }
.av-galerie.is-filtre .av-projet { grid-column: auto !important; grid-row: auto !important; aspect-ratio: 4 / 3 !important; }
@media (min-width: 980px) { .av-galerie.is-filtre { grid-auto-rows: auto; } }
.av-projet__tag { position: absolute; top: 14px; left: 14px; z-index: 1; padding: 6px 12px; border-radius: 999px; background: rgba(14, 14, 16, .7); backdrop-filter: blur(8px); color: #fff; font-size: .75rem; font-weight: 600; }

/* ---------- Blog et articles ---------- */
.av-blog--page { padding-top: clamp(40px, 6vw, 64px); }
.av-articles--blog { grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
@media (min-width: 900px) { .av-article--grand { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; column-gap: 32px; padding: 14px 32px 14px 14px; } .av-article--grand .av-article__img { grid-row: span 5; aspect-ratio: 16 / 10; } .av-article--grand h3 { font-size: 1.7rem; } .av-article--grand p { padding: 0 10px; color: var(--muted); margin: 0 !important; } }
.av-article__date b { color: var(--o); font-weight: 600; }
.av-pagination { display: flex; justify-content: center; gap: 8px; margin-top: 36px; }
.av-pagination a, .av-pagination span { display: grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 12px; background: var(--surface); box-shadow: inset 0 0 0 1px var(--line); font-weight: 600; }
.av-pagination span { background: var(--o); color: #fff; box-shadow: none; }
.av-filtres a.av-filtre { display: inline-flex; }
.av-phero--billet { padding-bottom: clamp(110px, 14vw, 170px); }
.av-billet__h1 { max-width: 24ch; font-size: clamp(1.9rem, 4vw + .3rem, 3.2rem) !important; }
.av-billet__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin-top: 24px; font-size: .9rem; color: rgba(255, 255, 255, .7); }
.av-billet__meta > span { display: inline-flex; align-items: center; gap: 8px; }
.av-billet__auteur img { width: 34px; height: auto; }
.av-billet__auteur strong { color: #fff; }
.av-billet__une { position: relative; z-index: 2; margin-top: clamp(-150px, -12vw, -90px); }
.av-billet__une img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 28px; box-shadow: var(--ombre); }
.av-billet__grid { display: grid; gap: 40px; padding-top: clamp(36px, 5vw, 64px); padding-bottom: clamp(48px, 6vw, 80px); }
@media (min-width: 1000px) { .av-billet__grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 56px; } .av-billet__cote { position: sticky; top: calc(var(--hh) + 24px); align-self: start; display: grid; gap: 18px; } }
@media (max-width: 999px) { .av-billet__cote { display: none; } }
.av-billet__corps { max-width: 760px; font-size: 1.08rem; line-height: 1.8; }
.av-billet__corps > * + * { margin-top: 1.1em; }
.av-billet__corps h2 { margin-top: 2em !important; font-size: clamp(1.45rem, 2.6vw, 1.9rem); color: var(--text); scroll-margin-top: calc(var(--hh) + 20px); }
.av-billet__corps h3 { margin-top: 1.6em !important; font-size: 1.25rem; color: var(--text); scroll-margin-top: calc(var(--hh) + 20px); }
.av-billet__corps p, .av-billet__corps li { color: var(--muted); }
.av-billet__corps strong { color: var(--text); }
.av-billet__corps ul, .av-billet__corps ol { padding-left: 1.3em; list-style: revert; }
.av-billet__corps li { margin: .35em 0; }
.av-billet__corps li::marker { color: var(--o); }
.av-billet__corps img { border-radius: var(--r-s); margin: 1.6em 0; }
.av-billet__corps figure { margin: 1.6em 0; }
.av-billet__corps figcaption { font-size: .85rem; color: var(--muted); text-align: center; }
.av-billet__corps blockquote { margin: 1.6em 0; padding: 18px 24px; border-left: 4px solid var(--o); border-radius: 0 var(--r-s) var(--r-s) 0; background: var(--bg-warm); font-style: italic; }
.av-billet__corps table { width: 100%; border-collapse: collapse; font-size: .95rem; display: block; overflow-x: auto; }
.av-billet__corps th, .av-billet__corps td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; }
.av-billet__corps a { color: var(--o); }
.av-sommaire__n3 { padding-left: 16px; font-size: .9em; }
.av-sommaire--corps { margin: 1.6em 0 !important; }
.av-billet__corps .av-sommaire a { color: var(--text); text-decoration: none; font-size: .95rem; }
.av-billet__corps .av-sommaire li { margin: 0; }
.av-sommaire--corps ol { list-style: none !important; padding: 0 !important; }
.av-sommaire--corps li::marker { content: none; }
@media (min-width: 1000px) { .av-sommaire--corps { display: none; } }
.av-billet__cote .av-sommaire { margin-top: 0; max-height: 60vh; overflow: auto; }
.av-billet__cta h2 { font-size: 1.1rem; margin-bottom: 8px !important; }
.av-billet__cta p { color: rgba(255, 255, 255, .7); font-size: .9rem; }
.av-partage { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 2.4em !important; padding-top: 22px; border-top: 1px solid var(--line); }
.av-partage span { margin-right: 6px; font-size: .9rem; font-weight: 600; color: var(--text); }
.av-partage a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: var(--surface); color: var(--text) !important; box-shadow: inset 0 0 0 1px var(--line); transition: background .25s, color .25s, transform .3s var(--ease); }
.av-partage a:hover { background: var(--o); color: #fff !important; transform: translateY(-3px); }
.av-auteur { display: flex; gap: 18px; align-items: flex-start; margin-top: 28px !important; padding: 24px; border-radius: var(--r); background: var(--noir); color: #fff; }
.av-auteur img { width: 58px; height: auto; flex: none; margin: 0 !important; border-radius: 0 !important; }
.av-auteur p { margin: 6px 0 10px !important; color: rgba(255, 255, 255, .72) !important; font-size: .95rem; line-height: 1.6; }
.av-vide { text-align: center; color: var(--muted); }
.av-encart { margin: 2em 0 !important; padding: 22px 24px; border-radius: var(--r-s); background: linear-gradient(120deg, rgba(255, 102, 0, .12), rgba(255, 102, 0, .04)); box-shadow: inset 4px 0 0 var(--o); }
.av-encart p { margin: 0 !important; color: var(--text) !important; }

/* ---------- Fiches projets, équipe, pages simples ---------- */
.av-fiche { padding-top: clamp(40px, 6vw, 72px); }
.av-fiche__grid { display: grid; gap: clamp(28px, 4vw, 56px); align-items: start; margin-bottom: clamp(32px, 4vw, 48px); }
@media (min-width: 960px) { .av-fiche__grid { grid-template-columns: 1.5fr .8fr; } .av-fiche__cote { position: sticky; top: calc(var(--hh) + 24px); } .av-fiche__grid--membre { grid-template-columns: .7fr 1.3fr; } }
.av-fiche__texte h2, .av-page-simple h2 { font-size: clamp(1.4rem, 2.6vw, 1.9rem); margin: 1.4em 0 .6em !important; color: var(--text); }
.av-fiche__texte h3, .av-page-simple h3 { font-size: 1.2rem; margin: 1.2em 0 .5em !important; color: var(--text); }
.av-fiche__texte h2:first-child, .av-page-simple h2:first-child { margin-top: 0 !important; }
.av-fiche__texte ul, .av-page-simple ul, .av-fiche__texte ol, .av-page-simple ol { padding-left: 1.2em; list-style: revert; color: var(--muted); }
.av-fiche__texte li::marker, .av-page-simple li::marker { color: var(--o); }
.av-fiche__cote h2 { font-size: 1.15rem; margin-bottom: 8px !important; }
.av-fiche__cote p { color: rgba(255, 255, 255, .7); font-size: .92rem; }
.av-fiche__cote .av-btn { margin: 6px 0 10px; }
.av-galerie-fiche { columns: 2 320px; column-gap: 16px; }
.av-galerie-fiche__img { display: block; margin-bottom: 16px; break-inside: avoid; border-radius: var(--r); overflow: hidden; background: var(--bg-warm); box-shadow: var(--ombre); }
.av-galerie-fiche__img img { width: 100%; height: auto; transition: transform .9s var(--ease); }
.av-galerie-fiche__img:hover img { transform: scale(1.04); }
.av-page-simple { max-width: 820px; }

/* ---------- Pied de page ---------- */
.av-footer { position: relative; overflow: hidden; padding: clamp(64px, 8vw, 96px) 0 0; background: var(--noir); color: rgba(255, 255, 255, .7); font-size: .95rem; }
.av-footer__glow { position: absolute; width: 600px; height: 600px; right: -200px; top: -300px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 102, 0, .25), transparent 65%); }
.av-footer__grid { position: relative; display: grid; gap: 40px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.av-footer__brand { grid-column: 1 / -1; max-width: 420px; }
.av-footer__brand .av-logo { color: #fff; margin-bottom: 18px; }
.av-footer__brand p { line-height: 1.7; }
.av-footer__t { margin-bottom: 18px !important; font-size: .82rem !important; font-weight: 600 !important; letter-spacing: .16em !important; text-transform: uppercase; color: #fff; }
.av-footer ul { display: grid; gap: 10px; }
.av-footer ul a { transition: color .25s, padding .3s var(--ease); }
.av-footer ul a:hover { color: var(--o2); padding-left: 4px; }
.av-footer__contact li { display: flex; gap: 12px; align-items: flex-start; line-height: 1.5; }
.av-footer__contact .av-ico { margin-top: 2px; color: var(--o); }
.av-social { display: flex; gap: 10px; margin-top: 22px; }
.av-social a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; color: #fff; box-shadow: inset 0 0 0 1px var(--ligne-c); transition: background .3s, transform .35s var(--ease); }
.av-social a:hover { background: var(--o); transform: translateY(-4px); }
.av-footer__bas { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; margin-top: 56px; padding-block: 24px; border-top: 1px solid var(--ligne-c); font-size: .85rem; color: rgba(255, 255, 255, .5); }
.av-footer__bas a:hover { color: #fff; }
@media (min-width: 1000px) { .av-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; } .av-footer__brand { grid-column: auto; } }

/* Bouton WhatsApp (Joinchat) : pas de chevauchement du contenu mobile */
.joinchat { --bottom: 18px; }

/* ---------- Ajustements du thème sombre ---------- */
:root[data-theme="dark"] .av-stat--o, :root[data-theme="dark"] .av-agence__badge, :root[data-theme="dark"] .av-avis__init, :root[data-theme="dark"] .av-projet { box-shadow: inset 0 0 0 1px var(--line); }
:root[data-theme="dark"] .av-membre__photo img { filter: grayscale(.25) brightness(.92); }

/* ---------- Rendu différé hors écran (allège le premier affichage) ---------- */
.av-section, .av-clients, .av-cta, .av-footer { content-visibility: auto; contain-intrinsic-size: auto 900px; }
@media (max-width: 979px) {
	.av-hero__amp { display: none; }
	.av-pill, .av-btn--ghost { backdrop-filter: none; }
}

/* ---------- Apparition au défilement ---------- */
.av-js [data-reveal] { opacity: 0; transform: translateY(32px); transition: opacity .9s var(--ease), transform 1s var(--ease); transition-delay: var(--d, 0s); }
.av-js [data-reveal].is-in { opacity: 1; transform: none; }
.av-js .av-stat[data-reveal] { transform: none; }

/* ---------- Animations ---------- */
@keyframes av-glisse { from { transform: translateY(22px); } to { transform: none; } }
@keyframes av-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes av-in-photo { from { transform: rotate(9deg) scale(.9); } to { transform: rotate(3deg); } }
@keyframes av-in-photo2 { from { opacity: 0; transform: translate(-30px, 30px) rotate(-14deg); } to { opacity: 1; transform: rotate(-6deg); } }
@keyframes av-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -14px; } }
@keyframes av-spin { to { rotate: 360deg; } }
@keyframes av-blob { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(-6vw, 4vw) scale(1.12); } 100% { transform: translate(3vw, 8vw) scale(.94); } }
@keyframes av-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.8); opacity: 0; } }
@keyframes av-rot { 0% { transform: translateY(110%); opacity: 0; } 4%, 22% { transform: none; opacity: 1; } 26%, 100% { transform: translateY(-110%); opacity: 0; } }
@keyframes av-defile { to { transform: translateX(-50%); } }
@keyframes av-scroll { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
	.av-rot > span { animation: none !important; }
	.av-rot > span:first-child { transform: none; opacity: 1; }
	.av-bande__piste { animation: none !important; }
	.av-js [data-reveal] { opacity: 1; transform: none; }
}
