:root{--paper:#F4F1EB;--paper2:#D9D2C5;--ink:#1E1E1C;--granit:#1E1E1C;--pierre:#8C877D;--braise:#8C877D;--line:rgba(30,30,28,.16);--lineD:rgba(244,241,235,.18);--gut:clamp(18px,3.4vw,56px);--serif:"Josefin Sans","Avenir Next",Futura,"Century Gothic",sans-serif;--sans:Manrope,system-ui,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);color-scheme:light}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
img{display:block;max-width:100%}
h1,h2,h3,p{margin:0}
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.01em}
.serif em,em.s{font-style:italic}
.label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:400}
.dark{background:var(--granit);color:var(--paper)}
.ink{background:var(--ink);color:var(--paper)}
.wrap{padding-inline:var(--gut)}

/* overlays */
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:gr 1s steps(6) infinite}
@keyframes gr{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.prog{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--braise);transform-origin:left;transform:scaleX(0);z-index:95}
.cur{position:fixed;left:0;top:0;z-index:96;pointer-events:none;opacity:0;transition:opacity .3s}
.cur::before{content:"";position:absolute;left:-5px;top:-5px;width:10px;height:10px;border-radius:50%;background:#fff;transition:.35s var(--ease)}
.cur{mix-blend-mode:difference}
.cur span{position:absolute;left:0;top:0;transform:translate(-50%,-50%);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#000;opacity:0;white-space:nowrap}
.cur.show{opacity:1}
.cur.big::before{left:-44px;top:-44px;width:88px;height:88px}
.cur.big span{opacity:1}
@media (hover:none),(pointer:coarse){.cur{display:none}}
.pre{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--paper);display:grid;place-items:center}
.pre-in{display:flex;flex-direction:column;align-items:center;gap:22px}
.pre svg{width:120px;height:80px}
.pre-n{font-family:var(--serif);font-size:clamp(60px,10vw,120px);line-height:1;display:flex;align-items:flex-start;font-variant-numeric:tabular-nums}
.pre-n i{font-size:.3em;font-style:normal;margin:.3em 0 0 .2em}
.curtain{position:fixed;inset:0;z-index:80;background:var(--ink);color:var(--paper);display:grid;place-items:center;transform:translateY(100%);pointer-events:none;border-radius:50% 50% 0 0/12% 12% 0 0}
.curtain span{font-size:clamp(44px,8vw,120px);line-height:1}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:70;display:flex;justify-content:space-between;align-items:center;padding:calc(20px + env(safe-area-inset-top,0px)) var(--gut) 20px;color:#fff;mix-blend-mode:difference}
.brand{display:flex;gap:12px;align-items:center}.brand svg{width:30px;height:20px}
.nav-l{display:flex;gap:clamp(18px,3vw,44px)}
.nav-l a,.menu a{position:relative}
.nav-l a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.nav-l a:hover::after,.nav-l a.on::after{transform:scaleX(1)}
.nav-r{display:flex;gap:20px;align-items:center}
.btn-s{padding:10px 18px;border:1px solid currentColor;border-radius:999px;transition:.4s}
.btn-s:hover{background:#fff;color:#000}
.burger{display:none;width:34px;height:20px;position:relative}
.burger i{position:absolute;left:0;right:0;height:1px;background:#fff;transition:.5s var(--ease)}.burger i:first-child{top:6px}.burger i:last-child{top:13px}
.burger.x i:first-child{top:9px;transform:rotate(30deg)}.burger.x i:last-child{top:9px;transform:rotate(-30deg)}
@media (max-width:860px){.nav-l,.btn-s{display:none}.burger{display:block}}
.menu{position:fixed;inset:0;z-index:65;background:var(--ink);color:var(--paper);clip-path:inset(0 0 100% 0);transition:clip-path .9s cubic-bezier(.76,0,.24,1);display:grid;grid-template-columns:1.2fr 1fr;pointer-events:none}
.menu.open{clip-path:inset(0);pointer-events:auto}
.menu-in{padding:clamp(100px,14vh,150px) var(--gut) var(--gut);display:flex;flex-direction:column;justify-content:space-between;min-height:0}
.menu ul{list-style:none;margin:0;padding:0}
.menu li{overflow:hidden}
.menu li a{display:flex;gap:22px;align-items:baseline;font-size:clamp(46px,8vw,118px);line-height:1.05;transform:translateY(105%);transition:transform .9s var(--ease),color .3s}
.menu.open li a{transform:none}
.menu.open li:nth-child(2) a{transition-delay:.05s}.menu.open li:nth-child(3) a{transition-delay:.1s}.menu.open li:nth-child(4) a{transition-delay:.15s}.menu.open li:nth-child(5) a{transition-delay:.2s}.menu.open li:nth-child(6) a{transition-delay:.25s}
.menu li a i{font-family:var(--sans);font-style:normal;font-size:12px;letter-spacing:.2em;color:var(--pierre)}
.menu ul:hover li a{color:rgba(242,239,232,.3)}.menu ul li a:hover{color:var(--paper)}
.menu-f{display:flex;gap:28px;flex-wrap:wrap;color:var(--pierre)}
.menu-im{position:relative;overflow:hidden}.menu-im img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.7}
@media (max-width:860px){.menu{grid-template-columns:1fr}.menu-im{display:none}}

/* reveal primitives */
.ws{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.ws>span{display:inline-block;will-change:transform}
[data-r]{opacity:0;transform:translateY(34px)}
.img{position:relative;overflow:hidden;background:#d9d3c5}
.img img{width:100%;height:100%;object-fit:cover;will-change:transform}
.img[data-clip]{clip-path:inset(0 0 100% 0)}

/* HOME hero */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;background:#0d0d0c url(img/maison-ria.jpg) center/cover;color:var(--paper)}
#glh{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,12,.5),rgba(14,14,12,0) 26%,rgba(14,14,12,0) 42%,rgba(14,14,12,.88));pointer-events:none}
.h-top{position:absolute;z-index:5;left:var(--gut);right:var(--gut);top:clamp(86px,13vh,120px);display:flex;justify-content:space-between;gap:20px;color:rgba(242,239,232,.8)}
.h-txt{position:absolute;z-index:5;left:var(--gut);bottom:clamp(70px,12vh,130px);right:var(--gut);pointer-events:none}
.h-meta{display:flex;gap:18px;align-items:center;margin-bottom:22px;color:rgba(242,239,232,.8);overflow:hidden}
.h-meta i{width:48px;height:1px;background:currentColor;display:block}
.h-title{font-family:var(--serif);font-weight:400;font-size:clamp(54px,10.5vw,176px);line-height:.92;letter-spacing:-.025em;max-width:11ch}
.h-title .ws{margin-right:0}
.h-list{position:absolute;z-index:6;right:var(--gut);bottom:clamp(70px,12vh,130px);display:flex;flex-direction:column;align-items:flex-end;gap:0}
.h-list button{display:flex;gap:14px;align-items:center;padding:7px 0;color:rgba(242,239,232,.45);transition:color .4s,transform .5s var(--ease)}
.h-list button i{font-style:normal;font-size:11px;letter-spacing:.2em}
.h-list button b{font-weight:300;font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.h-list button em{display:block;width:24px;height:1px;background:currentColor;transform-origin:right;transform:scaleX(.4);transition:transform .5s var(--ease)}
.h-list button.on,.h-list button:hover{color:var(--paper)}.h-list button.on{transform:translateX(-6px)}.h-list button.on em{transform:scaleX(1.7)}
.h-bar{position:absolute;z-index:6;left:var(--gut);right:var(--gut);bottom:34px;height:1px;background:rgba(242,239,232,.2)}
.h-bar b{position:absolute;left:0;top:-1px;height:3px;width:0;background:var(--paper)}
.scrollc{position:absolute;z-index:6;left:50%;bottom:48px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;color:rgba(242,239,232,.6)}
.scrollc i{width:1px;height:42px;background:linear-gradient(180deg,rgba(242,239,232,.8),transparent);animation:sc 2s ease-in-out infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:860px){.h-list,.scrollc{display:none}.h-top span:last-child{display:none}}

/* marquee */
.mq{overflow:hidden;border-block:1px solid var(--line);padding:clamp(18px,2.2vw,30px) 0;background:var(--paper)}
.mq-t{display:flex;width:max-content;animation:mq 38s linear infinite}
.mq-t span{font-family:var(--serif);font-size:clamp(34px,5.5vw,84px);line-height:1;padding-right:.5em;white-space:nowrap;display:flex;align-items:center;gap:.5em}
.mq-t span::after{content:"";width:.16em;height:.16em;background:var(--braise);border-radius:50%}
.mq-t em{font-style:italic;color:var(--pierre)}
@keyframes mq{to{transform:translateX(-50%)}}

/* manifesto */
.mani{padding:clamp(100px,15vw,230px) var(--gut);display:grid;grid-template-columns:minmax(0,1fr);gap:40px}
.mani .label{color:var(--pierre)}
.mani p{font-family:var(--serif);font-size:clamp(34px,6vw,104px);line-height:1.04;letter-spacing:-.02em;max-width:20ch}
.mani .mw{color:#cbc4b4}
.pill{display:inline-block;width:0;height:.8em;border-radius:999px;vertical-align:-.08em;background-size:cover;background-position:center;margin:0 .06em;overflow:hidden}
.mani-s{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-end}
.mani-s p.s{font-family:var(--sans);font-size:15px;line-height:1.7;max-width:42ch;color:#4a463e;letter-spacing:0}
.link{display:inline-flex;gap:14px;align-items:center;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .4s var(--ease)}
.link:hover{gap:26px}

/* featured projects */
.feat{padding:clamp(60px,8vw,120px) var(--gut) clamp(80px,10vw,160px)}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:clamp(40px,6vw,90px)}
.sec-h h2{font-size:clamp(44px,7vw,120px);line-height:.95}
.sec-h .label{color:var(--pierre)}
.fgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(24px,4vw,70px) clamp(14px,2vw,30px)}
.fc{display:block;position:relative}
.fc .img{aspect-ratio:4/5}
.fc.w .img{aspect-ratio:16/10}
.fc:nth-child(1){grid-column:1/8}
.fc:nth-child(2){grid-column:9/13;margin-top:clamp(40px,12vw,200px)}
.fc:nth-child(3){grid-column:2/6}
.fc:nth-child(4){grid-column:7/13;margin-top:clamp(0px,6vw,100px)}
.fc-m{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-top:16px}
.fc-m h3{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3vw,46px);line-height:1.05}
.fc-m span{color:var(--pierre)}
.fc .img img{transition:transform 1.4s var(--ease)}
.fc:hover .img img{transform:scale(1.05)}
.fc-n{position:absolute;left:14px;top:12px;z-index:2;color:var(--paper);mix-blend-mode:difference}
@media (max-width:860px){.fc:nth-child(n){grid-column:1/-1;margin-top:0}}

/* dolmen */
.dol{position:relative;height:420vh;background:#141412}
.dol-s{position:sticky;top:0;height:100svh;overflow:hidden}
#gld{position:absolute;inset:0;width:100%;height:100%;display:block}
.dol-s::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(10,10,9,.75));pointer-events:none}
.cap{position:absolute;z-index:5;left:var(--gut);bottom:clamp(60px,12vh,130px);max-width:min(800px,calc(100% - 2*var(--gut)));opacity:0;color:var(--paper)}
.cap .label{color:var(--braise);display:block;margin-bottom:18px}
.cap p{font-family:var(--serif);font-size:clamp(34px,5.6vw,86px);line-height:1.02;letter-spacing:-.02em}
.dol-hint{position:absolute;z-index:5;right:var(--gut);top:50%;writing-mode:vertical-rl;color:rgba(242,239,232,.45);transform:translateY(-50%)}

/* stats */
.stats{padding:clamp(70px,10vw,150px) var(--gut);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}
.stat{border-top:1px solid var(--lineD);padding-top:22px}
.stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(70px,10vw,170px);line-height:.9;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat span{display:block;margin-top:14px;color:#b9b2a1;max-width:22ch}
@media (max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* services */
.serv{padding:clamp(80px,10vw,150px) var(--gut)}
.srow{display:grid;grid-template-columns:70px minmax(0,1.2fr) minmax(0,1fr) 40px;gap:24px;align-items:center;padding:clamp(22px,2.6vw,40px) 0;border-top:1px solid var(--line);position:relative;transition:padding .5s var(--ease)}
.srow:last-child{border-bottom:1px solid var(--line)}
.srow h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5vw,80px);line-height:1;transition:transform .6s var(--ease)}
.srow p{color:#4a463e;max-width:42ch}
.srow .label{color:var(--pierre)}
.srow .ar{font-size:28px;transition:transform .5s var(--ease)}
.srow:hover h3{transform:translateX(18px)}.srow:hover .ar{transform:translateX(8px)}
.sprev{position:fixed;left:0;top:0;width:min(30vw,380px);aspect-ratio:3/4;z-index:20;pointer-events:none;overflow:hidden;opacity:0;transform:scale(.8);transition:opacity .35s,transform .5s var(--ease)}
.sprev.on{opacity:1;transform:scale(1)}
.sprev img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.srow{grid-template-columns:40px minmax(0,1fr);}.srow p,.srow .ar{display:none}.sprev{display:none}}

/* team teaser */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);align-items:center;padding:clamp(80px,10vw,150px) var(--gut)}
.duo .img{aspect-ratio:4/5}
.duo h2{font-size:clamp(40px,6vw,98px);line-height:.98;margin:20px 0 28px}
.duo p{color:#c9c2b2;max-width:46ch}
.duo p+p{margin-top:16px}
@media (max-width:860px){.duo{grid-template-columns:1fr}}

/* journal teaser/cards */
.jgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,40px)}
.jc .img{aspect-ratio:4/3}
.jc .img img{transition:transform 1.2s var(--ease)}.jc:hover .img img{transform:scale(1.05)}
.jc h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.4vw,36px);line-height:1.1;margin:18px 0 10px}
.jc .label{color:var(--pierre)}
@media (max-width:860px){.jgrid{grid-template-columns:1fr}}

/* big CTA */
.cta{padding:clamp(100px,16vw,260px) var(--gut) clamp(60px,8vw,120px);text-align:left}
.cta .label{color:var(--braise)}
.cta a.big{display:block;font-family:var(--serif);font-size:clamp(56px,13vw,230px);line-height:.92;letter-spacing:-.035em;margin-top:26px;transition:letter-spacing .8s var(--ease)}
.cta a.big em{color:var(--pierre)}
.cta a.big:hover{letter-spacing:-.01em}

footer{background:var(--ink);color:var(--paper);padding:clamp(44px,6vw,90px) var(--gut) 26px}
.f-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;padding-bottom:clamp(50px,8vw,120px)}
.f-g h4{margin:0 0 16px;color:var(--pierre);font-weight:400}
.f-g a,.f-g p{display:block;color:#d6cfbf;margin-bottom:6px}
.f-g a:hover{color:#fff}
.f-w{font-family:var(--serif);font-size:clamp(100px,26vw,420px);line-height:.8;letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1px rgba(242,239,232,.28);margin:0 0 -.04em;text-align:center}
.f-b{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;color:var(--pierre);border-top:1px solid var(--lineD);padding-top:20px}
@media (max-width:860px){.f-g{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* page head */
.ph{padding:clamp(140px,22vh,220px) var(--gut) clamp(40px,6vw,80px)}
.ph h1{font-family:var(--serif);font-weight:400;font-size:clamp(64px,14vw,240px);line-height:.88;letter-spacing:-.035em}
.ph .row{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-top:34px}
.ph p{max-width:46ch;color:#4a463e}
.ph sup{font-family:var(--sans);font-size:.14em;letter-spacing:.1em;vertical-align:top;color:var(--pierre);margin-left:.3em}

/* projets */
.bar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:0 var(--gut) 30px;align-items:center}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:10px 18px;border:1px solid var(--line);border-radius:999px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;transition:.35s}
.chip:hover{border-color:var(--ink)}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(30px,4vw,60px) clamp(14px,2vw,28px);padding:0 var(--gut) clamp(90px,12vw,180px)}
.pc{display:block;grid-column:span 4}
.pc:nth-child(5n+1){grid-column:span 7}.pc:nth-child(5n+2){grid-column:span 5;margin-top:clamp(0px,7vw,120px)}.pc:nth-child(5n+3){grid-column:span 4}.pc:nth-child(5n+4){grid-column:span 4}.pc:nth-child(5n+5){grid-column:span 4}
.pc .img{aspect-ratio:4/3}.pc:nth-child(5n+2) .img{aspect-ratio:4/5}
.pc .img img{transition:transform 1.4s var(--ease)}.pc:hover .img img{transform:scale(1.05)}
.pc.hide{display:none}
@media (max-width:860px){.pc:nth-child(n){grid-column:1/-1;margin-top:0}}

/* case study */
.cs-hero{position:relative;height:100svh;min-height:600px;overflow:hidden;color:var(--paper);background:var(--ink)}
.cs-hero img{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover}
.cs-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,14,12,.45),rgba(14,14,12,0) 30%,rgba(14,14,12,0) 50%,rgba(14,14,12,.85))}
.cs-t{position:absolute;z-index:3;left:var(--gut);right:var(--gut);bottom:clamp(40px,8vh,80px)}
.cs-t h1{font-family:var(--serif);font-weight:400;font-size:clamp(56px,11vw,190px);line-height:.9;letter-spacing:-.03em;max-width:12ch}
.cs-t .label{display:block;margin-bottom:18px;color:rgba(242,239,232,.8)}
.facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;padding:30px var(--gut);border-bottom:1px solid var(--line)}
.facts div span{display:block;color:var(--pierre);margin-bottom:6px}
.facts div b{font-weight:300;font-size:16px}
@media (max-width:860px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cs-intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,6vw,110px);padding:clamp(80px,10vw,160px) var(--gut)}
.cs-intro .label{color:var(--pierre)}
.cs-intro .lead{font-family:var(--serif);font-size:clamp(30px,3.6vw,58px);line-height:1.1;letter-spacing:-.015em}
.cs-intro .body p{margin-bottom:20px;max-width:56ch;color:#35322c;font-size:17px;line-height:1.75}
@media (max-width:860px){.cs-intro{grid-template-columns:1fr}}
.cs-full{height:clamp(320px,90vh,900px)}
.cs-full img{height:116%;position:relative;top:-8%}
.cs-quote{padding:clamp(90px,12vw,200px) var(--gut);text-align:center}
.cs-quote p{font-family:var(--serif);font-size:clamp(34px,5.4vw,92px);line-height:1.04;max-width:20ch;margin:0 auto;letter-spacing:-.02em}
.cs-quote .label{display:block;margin-top:30px;color:var(--pierre)}
.cs-gal{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,2vw,28px);padding:0 var(--gut) clamp(80px,10vw,160px)}
.cs-gal .img:nth-child(1){grid-column:1/8;aspect-ratio:16/11}
.cs-gal .img:nth-child(2){grid-column:9/13;aspect-ratio:3/4;margin-top:clamp(30px,8vw,140px)}
.cs-gal .img:nth-child(3){grid-column:2/6;aspect-ratio:3/4}
.cs-gal .img:nth-child(4){grid-column:7/13;aspect-ratio:16/11;margin-top:clamp(20px,5vw,80px)}
@media (max-width:860px){.cs-gal .img:nth-child(n){grid-column:1/-1;margin-top:0}}
.ba{position:relative;height:clamp(340px,80vh,820px);overflow:hidden;cursor:ew-resize;touch-action:pan-y;user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .after{clip-path:inset(0 0 0 var(--p,50%))}
.ba .h{position:absolute;top:0;bottom:0;left:var(--p,50%);width:1px;background:#fff}
.ba .h i{position:absolute;left:-26px;top:50%;margin-top:-26px;width:52px;height:52px;border:1px solid #fff;border-radius:50%;display:grid;place-items:center;backdrop-filter:blur(6px);background:rgba(255,255,255,.12);font-style:normal;color:#fff;font-size:14px;letter-spacing:2px}
.ba .t{position:absolute;bottom:20px;color:#fff}
.nextp{display:block;position:relative;height:70svh;min-height:420px;overflow:hidden;color:var(--paper);background:var(--ink)}
.nextp img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transition:transform 1.6s var(--ease),opacity .6s}
.nextp:hover img{transform:scale(1.06);opacity:.75}
.nextp div{position:absolute;left:var(--gut);right:var(--gut);bottom:clamp(30px,6vh,70px)}
.nextp .label{display:block;margin-bottom:12px}
.nextp h2{font-family:var(--serif);font-weight:400;font-size:clamp(50px,9vw,150px);line-height:.92;letter-spacing:-.03em}

/* agence */
.statement{padding:0 var(--gut) clamp(80px,10vw,160px)}
.statement p{font-family:var(--serif);font-size:clamp(34px,5.4vw,90px);line-height:1.06;letter-spacing:-.02em;max-width:22ch}
.team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,70px);padding:0 var(--gut) clamp(80px,10vw,160px)}
.tm .img{aspect-ratio:4/5}
.tm h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4vw,62px);line-height:1;margin:20px 0 6px}
.tm .label{color:var(--pierre)}
.tm p{margin-top:16px;color:#35322c;max-width:46ch}
@media (max-width:860px){.team{grid-template-columns:1fr}}
.vals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;padding:clamp(70px,9vw,140px) var(--gut)}
.val{border-top:1px solid var(--lineD);padding-top:22px}
.val i{font-style:normal;color:var(--braise);font-size:12px;letter-spacing:.2em}
.val h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,44px);line-height:1.05;margin:16px 0 12px}
.val p{color:#bdb6a5;max-width:30ch}
@media (max-width:860px){.vals{grid-template-columns:repeat(2,minmax(0,1fr))}}
.meth{position:relative;height:420vh}
.meth-s{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gut);padding:clamp(90px,14vh,130px) var(--gut) var(--gut);align-items:center}
.meth svg{width:100%;max-height:60svh;overflow:visible}
.meth svg *{stroke:var(--ink);fill:none;stroke-width:1.4;vector-effect:non-scaling-stroke}
.meth .steps{position:relative;height:56svh}
.step{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;opacity:0}
.step b{font-family:var(--serif);font-weight:400;font-size:clamp(90px,14vw,230px);line-height:.8;color:#d6cfbf}
.step h3{font-family:var(--serif);font-weight:400;font-size:clamp(34px,4.6vw,76px);line-height:1;margin:14px 0 14px}
.step p{max-width:38ch;color:#4a463e}
.step .label{margin-top:16px;color:var(--braise)}
.meth-h{position:absolute;left:var(--gut);top:clamp(86px,13vh,110px);color:var(--pierre)}
@media (max-width:860px){.meth-s{grid-template-columns:1fr;align-content:center}.meth svg{max-height:30svh}.meth .steps{height:36svh}}
.press{padding:clamp(70px,9vw,140px) var(--gut)}
.pr{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:20px;padding:22px 0;border-top:1px solid var(--line);align-items:baseline}
.pr:last-child{border-bottom:1px solid var(--line)}
.pr h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,40px);line-height:1.1}
.pr span.label{color:var(--pierre)}
@media (max-width:860px){.pr{grid-template-columns:70px 1fr}.pr>:last-child{display:none}}

/* journal */
.jl{padding:0 var(--gut) clamp(90px,12vw,180px)}
.jr{display:grid;grid-template-columns:160px minmax(0,1fr) minmax(0,.7fr);gap:30px;align-items:center;padding:clamp(24px,3vw,44px) 0;border-top:1px solid var(--line)}
.jr:last-child{border-bottom:1px solid var(--line)}
.jr h3{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,64px);line-height:1;transition:transform .6s var(--ease)}
.jr:hover h3{transform:translateX(16px)}
.jr .label{color:var(--pierre)}
.jr .img{aspect-ratio:16/10}
@media (max-width:860px){.jr{grid-template-columns:1fr}.jr .img{display:none}}
.art{padding:clamp(130px,20vh,200px) var(--gut) 40px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(30px,6vw,110px)}
.art h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6.4vw,110px);line-height:.96;letter-spacing:-.03em}
.art .label{color:var(--pierre);display:block;margin-bottom:22px}
.art .body p{margin-bottom:22px;max-width:56ch;font-size:18px;line-height:1.8;color:#2d2a25}
.art .body p:first-child::first-letter{font-family:var(--serif);float:left;font-size:5.4em;line-height:.8;padding:.06em .1em 0 0}
@media (max-width:860px){.art{grid-template-columns:1fr}}

/* contact */
.ct{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);padding:0 var(--gut) clamp(90px,12vw,170px)}
.fld{display:flex;flex-direction:column;gap:10px;margin-bottom:34px}
.fld>.label{color:var(--pierre)}
.fld input[type=text],.fld input[type=email],.fld textarea{font:inherit;font-size:20px;background:none;border:0;border-bottom:1px solid var(--line);padding:10px 0;color:var(--ink);outline:none;border-radius:0;transition:border-color .3s;width:100%;resize:vertical}
.fld input:focus,.fld textarea:focus{border-color:var(--ink)}
.rng{display:flex;justify-content:space-between;align-items:baseline}
.rng b{font-family:var(--serif);font-weight:400;font-size:34px;font-variant-numeric:tabular-nums}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:1px;background:var(--ink);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--braise);cursor:pointer}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--braise);border:0;cursor:pointer}
.send{display:inline-flex;align-items:center;gap:16px;padding:18px 34px;background:var(--ink);color:var(--paper);border-radius:999px;transition:.4s var(--ease)}
.send:hover{background:var(--braise);color:var(--ink);gap:28px}
.ok{display:none;padding:26px;border:1px solid var(--braise);margin-top:20px}
.ok.show{display:block}
.mapw{position:sticky;top:110px;align-self:start}
.mapw svg{width:100%;height:auto;display:block;background:var(--paper2)}
.mapw .pin{fill:var(--braise)}
.mapw .info{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:26px}
.mapw .info span{display:block;color:var(--pierre);margin-bottom:6px}
@media (max-width:860px){.ct{grid-template-columns:1fr}.mapw{position:static}}

/* simulateur */
.simp{position:relative;height:100svh;min-height:680px;overflow:hidden;background:#0d0d0c;color:var(--paper)}
#sim{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:grab;touch-action:none}
.simp::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(90deg,rgba(10,10,9,.6),rgba(10,10,9,0) 55%),linear-gradient(0deg,rgba(10,10,9,.5),rgba(10,10,9,0) 30%)}
.sim-t{position:absolute;z-index:5;left:var(--gut);top:clamp(100px,16vh,150px);max-width:min(620px,calc(100% - 2*var(--gut)));pointer-events:none}
.sim-t h1{font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.4vw,104px);line-height:.94;letter-spacing:-.03em;margin-top:14px}
.sim-t p{margin-top:18px;color:rgba(242,239,232,.65);max-width:40ch}
.sim-p{position:absolute;z-index:6;right:var(--gut);bottom:var(--gut);width:min(390px,calc(100% - 2*var(--gut)));background:rgba(18,18,16,.62);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid var(--lineD);padding:22px;display:flex;flex-direction:column;gap:18px}
.sim-p .row{display:flex;flex-direction:column;gap:9px}.sim-p .row>.label{color:var(--pierre)}
.sim-p .chips{display:flex;gap:6px;flex-wrap:wrap}
.sim-p .chip{padding:8px 13px;border:1px solid var(--lineD);border-radius:0;font-size:12px;letter-spacing:.06em;text-transform:none}
.sim-p .chip:hover{border-color:var(--paper)}.sim-p .chip.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.sw{display:flex;gap:8px}.sw button{width:38px;height:38px;border:1px solid var(--lineD);transition:.3s}.sw button.on{outline:1px solid var(--braise);outline-offset:3px}
.sim-p input[type=range]{background:rgba(242,239,232,.4)}
.tl{display:flex;justify-content:space-between;align-items:baseline}.tl b{font-family:var(--serif);font-weight:400;font-size:26px;font-variant-numeric:tabular-nums}
.est{display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--lineD);padding-top:16px}
.est span{display:block;color:var(--pierre);margin-bottom:6px}.est b{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1;font-variant-numeric:tabular-nums}
.est small{font-size:11px;color:var(--pierre);text-align:right;line-height:1.5}
.sim-hint{position:absolute;z-index:5;left:var(--gut);bottom:var(--gut);display:flex;gap:12px;align-items:center;color:rgba(242,239,232,.55)}
.sim-hint i{width:40px;height:1px;background:currentColor}
@media (max-width:860px){.simp{height:auto;min-height:0;display:flex;flex-direction:column}#sim{position:relative;height:62svh}.sim-t{top:84px}.sim-t p{display:none}.sim-p{position:relative;right:auto;bottom:auto;width:auto;margin:0 var(--gut) var(--gut)}.sim-hint{display:none}}

/* ===== site3 : accueil à plat ===== */
.btn{display:inline-flex;gap:12px;align-items:center;padding:15px 26px;border:1px solid var(--ink);border-radius:2px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:400;transition:.4s var(--ease)}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.dk{background:var(--ink);color:var(--paper)}.btn.dk:hover{background:var(--braise);border-color:var(--braise);color:var(--ink)}
.btn.lt{background:var(--paper);color:var(--ink);border-color:var(--paper)}.btn.lt:hover{background:var(--braise);border-color:var(--braise)}
.h3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,70px);padding:calc(110px + env(safe-area-inset-top,0px)) var(--gut) clamp(50px,7vw,100px);align-items:center;min-height:100vh;background:var(--paper)}
.h3-l{display:flex;flex-direction:column;gap:26px;min-width:0}
.h3-l .label{color:var(--pierre)}
.h3 h1{font-size:clamp(46px,6.2vw,104px);line-height:.98}
.h3 h1 em{color:var(--braise)}
.h3-l>p{max-width:46ch;font-size:clamp(16px,1.3vw,19px);color:#3a3a36}
.h3-b{display:flex;gap:12px;flex-wrap:wrap}
.proof{display:flex;gap:clamp(18px,3vw,44px);flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--line)}
.proof b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.4vw,48px);line-height:1}
.proof span{font-size:12px;color:var(--pierre)}
.h3-r{display:flex;flex-direction:column;gap:18px;min-width:0}
.ph3{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--paper2)}
.ph3 img{width:100%;height:100%;object-fit:cover;display:block}
.ph3-c{position:absolute;left:16px;bottom:14px;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.5)}
.sheet{border:1px solid var(--line);background:
 linear-gradient(var(--line) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/24px 24px,#F4F1EB;padding:10px;background-blend-mode:normal}
.sheet svg{width:100%;height:auto;display:block}
.tools,.sv,.feat,.tm3{padding:clamp(70px,9vw,140px) var(--gut)}
.tools{background:var(--paper2)}
.sec-h h2 em,.mt h2 em,.cn h2 em{color:var(--braise)}
.sec-h h2{font-size:clamp(38px,5.4vw,88px)}
.tgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(18px,2vw,32px)}
.tool{background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;min-width:0}
.t-plan{grid-column:span 7}.t-bud{grid-column:span 5}.t-ba{grid-column:1/-1}
.tool-h{padding:26px 28px 6px;display:flex;flex-direction:column;gap:8px}
.tool-h .label{color:var(--braise)}.tool-h h3{font-size:clamp(28px,2.6vw,40px);line-height:1.05}
.tool-h p{font-size:14px;color:#55554f;max-width:52ch}
.plan-w{padding:10px 28px 22px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start;flex:1}
#plan{width:100%;height:auto;display:block}
#plan .terr{fill:#e3ddcd;stroke:none}
#plan .rm rect{fill:#F4F1EB;stroke:#1E1E1C;stroke-width:1.4;transition:.3s;cursor:pointer}
#plan .rm text{pointer-events:none;fill:#1E1E1C}
#plan .rm:hover rect,#plan .rm.on rect{fill:var(--braise)}
.plan-p{display:flex;flex-direction:column;gap:8px}
.plan-p .img{aspect-ratio:4/3;overflow:hidden;background:var(--paper2)}.plan-p img{width:100%;height:100%;object-fit:cover}
.plan-p .label{color:var(--pierre)}.plan-p h4{margin:0;font-size:26px;font-weight:400}.plan-p p{font-size:13px;color:#55554f}
.cart{display:grid;grid-template-columns:1.2fr .8fr 1.4fr .7fr;border-top:1px solid var(--ink);margin-top:auto}
.cart>div{padding:10px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}
.cart>div:last-child{border-right:0}
.cart .label{font-size:9px;color:var(--pierre)}.cart b{font-weight:400;font-size:12px}
.bud{padding:14px 28px 22px;display:flex;flex-direction:column;gap:20px}
.rg-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.rg-h b{font-family:var(--serif);font-weight:400;font-size:28px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:var(--ink);outline:none;margin:10px 0}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--braise);border:3px solid var(--paper);box-shadow:0 0 0 1px var(--ink);cursor:pointer}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--braise);border:3px solid var(--paper);cursor:pointer}
.bud-o{padding:18px 0;border-block:1px solid var(--line)}.bud-o .label{color:var(--pierre)}
.bud-o .big{font-size:clamp(32px,3.2vw,50px);line-height:1.1;margin-top:6px;font-variant-numeric:tabular-nums}
.split{display:flex;height:10px;gap:2px}.split i{display:block;flex:1 1 0;background:var(--c);min-width:2px}
.lg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:9px;color:#55554f}.lg span{display:flex;align-items:center;gap:6px}.lg u{width:8px;height:8px;background:var(--c);display:inline-block}
.kv3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.kv3 .label{display:block;color:var(--pierre);font-size:9px}.kv3 b{font-weight:400;font-family:var(--serif);font-size:20px}
.t-ba .ba{height:clamp(300px,52vw,640px)}
.sv-g,.svg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.sc{display:flex;flex-direction:column;gap:14px;padding:26px 24px;border:1px solid var(--line);background:#F4F1EB;transition:.5s var(--ease);min-width:0}
.sc:hover{background:var(--ink);color:var(--paper);transform:translateY(-6px)}
.sc-t{display:flex;justify-content:space-between;gap:10px;color:var(--braise)}.sc-t .tm{color:var(--pierre)}
.sc h3{font-size:clamp(26px,2.2vw,34px);line-height:1.05}
.sc .lead{font-size:14px;color:var(--pierre)}
.sc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:13px;flex:1}
.sc li{padding-left:18px;position:relative}.sc li::before{content:"";position:absolute;left:0;top:.7em;width:9px;height:1px;background:var(--braise)}
.sc-f{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:16px}
.sc-f b{display:block;font-size:30px;font-weight:400;line-height:1}.sc-f span{font-size:11px;color:var(--pierre)}
.sc-a{font-size:22px;color:var(--braise)}
.mt{padding:clamp(70px,9vw,140px) var(--gut)}
.mgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--lineD)}
.ms{padding:28px 24px 10px 0;display:flex;flex-direction:column;gap:12px;position:relative;min-width:0}
.ms+.ms{padding-left:24px;border-left:1px solid var(--lineD)}
.ms svg{width:48px;height:48px}.ms>b{position:absolute;right:18px;top:18px;font-size:44px;color:var(--pierre);opacity:.4;font-weight:400}
.ms h3{font-size:28px;font-weight:400;font-family:var(--serif)}.ms p{font-size:14px;color:#bdb6a5}.ms .label{color:var(--braise)}
.rgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.6vw,24px)}
.pc2{display:flex;flex-direction:column;gap:12px;min-width:0}
.pc2 .img,.jc .img{aspect-ratio:3/4;overflow:hidden;background:var(--paper2)}
.pc2 img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}.pc2:hover img{transform:scale(1.06)}
.fc-m h3{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.05}.fc-m .label{color:var(--pierre)}
.pc2 .tg{color:var(--braise);font-size:10px}
.tm3{background:var(--paper2)}
.tg3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,32px)}
.qt{padding:30px;background:var(--paper);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:26px}
.qt p{font-size:clamp(22px,2vw,29px);line-height:1.2}.qt .label{color:var(--pierre)}
.cn{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);padding:clamp(70px,9vw,140px) var(--gut)}
.cn>div,.cn form{min-width:0}
.cn h2{font-size:clamp(44px,6vw,100px);line-height:.98;margin:18px 0}
.cn>div>p{max-width:44ch;color:#bdb6a5}
.cinfo{display:grid;gap:18px;margin-top:34px;font-size:15px}.cinfo .label{display:block;color:var(--pierre);margin-bottom:4px}
.cn form{display:flex;flex-direction:column;gap:14px}
.cn input,.cn textarea{background:transparent;border:0;border-bottom:1px solid var(--lineD);color:var(--paper);font:inherit;font-size:17px;padding:14px 0;outline:none;resize:none;border-radius:0}
.cn input:focus,.cn textarea:focus{border-color:var(--braise)}
.cn ::placeholder{color:#8a8578}
.cn .chip{color:var(--paper);border-color:var(--lineD)}.cn .chip.on{background:var(--paper);color:var(--ink)}
.cn .btn{align-self:flex-start;margin-top:8px}
.ok{display:none}.ok.show{display:block}
@media (max-width:1100px){
 .svg-grid,.rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .t-plan,.t-bud{grid-column:1/-1}
 .mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.ms:nth-child(3){padding-left:0;border-left:0}
}
@media (max-width:820px){
 .h3{grid-template-columns:minmax(0,1fr);min-height:0}
 .plan-w{grid-template-columns:minmax(0,1fr)}
 .tg3,.cn,.jgrid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
 .svg-grid,.rgrid,.mgrid{grid-template-columns:minmax(0,1fr)}
 .ms+.ms{padding-left:0;border-left:0;border-top:1px solid var(--lineD)}
 .cart{grid-template-columns:1fr 1fr}.cart>div{border-bottom:1px solid var(--line)}
 .tool-h,.bud,.plan-w{padding-inline:18px}
}

/* charte MAEN : Josefin Sans Light / Manrope, Granit #1E1E1C, Pierre #8C877D, Sable #D9D2C5, Chaux #F4F1EB, aucune couleur vive */
.serif,h1,h2,h3,h4,.proof b,.rg-h b,.kv3 b,.sc-f b,.ms>b,.fc-m h3,.plan-p h4,.qt p,.bud-o .big{font-weight:300;letter-spacing:-.015em}
.h3 h1{font-size:clamp(40px,5.4vw,92px);line-height:1.02}
.sec-h h2{font-size:clamp(32px,4.6vw,76px);line-height:1.02}
.cn h2{font-size:clamp(38px,5vw,84px)}
.h3 h1 em,.sec-h h2 em,.cn h2 em,.mt h2 em{color:var(--pierre)}
.btn.dk:hover,.btn.lt:hover{background:var(--pierre);border-color:var(--pierre);color:var(--paper)}
#plan .rm:hover rect,#plan .rm.on rect{fill:var(--paper2)}
.sc:hover{background:var(--granit)}
.brand svg{width:26px;height:26px}
.tools,.tm3{background:#E9E4DA}

/* ===== v4 : grain, manuscrit lumineux, fondus, fil ===== */
body::after{content:"";position:fixed;inset:0;z-index:65;pointer-events:none;opacity:.09;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .1 0 0 0 0 .1 0 0 0 0 .09 0 0 0 .9 0'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>")}
.hand{font-family:"Reenie Beanie","Bradley Hand",cursive;font-weight:400;letter-spacing:.01em;line-height:.9}
.glow{color:transparent;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 .96 0 0 0 0 .85 0 0 0 1.6 -.45'/></filter><rect width='160' height='160' filter='url(%23g)'/></svg>"),radial-gradient(ellipse at 50% 55%,#fffaf0 0,#f6e9cf 55%,#e2cfa9 100%);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 6px rgba(255,238,205,.75)) drop-shadow(0 0 22px rgba(255,222,170,.45)) drop-shadow(0 0 54px rgba(255,205,140,.25))}
/* hero plein cadre */
.h3{position:relative;display:block;min-height:100vh;padding:calc(120px + env(safe-area-inset-top,0px)) var(--gut) clamp(90px,10vw,150px);background:var(--granit);color:var(--paper);overflow:hidden;isolation:isolate}
.h3-bg{position:absolute;inset:0;z-index:-2}.h3-bg img{width:100%;height:112%;object-fit:cover;object-position:60% 55%;display:block;transform:scale(1.04);transform-origin:70% 60%}
.h3-sh{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,18,16,.88) 0,rgba(18,18,16,.62) 42%,rgba(18,18,16,.08) 100%),linear-gradient(180deg,rgba(18,18,16,.35) 0,transparent 26%,transparent 62%,rgba(244,241,235,.0) 70%,var(--paper) 100%)}
.h3-l{max-width:min(640px,100%)}.h3-l .label{color:var(--sable,#D9D2C5)}
.h3 h1{font-size:clamp(46px,6.8vw,112px);line-height:.92}
.h3 h1 .hl{display:block;font-size:1.45em;margin:.02em 0 0 -.04em;padding:.06em .1em .1em 0;transform:rotate(-3deg);transform-origin:left}
.h3-l>p{color:#E8E3D8}.proof{border-color:rgba(244,241,235,.25)}.proof span{color:#C9C2B4}
.btn.ol{border-color:rgba(244,241,235,.6);color:var(--paper)}.btn.ol:hover{background:var(--paper);color:var(--ink)}
.h3-r{position:absolute;right:var(--gut);bottom:clamp(110px,12vw,170px);width:min(36vw,500px)}
.sheet.glass{background:linear-gradient(rgba(244,241,235,.12) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,rgba(244,241,235,.12) 1px,transparent 1px) 0 0/24px 24px,rgba(18,18,16,.38);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(244,241,235,.28)}
.note{position:absolute;font-size:34px;white-space:nowrap;transform:rotate(-4deg)}
.n1{right:6%;top:-58px;font-size:42px}
.scrollh{position:absolute;left:50%;bottom:48px;transform:translateX(-50%);color:var(--paper);opacity:.7;display:flex;flex-direction:column;align-items:center;gap:8px}.scrollh::after{content:"";width:1px;height:34px;background:currentColor;animation:sh 2s infinite}
@keyframes sh{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* fondus entre sections */
.sv{background:var(--paper)}
.tools,.mt,.tm3,.cn,.atl{position:relative}
.tools::before,.tm3::before{content:"";position:absolute;left:0;right:0;top:-110px;height:110px;background:linear-gradient(to bottom,transparent,#E9E4DA);pointer-events:none}
.tools::after,.tm3::after{content:"";position:absolute;left:0;right:0;bottom:-110px;height:110px;background:linear-gradient(to top,transparent,#E9E4DA);pointer-events:none;z-index:1}
.mt::before,.cn::before{content:"";position:absolute;left:0;right:0;top:-140px;height:140px;background:linear-gradient(to bottom,transparent,var(--granit));pointer-events:none}
.mt{background:var(--granit)}
.mt::after{content:"";position:absolute;left:0;right:0;bottom:-140px;height:140px;background:linear-gradient(to top,transparent,var(--granit));pointer-events:none;z-index:1}
/* services illustrés */
.sc-img{aspect-ratio:16/10;overflow:hidden;margin:-26px -24px 4px;background:var(--paper2)}.sc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);filter:saturate(.9)}.sc:hover .sc-img img{transform:scale(1.07)}
.sc{overflow:hidden}
/* immersion lumière */
.imm{position:relative;height:clamp(560px,100vh,860px);overflow:hidden;color:var(--paper);isolation:isolate;display:flex;align-items:flex-end;padding:0 var(--gut) clamp(60px,8vw,120px);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 84%,transparent 100%)}
.imm-bg{position:absolute;inset:-8% 0;z-index:-2}.imm-bg img{width:100%;height:100%;object-fit:cover;display:block}
.imm-dark{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle clamp(180px,24vw,340px) at var(--mx,68%) var(--my,46%),rgba(14,14,12,0) 0,rgba(14,14,12,.5) 55%,rgba(14,14,12,.9) 100%)}
.imm-t{max-width:760px;display:flex;flex-direction:column;gap:18px}.imm-t .hand{font-size:52px;transform:rotate(-3deg);align-self:flex-start}
.imm h2{font-size:clamp(34px,4.8vw,80px);line-height:1.02}.imm h2 em{color:#D9D2C5}.imm p{max-width:48ch;color:#E8E3D8}
/* atelier */
.atl{padding:clamp(70px,9vw,140px) var(--gut)}
.amos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,2vw,32px);align-items:start}
.amos figure{margin:0;position:relative;min-width:0}.amos .img{overflow:hidden;background:var(--paper2)}.amos img{width:100%;height:112%;object-fit:cover;display:block}
.amos figcaption{display:flex;flex-direction:column;gap:2px;padding-top:12px}.amos figcaption b{font-size:28px}.amos figcaption .label{color:var(--pierre)}
.a1{grid-column:1/4}.a1 .img,.a3 .img,.a4 .img{aspect-ratio:3/4}.a2{grid-column:4/9;margin-top:clamp(40px,8vw,120px)}.a2 .img{aspect-ratio:16/10}.a3{grid-column:9/13}.a4{grid-column:2/5;margin-top:-30px}.a5{grid-column:5/13;margin-top:clamp(0px,2vw,30px)}.a5 .img{aspect-ratio:16/8}
.amos .note{left:14px;top:14px;font-size:38px}
/* témoignages avec photo */
.tmw{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(18px,3vw,50px);align-items:stretch}
.tmp{overflow:hidden;min-height:420px;position:relative}.tmp img{position:absolute;inset:-6% 0;width:100%;height:112%;object-fit:cover}
.tmw .tg3{grid-template-columns:minmax(0,1fr)}
.qt{background:rgba(244,241,235,.7);backdrop-filter:blur(4px)}
/* fil d'Ariane */
.fil{position:fixed;left:12px;top:50%;transform:translateY(-50%);height:min(60vh,520px);width:44px;z-index:68;mix-blend-mode:difference;color:#fff;display:flex;flex-direction:column;align-items:center;pointer-events:none}
.fil-t{position:relative;flex:1;width:1px;background:rgba(255,255,255,.28)}.fil-f{position:absolute;left:0;top:0;width:1px;height:100%;background:#fff;transform:scaleY(0);transform-origin:top}
.fil-d{position:absolute;left:0;top:0;bottom:46px;width:44px}.fil-d i{position:absolute;left:50%;width:7px;height:7px;margin:-3px 0 0 -3px;border-radius:50%;background:#000;border:1px solid #fff;transition:.4s}.fil-d i.on{background:#fff;transform:scale(1.5)}
.fil-h{width:44px;height:36px;margin-top:10px;overflow:visible}
.fil-l{position:absolute;left:46px;top:0;font-size:28px;white-space:nowrap;opacity:.95}
@media (max-width:1100px){.fil{display:none}.h3-r{display:none}.n1{display:none}}
@media (max-width:820px){.tmw,.amos{grid-template-columns:minmax(0,1fr)}.amos>figure{grid-column:auto!important;margin-top:0!important}.tmp{min-height:300px}.h3 h1 .hl{font-size:1.25em}}

.h3 h1 .hl{display:block;width:fit-content}.h3 h1 .hl .hand{display:block;padding:.08em .12em .12em 0}
.fil-l{display:none}
.tools::before,.tm3::before,.mt::before,.cn::before,.tools::after,.tm3::after,.mt::after{z-index:0}
.sv>*,.tools>*,.mt>*,.feat>*,.atl>*,.tm3>*,.cn>*{position:relative;z-index:2}
@media (min-width:1101px){:root{--gut:clamp(66px,4.8vw,96px)}.fil{left:16px}}

/* ===== v5 : plus chaleureux, plus lisible ===== */
body{font-weight:400;font-size:17px;line-height:1.62;color:#25251f}
.label{font-weight:500;font-size:12px;letter-spacing:.16em}
.serif,h1,h2,h3,h4,.proof b,.rg-h b,.kv3 b,.sc-f b,.ms>b,.fc-m h3,.plan-p h4,.qt p,.bud-o .big{font-weight:500;letter-spacing:-.012em}
.serif em,.h3 h1 em,.sec-h h2 em,.cn h2 em,.mt h2 em,.imm h2 em{font-style:italic;font-weight:400}
.h3-l>p{font-size:clamp(17px,1.4vw,20px);color:#EEE9DE}
.sc li,.sc .lead{font-size:15px}.sc li{color:#33332e}
/* barre de navigation */
.nav{mix-blend-mode:normal;color:var(--paper);padding-block:14px;transition:background .35s,color .35s,box-shadow .35s}
.nav.solid{background:rgba(244,241,235,.95);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink);box-shadow:0 1px 0 rgba(30,30,28,.12)}
.nav-l{font-size:13px;font-weight:500;letter-spacing:.14em}
.brand svg{width:auto;height:30px;display:block}
.burger i{background:currentColor}
.btn-s{border-color:currentColor;font-weight:500;font-size:12px}
.btn-s:hover{background:var(--ink);color:var(--paper)}.nav:not(.solid) .btn-s:hover{background:var(--paper);color:var(--ink)}
/* outils : section sombre et chaude, plus de rectangles blancs */
.tools{background:radial-gradient(ellipse 55% 45% at 12% 8%,rgba(214,170,110,.16),transparent 62%),radial-gradient(ellipse 50% 40% at 92% 85%,rgba(214,170,110,.10),transparent 62%),var(--granit);color:var(--paper)}
.tools::before{background:linear-gradient(to bottom,transparent,var(--granit))}.tools::after{background:linear-gradient(to top,transparent,var(--granit))}
.tools .sec-h h2{color:var(--paper)}.tools .sec-h .label{color:var(--sable,#D9D2C5)}
.tool{background:rgba(244,241,235,.06);border:1px solid rgba(244,241,235,.2);color:var(--paper);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.tool-h h3{color:var(--paper);font-size:clamp(30px,2.8vw,44px)}.tool-h p{color:#D9D2C5;font-size:16px}.tool-h .label{color:#D9D2C5}
.tnote{font-size:36px;align-self:flex-start;transform:rotate(-3deg);margin-top:8px}
#plan .terr{fill:rgba(217,210,197,.16)}#plan text{fill:var(--paper)}
#plan .rm rect{fill:rgba(244,241,235,.07);stroke:#D9D2C5}
#plan .rm:hover rect,#plan .rm.on rect{fill:#E8DFC9}
#plan .rm:hover text,#plan .rm.on text{fill:var(--ink)}
.plan-p p{color:#D9D2C5;font-size:15px}.plan-p .label{color:#D9D2C5}.plan-p h4{color:var(--paper);font-size:30px}
.tools .cart{border-top-color:rgba(244,241,235,.3)}.tools .cart>div{border-color:rgba(244,241,235,.14)}.tools .cart b{color:var(--paper)}
.tools .chip{border-color:rgba(244,241,235,.38);color:var(--paper);font-weight:500}.tools .chip:hover{border-color:var(--paper)}.tools .chip.on{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.tools input[type=range]{background:rgba(244,241,235,.55)}
.tools input[type=range]::-webkit-slider-thumb{border-color:var(--granit);box-shadow:0 0 0 1px var(--paper);background:var(--paper)}
.tools input[type=range]::-moz-range-thumb{background:var(--paper);border-color:var(--granit)}
.tools .rg-h b,.tools .kv3 b{color:var(--paper)}.tools .bud-o{border-color:rgba(244,241,235,.2)}
.tools .bud-o .big{font-size:clamp(34px,3.4vw,54px);color:var(--paper)}.tools .bud-o .label,.tools .rg-h .label,.tools .kv3 .label,.tools .lg{color:#D9D2C5}
.split i:nth-child(1),.lg span:nth-child(1) u{--c:#F4F1EB!important}
/* la vie qu'on y mène */
.imm{-webkit-mask-image:none;mask-image:none}
.imm-dark{background:linear-gradient(to bottom,var(--granit) 0,rgba(30,30,28,0) 24%,rgba(30,30,28,0) 42%,rgba(30,30,28,.6) 74%,var(--granit) 100%)}
/* fil d'Ariane épuré */
.fil{height:min(54vh,460px);width:30px;left:18px}
.fil-d i{width:5px;height:5px;margin:-2px 0 0 -2px}.fil-d i.on{transform:scale(1.7)}.fil-d{bottom:0;width:30px}
.fil-l{display:block;position:absolute;left:28px;top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);letter-spacing:.28em;font-size:11px;white-space:nowrap;color:#fff}
/* atelier cohérent */
.amos{gap:clamp(14px,1.8vw,26px)}
.amos figure{display:flex;flex-direction:column;margin:0!important}
.amos .img{height:clamp(300px,34vw,520px);aspect-ratio:auto!important}
.a1{grid-column:1/4;grid-row:1}.a2{grid-column:4/10;grid-row:1}.a3{grid-column:10/13;grid-row:1}.a4{grid-column:1/6;grid-row:2}.a5{grid-column:6/13;grid-row:2}
.a4 .img,.a5 .img{height:clamp(220px,24vw,360px)}
.amos figcaption b{font-size:26px;font-weight:500}
.pen{font-family:"Reenie Beanie","Bradley Hand",cursive;font-size:32px;color:#55524a;line-height:1}
.amos .pen{margin-top:2px}
/* planche de projet */
.board{position:relative;padding:clamp(40px,6vw,90px) var(--gut) clamp(90px,11vw,170px);background:linear-gradient(rgba(30,30,28,.055) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,rgba(30,30,28,.055) 1px,transparent 1px) 0 0/28px 28px,#F1EDE4}
.board-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px 24px;flex-wrap:wrap;margin-bottom:clamp(40px,6vw,80px)}.board-h .label{color:var(--pierre)}.board-h .pen{font-size:36px}
.bd{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(40px,5vw,80px) clamp(14px,2vw,28px);align-items:start}
.pf{position:relative;margin:0;background:#fff;padding:12px 12px 8px;box-shadow:0 1px 2px rgba(30,30,28,.12),0 20px 40px -20px rgba(30,30,28,.4);min-width:0}
.pf img{width:100%;height:auto;display:block}.pf figcaption{padding:8px 4px 2px}
.pf0{grid-column:1/8;transform:rotate(-.7deg)}.pf1{grid-column:8/13;transform:rotate(1.1deg);margin-top:clamp(30px,6vw,100px)}.pf2{grid-column:2/7;transform:rotate(.8deg)}.pf3{grid-column:7/13;transform:rotate(-1deg);margin-top:clamp(20px,4vw,70px)}
.tape{position:absolute;left:50%;top:-13px;width:96px;height:26px;margin-left:-48px;background:rgba(217,210,197,.78);transform:rotate(-3deg);box-shadow:0 1px 2px rgba(30,30,28,.15)}
.sk{position:absolute;color:#5a574f;pointer-events:none}
.pf0 .sk-a{width:88px;right:-70px;bottom:14%;transform:rotate(8deg)}
.pf1 .sk-c{width:170px;left:4%;bottom:-40px}
.pf2 .sk-s{width:150px;left:-118px;bottom:12%}
.pf3 .sk-p{width:120px;left:6%;bottom:-78px}
@media (max-width:860px){.pf{grid-column:1/-1!important;margin-top:0!important}.sk{display:none}}
/* pied de page : vrai logo */
.f-w{display:none}.f-logo{padding:clamp(30px,5vw,70px) 0 clamp(20px,3vw,40px)}.f-logo .lg-f{display:block;width:min(560px,86%);height:auto;color:var(--paper)}
/* méthode (agence + accueil) */
.mt .mgrid{border-top-color:rgba(244,241,235,.22)}
@media (max-width:820px){.amos{grid-template-columns:minmax(0,1fr)}.amos figure{grid-column:1/-1!important;grid-row:auto!important}.amos .img,.a4 .img,.a5 .img{height:min(110vw,420px)}}

/* ===== v6 : fond continu, sans contours, formes organiques ===== */
.bgc{position:fixed;inset:0;z-index:-1;background:#F4F1EB;display:none;--g:0}
.bgc::before{content:"";position:absolute;inset:0;opacity:var(--g);background:radial-gradient(ellipse 60% 50% at 14% 20%,rgba(214,170,110,.17),transparent 65%),radial-gradient(ellipse 55% 45% at 90% 80%,rgba(190,140,90,.12),transparent 65%)}
body.hm .bgc{display:block}
body.hm{background:transparent}
.hm .sv,.hm .tools,.hm .mt,.hm .tm3,.hm .cn,.hm .atl,.hm .feat{background:transparent}
.hm .tools::before,.hm .tools::after,.hm .mt::before,.hm .mt::after,.hm .tm3::before,.hm .tm3::after,.hm .cn::before{display:none}
.hm .imm{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%)}
.hm .imm-dark{background:linear-gradient(to bottom,transparent 38%,rgba(30,30,28,.6) 82%)}
.hm .cn.dark,.hm .mt.dark{background:transparent}
/* titres gravés */
.eng{text-shadow:0 calc(var(--e,1)*1.4px) 0 rgba(255,255,255,calc(var(--e,1)*.85)),0 calc(var(--e,1)*-1px) 0 rgba(30,30,28,calc(var(--e,1)*.22))}
.tools .eng,.mt .eng,.cn .eng,.imm .eng{text-shadow:0 calc(var(--e,1)*-1px) 0 rgba(255,255,255,calc(var(--e,1)*.22)),0 calc(var(--e,1)*2px) calc(var(--e,1)*3px) rgba(0,0,0,calc(var(--e,1)*.55))}
/* services : plus de blocs */
.svg-grid{gap:clamp(30px,3.4vw,56px) clamp(18px,2.4vw,40px)}
.sc{border:0;background:transparent;padding:0;overflow:visible;gap:12px}
.sc:hover{background:transparent;color:inherit;transform:none}
.sc-img{margin:0 0 14px;aspect-ratio:1/1.12;overflow:hidden;background:var(--paper2);border-radius:58% 42% 46% 54% / 46% 54% 46% 54%;animation:morph 14s ease-in-out infinite;box-shadow:0 28px 40px -28px rgba(30,30,28,.55)}
.sc:nth-child(2) .sc-img{border-radius:44% 56% 52% 48% / 58% 42% 58% 42%;animation-duration:17s;animation-delay:-4s}
.sc:nth-child(3) .sc-img{border-radius:52% 48% 40% 60% / 44% 56% 44% 56%;animation-duration:15s;animation-delay:-8s}
.sc:nth-child(4) .sc-img{border-radius:40% 60% 56% 44% / 54% 46% 54% 46%;animation-duration:19s;animation-delay:-2s}
@keyframes morph{0%,100%{border-radius:58% 42% 46% 54% / 46% 54% 46% 54%}33%{border-radius:42% 58% 56% 44% / 56% 44% 58% 42%}66%{border-radius:50% 50% 38% 62% / 42% 58% 42% 58%}}
.sc:nth-child(even){margin-top:clamp(0px,4vw,64px)}
.sc-img img{transform:scale(1.12)}.sc:hover .sc-img img{transform:scale(1.2)}
.sc-f{border-top:0;padding-top:6px}
.sc-f b{font-size:34px;display:inline-block;padding:2px 4px}
.sc li::before{width:5px;height:5px;border-radius:50%;top:.75em}
/* outils, citations : doux, sans filet */
.hm .tool{border:0;border-radius:40px;background:rgba(244,241,235,.055);box-shadow:inset 0 1px 0 rgba(244,241,235,.08)}
.hm .qt{border:0;border-radius:34px;background:rgba(255,255,255,.55);box-shadow:0 24px 40px -30px rgba(30,30,28,.5)}
.hm .mgrid{border-top:0}
.hm .ms{border-left:0}
@media (max-width:1100px){.svg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.svg-grid{grid-template-columns:minmax(0,1fr)}.sc:nth-child(even){margin-top:0}}
@media (prefers-reduced-motion:reduce){.sc-img{animation:none}}
.sc-f b{margin-right:14px}.sc-f>div{display:flex;align-items:baseline;flex-wrap:wrap}

/* ===== v7 ===== */
.fil-l{display:none!important}
.serif em{letter-spacing:.012em}
.eng{letter-spacing:0}
.sc-f{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:10px}
.sc-f b{margin:0 0 4px 6px}.sc-f span{display:block;font-size:12px;color:var(--pierre)}
.sc-a{margin-top:8px;display:inline-flex;align-items:center;gap:10px;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1.5px solid var(--ink);padding-bottom:4px}
.sc-a i{font-style:normal;font-size:18px;transition:transform .4s var(--ease)}.sc:hover .sc-a i{transform:translateX(6px)}
.ico{width:60px;height:60px;display:block}
.hm .tools .plan-p .img img{transition:opacity .4s}
/* page Estimer */
.es-h{padding:clamp(130px,18vh,200px) var(--gut) clamp(30px,4vw,56px);max-width:1100px;display:flex;flex-direction:column;gap:18px}
.es-h h1{font-size:clamp(38px,5.4vw,84px);line-height:1.02}.es-h p{max-width:56ch;font-size:clamp(17px,1.3vw,20px);color:#3a3934}.es-h .label{color:var(--pierre)}
.es{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr);gap:clamp(24px,4vw,70px);padding:0 var(--gut) clamp(80px,10vw,160px);align-items:start}
.es-l{display:flex;flex-direction:column;gap:clamp(44px,5vw,76px);min-width:0}
.es-s h2{font-size:clamp(26px,2.4vw,38px);display:flex;gap:14px;align-items:baseline;margin-bottom:22px}.es-s h2 i{font-style:normal;font-size:.7em;color:var(--pierre);border:1.5px solid var(--pierre);border-radius:50%;width:1.7em;height:1.7em;display:inline-flex;align-items:center;justify-content:center;flex:none}
.es-n{margin:-10px 0 20px;color:#55524a}
.es-t{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px)}
.es-ty,.es-rm,.es-fn{text-align:left;color:inherit;font:inherit;background:none;border:0;padding:0;cursor:pointer;display:flex;flex-direction:column;gap:8px;min-width:0}
.es-im{display:block;overflow:hidden;aspect-ratio:1/1.05;background:var(--paper2);border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;transition:border-radius .8s var(--ease),transform .6s var(--ease),box-shadow .5s;box-shadow:0 20px 30px -22px rgba(30,30,28,.5)}
.es-im img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.8) brightness(.96);transition:filter .5s,transform 1s var(--ease)}
.es-ty:hover .es-im,.es-rm:hover .es-im{transform:translateY(-4px)}
.es-ty.on .es-im,.es-rm.on .es-im{border-radius:30% 70% 62% 38% / 56% 40% 60% 44%;box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--ink),0 24px 30px -20px rgba(30,30,28,.5)}
.es-ty.on img,.es-rm.on img{filter:none;transform:scale(1.08)}
.es-ty b{font-size:clamp(19px,1.6vw,24px);font-weight:500}.es-ty>span:last-child{font-size:14px;color:#55524a}
.es-r{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(14px,1.6vw,24px) clamp(10px,1.4vw,20px)}
.es-rm{position:relative;align-items:center;text-align:center}.es-rm b{font-weight:500;font-size:14px}
.es-rm .es-im{width:100%;aspect-ratio:1}
.es-ck{position:absolute;right:6%;top:4%;width:30px;height:30px;border-radius:50%;background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:center;font-style:normal;font-size:17px;box-shadow:0 4px 10px -4px rgba(0,0,0,.4);transition:.3s}
.es-rm.on .es-ck{background:var(--ink);color:var(--paper)}
.es-f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.es-fn{padding:20px 22px;border-radius:26px;background:rgba(30,30,28,.06);transition:.35s}.es-fn b{font-size:22px;font-weight:500}.es-fn span{font-size:14px;color:#55524a}
.es-fn:hover{background:rgba(30,30,28,.1)}.es-fn.on{background:var(--ink);color:var(--paper)}.es-fn.on span{color:#D9D2C5}
.es .rg-h{display:flex;justify-content:space-between;align-items:baseline}.es .rg-h b{font-family:var(--serif);font-size:32px;font-weight:500}
.es input[type=range]{width:100%;margin-top:14px}
.es-a{position:sticky;top:96px}
.es-c{background:#26231F;color:var(--paper);border-radius:40px;padding:clamp(24px,2.6vw,40px);display:flex;flex-direction:column;gap:20px;box-shadow:0 40px 60px -40px rgba(0,0,0,.6)}
.es-c .label{color:#D9D2C5}.es-big{font-size:clamp(30px,2.8vw,46px);line-height:1.05}
.es-bar{display:flex;gap:3px;height:12px;border-radius:99px;overflow:hidden}.es-bar i{display:block;min-width:3px;transition:flex .5s var(--ease)}
.es-ln{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;font-size:14px}.es-ln li{display:flex;align-items:center;gap:10px}.es-ln u{width:9px;height:9px;border-radius:50%;flex:none}.es-ln span{flex:1;color:#D9D2C5}.es-ln b{font-weight:500}
.es-kv{display:grid;grid-template-columns:1fr 1fr;gap:12px}.es-kv b{display:block;font-family:var(--serif);font-size:22px;font-weight:500}
.es-c small{color:#a39e92;font-size:12px}
@media (max-width:1100px){.es{grid-template-columns:minmax(0,1fr)}.es-a{position:static}.es-r{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:620px){.es-t,.es-f{grid-template-columns:minmax(0,1fr)}.es-r{grid-template-columns:repeat(2,minmax(0,1fr))}.es-ty{flex-direction:row;align-items:center;gap:14px}.es-ty .es-im{width:96px;flex:none}}

/* ===== v7b : raccords par fondu plat dans la marge vide ===== */
body.hm .bgc{display:none}
body.hm{background:#F4F1EB}
.hm .sv,.hm .feat,.hm .atl,.hm .tm3{background:#F4F1EB;position:relative}
.hm .tools,.hm .mt,.hm .cn,.hm .mt.dark,.hm .cn.dark,.hm .imm{background-color:#2A2621}
.hm .tools{background-image:none}
.hm .sv::before,.hm .tools::before,.hm .cn::before,.hm #pj::before{content:"";display:block;position:absolute;left:0;right:0;top:-130px;height:130px;pointer-events:none;z-index:0}
.hm .sv::before{background:linear-gradient(to bottom,rgba(244,241,235,0),#F4F1EB)}
.hm .tools::before,.hm .cn::before{background:linear-gradient(to bottom,rgba(42,38,33,0),#2A2621)}
.hm #pj::before{background:linear-gradient(to bottom,rgba(244,241,235,0),#F4F1EB)}
.hm .mt::before,.hm .tm3::before,.hm .tools::after,.hm .mt::after,.hm .tm3::after{display:none}
.hm .sv,.hm .tools,.hm .mt,.hm .feat,.hm .atl,.hm .tm3,.hm .cn{padding-block:clamp(110px,10vw,160px)}
.hm .imm{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 20%,#000 80%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 20%,#000 80%,transparent 100%)}
.hm #pj+.atl,.hm .feat[style]{padding-top:0}

/* ===== v8 : jonctions en crête de pierre, jour/nuit ===== */
.hm .sv::before,.hm .tools::before,.hm .cn::before,.hm #pj::before{height:112px;top:-111px;background-size:100% 100%;background-repeat:no-repeat;z-index:0}
.hm .sv::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'><path fill='%23F4F1EB' d='M0 120L0 70C120 40 200 90 330 62C470 30 560 78 700 55C860 28 960 80 1100 52C1240 26 1340 66 1440 48L1440 120Z'/></svg>")}
.hm .tools::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'><path fill='%232A2621' d='M0 120L0 70C120 40 200 90 330 62C470 30 560 78 700 55C860 28 960 80 1100 52C1240 26 1340 66 1440 48L1440 120Z' transform=%22translate%281440 0%29 scale%28-1 1%29%22/></svg>")}
.hm #pj::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'><path fill='%23F4F1EB' d='M0 120L0 70C120 40 200 90 330 62C470 30 560 78 700 55C860 28 960 80 1100 52C1240 26 1340 66 1440 48L1440 120Z' transform=%22translate%281440 0%29 scale%28-1 1%29%22/></svg>")}
.hm .cn::before{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'><path fill='%232A2621' d='M0 120L0 70C120 40 200 90 330 62C470 30 560 78 700 55C860 28 960 80 1100 52C1240 26 1340 66 1440 48L1440 120Z'/></svg>")}
.hm .imm{-webkit-mask-image:none!important;mask-image:none!important}
.hm .imm-dark{background:linear-gradient(to bottom,#2A2621 0,rgba(42,38,33,0) 24%,rgba(42,38,33,0) 52%,rgba(42,38,33,.72) 84%,#2A2621 100%)}
.imm-bg img{position:absolute;inset:0;width:100%;height:100%}.imm-bg .nt{opacity:0}
.ico{width:76px;height:76px}.ico .st{fill:#D9D2C5}.ico .sl{stroke:#2A2621;stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ms .ico,.mt .ms svg.ico{width:84px!important;height:84px!important;margin-bottom:6px}
/* plan : texte clair au repos, sombre seulement au survol */
#plan .rm text{fill:#F4F1EB!important;pointer-events:none}
#plan .rm text+text{fill:#D9D2C5!important}
#plan .rm rect{fill:rgba(244,241,235,.07);stroke:#D9D2C5;transition:fill .3s}
#plan .rm.on rect{fill:rgba(244,241,235,.16);stroke:#F4F1EB;stroke-width:2.2}
#plan .rm:hover rect{fill:#E8DFC9}
#plan .rm:hover text,#plan .rm:hover text+text{fill:#1E1E1C!important}

/* v9 hero jour -> nuit */
.h3-bg img{position:absolute;left:0;top:0}
.h3-bg .hn{animation:hnight 11s ease-in-out infinite}
@keyframes hnight{0%,22.7%{opacity:0}50%,72.7%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.h3-bg .hn{animation:none;opacity:1}}
@media (max-width:820px){
.scrollh{display:none}
.h3-bg img{object-position:46% 55%}
.imm{height:auto;display:block;padding:0 var(--gut) 8px}
.imm-bg{position:relative;inset:auto;margin:0 calc(var(--gut)*-1);aspect-ratio:2000/1116;width:calc(100% + var(--gut)*2)}
.imm-bg img{position:absolute;inset:0}
.imm-bg{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 76%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 16%,#000 76%,transparent 100%)}
.imm-dark{display:none}
.imm-t{position:relative;margin-top:-34px}
}

img.ico{width:84px!important;height:84px!important;border-radius:20px;margin-bottom:6px;object-fit:contain}

/* v10 hero portrait mobile */
@media (max-width:820px){
.h3-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.h3-bg .hj,.h3-bg .hn{object-position:50% 0}
.h3{min-height:100svh;padding-bottom:150px}
.h3-sh{background:linear-gradient(180deg,rgba(14,18,28,.38) 0,transparent 30%,transparent 60%,rgba(14,16,22,.5) 100%)}
.h3-l>p{margin-top:22svh}
}
.h3 .proof{border-top:0;padding-top:8px}
/* v11 chargement : placeholder doux + fondu */
img.fi{opacity:0;transition:opacity .45s ease}img.fi.ld{opacity:1}
.sc-img,.tmp,.amos .img,.pj-img,.cs figure,.ms{background-color:rgba(140,135,125,.14)}
/* v12 vagues mobile : même pente que sur ordinateur, sans écraser le dessin */
@media (max-width:820px){.hm .sv::before,.hm .tools::before,.hm .cn::before,.hm #pj::before{height:64px;top:-63px;background-size:820px 100%;background-position:50% 0}}

/* v13 pages légales */
.art.lg .body p:first-child::first-letter{all:unset}.art.lg .body h3{font-family:var(--serif);font-weight:400;font-size:clamp(20px,2vw,26px);letter-spacing:-.01em;margin:34px 0 10px}.art.lg .body p{font-size:16px;line-height:1.75}.art.lg .body p.lnote{font-size:13px;color:var(--pierre);border-left:2px solid var(--paper2);padding-left:14px}
.f-l{display:flex;flex-wrap:wrap;gap:10px 26px;padding:0 var(--gut) 34px;color:var(--pierre)}.f-l a{transition:color .3s}.f-l a:hover{color:var(--paper)}
