:root {
  --ink: #101b17;
  --forest: #155d2b;
  --forest-deep: #0b3d1c;
  --paper: #f7f7f2;
  --white: #ffffff;
  --muted: #5f6b65;
  --line: rgba(16, 27, 23, 0.14);
  --shadow: 0 24px 70px rgba(14, 42, 25, 0.12);
  --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.55; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, figure { margin-top: 0; }

.site-header { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; min-height: 106px; padding: 5px clamp(16px, 3vw, 52px); background: rgba(247, 247, 242, 0.9); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.brand { display: inline-flex; align-items: center; }
.brand img { width: 96px; height: 96px; object-fit: contain; mix-blend-mode: multiply; }
.nav { display: flex; align-items: center; gap: clamp(16px, 2.4vw, 32px); font-size: 0.92rem; font-weight: 700; }
.nav a:not(.nav-cta) { color: rgba(16, 27, 23, 0.7); }
.nav-cta { padding: 11px 17px; color: var(--white); background: var(--forest-deep); border-radius: 10px; }

.hero, .section, .trust-strip { width: min(1680px, calc(100% - clamp(28px, 4vw, 72px))); margin-inline: auto; }
.hero { display: grid; grid-template-columns: minmax(360px, 0.72fr) minmax(560px, 1.28fr); gap: clamp(38px, 5vw, 96px); align-items: center; min-height: calc(100dvh - 106px); padding: 48px 0 60px; }
.hero-copy { max-width: 650px; }
.eyebrow { margin-bottom: 16px; color: var(--forest); font-size: 0.76rem; font-weight: 850; letter-spacing: 0.11em; text-transform: uppercase; }
h1 { max-width: 12ch; margin-bottom: 24px; font-size: clamp(3rem, 5.4vw, 5.7rem); line-height: 0.96; letter-spacing: -0.055em; }
h2 { margin-bottom: 20px; font-size: clamp(2.15rem, 4vw, 4.3rem); line-height: 1; letter-spacing: -0.045em; }
h3 { margin-bottom: 10px; font-size: clamp(1.22rem, 2vw, 1.75rem); line-height: 1.15; letter-spacing: -0.025em; }
.hero-subtitle, .section-heading > p:last-child, .method-copy > p:last-child, .contact-copy > p:not(.eyebrow) { max-width: 62ch; color: var(--muted); font-size: clamp(1rem, 1.35vw, 1.16rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 14px 21px; border: 1px solid transparent; border-radius: 10px; font: inherit; font-weight: 800; line-height: 1; transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button.primary { color: var(--white); background: var(--forest); box-shadow: 0 15px 34px rgba(21, 93, 43, 0.22); }
.button.secondary { color: var(--ink); background: transparent; border-color: var(--line); }
.hero-media { margin: 0; overflow: hidden; background: #dfe5dc; border-radius: var(--radius); box-shadow: var(--shadow); }
.hero-media img { width: 100%; height: auto; object-fit: contain; transition: transform 700ms cubic-bezier(.2,.8,.2,1); }
.hero-media:hover img { transform: scale(1.015); }

.trust-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 48px; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.trust-strip div { display: grid; gap: 3px; padding: 0 28px; border-right: 1px solid var(--line); }
.trust-strip div:first-child { padding-left: 0; }
.trust-strip div:last-child { border-right: 0; }
.trust-strip strong { color: var(--forest-deep); font-size: 1.07rem; }
.trust-strip span { color: var(--muted); font-size: 0.9rem; }

.section { padding: 94px 0; }
.section-heading { max-width: 820px; margin-bottom: 48px; }
.expertise-section, .method-section { display: grid; grid-template-columns: minmax(300px, 0.82fr) minmax(0, 1.18fr); gap: clamp(44px, 7vw, 110px); align-items: start; }
.expertise-list { border-top: 1px solid var(--line); }
.expertise-list article { display: grid; grid-template-columns: minmax(190px, 0.72fr) 1fr; gap: 26px; padding: 27px 0; border-bottom: 1px solid var(--line); }
.expertise-list h3 { font-size: 1.13rem; }
.expertise-list p { margin: 0; color: var(--muted); }

.work-section { padding-top: 118px; }
.work-feature { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.45fr); gap: 42px; align-items: center; margin-bottom: 68px; }
.work-feature.reverse { grid-template-columns: minmax(300px, 0.45fr) minmax(0, 1.55fr); }
.work-feature.reverse .work-image { order: 2; }
.work-feature.reverse figcaption { order: 1; }
.work-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; margin-bottom: 68px; }
.work-card { margin: 0; overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); }
.work-image { overflow: hidden; background: #edf1eb; border-radius: var(--radius); box-shadow: 0 18px 50px rgba(14, 42, 25, 0.09); }
.work-image img { width: 100%; height: auto; object-fit: contain; transition: transform 600ms cubic-bezier(.2,.8,.2,1); }
.work-image:hover img { transform: scale(1.018); }
.work-card .work-image { border-radius: var(--radius) var(--radius) 0 0; box-shadow: none; }
.work-card figcaption { padding: 25px 26px 28px; }
.work-feature figcaption { max-width: 390px; }
.work-card figcaption span, .work-feature figcaption span { display: block; margin-bottom: 11px; color: var(--forest); font-size: 0.74rem; font-weight: 850; letter-spacing: 0.1em; text-transform: uppercase; }
.work-card figcaption p, .work-feature figcaption p { margin: 0; color: var(--muted); }

.method-copy { position: sticky; top: 110px; }
.method-flow { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.method-flow li { display: grid; grid-template-columns: minmax(120px, 0.4fr) 1fr; gap: 30px; padding: 28px 0; border-bottom: 1px solid var(--line); }
.method-flow strong { color: var(--forest-deep); font-size: 1.25rem; }
.method-flow span { color: var(--muted); }

.founder-section { display: grid; grid-template-columns: minmax(340px, 0.72fr) minmax(0, 1.28fr); gap: clamp(48px, 8vw, 140px); align-items: center; }
.founder-portrait { margin: 0; overflow: hidden; background: #ead8c4; border-radius: var(--radius); box-shadow: var(--shadow); }
.founder-portrait img { width: 100%; max-height: 760px; object-fit: cover; object-position: center 22%; }
.founder-copy { max-width: 850px; }
.founder-copy > p:not(.eyebrow) { max-width: 68ch; color: var(--muted); font-size: 1.08rem; }
.founder-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); }
.founder-facts div { display: grid; gap: 4px; }
.founder-facts strong { color: var(--forest-deep); font-size: 1.12rem; }
.founder-facts span { color: var(--muted); font-size: 0.86rem; }

.value-section { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr); gap: clamp(50px, 8vw, 130px); align-items: end; padding-top: 118px; padding-bottom: 118px; }
.value-statement h2 { margin-bottom: 0; }
.value-points { border-top: 1px solid var(--line); }
.value-points p { margin: 0; padding: 20px 0; color: var(--muted); font-weight: 700; border-bottom: 1px solid var(--line); }

.contact-section { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(390px, 1.15fr); gap: clamp(40px, 7vw, 100px); margin-bottom: 56px; padding: clamp(34px, 6vw, 72px); color: var(--white); background: var(--forest-deep); border-radius: var(--radius); }
.contact-section h2, .contact-section .eyebrow { color: var(--white); }
.contact-copy > p:not(.eyebrow) { color: rgba(255,255,255,0.72); }
.contact-links { display: grid; gap: 8px; margin-top: 30px; }
.contact-links a { width: fit-content; color: var(--white); font-weight: 800; }
.contact-form { display: grid; gap: 15px; padding: 28px; color: var(--ink); background: var(--white); border-radius: 14px; }
.contact-form label:not(.consent) { display: grid; gap: 7px; font-size: 0.88rem; font-weight: 800; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 12px 13px; color: var(--ink); background: #f4f5f1; border: 1px solid var(--line); border-radius: 9px; font: inherit; }
.contact-form textarea { resize: vertical; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: 3px solid rgba(21,93,43,0.2); border-color: var(--forest); }
.consent { display: grid; grid-template-columns: 18px 1fr; gap: 9px; align-items: start; color: var(--muted); font-size: 0.8rem; }
.consent input { margin-top: 3px; }
.contact-form .button { width: fit-content; cursor: pointer; }
.form-note { margin: 0; color: #737d78; font-size: 0.76rem; }
.site-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 30px; padding: 30px clamp(20px, 5vw, 76px); color: var(--muted); background: var(--white); border-top: 1px solid var(--line); font-size: 0.88rem; }
.footer-brand img { width: 140px; height: 112px; }
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 620ms ease, transform 620ms cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

/* V1 direction: expressive typography, rounded immersive hero, living green */
body { font-family: "Manrope", ui-sans-serif, system-ui, sans-serif; background: #f4f7f2; }
.site-header { min-height: 88px; padding-block: 2px; background: rgba(244,247,242,.82); }
.brand img { width: 82px; height: 82px; }
.nav-cta, .button { border-radius: 999px; }
.hero { position: relative; isolation: isolate; grid-template-columns: minmax(360px,.88fr) minmax(520px,1.12fr); min-height: min(820px,calc(100dvh - 112px)); margin-top: 24px; padding: clamp(48px,7vw,104px); overflow: hidden; color: #f7fff9; background: #12372f; border-radius: 34px 34px 120px 34px; }
.hero::before { position: absolute; inset: 0; z-index: -2; content: ""; background: radial-gradient(circle at 15% 25%,rgba(114,230,160,.2),transparent 32%), linear-gradient(120deg,#12372f 0%,#0d2b25 58%,#173f35 100%); background-size: 130% 130%; animation: heroGradient 12s ease-in-out infinite alternate; }
.hero::after { position: absolute; inset: 0; z-index: -1; content: ""; opacity: .12; background-image: linear-gradient(rgba(255,255,255,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.32) 1px,transparent 1px); background-size: 54px 54px; mask-image: linear-gradient(to right,black,transparent 68%); }
.hero-copy { position: relative; z-index: 2; }
.hero .eyebrow { display: flex; align-items: center; gap: 10px; color: #baffce; font-family: "DM Mono",monospace; }
.eyebrow-dot { width: 9px; height: 9px; background: #72e6a0; border-radius: 50%; box-shadow: 0 0 0 7px rgba(114,230,160,.14); animation: pulseDot 2.4s ease-in-out infinite; }
.hero h1 { max-width: 10ch; color: #fff; font-weight: 700; }
.hero h1 span { color: #72e6a0; }
.hero-subtitle { color: rgba(247,255,249,.74); }
.hero .button.primary { color: #0d2b25; background: #72e6a0; box-shadow: 0 16px 38px rgba(114,230,160,.2); }
.hero .button.secondary { color: #fff; border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.07); backdrop-filter: blur(12px); }
.hero-media { position: relative; z-index: 1; border-radius: 28px 28px 86px 28px; box-shadow: 0 38px 80px rgba(0,0,0,.28); transform: rotate(1.2deg); }
.hero-media img { min-height: 500px; object-fit: cover; }
.hero-media figcaption { position: absolute; right: 22px; bottom: 22px; display: grid; gap: 4px; max-width: 270px; padding: 17px 20px; color: #12372f; background: rgba(231,255,239,.9); border: 1px solid rgba(255,255,255,.7); border-radius: 18px; backdrop-filter: blur(16px); }
.hero-media figcaption span { font-family: "DM Mono",monospace; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.hero-media figcaption strong { font-size: .92rem; }
.hero-atmosphere span { position: absolute; z-index: -1; display: block; border-radius: 50%; filter: blur(2px); }
.hero-atmosphere span:nth-child(1) { width: 220px; height: 220px; right: 42%; bottom: -130px; background: rgba(114,230,160,.24); animation: floatOrb 9s ease-in-out infinite; }
.hero-atmosphere span:nth-child(2) { width: 70px; height: 70px; left: 44%; top: 10%; border: 1px solid rgba(186,255,206,.38); animation: floatOrb 7s ease-in-out -2s infinite reverse; }
.hero-atmosphere span:nth-child(3) { width: 18px; height: 18px; left: 48%; bottom: 18%; background: #dfff86; animation: floatOrb 5s ease-in-out -1s infinite; }
@keyframes heroGradient { to { background-position: 75% 100%; } }
@keyframes pulseDot { 50% { transform: scale(.72); box-shadow: 0 0 0 13px rgba(114,230,160,.06); } }
@keyframes floatOrb { 50% { transform: translate3d(18px,-24px,0) scale(1.08); } }

:root {
  --ink: #102d25;
  --forest: #2c9d5d;
  --forest-deep: #12372f;
  --electric-green: #72e6a0;
  --mint: #dcf7e5;
  --lime: #dfff86;
  --cream: #fff8e9;
  --paper: #f4f7f2;
  --muted: #587068;
  --line: rgba(16,45,37,.13);
  --shadow: 0 28px 80px rgba(20,67,48,.12);
  --radius: 28px;
}
body { overflow-x: hidden; }
main { display: grid; gap: 28px; padding-bottom: 28px; }
h1, h2, h3, .nav, .button { font-family: "Manrope",ui-sans-serif,system-ui,sans-serif; }
h1, h2 { text-wrap: balance; }
h2 { font-weight: 700; line-height: .98; letter-spacing: -.055em; }
h3 { font-weight: 700; }
.eyebrow { font-family: "DM Mono",monospace; font-weight: 500; letter-spacing: .09em; }
.site-header { transition: min-height .3s ease,box-shadow .3s ease,background .3s ease; }
.site-header.is-scrolled { min-height: 72px; background: rgba(244,247,242,.94); box-shadow: 0 12px 35px rgba(16,45,37,.08); }
.site-header.is-scrolled .brand img { width: 68px; height: 68px; }
.brand img { transition: width .3s ease,height .3s ease; }
.nav a { position: relative; }
.nav a:not(.nav-cta)::after { position: absolute; right: 0; bottom: -7px; left: 0; height: 2px; content: ""; background: var(--electric-green); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.nav a:not(.nav-cta):hover::after { transform: scaleX(1); transform-origin: left; }
.nav-cta { background: var(--forest-deep); transition: transform .2s ease,background .2s ease,box-shadow .2s ease; }
.nav-cta:hover { background: #1b513f; box-shadow: 0 10px 26px rgba(18,55,47,.18); transform: translateY(-2px); }
.button { gap: 12px; min-height: 54px; padding-inline: 24px; }
.button::after { display: grid; width: 24px; height: 24px; place-items: center; content: "↗"; border: 1px solid currentColor; border-radius: 50%; font-size: .76rem; transition: transform .25s ease,background .25s ease; }
.button:hover::after { transform: rotate(45deg); }
.button.primary { background: var(--forest); }

.hero { --mx: 0px; --my: 0px; transition: border-radius .45s ease; }
.hero:hover { border-radius: 34px 70px 120px 70px; }
.hero-atmosphere { transform: translate3d(var(--mx),var(--my),0); transition: transform .8s cubic-bezier(.2,.8,.2,1); }

.trust-strip { position: relative; z-index: 4; margin-top: -14px; margin-bottom: 0; padding: 22px 30px; background: rgba(255,255,255,.9); border: 1px solid rgba(16,45,37,.08); border-radius: 22px; box-shadow: 0 18px 60px rgba(20,67,48,.09); backdrop-filter: blur(16px); }
.trust-strip strong { color: var(--forest); }

.section { position: relative; overflow: hidden; padding: clamp(72px,8vw,126px); border-radius: 36px; }
.section-heading { position: relative; z-index: 2; }
.section-heading > p:last-child,.method-copy > p:last-child,.contact-copy > p:not(.eyebrow) { font-size: clamp(1.02rem,1.4vw,1.22rem); }
.expertise-section { background: var(--mint); }
.expertise-section::before { position: absolute; top: -160px; left: -130px; width: 420px; height: 420px; content: ""; background: radial-gradient(circle,rgba(114,230,160,.48),rgba(114,230,160,0) 67%); animation: breathe 7s ease-in-out infinite; }
.expertise-list { position: relative; z-index: 2; display: grid; gap: 12px; border: 0; }
.expertise-list article { padding: 24px; background: rgba(255,255,255,.54); border: 1px solid rgba(255,255,255,.76); border-radius: 18px; transition: transform .3s ease,background .3s ease,box-shadow .3s ease; }
.expertise-list article:hover { background: rgba(255,255,255,.9); box-shadow: 0 18px 44px rgba(44,157,93,.1); transform: translateX(8px); }

.work-section { background: #fff; }
.work-section::after { position: absolute; top: 8%; right: -100px; width: 280px; height: 280px; content: ""; border: 42px solid var(--lime); border-radius: 50%; opacity: .58; animation: slowSpin 18s linear infinite; }
.work-feature,.work-pair { position: relative; z-index: 2; }
.work-image { background: #edf7ef; border: 1px solid rgba(16,45,37,.08); border-radius: 26px; }
.work-feature .work-image { padding: 12px; }
.work-feature .work-image img { border-radius: 18px; }
.work-card { background: #f7faf6; border: 0; border-radius: 26px; box-shadow: 0 14px 44px rgba(16,45,37,.08); transition: transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease; }
.work-card:hover { box-shadow: 0 26px 65px rgba(16,45,37,.14); transform: translateY(-9px); }
.work-card .work-image { border: 0; border-radius: 26px 26px 0 0; }
.work-card figcaption { padding: 30px; }
.work-feature figcaption span,.work-card figcaption span { font-family: "DM Mono",monospace; }

.method-section { isolation: isolate; background: var(--lime); }
.method-section::before { position: absolute; inset: 0; z-index: -1; content: ""; opacity: .16; background-image: radial-gradient(#12372f 1.4px,transparent 1.4px); background-size: 26px 26px; animation: driftGrid 20s linear infinite; }
.method-section .eyebrow { color: #356543; }
.method-flow { display: grid; gap: 10px; border: 0; counter-reset: step; }
.method-flow li { position: relative; grid-template-columns: 52px minmax(120px,.42fr) 1fr; align-items: center; gap: 22px; padding: 19px 22px; background: rgba(255,255,255,.58); border: 1px solid rgba(255,255,255,.7); border-radius: 18px; counter-increment: step; transition: transform .28s ease,background .28s ease; }
.method-flow li::before { display: grid; width: 42px; height: 42px; place-items: center; content: "0" counter(step); color: #fff; background: var(--forest-deep); border-radius: 50%; font-family: "DM Mono",monospace; font-size: .72rem; }
.method-flow li:hover { background: rgba(255,255,255,.86); transform: translateX(-7px); }

.founder-section { background: linear-gradient(125deg,#fff6e6 0%,#f7ead7 100%); }
.founder-section::after { position: absolute; right: -80px; bottom: -130px; width: 390px; height: 390px; content: ""; border: 1px solid rgba(44,157,93,.18); border-radius: 48% 52% 65% 35%; animation: morphShape 11s ease-in-out infinite alternate; }
.founder-portrait { position: relative; z-index: 2; border: 10px solid rgba(255,255,255,.62); border-radius: 30px 30px 120px 30px; transform: rotate(-1.5deg); }
.founder-copy { position: relative; z-index: 2; }
.founder-facts { gap: 10px; border: 0; }
.founder-facts div { padding: 18px; background: rgba(255,255,255,.57); border-radius: 16px; }

.value-section { isolation: isolate; color: var(--forest-deep); background: var(--electric-green); }
.value-section::before,.value-section::after { position: absolute; z-index: -1; content: ""; border-radius: 50%; }
.value-section::before { width: 520px; height: 520px; top: -330px; right: 12%; border: 70px solid rgba(255,255,255,.2); animation: slowSpin 22s linear infinite reverse; }
.value-section::after { width: 180px; height: 180px; left: 4%; bottom: -100px; background: rgba(223,255,134,.62); animation: floatOrb 8s ease-in-out infinite; }
.value-section .eyebrow { color: var(--forest-deep); }
.value-points { position: relative; z-index: 2; display: grid; gap: 9px; border: 0; }
.value-points p { padding: 18px 20px; color: var(--forest-deep); background: rgba(255,255,255,.45); border: 1px solid rgba(255,255,255,.48); border-radius: 14px; }

.contact-section { background: radial-gradient(circle at 0 100%,rgba(114,230,160,.19),transparent 34%),linear-gradient(130deg,#12372f,#0b2922); border-radius: 36px 36px 120px 36px; }
.contact-form { padding: clamp(24px,3vw,38px); border-radius: 24px; box-shadow: 0 28px 70px rgba(0,0,0,.2); }
.contact-form input,.contact-form select,.contact-form textarea { padding: 14px 15px; background: #f1f7f2; border-radius: 12px; }
.contact-form .button.primary { color: var(--forest-deep); background: var(--electric-green); }
.site-footer { margin: 0 clamp(14px,2vw,28px) 20px; padding: 24px 32px; background: #fff; border: 0; border-radius: 22px; }

.reveal { opacity: 0; filter: blur(8px); transform: translateY(34px) scale(.985); transition: opacity .72s ease,filter .72s ease,transform .72s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity: 1; filter: blur(0); transform: translateY(0) scale(1); }
.expertise-list.is-visible article:nth-child(2),.method-flow.is-visible li:nth-child(2) { transition-delay: .06s; }
.expertise-list.is-visible article:nth-child(3),.method-flow.is-visible li:nth-child(3) { transition-delay: .12s; }
.expertise-list.is-visible article:nth-child(4),.method-flow.is-visible li:nth-child(4) { transition-delay: .18s; }

@keyframes breathe { 50% { transform: scale(1.16) translate(24px,18px); opacity: .7; } }
@keyframes slowSpin { to { transform: rotate(360deg); } }
@keyframes driftGrid { to { background-position: 104px 52px; } }
@keyframes morphShape { 50% { border-radius: 68% 32% 42% 58%; transform: rotate(18deg) scale(1.08); } }

/* Ajustements V1.1 : bandeau centré, hero lisible et étapes plus éditoriales */
.site-header {
  justify-content: center;
  gap: clamp(34px,6vw,92px);
  text-align: center;
}
.site-header .brand { flex: 0 0 auto; }
.site-header .brand img { width: 96px; height: 96px; }
.site-header .nav { justify-content: center; }
.eyebrow {
  width: fit-content;
  padding: 9px 13px;
  color: #245d42;
  background: rgba(114,230,160,.22);
  border: 1px solid rgba(44,157,93,.16);
  border-radius: 999px;
  font-family: "Manrope",ui-sans-serif,system-ui,sans-serif;
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .035em;
  text-transform: none;
}
.hero {
  grid-template-columns: 1fr;
  gap: clamp(34px,4vw,54px);
  min-height: auto;
  padding: clamp(54px,6vw,88px);
  color: var(--forest-deep);
  background: #e6f8eb;
  border: 1px solid rgba(44,157,93,.12);
  border-radius: 34px 34px 96px 34px;
}
.hero:hover { border-radius: 34px 54px 96px 54px; }
.hero::before {
  background: radial-gradient(circle at 12% 12%,rgba(114,230,160,.55),transparent 30%),radial-gradient(circle at 88% 24%,rgba(223,255,134,.48),transparent 28%),linear-gradient(135deg,#effbf2 0%,#ddf5e5 100%);
}
.hero::after {
  opacity: .14;
  background-image: radial-gradient(rgba(18,55,47,.42) 1px,transparent 1px);
  background-size: 28px 28px;
  mask-image: linear-gradient(to bottom,black,transparent 46%);
}
.hero-copy {
  max-width: 1120px;
  margin-inline: auto;
  text-align: center;
}
.hero .eyebrow {
  justify-content: center;
  margin-inline: auto;
  color: #1d5c3c;
  background: rgba(255,255,255,.62);
  font-family: "Manrope",ui-sans-serif,system-ui,sans-serif;
}
.hero h1 {
  max-width: 15ch;
  margin-right: auto;
  margin-left: auto;
  color: var(--forest-deep);
  font-size: clamp(3.4rem,6vw,6.7rem);
  line-height: .94;
}
.hero h1 span { color: #2b9e5d; }
.hero-subtitle {
  max-width: 780px;
  margin-right: auto;
  margin-left: auto;
  color: #49685e;
  font-size: clamp(1.05rem,1.5vw,1.3rem);
}
.hero-actions { justify-content: center; }
.hero .button.primary { color: #fff; background: var(--forest-deep); box-shadow: 0 16px 38px rgba(18,55,47,.17); }
.hero .button.secondary { color: var(--forest-deep); background: rgba(255,255,255,.68); border-color: rgba(18,55,47,.17); }
.hero-media {
  width: min(1420px,100%);
  margin-inline: auto;
  background: #fff;
  border: 10px solid rgba(255,255,255,.72);
  border-radius: 28px 28px 72px 28px;
  box-shadow: 0 32px 80px rgba(18,55,47,.18);
  transform: none;
}
.hero-media img {
  width: 100%;
  min-height: 0;
  height: auto;
  object-fit: contain;
  border-radius: 18px 18px 58px 18px;
}
.hero-media:hover img { transform: scale(1.006); }
.hero-media figcaption {
  color: #fff;
  background: rgba(18,55,47,.88);
  border-color: rgba(255,255,255,.26);
}
.hero-media figcaption span { font-family: "Manrope",ui-sans-serif,system-ui,sans-serif; font-weight: 700; }
.work-feature figcaption span,.work-card figcaption span { font-family: "Manrope",ui-sans-serif,system-ui,sans-serif; }
.hero-atmosphere span:nth-child(1) { right: auto; left: 8%; bottom: 35%; background: rgba(114,230,160,.22); }
.hero-atmosphere span:nth-child(2) { right: 8%; left: auto; top: 13%; border-color: rgba(18,55,47,.17); }
.hero-atmosphere span:nth-child(3) { right: 13%; left: auto; bottom: 45%; background: #a8efc0; }

.method-flow li {
  grid-template-columns: minmax(130px,.42fr) 1fr;
  min-height: 112px;
  padding: 25px 108px 25px 26px;
  overflow: hidden;
}
.method-flow li::before {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  width: auto;
  height: auto;
  content: counter(step);
  color: rgba(18,55,47,.13);
  background: transparent;
  border-radius: 0;
  font-family: "Manrope",ui-sans-serif,system-ui,sans-serif;
  font-size: 6.8rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.08em;
  transform: translateY(-50%);
}
.method-flow li:nth-child(2n) { background: rgba(255,255,255,.38); }
.method-flow li strong,.method-flow li span { position: relative; z-index: 1; }

/* Wordmark partagé : version sombre en haut, version claire dans le footer */
.brand-lockup { display: inline-flex; align-items: center; gap: 13px; }
.brand-symbol {
  position: relative;
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  color: var(--forest-deep);
  border: 1px solid rgba(18,55,47,.28);
  border-radius: 50%;
  font-size: 1.65rem;
  font-weight: 800;
  letter-spacing: -.14em;
  line-height: 1;
}
.brand-symbol i {
  position: absolute;
  top: 50%;
  left: 50%;
  color: var(--forest);
  font-family: Georgia,serif;
  font-size: 2.15rem;
  font-style: normal;
  transform: translate(-46%,-52%) rotate(7deg);
}
.brand-wordmark { display: flex; align-items: baseline; gap: 7px; font-size: 1.32rem; letter-spacing: .17em; line-height: 1; }
.brand-wordmark strong { color: var(--forest-deep); font-size: inherit; font-weight: 800; }
.brand-wordmark span { color: var(--forest); font-weight: 650; }
.header-brand { min-width: 86px; }
.header-brand .header-logo {
  width: 74px;
  height: 74px;
  object-fit: cover;
  border-radius: 16px;
  mix-blend-mode: normal;
  transition: width .22s ease,height .22s ease,border-radius .22s ease;
}
.site-header.is-scrolled .header-brand .header-logo { width: 60px; height: 60px; border-radius: 13px; }
.site-header.is-scrolled .brand-symbol { width: 48px; height: 48px; font-size: 1.42rem; }
.site-header.is-scrolled .brand-symbol i { font-size: 1.85rem; }

/* Footer validé : trois zones utiles, sans colonne légale */
.site-footer {
  display: block;
  margin: 0 clamp(14px,2vw,28px) 20px;
  padding: clamp(48px,6vw,88px) clamp(28px,6vw,96px) 28px;
  overflow: hidden;
  color: #f7fff9;
  background: radial-gradient(circle at 12% 14%,rgba(114,230,160,.08),transparent 26%),linear-gradient(135deg,#102d25,#09241e);
  border: 1px solid rgba(114,230,160,.12);
  border-radius: 32px 32px 84px 32px;
  font-size: .95rem;
}
.footer-main { display: grid; grid-template-columns: minmax(290px,1.25fr) minmax(170px,.62fr) minmax(310px,1fr); gap: clamp(42px,7vw,120px); align-items: start; max-width: 1560px; margin-inline: auto; }
.footer-brand .brand-symbol { color: #fff; border-color: rgba(114,230,160,.45); }
.footer-brand .brand-symbol i { color: var(--electric-green); }
.footer-brand .brand-wordmark strong { color: #fff; }
.footer-brand .brand-wordmark span { color: var(--electric-green); }
.footer-brand .footer-logo {
  width: min(330px,100%);
  height: auto;
  object-fit: contain;
  mix-blend-mode: normal;
}
.footer-identity p { margin: 34px 0 22px; color: rgba(247,255,249,.82); font-size: clamp(1rem,1.4vw,1.28rem); line-height: 1.55; }
.footer-location { display: flex; align-items: center; gap: 10px; color: rgba(247,255,249,.72); }
.footer-location::before { display: block; width: 10px; height: 10px; content: ""; background: var(--electric-green); border: 3px solid rgba(114,230,160,.18); border-radius: 50%; box-shadow: 0 0 0 1px var(--electric-green); }
.footer-nav,.footer-contact { display: grid; gap: 13px; }
.footer-nav h2,.footer-contact h2 { width: fit-content; margin: 0 0 22px; padding-bottom: 10px; color: var(--electric-green); border-bottom: 2px solid rgba(114,230,160,.72); font-size: .73rem; font-weight: 800; letter-spacing: .24em; line-height: 1; text-transform: uppercase; }
.footer-nav a { width: fit-content; color: rgba(247,255,249,.88); font-size: 1rem; transition: color .2s ease,transform .2s ease; }
.footer-nav a:hover { color: var(--electric-green); transform: translateX(5px); }
.footer-contact { gap: 19px; }
.footer-contact a { display: flex; align-items: center; gap: 12px; width: fit-content; color: rgba(247,255,249,.92); transition: color .2s ease,transform .2s ease; }
.footer-contact a:hover { color: var(--electric-green); transform: translateX(4px); }
.footer-icon { display: grid; flex: 0 0 30px; width: 30px; height: 30px; place-items: center; color: var(--electric-green); border: 1px solid rgba(114,230,160,.7); border-radius: 50%; font-size: .78rem; font-weight: 800; }
.linkedin-icon { color: var(--forest-deep); background: var(--electric-green); border-radius: 6px; font-family: Arial,sans-serif; font-size: .83rem; }
.footer-bottom { display: grid; grid-template-columns: 1fr auto 1fr; gap: 30px; align-items: center; max-width: 1560px; margin: clamp(50px,6vw,78px) auto 0; padding-top: 26px; color: rgba(247,255,249,.58); border-top: 1px solid rgba(114,230,160,.28); font-size: .78rem; }
.footer-bottom strong { color: var(--electric-green); font-family: Georgia,serif; font-size: .92rem; font-style: italic; font-weight: 400; }
.footer-bottom span:last-child { text-align: right; }

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; min-height: auto; padding: clamp(42px,7vw,72px); }
  .hero-copy { max-width: 720px; }
  .expertise-section, .method-section, .value-section, .contact-section, .founder-section { grid-template-columns: 1fr; }
  .method-copy { position: static; }
  .work-feature, .work-feature.reverse { grid-template-columns: 1fr; }
  .work-feature.reverse .work-image, .work-feature.reverse figcaption { order: initial; }
  .work-feature figcaption { max-width: 680px; }
  .founder-portrait { max-width: 620px; }
  .footer-main { grid-template-columns: 1fr 1fr; }
  .footer-identity { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .site-header { align-items: center; flex-direction: column; gap: 8px; }
  .nav { justify-content: center; width: 100%; overflow-x: auto; padding-bottom: 10px; }
  .nav a:not(.nav-cta) { display: none; }
  .brand img { width: 82px; height: 82px; }
  .hero, .section, .trust-strip { width: min(100% - 28px, 1240px); }
  .hero { padding-top: 48px; }
  .trust-strip { grid-template-columns: 1fr; }
  .trust-strip div, .trust-strip div:first-child { padding: 15px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .trust-strip div:last-child { border-bottom: 0; }
  .section { padding: 58px 24px; border-radius: 26px; }
  .expertise-list article { grid-template-columns: 1fr; gap: 6px; }
  .work-pair { grid-template-columns: 1fr; }
  .founder-facts { grid-template-columns: 1fr; }
  .method-flow li { grid-template-columns: 1fr; gap: 6px; min-height: 126px; padding: 20px 82px 20px 20px; }
  .method-flow li::before { right: 14px; font-size: 5.4rem; }
  .contact-section { width: calc(100% - 28px); padding: 24px; }
  .contact-form { padding: 20px; }
  .contact-form .button, .hero-actions .button { width: 100%; }
  .hero { padding: 44px 24px 28px; border-radius: 24px 24px 70px 24px; }
  .hero h1 { font-size: clamp(2.7rem,13vw,4.2rem); }
  .hero-media { border-radius: 22px 22px 58px 22px; transform: none; }
  .hero-media img { min-height: 330px; }
  .hero-media figcaption { right: 12px; bottom: 12px; left: 12px; max-width: none; }
  .trust-strip { padding: 14px 22px; }
  .method-flow li { padding: 18px; }
  .site-footer { margin-inline: 14px; }
  .header-brand { min-width: 0; }
  .header-brand .header-logo { width: 62px; height: 62px; border-radius: 13px; }
  .brand-symbol { width: 48px; height: 48px; font-size: 1.35rem; }
  .brand-symbol i { font-size: 1.8rem; }
  .brand-wordmark { gap: 5px; font-size: 1rem; letter-spacing: .12em; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-identity { grid-column: auto; }
  .footer-nav h2,.footer-contact h2 { margin-bottom: 12px; }
  .footer-bottom { grid-template-columns: 1fr; gap: 12px; }
  .footer-bottom span:last-child { text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Sélecteur de langue V4 */
.language-switcher {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 4px;
  padding: 5px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(18,55,47,.14);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgba(18,55,47,.08);
  backdrop-filter: blur(12px);
}
.language-option {
  display: grid;
  width: 38px;
  height: 34px;
  padding: 0;
  place-items: center;
  color: rgba(18,55,47,.62);
  background: transparent;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-family: "Manrope",ui-sans-serif,system-ui,sans-serif;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .04em;
  transition: color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.language-option:hover { color: var(--forest-deep); background: rgba(114,230,160,.18); }
.language-option:active { transform: scale(.94); }
.language-option.is-active {
  color: #fff;
  background: var(--forest-deep);
  box-shadow: 0 7px 18px rgba(18,55,47,.22);
}
.language-option:focus-visible { outline: 3px solid rgba(44,157,93,.28); outline-offset: 2px; }

@media (max-width: 1100px) {
  .site-header { gap: 20px; }
  .site-header .nav { gap: 16px; font-size: .84rem; }
}

@media (max-width: 860px) {
  .nav a:not(.nav-cta) { display: none; }
}

@media (max-width: 720px) {
  .site-header {
    justify-content: space-between;
    flex-flow: row wrap;
    gap: 6px 12px;
    padding: 4px 14px 10px;
  }
  .header-brand { order: 1; }
  .language-switcher { order: 2; }
  .site-header .nav {
    order: 3;
    flex: 0 0 100%;
    justify-content: center;
    padding-bottom: 0;
  }
  .nav-cta { width: 100%; }
}
