/* ============================================================
   BK GROUPE — Maquette V2 (16/09/2026) · Direction artistique
   Charte : vert sauge #6A7D63 · crème #FCFBFA · ni bleu ni or
   Titres : Cormorant Garamond · Corps : Montserrat
   Cible : 55-70 ans → base 18 px, contrastes ≥ 7:1, zones ≥ 48 px
   ============================================================ */

:root{
  --corten:#8F4F2E; /* « Mars 2020 » — référence exacte à confirmer */
  --sauge:#6A7D63;
  --sauge-fonce:#3D4F38;
  --foret:#28332A;
  --sauge-pale:#C2CEBC;
  --brume:#E9EDE6;
  --creme:#FCFBFA;
  --sable:#F5F2ED;
  --pierre:#DDD8CF;
  --encre:#1A1A18;
  --gris:#4E524B;
  --blanc:#FFFFFF;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Montserrat','Helvetica Neue',Arial,sans-serif;
  --gutter:clamp(20px,5vw,80px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:18px;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-weight:400;color:var(--encre);background:var(--creme);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
ul{list-style:none}
strong{font-weight:600}

h1,h2,h3,.serif{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.005em}
h1{font-size:clamp(2.6rem,6vw,5.2rem)}
h2{font-size:clamp(2.1rem,4.2vw,3.4rem)}
h3{font-size:clamp(1.45rem,2.2vw,1.9rem)}
em{font-style:italic;font-weight:300}
.eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sauge);display:flex;align-items:center;gap:.8rem;margin-bottom:1.3rem}
.eyebrow::before{content:'';width:34px;height:1px;background:var(--sauge)}
.eyebrow--center{justify-content:center}
.eyebrow--center::before{display:none}
.lead{font-size:1.15rem;line-height:1.7;color:var(--gris);max-width:62ch}
.muted{color:var(--gris)}
.small{font-size:.86rem}
.center{text-align:center}
.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}

.wrap{width:min(1240px,100% - 2*var(--gutter));margin-inline:auto}
.wrap--narrow{width:min(860px,100% - 2*var(--gutter));margin-inline:auto}
section{padding:clamp(4rem,9vw,8rem) 0}
.section--sable{background:var(--sable)}
.section--foret{background:var(--foret);color:var(--creme)}
.section--foret .eyebrow{color:var(--sauge-pale)}
.section--foret .eyebrow::before{background:var(--sauge-pale)}
.section--foret .lead{color:#D6DCD2}
.section--tight{padding:clamp(2.5rem,5vw,4rem) 0}

/* Boutons — zones ≥ 52 px */
.btn{display:inline-flex;align-items:center;gap:.7rem;min-height:52px;padding:.85rem 1.7rem;border-radius:3px;font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:all .3s var(--ease);cursor:pointer;border:1.5px solid transparent}
.btn svg{width:16px;height:16px;transition:transform .3s}
.btn:hover svg{transform:translateX(4px)}
.btn--primary{background:var(--sauge);color:var(--creme)}
.btn--primary:hover{background:var(--sauge-fonce)}
.btn--ghost{border-color:currentColor;color:inherit;background:transparent}
.btn--ghost:hover{background:rgba(255,255,255,.12)}
.btn--ghost-dark{border-color:var(--encre);color:var(--encre);background:transparent}
.btn--ghost-dark:hover{background:var(--encre);color:var(--creme)}
.btn--light{background:var(--creme);color:var(--sauge-fonce)}
.btn--light:hover{background:var(--blanc)}
.link{font-weight:600;font-size:.85rem;letter-spacing:.06em;text-decoration:none;border-bottom:1.5px solid var(--sauge-pale);padding-bottom:2px;transition:border-color .3s}
.link:hover{border-color:var(--sauge)}

/* ============================================================ HEADER */
.header{position:fixed;inset:0 0 auto 0;z-index:50;padding:1.4rem var(--gutter);display:flex;align-items:center;justify-content:space-between;transition:all .45s var(--ease);color:var(--creme)}
.header.is-solid,.header--solid{background:rgba(252,251,250,.94);backdrop-filter:blur(14px);color:var(--encre);padding:.9rem var(--gutter);box-shadow:0 1px 0 rgba(106,125,99,.18)}
.header .logo img{height:36px;width:auto;transition:height .4s}
.header .logo .logo-light{display:block}.header .logo .logo-dark{display:none}
.header.is-solid .logo .logo-light,.header--solid .logo .logo-light{display:none}
.header.is-solid .logo .logo-dark,.header--solid .logo .logo-dark{display:block}
.nav{display:flex;align-items:center;gap:1.9rem;margin-left:2rem}
.nav a{white-space:nowrap;font-size:.74rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;position:relative;padding:.4rem 0}
.nav a::after{content:'';position:absolute;left:0;bottom:0;height:1.5px;width:0;background:currentColor;transition:width .3s var(--ease)}
.nav a:hover::after,.nav a.is-active::after{width:100%}
.nav .btn{min-height:44px;padding:.6rem 1.3rem}
.burger{display:none;background:none;border:0;color:inherit;font-family:var(--sans);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;min-height:44px}

/* ============================================================ HERO */
.hero{position:relative;min-height:min(100svh,920px);display:grid;align-items:end;color:var(--creme);isolation:isolate;padding:0}
.hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:heroZoom 12s var(--ease) forwards}
@keyframes heroZoom{to{transform:scale(1)}}
.hero__veil{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(26,26,24,.35) 0%,rgba(26,26,24,.05) 35%,rgba(26,26,24,.55) 100%)}
.hero__inner{padding:9rem var(--gutter) 5.5rem;display:grid;grid-template-columns:1.25fr .75fr;gap:3rem;align-items:end}
.hero h1{max-width:12ch;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero .lead{color:rgba(252,251,250,.9);margin-top:1.4rem;max-width:52ch}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.2rem}
.hero__aside{justify-self:end;background:rgba(252,251,250,.12);backdrop-filter:blur(12px);border:1px solid rgba(252,251,250,.28);border-radius:4px;padding:1.6rem 1.8rem;max-width:360px}
.hero__aside .num{font-family:var(--serif);font-size:3.2rem;line-height:1}
.hero__aside p{font-size:.92rem;margin-top:.4rem;color:rgba(252,251,250,.9)}
.hero__aside a{display:inline-block;margin-top:1rem;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1.5px solid rgba(252,251,250,.6);padding-bottom:3px}
.hero__scroll{position:absolute;left:var(--gutter);bottom:2rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:.8rem;opacity:.8}
.hero__scroll::before{content:'';width:1px;height:48px;background:currentColor;animation:scrollPulse 2.2s infinite}
@keyframes scrollPulse{0%,100%{transform:scaleY(1);opacity:.4}50%{transform:scaleY(.4);opacity:1}}

/* Hero secondaire (pages intérieures) */
.hero--page{min-height:min(62svh,640px)}
.hero--page .hero__inner{grid-template-columns:1fr;padding-top:10rem}

/* ============================================================ 3 PORTES */
.doors{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--pierre);border-radius:4px;overflow:hidden;background:var(--creme);margin-top:-3.2rem;position:relative;z-index:2;box-shadow:0 20px 50px -30px rgba(26,26,24,.35)}
.door{padding:2rem 2.2rem;text-decoration:none;border-right:1px solid var(--pierre);transition:background .3s;display:flex;flex-direction:column;gap:.5rem;min-height:190px}
.door:last-child{border-right:0}
.door:hover{background:var(--sable)}
.door .k{font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sauge)}
.door h3{font-size:1.65rem}
.door p{font-size:.92rem;color:var(--gris);flex:1}
.door .go{font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;margin-top:.8rem}
.door .go svg{width:14px;height:14px;transition:transform .3s}
.door:hover .go svg{transform:translateX(4px)}

/* ============================================================ OPÉRATIONS / STOCK */
.section-head{display:flex;justify-content:space-between;align-items:end;gap:2rem;flex-wrap:wrap;margin-bottom:3rem}
.section-head h2{max-width:20ch}
.filters{display:flex;gap:.5rem;flex-wrap:wrap}
.filters button{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:transparent;border:1.5px solid var(--pierre);color:var(--gris);padding:.6rem 1.1rem;border-radius:40px;cursor:pointer;min-height:44px;transition:all .25s}
.filters button:hover,.filters button.is-on{border-color:var(--sauge);color:var(--sauge-fonce);background:var(--brume)}

.ops{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.op{background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;overflow:hidden;text-decoration:none;display:flex;flex-direction:column;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.op:hover{transform:translateY(-4px);box-shadow:0 26px 50px -30px rgba(26,26,24,.35)}
.op__img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--brume)}
.op__img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.op:hover .op__img img{transform:scale(1.05)}
.op__tag{position:absolute;top:1rem;left:1rem;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.42rem .8rem;border-radius:2px;background:rgba(252,251,250,.94);color:var(--sauge-fonce)}
.op__tag--soon{background:rgba(40,51,42,.86);color:var(--creme)}
.op__tag--last{background:var(--sauge);color:var(--creme)}
.op__body{padding:1.5rem 1.6rem 1.6rem;display:flex;flex-direction:column;gap:.4rem;flex:1}
.op__where{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sauge)}
.op h3{font-size:1.7rem}
.op__desc{font-size:.92rem;color:var(--gris);margin-top:.2rem}
.op__facts{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--pierre)}
.op__facts div{font-size:.8rem;color:var(--gris)}
.op__facts strong{display:block;font-size:1.05rem;color:var(--encre);font-weight:500}
.op__cta{margin-top:1.2rem;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem;color:var(--sauge-fonce)}
.op__cta svg{width:14px;height:14px}
.op--soon .op__img{filter:saturate(.7)}

.stock-bar{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--pierre);border-radius:4px;background:var(--blanc);margin-bottom:3rem;overflow:hidden}
.stock-bar > div{flex:1;min-width:180px;padding:1.4rem 1.6rem;border-right:1px solid var(--pierre);display:flex;flex-direction:column;justify-content:flex-end;gap:.3rem}
.stock-bar > div:last-child{border-right:0}
.stock-bar .n{font-family:var(--serif);font-size:2.2rem;line-height:1;white-space:nowrap}
.stock-bar .l{font-size:.78rem;color:var(--gris);margin-top:.3rem;letter-spacing:.04em}
.stock-bar .live{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sauge)}
.stock-bar .live::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--sauge);box-shadow:0 0 0 0 rgba(106,125,99,.6);animation:live 2s infinite}
@keyframes live{70%{box-shadow:0 0 0 9px rgba(106,125,99,0)}100%{box-shadow:0 0 0 0 rgba(106,125,99,0)}}

/* ============================================================ MANIFESTE */
.manifesto{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.manifesto h2{max-width:16ch}
.manifesto .lead{margin-top:1.4rem}
.manifesto__img{position:relative}
.manifesto__img img{border-radius:4px;aspect-ratio:4/5;object-fit:cover;width:100%}
.manifesto__img figcaption{position:absolute;left:-1.5rem;bottom:2rem;background:var(--creme);padding:1.2rem 1.5rem;max-width:300px;font-family:var(--serif);font-size:1.25rem;font-style:italic;line-height:1.3;border-left:3px solid var(--sauge)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:4rem;padding-top:3rem;border-top:1px solid var(--pierre)}
.pillar .n{font-family:var(--serif);font-size:2.6rem;color:var(--sauge);line-height:1}
.pillar h3{margin:.6rem 0 .6rem}
.pillar p{font-size:.95rem;color:var(--gris)}

/* ============================================================ TERRITOIRES + CARTE */
.terr{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.map{background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;padding:1.2rem;position:relative}
.map svg{width:100%;height:auto;display:block}
.map .dot{fill:var(--sauge);cursor:pointer;transition:r .2s}
.map .dot:hover{r:9}
.map .dot--soon{fill:var(--creme);stroke:var(--sauge);stroke-width:2}
.map .city{font-family:var(--sans);font-size:11px;fill:var(--gris);letter-spacing:.06em;text-transform:uppercase}
.map .place{font-family:var(--serif);font-size:16px;fill:var(--encre)}
.map .zone{fill:var(--brume);stroke:var(--sauge-pale);stroke-width:1;stroke-dasharray:4 4}
.map .zone-label{font-family:var(--serif);font-style:italic;font-size:22px;fill:var(--sauge-fonce)}
.map .river{fill:none;stroke:#B9C4CB;stroke-width:6;stroke-linecap:round;opacity:.8}
.map__legend{display:flex;gap:1.4rem;flex-wrap:wrap;font-size:.76rem;color:var(--gris);margin-top:.8rem;padding:0 .4rem}
.map__legend span{display:inline-flex;align-items:center;gap:.4rem}
.map__legend i{width:10px;height:10px;border-radius:50%;background:var(--sauge);display:inline-block}
.map__legend i.soon{background:var(--creme);border:2px solid var(--sauge)}
.terr__list{display:grid;gap:1.4rem;margin-top:2rem}
.terr__item{display:grid;grid-template-columns:110px 1fr;gap:1.2rem;align-items:center;text-decoration:none;padding:1rem;border:1px solid var(--pierre);border-radius:4px;background:var(--blanc);transition:border-color .3s}
.terr__item:hover{border-color:var(--sauge)}
.terr__item img{aspect-ratio:1;object-fit:cover;border-radius:3px}
.terr__item h3{font-size:1.5rem}
.terr__item p{font-size:.88rem;color:var(--gris)}

/* ============================================================ PREUVES */
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.proof figure{position:relative;border-radius:4px;overflow:hidden;aspect-ratio:4/3;background:var(--brume)}
.proof figure img{width:100%;height:100%;object-fit:cover}
.proof figcaption{position:absolute;inset:auto 0 0 0;padding:2.2rem 1.2rem 1rem;background:linear-gradient(180deg,transparent,rgba(26,26,24,.75));color:var(--creme);font-size:.82rem;display:flex;justify-content:space-between;align-items:end;gap:1rem}
.proof figcaption b{font-family:var(--serif);font-size:1.25rem;font-weight:400}
.proof figcaption time{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;opacity:.85;white-space:nowrap}
.timeline{display:flex;justify-content:space-between;margin-top:2.6rem;position:relative;padding-top:1.4rem}
.timeline::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--sauge-pale)}
.timeline div{font-size:.78rem;color:var(--gris);position:relative;padding-top:.4rem;flex:1}
.timeline div::before{content:'';position:absolute;top:-1.4rem;left:0;width:9px;height:9px;border-radius:50%;background:var(--sauge);transform:translateY(-4px)}
.timeline div.todo::before{background:var(--creme);border:2px solid var(--sauge-pale)}
.timeline b{display:block;color:var(--encre);font-weight:500}
.partners{display:flex;flex-wrap:wrap;gap:.8rem 2.4rem;margin-top:2.5rem;align-items:center;font-family:var(--serif);font-size:1.25rem;color:var(--gris)}
.partners span{opacity:.75}

/* ============================================================ DIRIGEANTS */
.duo{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.duo__portraits{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.portrait{aspect-ratio:4/5;border-radius:4px;background:linear-gradient(160deg,#3A4838,#28332A);position:relative;overflow:hidden;display:flex;align-items:end;padding:1.2rem;color:var(--creme)}
.portrait::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(194,206,188,.25),transparent 60%)}
.portrait svg{position:absolute;inset:0;width:100%;height:100%;opacity:.35}
.portrait .who{position:relative;font-family:var(--serif);font-size:1.4rem;line-height:1.15}
.portrait .who small{display:block;font-family:var(--sans);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;margin-top:.3rem;opacity:.85}
.portrait .todo{position:absolute;top:1rem;right:1rem;font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.3rem .55rem;border:1px solid rgba(252,251,250,.5);border-radius:2px}
.portrait:nth-child(2){transform:translateY(2.5rem)}
blockquote.quote{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1.3;font-weight:300;font-style:italic;max-width:26ch}
blockquote.quote+p{margin-top:1.4rem;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}

/* ============================================================ FONCIER (bloc CTA) */
.foncier{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.steps{display:grid;gap:1.1rem;margin-top:2rem}
.step{display:grid;grid-template-columns:52px 1fr;gap:1rem;align-items:start}
.step .n{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--sauge-pale);display:grid;place-items:center;font-family:var(--serif);font-size:1.25rem;color:var(--sauge-pale)}
.step b{font-weight:500;display:block}
.step p{font-size:.9rem;color:#D6DCD2}
.card{background:var(--creme);color:var(--encre);border-radius:4px;padding:2rem 2.2rem}
.card h3{margin-bottom:.4rem}
.field{display:grid;gap:.35rem;margin-top:1rem}
.field label{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.field input,.field select,.field textarea{font-family:var(--sans);font-size:1rem;min-height:52px;padding:.75rem 1rem;border:1.5px solid var(--pierre);border-radius:3px;background:var(--blanc);color:var(--encre);width:100%}
.field textarea{min-height:110px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--sauge);outline-offset:1px;border-color:var(--sauge)}
.row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.consent{font-size:.78rem;color:var(--gris);margin-top:1rem;display:flex;gap:.6rem;align-items:start}
.consent input{width:20px;height:20px;margin-top:.15rem}

/* ============================================================ JOURNAL */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.post{text-decoration:none;display:grid;gap:.6rem;padding-top:1.2rem;border-top:1px solid var(--pierre)}
.post .k{font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sauge)}
.post h3{font-size:1.55rem}
.post p{font-size:.9rem;color:var(--gris)}
.post:hover h3{color:var(--sauge-fonce)}

/* ============================================================ CTA FINAL + FOOTER */
.cta-final{text-align:center}
.cta-final h2{max-width:22ch;margin-inline:auto}
.cta-final .btn{margin-top:2rem}
.footer{background:var(--foret);color:#C9D0C5;padding:4rem 0 2rem;font-size:.86rem}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:2.5rem}
.footer h4{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--creme);margin-bottom:1rem}
.footer a{text-decoration:none;display:block;padding:.25rem 0}
.footer a:hover{color:var(--creme)}
.footer .logo img{height:40px;margin-bottom:1rem}
.footer__bottom{margin-top:3rem;padding-top:1.4rem;border-top:1px solid rgba(252,251,250,.14);display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.74rem;color:#98A293}

/* ============================================================ PAGES INTÉRIEURES */
.breadcrumb{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(252,251,250,.8);margin-bottom:1.2rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.split img{border-radius:4px;width:100%;object-fit:cover}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:1.4rem}
.kpi{padding:1.6rem;border:1px solid var(--pierre);border-radius:4px;background:var(--blanc)}
.kpi .n{font-family:var(--serif);font-size:2.6rem;line-height:1}
.kpi .l{font-size:.8rem;color:var(--gris);margin-top:.4rem}
.kpi .src{font-size:.68rem;color:#8A8F86;margin-top:.5rem;letter-spacing:.06em;text-transform:uppercase}
.faq details{border-top:1px solid var(--pierre);padding:1.2rem 0}
.faq details:last-child{border-bottom:1px solid var(--pierre)}
.faq summary{cursor:pointer;font-family:var(--serif);font-size:1.45rem;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:44px}
.faq summary::after{content:'+';font-size:1.6rem;color:var(--sauge);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin-top:.8rem;color:var(--gris);max-width:70ch}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.team .portrait{aspect-ratio:3/4}
.team .portrait:nth-child(2){transform:none}
.bio{margin-top:1rem}
.bio h3{font-size:1.5rem}
.bio p{font-size:.9rem;color:var(--gris);margin-top:.4rem}
.annot{position:relative;display:inline-block;background:#FFF4D6;color:#6B4E00;font-size:.72rem;font-weight:600;letter-spacing:.06em;padding:.25rem .55rem;border-radius:2px;border:1px dashed #D9B25B;margin:.4rem 0}
.note-agence{background:#FFF9E8;border:1px dashed #D9B25B;color:#5B4300;font-size:.8rem;padding:.8rem 1rem;border-radius:3px;margin-top:1.2rem;line-height:1.5}
.note-agence b{font-weight:700}

/* Plan-masse interactif */
.pdm{display:grid;grid-template-columns:1.3fr .7fr;gap:2rem;align-items:start}
.pdm__map{background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;padding:1rem}
.pdm svg{width:100%;height:auto;display:block}
.lot{cursor:pointer;transition:fill .25s;stroke:var(--creme);stroke-width:2}
.lot--dispo{fill:#B5C6AE}.lot--dispo:hover,.lot--dispo.is-on{fill:var(--sauge)}
.lot--reserve{fill:#DCD3BF}.lot--vendu{fill:#D3D3CE}
.lot-label{font-family:var(--sans);font-size:11px;font-weight:600;fill:var(--encre);pointer-events:none}
.pdm__side{position:sticky;top:6rem}
.lot-card{border:1px solid var(--pierre);border-radius:4px;background:var(--blanc);padding:1.6rem}
.lot-card .k{font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sauge)}
.lot-card h3{font-size:2rem;margin:.2rem 0 .6rem}
.lot-card dl{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--pierre)}
.lot-card dt{font-size:.72rem;color:var(--gris);letter-spacing:.06em;text-transform:uppercase}
.lot-card dd{font-size:1.05rem;font-weight:500}
.legend{display:flex;gap:1.2rem;font-size:.76rem;color:var(--gris);margin-top:.8rem;flex-wrap:wrap}
.legend i{width:12px;height:12px;display:inline-block;border-radius:2px;margin-right:.35rem;vertical-align:-1px}

/* ============================================================ SIGNATURE (haie bocagère) */
.signature{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.signature h2{max-width:16ch}
.signature .eyebrow{color:var(--corten)}.signature .eyebrow::before{background:var(--corten)}
.haie{background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;padding:1.2rem 1.2rem .8rem}
.haie svg{width:100%;height:auto;display:block}
.haie figcaption{display:flex;justify-content:space-between;gap:1rem;font-size:.74rem;color:var(--gris);margin-top:.8rem;letter-spacing:.04em}
.haie figcaption b{color:var(--corten);font-weight:600}
.details{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:3.5rem}
.detail{padding:1.6rem 1.7rem;border:1px solid var(--pierre);border-radius:4px;background:var(--blanc);position:relative}
.detail::before{content:'';position:absolute;top:0;left:1.7rem;width:34px;height:3px;background:var(--corten)}
.detail h3{font-size:1.55rem;margin-top:.4rem}
.detail p{font-size:.92rem;color:var(--gris);margin-top:.5rem}
.detail .mat{font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--corten)}
@media (max-width:820px){.signature{grid-template-columns:1fr}.details{grid-template-columns:1fr}}

/* Reveal */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.12s}.reveal-d2{transition-delay:.24s}.reveal-d3{transition-delay:.36s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.hero__bg img{animation:none}}

/* ============================================================ RESPONSIVE */
@media (max-width:1024px){
  .ops,.proof,.posts,.pillars,.team{grid-template-columns:1fr 1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .footer__grid{grid-template-columns:1fr 1fr}
  .hero__inner{grid-template-columns:1fr}
  .hero__aside{justify-self:start}
}
@media (max-width:820px){
  html{font-size:17px}
  .header .logo img{height:30px}
  .stock-bar > div{min-width:50%;border-right:0}
  .stock-bar > div:nth-child(odd){border-right:1px solid var(--pierre)}
  .stock-bar .n{font-size:1.9rem}
  .nav{display:none}
  .burger{display:inline-flex}
  .doors{grid-template-columns:1fr;margin-top:0}
  .door{border-right:0;border-bottom:1px solid var(--pierre);min-height:0}
  .door:last-child{border-bottom:0}
  .manifesto,.terr,.duo,.foncier,.split,.pdm{grid-template-columns:1fr}
  .manifesto__img figcaption{left:1rem}
  .portrait:nth-child(2){transform:none}
  .row{grid-template-columns:1fr}
  .pdm__side{position:static}
}
@media (max-width:560px){
  .ops,.proof,.posts,.pillars,.team,.kpis,.footer__grid{grid-template-columns:1fr}
  .stock-bar > div{min-width:50%}
  .timeline{flex-wrap:wrap;gap:1rem}
  .timeline div{flex:1 1 45%}
  .hero__inner{padding-top:7rem}
}


/* ============================================================
   PASSE MOBILE (17/09/2026) — le site est d'abord lu au téléphone
   (QR print, Meta, lien en bio). Pouce, une main, plein soleil.
   ============================================================ */
.swipe-hint{display:none}
.lot-list{display:none}
.mbar,.mmenu{display:none}

@media (max-width:820px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  section{padding:3.4rem 0}
  h1{font-size:clamp(2.15rem,9.4vw,2.9rem);line-height:1.1}
  h2{font-size:clamp(1.85rem,7.6vw,2.4rem)}
  .lead{font-size:1.05rem;line-height:1.6}
  .eyebrow{font-size:.68rem;letter-spacing:.18em;margin-bottom:1rem}
  .section-head{margin-bottom:1.8rem;gap:1.2rem}
  .note-agence{font-size:.74rem}

  /* En-tête */
  .header{padding:.85rem var(--gutter)}
  .header.is-solid,.header--solid{padding:.7rem var(--gutter)}
  .header .logo img{height:26px}
  .burger{width:48px;height:48px;justify-content:center;align-items:center;gap:0;font-size:0;position:relative;margin-right:-10px}
  .burger::before,.burger::after{content:'';position:absolute;left:12px;right:12px;height:2px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),top .3s var(--ease)}
  .burger::before{top:19px}.burger::after{top:27px}
  .menu-open .burger::before{top:23px;transform:rotate(45deg)}
  .menu-open .burger::after{top:23px;transform:rotate(-45deg)}
  .menu-open .header{background:var(--creme);color:var(--encre);box-shadow:none}
  .menu-open .header .logo .logo-light{display:none}.menu-open .header .logo .logo-dark{display:block}
  .menu-open{overflow:hidden}

  /* Menu plein écran */
  .mmenu{display:flex;flex-direction:column;position:fixed;inset:0;z-index:45;background:var(--creme);padding:5.2rem var(--gutter) calc(1.5rem + env(safe-area-inset-bottom));opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}
  .menu-open .mmenu{opacity:1;visibility:visible;transform:none}
  .mmenu a.big{font-family:var(--serif);font-size:1.95rem;line-height:1.15;text-decoration:none;padding:1rem 0;border-bottom:1px solid var(--pierre);display:flex;justify-content:space-between;align-items:center;min-height:64px}
  .mmenu a.big small{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sauge)}
  .mmenu .foot{margin-top:auto;display:grid;gap:.7rem}
  .mmenu .foot .btn{justify-content:center;width:100%}
  .mmenu .foot p{font-size:.8rem;color:var(--gris);text-align:center}

  /* Barre d'action fixe — le pouce n'a pas à chercher */
  .mbar{display:grid;grid-template-columns:auto 1fr;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:.6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));background:rgba(252,251,250,.96);backdrop-filter:blur(14px);border-top:1px solid var(--pierre);transition:transform .35s var(--ease)}
  .mbar.is-hidden{transform:translateY(110%)}
  .mbar .btn{min-height:48px;justify-content:center;padding:.6rem 1rem;font-size:.74rem;letter-spacing:.1em}
  .mbar .call{border:1.5px solid var(--sauge);color:var(--sauge-fonce);background:var(--blanc);padding:.6rem 1.1rem}
  .mbar .call svg{width:18px;height:18px}
  .menu-open .mbar{transform:translateY(110%)}

  /* Hero */
  .hero{min-height:min(100svh,760px)}
  .hero--page{min-height:min(74svh,560px)}
  .hero__veil{background:linear-gradient(180deg,rgba(26,26,24,.45) 0%,rgba(26,26,24,.15) 30%,rgba(26,26,24,.72) 100%)}
  .hero__inner{padding:6.2rem var(--gutter) 1.6rem;gap:1.1rem}
  .hero--page .hero__inner{padding-top:6.2rem}
  .hero--page .hero__veil{background:linear-gradient(180deg,rgba(26,26,24,.55) 0%,rgba(26,26,24,.5) 45%,rgba(26,26,24,.8) 100%)}
  .hero h1{max-width:none}
  .hero .lead{margin-top:1rem;font-size:1.02rem}
  .hero__actions{margin-top:1.5rem;gap:.7rem}
  .hero__actions .btn{width:100%;justify-content:center}
  .hero__scroll{display:none}
  .hero__aside{max-width:none;width:100%;display:flex;align-items:center;gap:.9rem;padding:.7rem 1rem}
  .hero__aside .num{font-size:2.3rem}
  .hero__aside p{margin:0;font-size:.86rem;line-height:1.35}
  .hero__aside .long,.hero__aside a{display:none}
  .hero .lead .long{display:none}

  /* Trois portes : trois lignes, pas trois pavés */
  .doors{box-shadow:none;border-radius:0;border-left:0;border-right:0;margin-inline:calc(-1*var(--gutter))}
  .door{padding:1.15rem var(--gutter);display:grid;grid-template-columns:1fr auto;align-items:center;gap:.1rem 1rem;min-height:76px}
  .door .k{grid-column:1}.door h3{grid-column:1;font-size:1.4rem}
  .door p{display:none}
  .door .go{grid-column:2;grid-row:1 / span 2;margin:0;font-size:0}
  .door .go svg{width:20px;height:20px;color:var(--sauge)}

  /* Filtres : une ligne qui défile */
  .filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(-1*var(--gutter));padding-inline:var(--gutter);scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100vw}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:0 0 auto;min-height:48px;padding:.6rem 1.2rem}

  /* Stock */
  .stock-bar{margin-bottom:1.6rem}
  .stock-bar > div{padding:1rem 1.1rem}
  .stock-bar > div:nth-child(-n+2){border-bottom:1px solid var(--pierre)}
  .stock-bar .l{font-size:.74rem;line-height:1.35}

  /* Accueil : les opérations se feuillettent */
  #operations .ops{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.9rem;margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter) .6rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  #operations .ops::-webkit-scrollbar{display:none}
  #operations .op{flex:0 0 84%;scroll-snap-align:center}
  #operations .reveal,.proof .reveal{opacity:1;transform:none}
  .swipe-hint{display:block;font-size:.76rem;color:var(--gris);margin-top:.6rem;letter-spacing:.04em}
  .op:hover{transform:none;box-shadow:none}
  .op__body{padding:1.2rem 1.25rem 1.3rem}
  .op h3{font-size:1.6rem}
  .op__cta{min-height:44px}

  /* Hub : cartes courtes, image en bandeau */
  #ops:not(#operations *) .op__img{aspect-ratio:16/9}
  #ops:not(#operations *){gap:1rem}

  /* Manifeste, piliers */
  .manifesto__img img{aspect-ratio:4/3}
  .manifesto__img figcaption{position:static;max-width:none;margin-top:-1px;border-left:3px solid var(--sauge);background:var(--blanc);font-size:1.15rem}
  .pillars{margin-top:2.4rem;padding-top:2rem;gap:1.6rem;grid-template-columns:1fr!important}
  .pillar{display:grid;grid-template-columns:54px 1fr;gap:0 .6rem}
  .pillar .n{font-size:2rem;grid-row:span 2}
  .pillar h3{margin:.1rem 0 .3rem;font-size:1.4rem}

  /* Signature */
  .haie{padding:.8rem .8rem .6rem}
  .haie .lbl{display:none}
  .haie figcaption{flex-direction:column;gap:.2rem;font-size:.72rem}
  .details{margin-top:2rem;gap:.9rem}
  .detail{padding:1.3rem 1.3rem}

  /* Carte */
  .map{padding:.6rem}
  .map .place{font-size:24px}.map .city{font-size:16px}.map .zone-label{font-size:30px}
  .map .dot{r:11}.map .dot--soon{r:10}
  .terr__item{grid-template-columns:84px 1fr;padding:.8rem}

  /* Chantiers : on feuillette aussi */
  .proof{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:.8rem;margin-inline:calc(-1*var(--gutter));padding:0 var(--gutter) .4rem;scrollbar-width:none}
  .proof::-webkit-scrollbar{display:none}
  .proof figure{flex:0 0 84%;scroll-snap-align:center}
  .timeline{flex-direction:column;gap:0;padding:0 0 0 1.4rem;margin-top:2rem;border-left:1px solid var(--sauge-pale)}
  .timeline::before{display:none}
  .timeline div{padding:.1rem 0 1.1rem;flex:none;font-size:.84rem}
  .timeline div::before{top:.45rem;left:-1.4rem;transform:translateX(-4px)}
  .partners{font-size:1.05rem;gap:.3rem 1rem;margin-top:1.6rem}
  .partners span:nth-child(even){display:none}

  /* Fondateurs */
  .duo__portraits{gap:.7rem}
  blockquote.quote{font-size:1.45rem;max-width:none}

  /* Formulaires : gros, espacés, sans zoom iOS */
  .card{padding:1.4rem 1.2rem}
  .field input,.field select,.field textarea{font-size:17px;min-height:56px}
  .field label{font-size:.7rem}
  .consent{font-size:.82rem;align-items:center}
  .consent input{width:26px;height:26px;flex:0 0 26px}
  .card .btn{width:100%;justify-content:center;min-height:56px}
  .steps{gap:.9rem}

  /* Plan-masse : le doigt choisit dans une liste, le plan confirme */
  .pdm{gap:1rem}
  .pdm__map{padding:.6rem}
  .lot-label{font-size:16px}
  .lot-list{display:grid;gap:.5rem;margin:.9rem 0 .4rem}
  .lot-list button{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;min-height:56px;padding:.6rem 1rem;border:1.5px solid var(--pierre);border-radius:4px;background:var(--blanc);font-family:var(--sans);font-size:.95rem;color:var(--encre);text-align:left;cursor:pointer}
  .lot-list button b{font-family:var(--serif);font-size:1.35rem;font-weight:400}
  .lot-list button span{color:var(--gris);font-size:.85rem}
  .lot-list button em{font-style:normal;font-weight:600;color:var(--sauge-fonce)}
  .lot-list button.is-on{border-color:var(--sauge);background:var(--brume)}
  .legend{font-size:.72rem;gap:.8rem}

  /* Divers */
  .kpis{grid-template-columns:1fr 1fr;gap:.7rem}
  .kpi{padding:1.1rem}.kpi .n{font-size:2rem}
  .team{grid-template-columns:1fr 1fr!important;gap:1rem}
  .team > div:last-child{grid-column:span 2}
  .team > div:last-child .portrait{aspect-ratio:16/9}
  .faq summary{font-size:1.3rem;min-height:56px}
  .split img{aspect-ratio:4/3!important}
  .posts{gap:0}.post{padding:1.2rem 0}
  .cta-final .btn{width:100%;justify-content:center}
  .footer{padding:2.6rem 0 1.4rem}
  .footer__grid{grid-template-columns:1fr 1fr!important;gap:1.8rem 1.2rem}
  .footer__grid > div:first-child{grid-column:span 2}
  .footer a{padding:.55rem 0}
  .footer__bottom{flex-direction:column;gap:.4rem}
}
@media (max-width:380px){
  .hero__aside{grid-template-columns:1fr}.hero__aside .num{grid-row:auto}
  .team{grid-template-columns:1fr!important}.team > div:last-child{grid-column:auto}
}


/* ============================================================
   PRODUCTION 17/09/2026
   Le premier écran reprend celui du site en ligne (demande Quentin) :
   même image, même cadrage (object-position center 40 %, pas de zoom),
   même voile crème, même texte, même logo carré.
   ============================================================ */
.header{color:var(--encre);padding:2rem 64px}
.header.is-solid,.header--solid{padding:1.1rem 64px}
.header .logo img{height:100px;width:auto}
.header.is-solid .logo img{height:86px}
.nav .btn{color:var(--creme)}
.nav__home{display:inline-flex;align-items:center;color:var(--encre);opacity:.72;transition:opacity .25s,color .25s}
.nav__home svg{width:21px;height:21px}
.nav__home:hover{opacity:1;color:var(--sauge-fonce)}
.nav__home::after{display:none}
.nav .btn::after{display:none}

.hero{min-height:0;height:100vh;height:100svh;display:flex;align-items:center;color:#3A3A35;overflow:hidden}
.hero__bg img{object-position:center 40%;transform:none;animation:none}
.hero__veil{background:linear-gradient(135deg,rgba(245,242,237,.93) 0%,rgba(245,242,237,.78) 40%,rgba(245,242,237,.3) 70%,rgba(245,242,237,.08) 100%)}
.hero{font-family:'DM Sans',var(--sans)}
.hero h1{font-family:var(--serif)}
.hero .btn,.hero__badge,.hero__text{font-family:'DM Sans',var(--sans)}
.hero .btn{white-space:nowrap}
.hero__inner{display:block;position:relative;z-index:2;padding:0 128px;max-width:976px;width:100%}
.doors{margin-top:3.5rem}
.hero__badge{display:inline-flex;align-items:center;gap:.6rem;padding:8px 19px;background:rgba(107,125,91,.08);border:1px solid rgba(107,125,91,.15);border-radius:2px;font-size:11.5px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:#6B7D5B;margin-bottom:40px}
.hero__badge::before{content:'';width:6px;height:6px;background:#6B7D5B;border-radius:50%}
.hero h1{font-size:clamp(44.8px,5vw,67.2px);font-weight:300;line-height:1.15;color:#3A3A35;margin-bottom:28.8px;max-width:none;text-shadow:none}
.hero h1 em{font-style:italic;color:#6B7D5B;font-weight:400}
.hero__text{font-size:16.8px;line-height:1.75;color:#6B6B63;font-weight:300;max-width:520px;margin-bottom:44.8px}
.hero__actions{margin-top:0;gap:19px;align-items:center}
.hero .btn{font-size:12.8px;font-weight:500;letter-spacing:.1em;border-radius:2px;padding:16px 38px;min-height:0}
.hero .btn--primary{background:#6B7D5B}
.hero .btn--primary:hover{background:#4E5C44;transform:translateY(-2px);box-shadow:0 8px 30px rgba(107,125,91,.25)}
.btn--glass{background:rgba(255,255,255,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#3A3A35;border:1.5px solid rgba(255,255,255,.5);padding:16px 32px}
.btn--glass:hover{background:rgba(255,255,255,.6);border-color:#6B7D5B;color:#4E5C44}
.hero__scroll{left:64px;bottom:48px;color:#6B6B63;opacity:1;z-index:2}
.hero__scroll span{writing-mode:vertical-rl;font-size:10.9px;letter-spacing:.2em}
.hero__scroll::before{height:50px;background:#6B7D5B}

/* Grand écran : les trois portes à cheval sur la ligne de flottaison.
   Seuls le surtitre et le titre dépassent dans le premier écran ; le reste se découvre au défilement. */
@media (min-width:821px){
  .doors{margin-top:-118px;z-index:3}
  .door{padding-top:2rem}
  .door h3{white-space:nowrap}
  .door p{margin-top:1.3rem}
}

/* Actualités */
.actus{display:grid;gap:1.6rem;max-width:1040px}
.actu{display:grid;grid-template-columns:340px 1fr;background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;overflow:hidden}
.actu--texte{grid-template-columns:1fr;border-left:3px solid var(--sauge)}
.actu__img{background:var(--brume)}
.actu__img img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.actu__body{padding:1.8rem 2rem;display:flex;flex-direction:column;gap:.5rem}
.actu time{font-size:.82rem;color:var(--gris);letter-spacing:.04em}
.actu h2{font-size:clamp(1.6rem,2.4vw,2.1rem)}
.actu p{color:var(--gris);font-size:.98rem;max-width:60ch}
.actu .op__cta{margin-top:.6rem;text-decoration:none;min-height:44px}
.actu.is-past{opacity:.72}

/* Pages intérieures : même voile clair, hauteur réduite */
.hero--page{height:auto;min-height:min(70svh,680px);padding:190px 0 80px}
.hero--page h1{font-size:clamp(40px,4.4vw,60px)}
.hero--page .hero__text{margin-bottom:36px}
.first{padding-top:13rem}
.h1-page{font-size:clamp(2.4rem,5vw,4.2rem)}
.pillars--4{grid-template-columns:repeat(4,1fr)}
.tel-big{font-family:var(--serif);font-size:2.2rem;text-decoration:none;color:var(--sauge-fonce)}
.legal h3{margin:2.2rem 0 .5rem;font-size:1.5rem}
.legal p{color:var(--gris)}
.manifesto__img figcaption{font-size:1.05rem}

/* Formulaires : retour utilisateur */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{margin-top:1rem;font-size:.92rem;min-height:1.2em}
.form-msg.ok{color:var(--sauge-fonce);font-weight:500}
.form-msg.ko{color:#9B3B2E}
.js-form.is-sent > *:not(.form-msg){display:none}
.js-form.is-sent .form-msg{font-family:var(--serif);font-size:1.5rem;line-height:1.3;color:var(--encre);margin:0}
.js-form button[disabled]{opacity:.6;cursor:wait}
.stock-bar .live::before{animation:none}

@media (max-width:1100px){.header{padding:1.5rem 32px}.header.is-solid{padding:1rem 32px}.nav{gap:1.3rem}}
@media (max-width:820px){
  .header,.header.is-solid,.header--solid{padding:1rem 1.5rem}
  .header .logo img{height:72px}
  .header.is-solid .logo img{height:65px}
  .burger{margin-right:-6px}
  .burger::before,.burger::after{background:#3A3A35}
  .burger::before{top:16px;box-shadow:0 8px 0 #3A3A35}.burger::after{top:32px}
  .menu-open .burger::before{top:24px;box-shadow:none}.menu-open .burger::after{top:24px}
  .op__facts strong{font-size:1rem;white-space:nowrap}
  .stock-bar .live{font-size:.62rem;letter-spacing:.1em}
  .hero{height:100vh;height:100svh;min-height:0;align-items:flex-start;padding:120px 16px 48px}
  .hero__inner{padding:0 8px 0 16px;gap:0;max-width:none}
  .hero--page .hero__veil{background:linear-gradient(180deg,rgba(245,242,237,.95) 0%,rgba(245,242,237,.86) 60%,rgba(245,242,237,.7) 100%)}
  .hero__badge{font-size:10.5px;letter-spacing:.12em;white-space:nowrap;margin-bottom:28.8px}
  .hero h1{font-size:35.2px;line-height:1.15}
  .hero__text{font-size:16.8px}
  .hero__actions{flex-direction:column;align-items:flex-start;gap:19px;margin-top:0}
  .hero__actions .btn{width:auto}
  .hero__scroll{display:none}
  .hero--page{height:auto;min-height:0;padding:150px 16px 48px}
  .hero--page h1{font-size:33px}
  .first{padding-top:9.5rem}
  .doors{margin-top:0}
  .pillars--4{grid-template-columns:1fr!important}
  .actu{grid-template-columns:1fr}
  .actu__img img{aspect-ratio:16/9}
  .actu__body{padding:1.3rem 1.25rem}
  .mmenu{padding-top:7rem}
  .tel-big{font-size:2rem}
}

/* ── Navigation : six entrées. Le bouton « Nous contacter » sortait du cadre dès 1080 px
   (déjà avec cinq entrées). Sous 1400 px la barre se resserre, sous 1180 px elle passe au burger. */
@media (max-width:1400px){
  .nav{gap:1.05rem;margin-left:1.2rem}
  .nav a{font-size:.7rem;letter-spacing:.07em}
  .nav .btn{padding:.6rem 1rem}
}
@media (max-width:1180px){
  .nav{display:none}
  .burger{display:inline-flex}
}

/* ── Carte des territoires (page Le groupe) : l'image porte deja sa marge interne,
   pas de cadre ni d'ombre, juste un filet discret comme les autres figures. */
.carte{margin:0}
.carte img{width:100%;height:auto;display:block;border:1px solid var(--pierre)}
.carte figcaption{margin-top:.7rem}

/* ── Mention ARPP sur un hero dont le fond est une perspective : lisible sans
   concurrencer le titre, calée en bas à droite comme un crédit photo. */
.hero__mention{
  position:absolute;right:var(--gutter);bottom:1.1rem;margin:0;z-index:3;
  font-family:var(--sans);font-size:.68rem;letter-spacing:.04em;
  color:var(--creme);opacity:.82;text-shadow:0 1px 3px rgba(0,0,0,.45);
  max-width:min(520px,80vw);text-align:right;
}
@media (max-width:820px){
  .hero__mention{left:var(--gutter);right:var(--gutter);text-align:left;font-size:.62rem;bottom:.8rem}
}

/* ── Galerie de perspectives : trois vues de même hauteur, une colonne en mobile. */
.galerie{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.galerie figure{margin:0}
.galerie img{width:100%;height:100%;aspect-ratio:3/2;object-fit:cover;display:block}
@media (max-width:820px){
  .galerie{grid-template-columns:1fr;gap:.9rem}
}

/* ── Rappel d'un support imprimé (encart Feria) : reconnaissance immédiate pour
   qui arrive par le QR. Masqué par [hidden] tant qu'app.js ne l'ouvre pas. */
.rappel{display:block;background:var(--brume);border-bottom:1px solid var(--pierre)}
.rappel[hidden]{display:none}
.rappel__in{display:grid;grid-template-columns:420px 1fr;gap:2rem;align-items:center;padding-top:1.6rem;padding-bottom:1.6rem}
.rappel img{width:100%;height:auto;display:block;border:1px solid var(--pierre)}
.rappel__k{font-family:var(--sans);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sauge-fonce);margin:0 0 .5rem}
.rappel__t{font-family:var(--serif);font-size:1.35rem;line-height:1.35;margin:0 0 1.1rem;color:var(--encre)}
@media (max-width:820px){
  .rappel__in{grid-template-columns:1fr;gap:1.1rem}
  .rappel__t{font-size:1.15rem}
}
/* Les trois portes chevauchent la ligne de flottaison (margin-top négative) :
   quand le rappel s'intercale entre le hero et elles, ce décalage n'a plus lieu d'être. */
.rappel:not([hidden]) + .wrap .doors{margin-top:0}

/* ── Actualité dont l'image est déjà au format d'une vignette (16/9) : la fiche
   adopte ce format au lieu du 4/3, sinon le cadre recoupe l'image. Colonne un peu
   plus large pour garder une hauteur de fiche comparable aux autres. Et le
   recadrage part du haut : s'il faut rogner, ce sera du ciel, jamais le sujet. */
.actu--large{grid-template-columns:420px 1fr}
.actu--large .actu__img img{aspect-ratio:16/9;object-position:center bottom}
.amini--large .amini__img img{object-position:center bottom}
@media (max-width:820px){.actu--large{grid-template-columns:1fr}}

/* ── Actualité dont l'image est un support imprimé : on ne la recadre pas.
   Un encart de presse rogné n'est plus reconnaissable, or c'est tout l'objet. */
.actu--entier .actu__img{background:var(--sable);display:flex;align-items:center}
.actu--entier .actu__img img{object-fit:contain;height:auto}

/* ── Hero de page : le texte est SOMBRE sur voile crème (règle du premier écran,
   reprise de l'ancien site) — surtout ne pas assombrir le fond. Le dégradé à 135°
   laisse le bas-gauche trop découvert, or c'est là que tombe le chapô des pages
   intérieures (padding-top 10rem). Voile presque horizontal, qui couvre toute la
   colonne de texte sans masquer la photo à droite. */
.hero--page .hero__veil{
  background:linear-gradient(100deg,
    rgba(245,242,237,.95) 0%,
    rgba(245,242,237,.90) 34%,
    rgba(245,242,237,.52) 62%,
    rgba(245,242,237,.10) 100%);
}

/* ── Pied de page mobile : « Opérations » et « BK Groupe » côte à côte sur deux
   colonnes étroites devenaient illisibles (titres d'opération repliés sur trois
   lignes). Une seule colonne, et la commune passe sous le nom de l'opération. */
.footer a small{display:block;font-size:.72rem;letter-spacing:.06em;opacity:.62;margin-top:.1rem}
@media (max-width:820px){
  .footer__grid{grid-template-columns:1fr!important;gap:2rem}
  .footer__grid > div:first-child{grid-column:auto}
  .footer h4{margin-bottom:.6rem}
}

/* ── Carte d'opération : le geste principal est « être rappelé » et couvre toute
   la carte ; le site de l'opération reste accessible, en second, au-dessus. */
.op{position:relative}
.op__cta{position:static}
.op__cta::after{content:'';position:absolute;inset:0;z-index:1}
.op__site{position:relative;z-index:2;display:inline-flex;align-items:center;gap:.4rem;
  margin-top:.55rem;font-family:var(--sans);font-size:.7rem;font-weight:500;
  letter-spacing:.11em;text-transform:uppercase;color:var(--gris);text-decoration:none}
.op__site:hover{color:var(--sauge-fonce)}
.op__site svg{width:12px;height:12px}


/* ============================================================
   17/09/2026 (soir) — passe de contenu demandée par Quentin :
   ni prix ni disponibilité, plus de filtres, réalisations,
   actualités sur l'accueil, portraits en attente, tertiaire.
   ============================================================ */

/* ── Page Terrains : un titre par territoire remplace le sélecteur.
   L'en-tête fixe mesure ~8 rem, d'où la marge de défilement des ancres. */
.terr-titre{margin:3.4rem 0 1.6rem;font-size:clamp(1.9rem,3.4vw,2.6rem);scroll-margin-top:8rem}
.terr-titre:first-of-type{margin-top:2.6rem}

/* ── Réalisations : des opérations terminées, donc des vignettes sobres —
   pas de bouton, pas de prix. Quatre par ligne, deux en mobile. */
.reals{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.real{margin:0;background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;overflow:hidden}
.real__img{position:relative;background:var(--brume)}
.real__img img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.real figcaption{padding:1.1rem 1.2rem 1.3rem}
.real h3{font-size:1.35rem;margin-top:.25rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}
.real__pre{font-family:var(--sans);font-size:.66rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gris);border:1px solid var(--pierre);border-radius:2px;padding:.15rem .45rem}
.real figcaption p{margin-top:.45rem;font-size:.82rem;letter-spacing:.04em;color:var(--sauge-fonce)}

/* ── Accueil : les trois dernières actualités, en vignettes cliquables. */
.aminis{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.amini{display:flex;flex-direction:column;background:var(--blanc);border:1px solid var(--pierre);
  border-radius:4px;overflow:hidden;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s}
.amini:hover{border-color:var(--sauge);transform:translateY(-3px)}
.amini__img{background:var(--brume)}
.amini__img img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.amini--entier .amini__img{background:var(--sable);display:flex;align-items:center}
.amini--entier .amini__img img{object-fit:contain;height:auto}
.amini--texte{border-left:3px solid var(--sauge)}
.amini__body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.4rem}
.amini time{font-size:.78rem;color:var(--gris);letter-spacing:.04em}
.amini h3{font-size:1.3rem;line-height:1.25}
.amini p{font-size:.88rem;color:var(--gris);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.amini.is-past{opacity:.72}

/* ── Accueil : les deux territoires remplacent le détail des opérations.
   Photo pleine largeur du cadre, texte dessous — et non plus une vignette
   carrée à gauche du texte (le gabarit .terr__item de la maquette). */
.terr__list--duo{grid-template-columns:1fr 1fr;margin-top:2.4rem;gap:1.8rem}
.terr__list--duo .terr__item{display:block;padding:0;overflow:hidden}
.terr__img img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:0}
.terr__txt{padding:1.5rem 1.7rem 1.7rem}
.terr__txt h3{font-size:1.8rem}
.terr__txt p{margin-top:.5rem}
.terr__txt .go{display:inline-flex;align-items:center;gap:.5rem;margin-top:1.1rem;
  font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sauge-fonce)}
.terr__txt .go svg{width:15px;height:15px;transition:transform .3s var(--ease)}
.terr__item:hover .go svg{transform:translateX(5px)}
@media (max-width:820px){
  .terr__txt{padding:1.2rem 1.25rem 1.4rem}
  .terr__txt h3{font-size:1.5rem}
}

/* ── Cartes d'opération : la fiche chiffrée et le bouton se calent en bas,
   sinon deux cartes voisines ne s'alignent plus dès que le texte diffère. */
.op__body{display:flex;flex-direction:column;flex:1}
.op__body .op__desc{flex:1}

/* La fiche chiffrée se lit en lignes : libellé à gauche, valeur à droite, reliés
   par un filet. En deux colonnes, « 1 200 – 1 534 m² » passait à la ligne. */
.op__facts{display:block}
.op__facts div{display:flex;align-items:baseline;gap:.6rem;padding:.3rem 0}
.op__facts span{font-size:.8rem;color:var(--gris);white-space:nowrap}
.op__facts i{flex:1;border-bottom:1px dotted var(--pierre);transform:translateY(-.28em)}
.op__facts strong{display:inline;font-size:1.05rem;color:var(--encre);font-weight:500;white-space:nowrap}
.op__cta{align-self:flex-end}

/* ── Pied de page : trois colonnes depuis le retrait de la colonne « Opérations ». */
.footer__grid{grid-template-columns:1.6fr 1fr 1fr}

/* ── Fondateurs : le gabarit .portrait de la maquette (silhouette sur fond forêt),
   sans le décalage décoratif du second — ici les deux sont côte à côte dans la
   colonne droite d'un .split — ni la pastille « Photoshoot », note interne. */
.duo__portraits .portrait:nth-child(2){transform:none}
/* Portrait photographié : l'image remplit le cadre, le voile du bas garde le nom
   lisible. Le halo `.portrait::before` du gabarit délave une vraie photo. */
.portrait--photo::before{display:none}
/* Portraits des fondateurs en noir et blanc (demande Quentin, 17/09) : traitement
   de la page, pas de l'image — le jour où le second portrait arrive, il suit tout
   seul. Léger gain de contraste, une désaturation seule rend une photo molle. */
.portrait--photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:grayscale(1) contrast(1.06)}
.portrait--photo::after{content:'';position:absolute;inset:auto 0 0 0;height:62%;
  background:linear-gradient(180deg,transparent,rgba(26,26,24,.30) 45%,rgba(26,26,24,.88))}
/* `::after` est peint après `.who`, qui est déjà `position:relative` : sans z-index
   le voile passe par-dessus le nom et le délave. */
.portrait--photo .who{z-index:1;text-shadow:0 1px 4px rgba(26,26,24,.5)}

/* ── Promotion, « Notre approche » : la photo remplit sa colonne au lieu de
   flotter à mi-hauteur — le .split est en align-items:center, une image plus
   courte que le texte laissait deux bandes vides. */
.appro__img{margin:0;display:flex;flex-direction:column;gap:.7rem}
.appro__img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
@media (max-width:820px){.appro__img img{aspect-ratio:4/3}}

/* ── Promotion : les deux opérations tertiaires en développement. */
.progs{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem}
.progs--3{grid-template-columns:repeat(3,1fr);gap:1.6rem}
.progs--3 .prog__body{padding:1.4rem 1.5rem 1.6rem;gap:.6rem}
.progs--3 .prog h3{font-size:1.5rem}
.progs--3 .prog p{font-size:.9rem}
.progs--3 .prog .op__cta{margin-top:auto;padding-top:.8rem}
.prog{background:var(--blanc);border:1px solid var(--pierre);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.prog__img{position:relative;background:var(--brume)}
.prog__img img{width:100%;height:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.prog__body{padding:1.6rem 1.8rem 1.8rem;display:flex;flex-direction:column;gap:.7rem}
.prog h3{font-size:1.7rem;margin-top:.2rem}
.prog p{font-size:.94rem;color:var(--gris)}

@media (max-width:1000px){
  .reals{grid-template-columns:repeat(2,1fr)}
  .aminis{grid-template-columns:repeat(2,1fr)}
  .progs--3{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .progs,.progs--3,.terr__list--duo{grid-template-columns:1fr}
  .aminis{grid-template-columns:1fr}
  .reals{grid-template-columns:1fr 1fr;gap:1rem}
  .real figcaption{padding:.9rem 1rem 1.1rem}
  .real h3{font-size:1.15rem}
  .terr-titre{margin:2.4rem 0 1.2rem;scroll-margin-top:6rem}
  .prog__body{padding:1.2rem 1.25rem 1.4rem}
}

/* Photos en couleurs réelles (18/09, Quentin) : on neutralise la désaturation « À venir » de la maquette */
.op--soon .op__img{filter:none}

/* Vignettes d'opération non cliquables (18/09, Quentin) : seule l'action « Être rappelé / prévenu » est un lien, donc pas d'effet de survol sur la carte */
.op:hover{transform:none;box-shadow:none}
.op:hover .op__img img{transform:none}

/* Actus (18/09) : image calée en bas quand le cadre la rogne ; logo d'enseigne en pastille */
.actu--bas .actu__img img,.amini--bas .amini__img img{object-position:center bottom}
.actu__img--logo{background:var(--sable);display:flex;align-items:center;justify-content:center;min-height:220px}
.actu__img--logo img,.actu__img.actu__img--logo img,.amini__img.actu__img--logo img{width:34%;max-width:150px;height:auto;aspect-ratio:auto;object-fit:contain}
