:root{
/* ---------- VERT NATURE — brand tokens ---------- */
--olive:#59633B;--olive-deep:#454D2D;--olive-soft:#6C7749;
--terra:#D56B2B;--terra-deep:#B3551D;
--cream:#F4EEE3;--cream-hi:#FFFDF7;--paper:#EAE2D1;
--anis:#A7BC5B;--sauge:#A7AA8E;
--ink:#33382A;--ink-70:rgba(51,56,42,.72);--ink-55:rgba(51,56,42,.55);
--line:rgba(89,99,59,.16);--line-soft:rgba(89,99,59,.09);
--on-olive:rgba(255,253,247,.74);--line-cream:rgba(255,253,247,.2);
--r-sm:12px;--r:14px;--r-lg:18px;--r-xl:20px;
--pad:clamp(1.25rem,5vw,6rem);--gap:clamp(1rem,2.2vw,1.75rem);
--f-display:'Manrope',system-ui,sans-serif;--f-body:'DM Sans',system-ui,sans-serif;
--ease:cubic-bezier(.22,.7,.2,1);
/* legacy aliases — keep any remaining inline styles on-brand */
--dark:#59633B;--sage:#6C7749;--sage-light:#A7BC5B;--sage-pale:#EAE2D1;
--earth:#D56B2B;--text:#33382A;--muted:rgba(51,56,42,.72);--white:#FFFDF7;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--f-body);font-weight:300;background:var(--cream);color:var(--ink);overflow-x:hidden;line-height:1.75;-webkit-font-smoothing:antialiased;}
body.has-sticky-cta{padding-bottom:var(--sticky-h,78px);}
img{max-width:100%;}
::selection{background:var(--terra);color:var(--cream-hi);}
:focus-visible{outline:2px solid var(--terra);outline-offset:3px;}

/* ---------- typography ---------- */
h1,h2,h3,h4,.display{font-family:var(--f-display);font-weight:800;text-transform:uppercase;line-height:.94;letter-spacing:-.02em;color:var(--olive);}
h1{font-size:clamp(2.6rem,8vw,7.4rem);}
h2{font-size:clamp(2rem,5.1vw,4.35rem);}
h3{font-size:clamp(1.15rem,1.7vw,1.5rem);letter-spacing:-.01em;}
h4{font-size:1rem;letter-spacing:.01em;}
p{font-size:clamp(.96rem,1.02vw,1.06rem);color:var(--ink-70);}
.lead{font-size:clamp(1.05rem,1.35vw,1.28rem);line-height:1.7;color:var(--ink-70);}
em{font-style:normal;color:var(--terra);}
.presta-item>div{min-width:0;}
.eyebrow{font-family:var(--f-body);font-weight:500;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terra);margin-bottom:1rem;}

/* ---------- topographic signature ---------- */
.topo{position:absolute;pointer-events:none;background-repeat:no-repeat;background-position:center;background-size:cover;
-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:cover;mask-size:cover;
opacity:0;transition:opacity 1.6s var(--ease);}
.topo--field{-webkit-mask-image:url(/assets/brand/topo-field.svg);mask-image:url(/assets/brand/topo-field.svg);}
.topo--band{-webkit-mask-image:url(/assets/brand/topo-band.svg);mask-image:url(/assets/brand/topo-band.svg);}
.topo--sq{-webkit-mask-image:url(/assets/brand/topo-square.svg);mask-image:url(/assets/brand/topo-square.svg);}
.topo--terra{background-color:var(--terra);}
.topo--cream{background-color:var(--cream-hi);}
.topo--olive{background-color:var(--olive);}

/* ---------- buttons ---------- */
.btn,.btn-primary,.form-submit,.btn-sage{font-family:var(--f-body);font-weight:500;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
display:inline-flex;align-items:center;gap:.7rem;padding:1.05rem 1.9rem;border-radius:var(--r-sm);border:1px solid var(--olive);
background:var(--olive);color:var(--cream-hi);text-decoration:none;cursor:pointer;transition:background .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease);}
.btn:hover,.btn-primary:hover,.form-submit:hover,.btn-sage:hover{background:var(--terra);border-color:var(--terra);color:var(--cream-hi);}
.btn::after,.btn-primary::after,.form-submit::after{content:'\2192';font-size:1em;transition:transform .35s var(--ease);}
.btn:hover::after,.btn-primary:hover::after,.form-submit:hover::after{transform:translateX(5px);}
.btn svg,.btn-light svg,.btn-sec svg,.btn-outline-light svg{width:16px;height:16px;flex-shrink:0;}
.btn,.btn-light,.btn-sec,.btn-ghost,.btn-outline-light,.btn-primary{white-space:nowrap;}
.btn-sec,.btn-ghost{font-family:var(--f-body);font-weight:500;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
display:inline-flex;align-items:center;gap:.7rem;padding:1.05rem 1.9rem;border-radius:var(--r-sm);border:1px solid var(--olive);
background:transparent;color:var(--olive);text-decoration:none;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease);}
.btn-sec:hover,.btn-ghost:hover{background:var(--olive);color:var(--cream-hi);}
.btn-sec::after,.btn-ghost::after{content:'\2192';transition:transform .35s var(--ease);}
.btn-sec:hover::after,.btn-ghost:hover::after{transform:translateX(5px);}
.btn-light{border-color:var(--cream-hi);background:var(--cream-hi);color:var(--olive);}
.btn-light:hover{background:var(--terra);border-color:var(--terra);color:var(--cream-hi);}
.btn-outline-light{font-family:var(--f-body);font-weight:500;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
display:inline-flex;align-items:center;gap:.7rem;padding:1.05rem 1.9rem;border-radius:var(--r-sm);border:1px solid rgba(255,253,247,.5);
background:rgba(51,56,42,.18);backdrop-filter:blur(3px);color:var(--cream-hi);text-decoration:none;cursor:pointer;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);}
.btn-outline-light:hover{background:var(--cream-hi);border-color:var(--cream-hi);color:var(--olive);}

/* ---------- nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.15rem var(--pad);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
background:rgba(244,238,227,.88);backdrop-filter:blur(14px) saturate(1.1);border-bottom:1px solid var(--line-soft);transition:padding .4s var(--ease),background .4s var(--ease);}
nav.nav--scrolled{padding:.72rem var(--pad);background:rgba(244,238,227,.96);}
.logo{display:flex;align-items:stretch;gap:.85rem;text-decoration:none;flex-shrink:0;min-width:0;}
.logo-img{display:block;width:auto;height:clamp(40px,4.6vw,52px);transition:height .4s var(--ease);}
nav.nav--scrolled .logo-img{height:clamp(34px,3.8vw,42px);}
.logo-by{display:flex;align-items:center;white-space:nowrap;padding-left:.85rem;border-left:1px solid var(--line);
font-family:var(--f-body);font-weight:500;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-55);transition:color .3s var(--ease);}
.logo:hover .logo-by{color:var(--terra);}
.nav-links{display:flex;align-items:center;gap:1.9rem;list-style:none;}
.nav-links a{font-size:.7rem;font-weight:400;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-70);text-decoration:none;position:relative;padding:.3rem 0;transition:color .3s var(--ease);}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--terra);transition:width .35s var(--ease);}
.nav-links a:hover{color:var(--olive);}
.nav-links a:hover::after{width:100%;}
.nav-portal{border:1px solid var(--line);border-radius:var(--r-sm);padding:.6rem 1rem!important;color:var(--olive)!important;transition:background .3s var(--ease),color .3s var(--ease)!important;}
.nav-portal::after{display:none;}
.nav-portal:hover{background:var(--olive);color:var(--cream-hi)!important;}
.nav-cta{background:var(--olive);color:var(--cream-hi)!important;padding:.68rem 1.25rem!important;border-radius:var(--r-sm);transition:background .3s var(--ease)!important;}
.nav-cta::after{display:none;}
.nav-cta:hover{background:var(--terra);}
.nav-toggle{display:none;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:transparent;cursor:pointer;position:relative;flex-shrink:0;}
.nav-toggle span{position:absolute;left:11px;width:18px;height:1.5px;background:var(--olive);transition:transform .3s var(--ease),opacity .3s var(--ease);}
.nav-toggle span:nth-child(1){top:14px;}.nav-toggle span:nth-child(2){top:20px;}.nav-toggle span:nth-child(3){top:26px;}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-open .nav-toggle span:nth-child(2){opacity:0;}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:8rem var(--pad) clamp(3rem,7vw,5.5rem);overflow:hidden;background:var(--olive-deep);}
.hero-media{position:absolute;inset:0;z-index:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.04);}
.hero-media::after{content:'';position:absolute;inset:0;
background:linear-gradient(90deg,rgba(51,56,42,.66) 0%,rgba(51,56,42,.42) 38%,rgba(51,56,42,.12) 68%,transparent 88%),
linear-gradient(180deg,rgba(69,77,45,.5) 0%,rgba(69,77,45,.24) 32%,rgba(51,56,42,.52) 76%,rgba(51,56,42,.8) 100%);}
.hero-inner{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:end;}
.hero-tag{font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,253,247,.9);display:flex;align-items:center;gap:.8rem;margin-bottom:clamp(1.3rem,3vw,2.1rem);}
.hero h1{color:var(--cream-hi);margin-bottom:clamp(1.4rem,3vw,2rem);}
.hero h1 span{display:block;overflow:hidden;}
.hero h1 span i{display:block;font-style:normal;animation:heroLine 1.15s var(--ease) both;}
.hero h1 span:nth-child(1) i{animation-delay:.12s;}
.hero h1 span:nth-child(2) i{animation-delay:.24s;}
.hero h1 span:nth-child(3) i{animation-delay:.36s;}
.hero h1 em{color:var(--anis);}
@keyframes heroLine{from{transform:translateY(105%);}to{transform:none;}}
.hero-sub{color:rgba(255,253,247,.86);font-size:clamp(.95rem,1.1vw,1.08rem);line-height:1.8;max-width:34ch;animation:heroFade 1s var(--ease) .55s both;}
.hero-sub strong{display:block;font-weight:400;color:rgba(255,253,247,.92);font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;margin-bottom:.6rem;}
.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:clamp(1.6rem,3vw,2.2rem);animation:heroFade 1s var(--ease) .68s both;}
@keyframes heroFade{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.hero-aside{display:flex;flex-direction:column;gap:1.1rem;align-items:flex-start;animation:heroFade 1s var(--ease) .8s both;}
.hero-stats{display:flex;gap:1.6rem;border-top:1px solid var(--line-cream);padding-top:1.1rem;width:100%;}
.stat-num{display:block;font-family:var(--f-display);font-weight:800;font-size:clamp(1.7rem,2.4vw,2.3rem);color:var(--cream-hi);line-height:1;}
.stat-label{font-size:.62rem;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,253,247,.62);}
.hero-topo{position:absolute;left:0;right:0;bottom:0;height:150px;z-index:1;opacity:.22;}
/* la signature d'Antonia : son visage et sa communaute des le premier ecran */
.hero-sign{display:inline-flex;align-items:center;gap:.85rem;padding:.55rem 1.1rem .55rem .55rem;border-radius:99px;text-decoration:none;
background:rgba(51,56,42,.3);backdrop-filter:blur(6px);border:1px solid rgba(255,253,247,.24);transition:background .35s var(--ease);}
.hero-sign:hover{background:rgba(51,56,42,.48);}
.hero-sign img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:center;flex-shrink:0;}
.hero-sign span{display:flex;flex-direction:column;line-height:1.1;}
.hero-sign b{font-family:var(--f-display);font-weight:800;font-size:.88rem;letter-spacing:.01em;text-transform:uppercase;color:var(--cream-hi);}
.hero-sign i{font-style:normal;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,253,247,.68);margin-top:.3rem;}
.hero-insta{display:inline-flex;align-items:center;gap:.6rem;padding:.6rem 1.05rem;border-radius:99px;text-decoration:none;
border:1px solid rgba(255,253,247,.32);font-size:.64rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--cream-hi);
transition:background .3s var(--ease),border-color .3s var(--ease);}
.hero-insta svg{width:15px;height:15px;color:var(--anis);}
.hero-insta em{background:var(--terra);color:var(--cream-hi);border-radius:99px;padding:.2rem .52rem;font-size:.6rem;font-style:normal;}
.hero-insta:hover{background:rgba(255,253,247,.14);border-color:var(--cream-hi);}

/* ---------- generic section ---------- */
section{position:relative;}
.sec{padding:clamp(4.5rem,9vw,9rem) var(--pad);}
.sec--cream{background:var(--cream);}
.sec--paper{background:var(--paper);}
.sec--olive{background:var(--olive);color:var(--on-olive);}
.sec--olive h2,.sec--olive h3,.sec--olive h4{color:var(--cream-hi);}
.sec--olive :where(p){color:var(--on-olive);}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
column-gap:clamp(1.5rem,4vw,4rem);row-gap:clamp(1.6rem,3vw,2.6rem);align-items:start;margin-bottom:clamp(2.5rem,5vw,4rem);}
.sec-head>*:first-child{grid-column:1/-1;}
.sec-head>*:first-child h2{max-width:26ch;}
.sec-head>*+*{grid-column:2;}
.sec-head-wide{display:block;max-width:22ch;}

/* ---------- encart "je concois, mon equipe realise" ---------- */
.equipe-band{background:var(--anis);padding:clamp(1.1rem,2.4vw,1.55rem) var(--pad);}
.equipe-inner{display:flex;align-items:center;gap:clamp(.85rem,2vw,1.8rem);flex-wrap:wrap;}
.equipe-pill{flex-shrink:0;font-size:.58rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
background:var(--terra);color:var(--cream-hi);padding:.34rem .72rem;border-radius:99px;}
.equipe-txt{flex:1 1 20rem;font-size:.92rem;line-height:1.62;color:rgba(69,77,45,.84);}
.equipe-txt strong{display:block;font-family:var(--f-display);font-weight:800;text-transform:uppercase;
font-size:clamp(1.05rem,2vw,1.32rem);line-height:1.05;letter-spacing:-.01em;color:var(--olive-deep);margin-bottom:.2rem;}
.equipe-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;
font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--cream-hi);
background:var(--olive);padding:.8rem 1.35rem;border-radius:var(--r-sm);transition:background .3s var(--ease);}
.equipe-btn::after{content:'\2192';}
.equipe-btn:hover{background:var(--olive-deep);}

/* ---------- intro ---------- */
.intro{overflow:hidden;}
.intro-topo{top:-9%;right:-14%;width:min(760px,74vw);height:min(560px,54vw);opacity:0;}
.intro-topo.visible{opacity:.17;}
.intro-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);
column-gap:clamp(2rem,5vw,4.5rem);row-gap:clamp(2rem,4vw,3.4rem);align-items:start;}
/* aucun ratio et aucun object-fit ici, volontairement : la hauteur se deduit du
   fichier lui-meme (height:auto), donc la photo est TOUJOURS entiere, quelle que
   soit son orientation, et rien ne peut la recouper. on plafonne seulement sa
   largeur, a toutes les tailles d'ecran */
.intro-photo{position:relative;max-width:360px;}
.intro-photo img{width:100%;height:auto;border-radius:var(--r-lg);display:block;}
.intro-photo span{position:absolute;bottom:1rem;left:.7rem;right:.7rem;text-align:center;font-size:.6rem;font-weight:500;letter-spacing:.17em;
text-transform:uppercase;color:var(--cream-hi);background:rgba(51,56,42,.6);backdrop-filter:blur(5px);padding:.52rem .8rem;border-radius:99px;}
.intro h2{margin-bottom:1.5rem;max-width:26ch;}
.intro-text p+p{margin-top:1.15rem;}
.intro-insta{display:inline-flex;align-items:center;gap:.65rem;margin-top:1.9rem;padding:.68rem 1.15rem;border:1px solid var(--line);border-radius:99px;
font-size:.66rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--olive);text-decoration:none;
transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);}
.intro-insta svg{width:16px;height:16px;color:var(--terra);transition:color .3s var(--ease);}
.intro-insta:hover{background:var(--olive);border-color:var(--olive);color:var(--cream-hi);}
.intro-insta:hover svg{color:var(--anis);}
.intro-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.7rem;}
.chip{font-size:.66rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);background:rgba(167,188,91,.22);border:1px solid rgba(89,99,59,.14);padding:.48rem .9rem;border-radius:99px;}

/* ---------- prestations (olive) ---------- */
.presta{overflow:hidden;}
.presta-topo{inset:0;opacity:0;}
.presta-topo.visible{opacity:.14;}
.presta-inner{position:relative;z-index:2;}
.presta-list{border-top:1px solid var(--line-cream);}
.presta-item{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.15fr);gap:clamp(1rem,3.5vw,3.5rem);align-items:start;
padding:clamp(1.8rem,3.4vw,2.9rem) 0;border-bottom:1px solid var(--line-cream);transition:background .4s var(--ease);}
.presta-item:hover{background:rgba(255,253,247,.045);}
.presta-num{font-family:var(--f-display);font-weight:800;font-size:clamp(1rem,1.3vw,1.18rem);color:var(--terra);letter-spacing:.04em;padding-top:.35rem;min-width:2.6em;}
.presta-item h3{color:var(--cream-hi);transition:color .35s var(--ease);}
.presta-item:hover h3{color:var(--anis);}
.presta-item p{font-size:.95rem;line-height:1.8;}
.presta-item ul{list-style:none;display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem;}
.presta-item li{font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--anis);border:1px solid rgba(167,188,91,.34);padding:.38rem .75rem;border-radius:99px;}
.presta-foot{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-top:clamp(2rem,4vw,3.2rem);}
.presta-foot p{max-width:46ch;font-size:.95rem;}

/* ---------- méthode ---------- */
.method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line);}
.method-step{position:relative;padding:clamp(1.6rem,2.6vw,2.4rem) clamp(1rem,1.8vw,1.8rem) clamp(1.8rem,3vw,2.6rem) 0;border-right:1px solid var(--line);}
.method-step:last-child{border-right:0;}
.method-step:nth-child(even){transform:translateY(clamp(1rem,3vw,2.8rem));}
.method-step::before{content:'';position:absolute;top:-1px;left:0;width:0;height:2px;background:var(--terra);transition:width .8s var(--ease);}
.method-grid.visible .method-step::before{width:56%;}
.method-step:nth-child(2)::before{transition-delay:.12s;}
.method-step:nth-child(3)::before{transition-delay:.24s;}
.method-step:nth-child(4)::before{transition-delay:.36s;}
.method-num{font-family:var(--f-display);font-weight:800;font-size:clamp(2.6rem,4.6vw,4rem);line-height:1;color:var(--terra);margin-bottom:1rem;}
.method-step h3{margin-bottom:.7rem;}
.method-step p{font-size:.92rem;line-height:1.8;}
.method-note{font-size:.63rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-55);margin-top:1rem;display:block;}

/* ---------- projets ---------- */
.filter-row{display:flex;flex-wrap:wrap;gap:.4rem;}
.filter-btn{font-family:var(--f-body);font-weight:500;font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;padding:.62rem 1.15rem;border-radius:99px;
border:1px solid var(--line);background:transparent;color:var(--ink-70);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);}
.filter-btn:hover{border-color:var(--terra);color:var(--terra);}
.filter-btn.active{background:var(--olive);border-color:var(--olive);color:var(--cream-hi);}
.projects-hint{display:inline-flex;margin-top:1.1rem;font-size:.62rem;font-weight:500;letter-spacing:.15em;
text-transform:uppercase;color:var(--ink-55);align-items:center;gap:.6rem;
border:1px solid var(--line);padding:.58rem 1rem;border-radius:99px;}
.projects-hint svg{width:15px;height:15px;color:var(--terra);flex-shrink:0;}
/* les projets defilent comme les realisations : meme rail, meme UI */
.projects-carousel{--slide:clamp(285px,86vw,620px);}
.portfolio-project{position:relative;}
.proj-main-img{position:relative;overflow:hidden;border-radius:var(--r-lg);cursor:pointer;background:var(--olive-deep);}
.proj-main-img img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;filter:saturate(.95) contrast(1.03);transition:transform .9s var(--ease),filter .5s var(--ease);}
.proj-main-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(51,56,42,.5) 100%);opacity:0;transition:opacity .5s var(--ease);}
.proj-main-img:hover img{transform:scale(1.045);}
.proj-main-img:hover::after{opacity:1;}
.proj-thumbs{display:flex;gap:6px;margin-top:9px;}
.proj-thumbs img{width:clamp(54px,7.6vw,84px);aspect-ratio:1/1;object-fit:cover;cursor:pointer;border-radius:10px;filter:saturate(.95);
opacity:.86;transition:opacity .3s var(--ease),transform .3s var(--ease);}
.proj-thumbs img:hover{opacity:1;transform:translateY(-2px);}
.proj-info{padding:.9rem 0 0;}
.proj-info h3{font-size:clamp(1rem,1.3vw,1.22rem);color:var(--olive);margin-bottom:.35rem;transition:color .3s var(--ease);}
.portfolio-project:hover .proj-info h3,.real-card:hover .proj-info h3{color:var(--terra);}
.proj-meta{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}

.proj-city,.proj-tag{font-size:.62rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-55);}
.proj-tag{color:var(--terra);}
.proj-meta>span+span::before{content:'';display:inline-block;width:3px;height:3px;border-radius:50%;background:var(--line);margin-right:.7rem;vertical-align:middle;}

/* ---------- réalisations ---------- */
.real-pill{font-size:.58rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;background:var(--terra);color:var(--cream-hi);padding:.3rem .66rem;border-radius:99px;}
.real-lead{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:start;margin-bottom:clamp(2.5rem,5vw,4rem);}
.real-lead h2{margin-bottom:1.5rem;}
.real-lead p+p{margin-top:1.1rem;}
.real-facts{display:flex;flex-direction:column;gap:1.5rem;background:var(--cream);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,2.4vw,2.2rem);}
.real-fact{display:flex;gap:1.1rem;align-items:flex-start;}
.real-fact-icon{width:34px;height:34px;border-radius:9px;background:rgba(213,107,43,.12);color:var(--terra);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.real-fact-icon svg{width:17px;height:17px;}
.real-fact-label{font-size:.63rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:.4rem;}
.real-fact-text{font-size:.9rem;line-height:1.75;color:var(--ink-70);}
.real-gallery-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.2rem;flex-wrap:wrap;margin:clamp(3rem,6vw,5.5rem) 0 clamp(1.6rem,3vw,2.4rem);}
.real-hint{font-size:.64rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-55);display:inline-flex;align-items:center;gap:.6rem;border:1px solid var(--line);padding:.6rem 1rem;border-radius:99px;}
.real-hint svg{width:15px;height:15px;color:var(--terra);}
/* ---------- diaporama : defilement horizontal, cale au doigt ou aux fleches ---------- */
.carousel{position:relative;}
.carousel-track{display:flex;gap:clamp(.9rem,2vw,1.6rem);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;
scrollbar-width:none;-ms-overflow-style:none;padding-bottom:.35rem;
/* le rail deborde jusqu'au bord de la section : la diapo suivante reste amorcee */
margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);}
.carousel-track::-webkit-scrollbar{display:none;}
.carousel-slide{flex:0 0 var(--slide);scroll-snap-align:center;min-width:0;}
.carousel-ui{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;margin-top:clamp(1.3rem,2.4vw,1.9rem);}
.carousel-dots{display:flex;flex-wrap:wrap;gap:.45rem;min-width:0;}
.carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:var(--line);cursor:pointer;
transition:background .3s var(--ease),transform .3s var(--ease);}
.carousel-dot.active{background:var(--terra);transform:scale(1.4);}
.carousel-arrows{display:flex;gap:.5rem;flex-shrink:0;}
.carousel-arrow{width:46px;height:46px;border:1px solid var(--line);border-radius:12px;background:transparent;color:var(--olive);cursor:pointer;
display:flex;align-items:center;justify-content:center;
transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),opacity .3s var(--ease);}
.carousel-arrow svg{width:17px;height:17px;}
.carousel-arrow:hover{background:var(--olive);border-color:var(--olive);color:var(--cream-hi);}
.carousel-arrow[disabled]{opacity:.3;cursor:default;}
.carousel-arrow[disabled]:hover{background:transparent;border-color:var(--line);color:var(--olive);}
.carousel-hint{font-size:.64rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-55);}
.real-carousel{--slide:clamp(285px,86vw,620px);}

/* ---------- mon jardin ---------- */
.jardin-carousel{--slide:clamp(168px,46vw,278px);}
.jardin-slide figure{margin:0;}
.jardin-slide img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r-lg);display:block;cursor:zoom-in;
filter:saturate(.97) contrast(1.02);transition:transform .8s var(--ease);}
.jardin-slide img:hover{transform:scale(1.02);}
.real-card{position:relative;}
.cmp{position:relative;overflow:hidden;--pos:50%;cursor:ew-resize;background:var(--olive-deep);border-radius:var(--r-lg);}
.cmp>img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;filter:saturate(.95) contrast(1.03);}
.cmp-after{position:absolute;inset:0;clip-path:inset(0 0 0 var(--pos));}
.cmp-after img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95) contrast(1.03);}
.cmp-divider{position:absolute;top:0;bottom:0;left:var(--pos);width:1.5px;background:var(--cream-hi);transform:translateX(-.75px);pointer-events:none;z-index:2;}
.cmp-divider::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border-radius:50%;
background:var(--cream-hi);border:1px solid var(--line);box-shadow:0 4px 18px rgba(51,56,42,.28);}
.cmp-divider::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;width:14px;height:10px;
background-color:var(--terra);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7 3 12l5 5M16 7l5 5-5 5'/%3E%3C/svg%3E") center/contain no-repeat;
mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 7 3 12l5 5M16 7l5 5-5 5'/%3E%3C/svg%3E") center/contain no-repeat;}
.cmp-range{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);width:100%;height:78px;margin:0;padding:0;opacity:0;
cursor:ew-resize;-webkit-appearance:none;appearance:none;background:transparent;z-index:3;touch-action:pan-y;}
.cmp:focus-within{outline:2px solid var(--terra);outline-offset:2px;}
.cmp-tag{position:absolute;bottom:.9rem;z-index:2;font-size:.58rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:.38rem .78rem;border-radius:99px;
background:rgba(51,56,42,.66);backdrop-filter:blur(5px);color:var(--cream-hi);pointer-events:none;}
.cmp-tag-l{left:.9rem;}
.cmp-tag-r{right:.9rem;background:var(--terra);}
.cmp-play{position:absolute;top:1rem;right:1rem;z-index:4;display:none;align-items:center;gap:.6rem;background:rgba(244,238,227,.93);backdrop-filter:blur(6px);
border:none;border-radius:99px;padding:.4rem 1rem .4rem .45rem;font-family:var(--f-body);font-weight:500;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--olive);cursor:pointer;transition:background .3s var(--ease),color .3s var(--ease);}
.cmp-play.on{display:inline-flex;}
.cmp-play:hover{background:var(--terra);color:var(--cream-hi);}
.cmp-play i{width:22px;height:22px;border-radius:50%;background:var(--terra);color:var(--cream-hi);display:flex;align-items:center;justify-content:center;font-size:.5rem;font-style:normal;padding-left:2px;transition:background .3s var(--ease),color .3s var(--ease);}
.cmp-play:hover i{background:var(--cream-hi);color:var(--terra);}
.cmp-soon{display:none;position:absolute;top:1rem;left:1rem;z-index:2;background:rgba(244,238,227,.93);backdrop-filter:blur(6px);padding:.4rem .8rem;border-radius:99px;font-size:.58rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--olive);}
.cmp.no-after{cursor:default;}
.cmp.no-after .cmp-after,.cmp.no-after .cmp-divider,.cmp.no-after .cmp-range,.cmp.no-after .cmp-tag-r{display:none;}
.cmp.no-after .cmp-soon{display:block;}
.real-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px;}
.real-thumbs img{width:100%;aspect-ratio:1/1;object-fit:cover;cursor:pointer;border-radius:8px;filter:saturate(.95);transition:opacity .3s var(--ease);}
.real-thumbs img:hover{opacity:.82;}
.real-cta{margin-top:clamp(3rem,6vw,5.5rem);background:var(--olive);border-radius:var(--r-xl);padding:clamp(1.8rem,3.6vw,3.4rem);
display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:clamp(2rem,4vw,4rem);align-items:start;position:relative;overflow:hidden;}
.real-cta-topo{inset:0;opacity:0;}
.real-cta-topo.visible{opacity:.13;}
.real-cta-left,.real-form{position:relative;z-index:2;}
.real-cta h3{color:var(--cream-hi);font-size:clamp(1.5rem,2.6vw,2.3rem);margin-bottom:1rem;}
.real-cta-sub{color:var(--on-olive);font-size:.95rem;line-height:1.8;margin-bottom:1.7rem;}
.real-cta-zone svg{width:13px;height:13px;flex-shrink:0;position:relative;top:1px;}
.real-cta-zone{margin-top:1.7rem;padding-top:1.4rem;border-top:1px solid var(--line-cream);font-size:.66rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--anis);line-height:1.7;}
.real-form .form-field label{color:var(--anis);}
.real-form .form-field input,.real-form .form-field textarea,.real-form .form-field select{background:rgba(255,253,247,.07);border-color:var(--line-cream);color:var(--cream-hi);}
.real-form .form-field input::placeholder,.real-form .form-field textarea::placeholder{color:rgba(255,253,247,.4);}
.real-form .form-field select option{color:var(--ink);}
.real-form .form-field input:focus,.real-form .form-field textarea:focus,.real-form .form-field select:focus{border-color:var(--anis);}
.real-form .form-submit{background:var(--cream-hi);border-color:var(--cream-hi);color:var(--olive);}
.real-form .form-submit:hover{background:var(--terra);border-color:var(--terra);color:var(--cream-hi);}
.real-form .form-success{background:rgba(167,188,91,.16);border-color:rgba(167,188,91,.42);color:var(--anis);}
.includes-list{list-style:none;display:flex;flex-direction:column;gap:.8rem;}
.includes-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:.88rem;line-height:1.7;color:var(--on-olive);}
.includes-list li::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--terra);flex-shrink:0;margin-top:.62rem;}
.includes-list--ink li{color:var(--ink-70);}
.real-cta-right{position:relative;z-index:2;display:flex;flex-direction:column;gap:1.2rem;align-items:flex-start;justify-content:center;
background:rgba(255,253,247,.07);border:1px solid var(--line-cream);border-radius:var(--r-lg);padding:clamp(1.5rem,2.6vw,2.2rem);}
.real-cta-right h4{color:var(--cream-hi);font-size:1.02rem;}
.real-cta-right p{color:var(--on-olive);font-size:.92rem;line-height:1.75;}

/* ---------- estimateur ---------- */
.estimator-section{overflow:hidden;}
.est-topo{inset:0;opacity:0;}
.est-topo.visible{opacity:.12;}
.estimator-inner{position:relative;z-index:2;}
.est-head{margin-bottom:clamp(1.6rem,3vw,2.4rem);max-width:62ch;}
.est-head h2{font-size:clamp(1.85rem,4vw,3.1rem);margin-bottom:.9rem;}
.estimator-sub{color:var(--on-olive);max-width:52ch;font-size:.92rem;line-height:1.7;}
.estimator-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.4rem,3vw,2.6rem);align-items:start;}
.est-form{display:flex;flex-direction:column;gap:1.25rem;}
.field-group label{display:block;font-size:.66rem;font-weight:500;letter-spacing:.17em;text-transform:uppercase;color:var(--anis);margin-bottom:.65rem;}
.field-group label strong{color:var(--terra);font-size:.95rem;letter-spacing:0;}
.est-hint{font-size:.64rem;letter-spacing:.04em;line-height:1.6;color:rgba(255,253,247,.55);margin-top:.6rem;}
.est-includes{margin-top:.2rem;}
.est-includes>summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:.8rem;
padding:.7rem 0;border-top:1px solid var(--line-cream);border-bottom:1px solid var(--line-cream);
font-size:.64rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--anis);}
.est-includes>summary::-webkit-details-marker{display:none;}
.est-includes>summary::after{content:'+';font-size:1rem;line-height:1;color:var(--terra);}
.est-includes[open]>summary::after{content:'\2212';}
.est-includes .includes-list{padding:1rem 0 .2rem;}
.field-row{display:flex;gap:.6rem;flex-wrap:wrap;}
.est-btn{flex:1 1 auto;min-width:8rem;text-align:center;padding:.85rem 1rem;border-radius:var(--r-sm);background:transparent;border:1px solid var(--line-cream);
color:var(--cream-hi);font-family:var(--f-body);font-weight:400;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease);}
.est-btn:hover{border-color:var(--anis);color:var(--anis);}
.est-btn.active{background:var(--terra);border-color:var(--terra);color:var(--cream-hi);}
.est-slider{width:100%;-webkit-appearance:none;appearance:none;height:2px;background:var(--line-cream);border-radius:2px;outline:none;margin-top:.7rem;cursor:pointer;}
.est-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--terra);cursor:pointer;border:3px solid var(--cream-hi);}
.est-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--terra);cursor:pointer;border:3px solid var(--cream-hi);}
.slider-labels{display:flex;justify-content:space-between;margin-top:.6rem;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,253,247,.55);}
.est-result{background:rgba(255,253,247,.07);border:1px solid var(--line-cream);border-radius:var(--r-lg);padding:clamp(1.25rem,2.2vw,1.9rem);}
.result-title{font-size:.66rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--anis);margin-bottom:.9rem;}
.price-display{font-family:var(--f-display);font-weight:800;font-size:clamp(2.35rem,4.2vw,3.5rem);color:var(--cream-hi);line-height:1;letter-spacing:-.02em;margin-bottom:.4rem;}
.price-note{font-size:.66rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,253,247,.58);margin-bottom:1.1rem;}
.cta-row{margin-top:1.2rem;display:flex;gap:.8rem;flex-wrap:wrap;}

/* ---------- page "on en discute ?" ---------- */
.page-hero{position:relative;background:var(--olive-deep);padding:clamp(8.5rem,14vw,11rem) var(--pad) clamp(3.5rem,7vw,5.5rem);overflow:hidden;}
.page-hero-inner{position:relative;z-index:2;}
.page-hero h1{font-size:clamp(2.4rem,6.4vw,5rem);color:var(--cream-hi);margin-bottom:1.4rem;max-width:20ch;}
.page-hero p{color:var(--on-olive);font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.8;max-width:52ch;}
.page-jump{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2.2rem;}
.page-jump a{display:inline-flex;align-items:center;padding:.72rem 1.2rem;border:1px solid rgba(255,253,247,.28);border-radius:99px;
text-decoration:none;font-family:var(--f-body);font-weight:500;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;
color:var(--cream-hi);transition:background .3s var(--ease),border-color .3s var(--ease);}
.page-jump a:hover{background:var(--terra);border-color:var(--terra);}
.form-section{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;scroll-margin-top:92px;}
.form-lead h2{margin-bottom:1.3rem;}
.form-lead>p{max-width:44ch;margin-bottom:1.9rem;}
.back-home{padding:0 var(--pad) clamp(3rem,6vw,4.5rem);background:var(--cream);}
.back-home a{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;font-family:var(--f-body);font-weight:500;
font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-55);transition:color .3s var(--ease);}
.back-home a:hover{color:var(--terra);}
.back-home svg{width:15px;height:15px;}
.est-recap{display:none;gap:.55rem 1rem;flex-wrap:wrap;align-items:center;padding:1rem 1.2rem;border:1px solid var(--line);
border-left:3px solid var(--terra);border-radius:var(--r-sm);background:var(--cream-hi);font-size:.8rem;line-height:1.7;color:var(--ink-70);}
.est-recap.on{display:flex;}
.est-recap b{font-family:var(--f-display);font-weight:800;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);}

/* ---------- contact ---------- */
.contact-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(2rem,5vw,5rem);align-items:start;}
.contact-left h2{margin-bottom:1.3rem;}
.contact-sub{margin-bottom:2.4rem;max-width:40ch;}
.contact-infos{display:flex;flex-direction:column;gap:1.4rem;}
.ci-item{display:flex;align-items:center;gap:1.1rem;}
.ci-icon{width:40px;height:40px;border-radius:10px;background:rgba(213,107,43,.12);color:var(--terra);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ci-icon svg{width:18px;height:18px;}
.ci-label{font-size:.62rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);margin-bottom:.15rem;}
.ci-text{font-size:.94rem;color:var(--ink);}
.contact-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-xl);padding:clamp(1.5rem,3vw,2.6rem);
display:flex;flex-direction:column;gap:1.4rem;align-items:flex-start;}
.contact-card h3{color:var(--olive);}
.contact-card-note{font-size:.8rem;line-height:1.7;color:var(--ink-55);}
.contact-form{display:flex;flex-direction:column;gap:1.2rem;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-field{display:flex;flex-direction:column;gap:.55rem;}
.form-field label{font-size:.63rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--terra);}
.form-field input,.form-field textarea,.form-field select{
padding:.95rem 1.05rem;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--cream-hi);color:var(--ink);
font-family:var(--f-body);font-weight:300;font-size:.94rem;outline:none;width:100%;transition:border-color .3s var(--ease);}
.form-field input::placeholder,.form-field textarea::placeholder{color:rgba(51,56,42,.38);}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--terra);}
.form-field textarea{resize:vertical;min-height:110px;line-height:1.7;}
.form-submit{align-self:flex-start;justify-content:center;}
.form-success{display:none;background:rgba(167,188,91,.2);border:1px solid rgba(167,188,91,.5);border-radius:var(--r-sm);padding:1.2rem;
font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--olive);text-align:center;}

/* ---------- espace client strip ---------- */
.portal-strip{background:var(--olive-deep);padding:clamp(2.4rem,4vw,3.4rem) var(--pad);display:flex;align-items:center;justify-content:space-between;gap:1.8rem;flex-wrap:wrap;}
.portal-strip h3{color:var(--cream-hi);font-size:clamp(1.15rem,1.9vw,1.6rem);margin-bottom:.5rem;}
.portal-strip p{color:var(--on-olive);font-size:.92rem;max-width:52ch;}

/* ---------- footer ---------- */
footer{position:relative;overflow:hidden;background:var(--olive);padding:clamp(3.5rem,6vw,5.5rem) var(--pad) 2rem;}
.footer-topo{inset:auto 0 -20% 0;height:75%;opacity:.14;}
.footer-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.25fr) repeat(2,minmax(0,1fr));gap:clamp(2rem,4vw,3.5rem);}
.footer-brand img{width:clamp(160px,18vw,210px);height:auto;display:block;}
.footer-brand p{color:var(--on-olive);font-size:.9rem;line-height:1.8;max-width:34ch;margin-top:1.4rem;}
.footer-col h4{color:var(--anis);font-size:.64rem;font-weight:500;letter-spacing:.18em;margin-bottom:1.2rem;font-family:var(--f-body);}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:.75rem;}
.footer-links a,.footer-contact a,.footer-contact span{font-size:.86rem;color:var(--on-olive);text-decoration:none;transition:color .3s var(--ease);}
.footer-links a:hover,.footer-contact a:hover{color:var(--anis);}
.footer-contact{list-style:none;display:flex;flex-direction:column;gap:.75rem;}
.footer-social{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.3rem;padding:.7rem 1.1rem;border:1px solid var(--line-cream);border-radius:99px;
font-size:.66rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--cream-hi);text-decoration:none;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease);}
.footer-social svg{width:15px;height:15px;}
.footer-social:hover{background:var(--terra);border-color:var(--terra);color:var(--cream-hi);}
.footer-bottom{position:relative;z-index:2;margin-top:clamp(2.5rem,4vw,3.5rem);padding-top:1.6rem;border-top:1px solid var(--line-cream);
display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.footer-bottom p,.footer-bottom a{font-size:.66rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,253,247,.55);text-decoration:none;}
.footer-bottom a:hover{color:var(--anis);}
.footer-legal{display:flex;gap:1.4rem;flex-wrap:wrap;}

/* ---------- lightbox & video ---------- */
.lb{position:fixed;inset:0;z-index:2000;background:rgba(43,47,35,.96);display:none;align-items:center;justify-content:center;padding:1.5rem;}
.lb.open{display:flex;}
.lb img{max-width:92vw;max-height:86vh;object-fit:contain;border-radius:var(--r);}
.lb-x,.vid-x{position:absolute;top:1.4rem;right:1.4rem;background:transparent;border:1px solid var(--line-cream);color:var(--cream-hi);
width:44px;height:44px;border-radius:11px;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s var(--ease),color .3s var(--ease);}
.lb-x:hover,.vid-x:hover{background:var(--terra);border-color:var(--terra);}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,253,247,.1);border:1px solid var(--line-cream);color:var(--cream-hi);
font-size:1.1rem;cursor:pointer;width:48px;height:48px;border-radius:12px;transition:background .3s var(--ease);}
.lb-nav:hover{background:var(--terra);border-color:var(--terra);}
#lb-prev{left:1.4rem;}#lb-next{right:1.4rem;}
/* rang de la vue dans le projet : dit qu'il y en a d'autres a cote */
.lb-count{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);
font-size:.62rem;font-weight:500;letter-spacing:.18em;color:rgba(255,253,247,.78);
background:rgba(43,47,35,.72);border:1px solid var(--line-cream);padding:.4rem .9rem;border-radius:99px;}
.vid-modal{position:fixed;inset:0;z-index:2100;background:rgba(43,47,35,.96);display:none;align-items:center;justify-content:center;padding:1.5rem;}
.vid-modal.open{display:flex;}
.vid-frame{width:min(1100px,92vw);}
.vid-title{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:1rem;letter-spacing:.01em;color:var(--cream-hi);margin-bottom:.9rem;}
.vid-frame video,.vid-frame iframe{display:block;width:100%;max-height:78vh;aspect-ratio:16/9;border:none;border-radius:var(--r);background:var(--olive-deep);}

/* ---------- banniere fixe : le projet peut demarrer depuis n'importe ou ---------- */
.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
padding:.75rem var(--pad);background:var(--olive-deep);border-top:1px solid rgba(255,253,247,.16);}
.sticky-cta-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0;}
.sticky-cta-txt strong{font-family:var(--f-display);font-weight:800;font-size:.86rem;letter-spacing:.01em;text-transform:uppercase;color:var(--cream-hi);}
.sticky-cta-txt span{font-size:.64rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--anis);margin-top:.3rem;}
.sticky-cta .sticky-cta-btn{flex-shrink:0;padding:.9rem 1.6rem;}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.visible{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .nav-links{gap:1.15rem;}
  .footer-inner{grid-template-columns:1fr 1fr;}
  .footer-brand{grid-column:1/-1;}
}
@media(max-width:960px){
  nav{padding:.85rem var(--pad);}
  nav.nav--scrolled{padding:.7rem var(--pad);}
  .nav-toggle{display:block;}
  .nav-open nav{background:var(--cream);}
  /* the drawer hangs off the nav itself, and keeps no padding while collapsed
     so nothing can peek out from under a zero max-height */
  .nav-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;
  background:var(--cream);border-bottom:0 solid var(--line);padding:0 var(--pad);
  max-height:0;overflow:hidden;
  transition:max-height .45s var(--ease),padding .45s var(--ease);}
  .nav-open .nav-links{max-height:min(78vh,540px);overflow-y:auto;
  padding:.5rem var(--pad) 1.5rem;border-bottom-width:1px;}
  .nav-links li{border-bottom:1px solid var(--line-soft);}
  .nav-links li:last-child{border-bottom:0;}
  .nav-links a{display:block;padding:1.05rem 0;font-size:.78rem;}
  .nav-links a::after{display:none;}
  .nav-portal,.nav-cta{display:inline-flex!important;margin-top:1rem;}
  /* the horizontal scrim only exists to protect the desktop left column;
     at 390px it would darken the whole photo, so the vertical one carries it alone */
  .hero-media::after{background:linear-gradient(180deg,rgba(51,56,42,.5) 0%,rgba(69,77,45,.36) 28%,rgba(69,77,45,.38) 54%,rgba(51,56,42,.62) 78%,rgba(51,56,42,.88) 100%);}
  .hero{padding-top:6.5rem;min-height:92svh;}
  .hero-inner{grid-template-columns:1fr;gap:2.2rem;}
  .hero-aside{width:100%;}
  .sec-head,.intro-grid,.real-lead,.contact-section,.estimator-grid,.real-cta,.form-section{grid-template-columns:1fr;}
  .sec-head>*+*,.intro-text{grid-column:1;}
  .intro-text{padding-top:0;}
  /* number + title share the first row, the copy runs full width beneath it */
  .presta-item{grid-template-columns:auto minmax(0,1fr);row-gap:1.1rem;}
  .presta-item>div{grid-column:1/-1;}
  .presta-num{padding-top:.15rem;min-width:2.2em;}
  .method-grid{grid-template-columns:1fr 1fr;}
  .method-step{border-bottom:1px solid var(--line);padding-right:clamp(1rem,3vw,1.6rem);}
  .method-step:nth-child(even){transform:none;border-right:0;}
  .method-step:nth-child(n+3){padding-top:clamp(1.6rem,3vw,2.2rem);}
  .method-grid.visible .method-step::before{width:44%;}
  .form-row{grid-template-columns:1fr;}
  .footer-inner{grid-template-columns:1fr;}
  .portal-strip{flex-direction:column;align-items:flex-start;}
}
@media(max-width:560px){
  h1{font-size:clamp(2.1rem,10.5vw,3rem);}
  /* photo resserree : elle occupait la moitie de l'ecran avant le texte */
  .intro-photo{max-width:270px;}
  /* trop etroit pour une pastille posee sur l'image : la legende passe dessous */
  .intro-photo span{position:static;display:block;margin-top:.6rem;padding:0;
  background:none;backdrop-filter:none;text-align:left;font-size:.55rem;letter-spacing:.14em;color:var(--ink-55);}
  .method-grid{grid-template-columns:1fr;}
  .method-step{border-right:0;}
  .proj-thumbs,.real-thumbs{gap:4px;}
  .btn,.btn-primary,.btn-sec,.btn-ghost,.btn-outline-light,.form-submit,.btn-sage{width:100%;justify-content:center;}
  .sticky-cta .sticky-cta-btn{width:auto;}
  .hero-stats{flex-direction:column;gap:1rem;}
}
@media(max-width:700px){
  /* l'estimation de budget doit tenir sur un seul ecran, banniere fixe incluse */
  .estimator-section{padding-top:1.9rem;padding-bottom:2rem;}
  .est-head{margin-bottom:.95rem;}
  .est-head h2{font-size:1.68rem;margin-bottom:.7rem;}
  .estimator-sub{font-size:.8rem;line-height:1.6;}
  .estimator-grid{gap:1.15rem;}
  .est-form{gap:.95rem;}
  .field-group label{margin-bottom:.45rem;font-size:.61rem;}
  .est-btn{min-width:0;padding:.72rem .6rem;font-size:.66rem;}
  .est-hint{display:none;} /* le prix en direct dit la meme chose, en mieux */
  .est-slider{margin-top:.5rem;}
  .slider-labels{margin-top:.4rem;font-size:.58rem;}
  .est-result{padding:1.1rem 1.15rem;}
  .result-title{margin-bottom:.6rem;}
  .price-display{font-size:2.3rem;}
  .price-note{margin-bottom:.85rem;font-size:.6rem;}
  .est-includes>summary{padding:.6rem 0;}
  .cta-row{margin-top:.95rem;}
  /* banniere fixe resserree */
  .sticky-cta{padding:.6rem 1rem;gap:.85rem;}
  .sticky-cta-txt strong{font-size:.72rem;}
  .sticky-cta-txt span{display:none;}
  .sticky-cta .sticky-cta-btn{padding:.8rem 1.05rem;font-size:.66rem;}
  body.has-sticky-cta{padding-bottom:var(--sticky-h,66px);}
}
@media(max-width:430px){
  .estimator-section{padding-top:1.6rem;padding-bottom:1.7rem;}
  .est-head h2{font-size:1.46rem;}
  .est-result{padding:.95rem 1rem;}
  .price-display{font-size:2rem;}
  .logo-by{font-size:.5rem;letter-spacing:.14em;padding-left:.6rem;}
  .logo{gap:.6rem;}
  .sticky-cta-txt{display:none;}
  .sticky-cta{justify-content:stretch;}
  .sticky-cta .sticky-cta-btn{width:100%;justify-content:center;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;}
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;}
  .topo,.topo.visible{opacity:.14;}
  .carousel-track{scroll-behavior:auto;}
}
