/* Améliorations Stellar — mêmes codes que la base (Fraunces, brique, sable, Caveat) */
[hidden]{display:none !important}

/* ---------- héros : film photo des chantiers ---------- */
.film{position:relative;aspect-ratio:4 / 3.3;width:100%;border-radius:4px;overflow:hidden;background:var(--ink);box-shadow:0 40px 80px -50px rgba(58,47,38,.6)}
.film__frames{position:absolute;inset:0}
.film__frames img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%;opacity:0;transform:scale(1.06);transition:opacity 1.1s var(--ease)}
.film__frames img.is-on{opacity:1;animation:burns 7s linear forwards}
@keyframes burns{from{transform:scale(1.06)}to{transform:scale(1.16) translateY(-1.5%)}}
.film__ui{position:absolute;inset:auto 0 0 0;padding:clamp(1rem,2vw,1.6rem);display:grid;grid-template-columns:1fr auto;align-items:end;gap:.9rem 1.2rem;color:#fff;background:linear-gradient(to top,rgba(43,34,27,.82),rgba(43,34,27,0))}
.film__cap{margin:0;display:flex;flex-direction:column;gap:.25rem;min-height:3.2em}
.film__k{font-size:.625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brick-soft);font-weight:500}
.film__c{font-family:var(--display);font-size:clamp(1.15rem,1.7vw,1.5rem);letter-spacing:-.015em;line-height:1.15}
.film__bars{grid-column:1 / -1;grid-row:2;display:flex;gap:6px}
.film__bars i{flex:1;height:2px;background:rgba(255,255,255,.28);overflow:hidden;border-radius:2px}
.film__bars b{display:block;height:100%;width:0;background:#fff}
.film__bars i.is-done b{width:100%}
.film__bars i.is-on b{animation:fill var(--dur,4.2s) linear forwards}
.film.is-paused .film__bars i.is-on b{animation-play-state:paused}
.film.is-paused .film__frames img.is-on{animation-play-state:paused}
@keyframes fill{to{width:100%}}
.film__toggle{width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(255,255,255,.45);display:grid;place-items:center;color:#fff;transition:background .35s var(--ease),border-color .35s var(--ease)}
.film__toggle:hover{background:var(--brick);border-color:var(--brick)}
.film__toggle svg{width:1rem;height:1rem;fill:currentColor}
.film__toggle .i-play{display:none}
.film.is-paused .film__toggle .i-play{display:block}
.film.is-paused .film__toggle .i-pause{display:none}
.film__toggle:focus-visible{outline-color:#fff}
.film__hand{position:absolute;top:clamp(.8rem,1.6vw,1.3rem);left:clamp(1rem,2vw,1.6rem);margin:0;font-family:var(--hand);font-size:clamp(1.15rem,1.6vw,1.45rem);color:#fff;transform:rotate(-3deg);text-shadow:0 1px 10px rgba(0,0,0,.35)}

/* ---------- la tourelle, étape par étape ---------- */
.build{padding-block:0}
.build__track{height:540vh;position:relative}
.build__stage{position:sticky;top:0;height:100vh;height:100svh;display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(2rem,3.4vw,3.6rem);align-items:center;padding-top:clamp(5rem,8vh,6.5rem);padding-bottom:clamp(1.5rem,4vh,3rem)}
.build__txt{grid-column:1 / 6;align-self:center}
.build__txt .t-lg{font-size:clamp(2rem,3.9vw,3.5rem);margin-bottom:clamp(.9rem,2.4vh,1.8rem)}
.build__txt .rub{margin-bottom:1rem}
.build__txt .t-lg .italic{color:var(--brick)}
.build__steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.build__steps li{display:grid;grid-template-columns:2.6rem 1fr;gap:0 1rem;padding:clamp(.25rem,.7vh,.5rem) 0;border-bottom:1px solid var(--rule-soft);color:var(--ink-mute);transition:color .5s var(--ease)}
.build__n{font-family:var(--display);font-size:.9375rem;color:var(--ink-mute);padding-top:.12rem;transition:color .5s var(--ease)}
.build__steps h3{font-size:clamp(.95rem,1.2vw,1.1rem);font-family:var(--display);line-height:1.3;letter-spacing:-.01em;transition:font-size .5s var(--ease)}
.build__steps p{display:grid;grid-template-rows:0fr;margin:0;font-size:.9375rem;line-height:1.55;color:var(--ink-soft);opacity:0;transition:grid-template-rows .6s var(--ease),opacity .5s var(--ease),margin .5s var(--ease)}
.build__steps li.is-on{color:var(--ink)}
.build__steps li.is-on .build__n{color:var(--brick)}
.build__steps li.is-on h3{font-size:clamp(1.25rem,1.7vw,1.6rem)}
.build__steps li.is-on p{opacity:1;margin-top:.35rem}
.build__steps li.is-done{color:var(--ink-soft)}
.build__fig{grid-column:7 / 13;margin:0;position:relative}
.build__photos{position:relative;aspect-ratio:4 / 4.6;max-height:74vh;margin-left:auto;border-radius:3px;overflow:hidden;transform:rotate(-1deg);box-shadow:0 34px 80px -46px rgba(58,47,38,.55);background:var(--beige)}
.build__photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s var(--ease);filter:saturate(.86) contrast(1.03)}
.build__photos img.is-on{opacity:1}
.build__hand{font-family:var(--hand);font-size:clamp(1.25rem,1.8vw,1.6rem);color:var(--ink-soft);margin:.9rem 0 0 .4rem;transform:rotate(-1deg)}
.build__count{color:var(--brick)}
.build__label{margin-left:.6rem}
.build__bar{position:absolute;left:0;right:0;bottom:-1.4rem;height:1px;background:var(--rule)}
.build__bar i{display:block;height:2px;margin-top:-.5px;width:0;background:var(--brick)}
.section--reel .head-row--split{align-items:flex-end}
.section--reel .t-md{max-width:16ch}

@media (max-width:1000px){
  .build__track{height:480vh}
  .build__stage{grid-template-columns:1fr;grid-template-rows:auto auto;align-content:center;gap:1.6rem;padding-top:4.6rem}
  .build__txt{grid-column:1;order:2}
  .build__txt .rub,.build__txt .t-lg{display:none}
  .build__fig{grid-column:1;order:1}
  .build__photos{aspect-ratio:4 / 3.4;max-height:46vh;transform:none}
  .build__hand{margin:.5rem 0 0}
  .build__bar{bottom:-.6rem}
  .build__steps{border-top:0}
  .build__steps li{display:none;border:0;padding:0}
  .build__steps li.is-on{display:grid}
  .build__steps li.is-on h3{font-size:1.5rem}
  .build__steps p{grid-template-rows:1fr}
}
@media (max-width:760px){
  .film{aspect-ratio:4 / 3.6}
  .film__hand{display:none}
}
@media (prefers-reduced-motion:reduce){
  .film__frames img.is-on{animation:none;transform:none}
  .build__photos{transform:none}
}

/* correctif base : icône du menu centrée */
.burger{justify-content:center;align-items:center}

/* ---------- avis clients (15 avis Google réels) ---------- */
.reviews{background:var(--bone)}
.reviews__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(2rem,3.6vw,4rem);align-items:start}
.reviews__side{grid-column:1 / 5;position:sticky;top:7.5rem}
.reviews__main{grid-column:5 / 13}
.reviews__side .t-lg .italic{color:var(--brick)}
.score{display:flex;align-items:center;gap:1.2rem;margin:clamp(1.6rem,2.6vw,2.4rem) 0 1.8rem;padding:1.4rem 0;border-block:1px solid var(--rule)}
.score__n{font-family:var(--display);font-size:clamp(3.6rem,6vw,5.4rem);line-height:.9;letter-spacing:-.04em}
.score__stars,.rv__stars{display:flex;gap:3px;color:var(--brick)}
.score__stars svg{width:1.25rem;height:1.25rem;fill:currentColor}
.rv__stars svg{width:.85rem;height:.85rem;fill:currentColor}
.score__k{margin:.45rem 0 0;font-size:.875rem;color:var(--ink-soft)}
.rv{margin:0;background:var(--white);border:1px solid var(--rule-soft);border-radius:3px;padding:clamp(1.3rem,2vw,1.8rem);break-inside:avoid;margin-bottom:clamp(.9rem,1.4vw,1.3rem);transition:border-color .4s var(--ease),box-shadow .5s var(--ease),transform .5s var(--ease)}
.rv:hover{border-color:var(--rule);box-shadow:0 22px 48px -36px rgba(58,47,38,.45);transform:translateY(-3px)}
.rv blockquote{margin:.9rem 0 1.1rem}
.rv blockquote p{margin:0;font-size:.98rem;line-height:1.62;color:var(--ink-2)}
.rv figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:.9rem;border-top:1px solid var(--rule-soft)}
.rv figcaption b{font-weight:500;font-size:.9375rem}
.rv figcaption span{font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.rv--lead{position:relative;background:var(--sand);border-color:var(--rule);padding:clamp(1.8rem,3.4vw,3rem);margin-bottom:clamp(1.2rem,2vw,1.8rem)}
.rv--lead blockquote{margin:0 0 1.6rem}
.rv--lead blockquote p{font-family:var(--display);font-style:italic;font-size:clamp(1.3rem,2.1vw,1.85rem);line-height:1.3;letter-spacing:-.015em;color:var(--ink);font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 90}
.rv__mark{position:absolute;top:-.1em;right:.3em;font-family:var(--display);font-size:clamp(6rem,10vw,9rem);line-height:1;color:var(--brick);opacity:.18;pointer-events:none}
.reviews__list{columns:2;column-gap:clamp(.9rem,1.4vw,1.3rem)}
.reviews__more{margin-top:.6rem;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brick);font-weight:500;padding:.9rem 0;border-bottom:1px solid currentColor}
.reviews__more:hover{color:var(--brick-deep)}
@media (max-width:1000px){
  .reviews__side{grid-column:1 / -1;position:static}
  .reviews__main{grid-column:1 / -1}
}
@media (max-width:640px){.reviews__list{columns:1}}

/* ---------- audit design ---------- */
.reviews__list{columns:auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(.9rem,1.4vw,1.3rem);align-items:start}
.reviews__list .rv{margin-bottom:0}
@media (max-width:640px){.reviews__list{grid-template-columns:1fr}}
.hero__proof{display:inline-block;margin-top:1.3rem;font-size:.875rem;color:var(--ink-soft);transition:color .3s var(--ease)}
.hero__proof>span{display:inline-flex !important;align-items:center;gap:.55rem}
.hero__proof b{font-weight:500;color:var(--ink)}
.hero__proof:hover{color:var(--brick)}
.hero__stars{display:inline-flex;gap:2px;color:var(--brick)}
.hero__stars svg{width:.9rem;height:.9rem;fill:currentColor}

/* ---------- carte Google Maps ---------- */
.area__map--gmap{align-self:stretch;display:flex;flex-direction:column}
.gmap{position:relative;flex:1;min-height:clamp(320px,38vw,520px);border-radius:4px 4px 0 0;overflow:hidden;border:1px solid var(--rule);border-bottom:0;background:var(--beige)}
.gmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.7) sepia(.14) contrast(1.02);animation:fadeIn .6s var(--ease) forwards;opacity:0}
.gmap__preview{position:absolute;inset:0;display:grid;place-items:center;padding:clamp(1rem,2.4vw,2rem) clamp(1rem,2.4vw,2rem) 6.5rem}
.gmap__preview>svg{width:100%;height:100%;max-height:100%}
.gmap__consent{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:1.1rem 1rem 1.2rem;background:linear-gradient(to top,var(--beige) 55%,rgba(231,221,202,0))}
.gmap__consent p{margin:0;font-size:.75rem;color:var(--ink-mute)}
.gmap.is-loaded .gmap__preview,.gmap.is-loaded .gmap__consent{display:none}
.gmap__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;flex-wrap:wrap;padding:1rem 1.2rem;background:var(--white);border:1px solid var(--rule);border-radius:0 0 4px 4px;box-shadow:0 30px 60px -46px rgba(58,47,38,.5)}
.gmap__bar p{margin:0;font-size:.9375rem;color:var(--ink-soft);display:flex;flex-direction:column;gap:.15rem}
.gmap__bar b{font-weight:500;font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brick)}
.gmap__bar .btn{padding:.85em 1.4em}

/* ---------- architecture : réalisations, notre histoire, prestation × ville ---------- */
.cards--real{grid-template-columns:repeat(2,1fr)}
.cards--real .card:first-child{grid-column:1 / -1}
.cards--real .card:first-child .card__media{aspect-ratio:21 / 9}
.cards--real .card__media img{object-position:50% 40%}
@media (max-width:1000px){.cards--real{grid-template-columns:1fr}.cards--real .card:first-child .card__media{aspect-ratio:4 / 3}}
.reviews__list--3{grid-template-columns:repeat(3,1fr)}
@media (max-width:1000px){.reviews__list--3{grid-template-columns:1fr}}
.facts-list{margin:0 0 1.6rem;border-top:1px solid var(--rule)}
.facts-list div{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--rule)}
.facts-list dt{font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);padding-top:.2rem}
.facts-list dd{margin:0;font-size:.9375rem}
.steps-figs{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1.2rem,2vw,2rem)}
.step-fig{margin:0}
.step-fig img{width:100%;aspect-ratio:4 / 4.6;object-fit:cover;border-radius:3px;filter:saturate(.86) contrast(1.03)}
.step-fig figcaption{display:grid;grid-template-columns:2.4rem 1fr;gap:.15rem .8rem;margin-top:.9rem}
.step-fig__n{grid-row:1 / 3;font-family:var(--display);color:var(--brick);font-size:1rem;padding-top:.1rem}
.step-fig b{font-family:var(--display);font-weight:400;font-size:1.2rem;letter-spacing:-.01em}
.step-fig figcaption>span:last-child{font-size:.9rem;color:var(--ink-soft);line-height:1.55}
.step-fig:nth-child(even){margin-top:clamp(2rem,6vw,5rem)}
@media (max-width:640px){.steps-figs{grid-template-columns:1fr}.step-fig:nth-child(even){margin-top:0}}
.matrix{overflow-x:auto;border:1px solid var(--rule);border-radius:3px;background:var(--white)}
.matrix table{width:100%;border-collapse:collapse;min-width:720px;font-size:.9375rem}
.matrix th,.matrix td{padding:1rem 1.1rem;border-bottom:1px solid var(--rule-soft);text-align:left}
.matrix thead th{font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);font-weight:500;background:var(--bone)}
.matrix tbody th{font-family:var(--display);font-weight:400;font-size:1.1rem}
.matrix tbody th a:hover{color:var(--brick)}
.matrix td a{display:inline-block;padding:.35rem .75rem;border:1px solid var(--rule);border-radius:100px;font-size:.8125rem;color:var(--ink-soft);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease)}
.matrix td a:hover{background:var(--brick);border-color:var(--brick);color:#fff}
.matrix tr:last-child th,.matrix tr:last-child td{border-bottom:0}
.act-links .communes{margin-top:.6rem}

/* curseur personnalisé supprimé (demande de Dylan) : on garde le curseur du navigateur */
.cursor{display:none !important}

/* ---------- formulaire de devis ---------- */
.devis-card{background:var(--white);border:1px solid var(--rule-soft);border-radius:6px;box-shadow:0 40px 90px -60px rgba(58,47,38,.55);overflow:hidden}
.devis-card__head{padding:clamp(1.4rem,2.4vw,2rem) clamp(1.4rem,2.6vw,2.4rem) 0}
.devis-card__k{margin:0 0 .5rem;font-size:.6875rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brick);font-weight:500}
.devis-card__t{margin:0;font-family:var(--display);font-size:clamp(1.5rem,2.2vw,2rem);letter-spacing:-.02em;line-height:1.1}
.form--devis{padding:clamp(1.2rem,2vw,1.6rem) clamp(1.4rem,2.6vw,2.4rem) clamp(1.4rem,2.4vw,2rem);gap:clamp(.9rem,1.4vw,1.2rem)}
.picks{border:0;margin:0 0 .3rem;padding:0}
.picks legend{padding:0;margin-bottom:.75rem;font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);font-weight:500}
.picks__list{display:flex;flex-wrap:wrap;gap:.5rem}
.pick{position:relative;cursor:pointer}
.pick input{position:absolute;opacity:0;width:1px;height:1px}
.pick span{display:inline-flex;align-items:center;gap:.45rem;padding:.62rem 1.05rem;border:1px solid var(--rule);border-radius:100px;font-size:.875rem;color:var(--ink-soft);background:var(--bone);transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease),transform .3s var(--ease)}
.pick:hover span{border-color:var(--brick);color:var(--brick)}
.pick input:checked + span{background:var(--brick);border-color:var(--brick);color:#fff}
.pick input:checked + span::before{content:"";width:.42rem;height:.42rem;border-radius:50%;background:#fff}
.pick input:focus-visible + span{outline:2px solid var(--brick);outline-offset:3px}
.pick--urgent span{border-style:dashed}
.picks__urgent{margin:.8rem 0 0;padding:.75rem 1rem;border-radius:4px;background:rgba(160,68,31,.08);color:var(--brick-deep);font-size:.875rem}
.picks__urgent a{font-weight:500;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.form--devis .field input,.form--devis .field textarea{background:linear-gradient(var(--brick),var(--brick)) no-repeat 0 100% / 0 2px;transition:background-size .5s var(--ease),border-color .4s var(--ease)}
.form--devis .field input:focus,.form--devis .field textarea:focus{background-size:100% 2px}
.form--devis .field textarea{min-height:5.5rem}
.devis-card__foot{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;justify-content:space-between;margin-top:.4rem}
.devis-card__foot .form__note{margin:0;max-width:30ch}
.devis-card__trust{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;padding:1rem clamp(1.4rem,2.6vw,2.4rem);background:var(--sand);border-top:1px solid var(--rule-soft);font-size:.8125rem;color:var(--ink-soft)}
.devis-card__trust>span{display:inline-flex;align-items:center;gap:.45rem}
.devis-card__trust>span+span::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--brick);margin-right:.4rem}
.devis-card__trust b{font-weight:500;color:var(--ink)}
.devis-card .form__done{border:0;border-radius:0;margin:1.4rem}
@media (max-width:620px){.devis-card__foot .btn{width:100%;justify-content:center}}

/* ---------- séquence tourelle : planche-contact à la place de la liste ---------- */
.build__now{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;padding:1.4rem 0 1.6rem;border-top:1px solid var(--rule);min-height:9.5rem}
.build__big{font-family:var(--display);font-size:clamp(3.4rem,5.4vw,5rem);line-height:.85;letter-spacing:-.04em;color:var(--brick)}
.build__title{font-family:var(--display);font-size:clamp(1.4rem,2vw,1.85rem);line-height:1.15;letter-spacing:-.015em;margin:.2rem 0 .5rem}
.build__desc{margin:0;color:var(--ink-soft);font-size:.98rem;line-height:1.6;max-width:40ch}
.sheet{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:420px}
.sheet__item{position:relative;padding:0;border-radius:3px;overflow:hidden;aspect-ratio:4 / 3;background:var(--beige);outline:2px solid transparent;outline-offset:2px;transition:outline-color .35s var(--ease)}
.sheet__item img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(.9) brightness(1.08);opacity:.45;transition:filter .5s var(--ease),opacity .5s var(--ease),transform .6s var(--ease)}
.sheet__item span{position:absolute;left:.35rem;bottom:.25rem;font-family:var(--display);font-size:.8rem;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6)}
.sheet__item.is-done img{filter:saturate(.8);opacity:.9}
.sheet__item.is-on{outline-color:var(--brick)}
.sheet__item.is-on img{filter:none;opacity:1}
.sheet__item:hover img{opacity:1;transform:scale(1.06)}
.sheet__item:focus-visible{outline-color:var(--brick)}
@media (max-width:1000px){
  .build__now{min-height:0;padding:.6rem 0 1rem;border-top:0}
  .build__big{font-size:2.8rem}
  .sheet{grid-template-columns:repeat(9,1fr);gap:4px;max-width:none}
  .sheet__item span{display:none}
}

/* ---------- séquence tourelle : schéma technique de la flèche ---------- */
.schema{display:block;width:100%;max-width:440px;height:auto;max-height:46vh;overflow:visible;color:var(--ink);margin-top:.4rem}
.schema g[data-s]{opacity:0;transition:opacity .5s var(--ease)}
.schema g[data-s].is-on{opacity:1}
.sk-wall{fill:var(--beige);stroke:var(--ink);stroke-width:1.2}
.sk-mas{stroke:var(--ink-mute);stroke-width:.6;opacity:.5}
.sk-win{fill:var(--sand);stroke:var(--ink);stroke-width:1}
.sk-old polyline,.sk-old line{fill:none;stroke:var(--ink-mute);stroke-width:1.3;stroke-dasharray:5 5}
.sk-ln{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s var(--ease)}
.schema g.is-on .sk-ln{stroke-dashoffset:0}
.sk-bold{stroke-width:2.4}
.sk-thin{stroke-width:.9;stroke:var(--ink-soft)}
.sk-brick{stroke:var(--brick)}
.sk-thick{stroke-width:3.4}
.sk-slate{fill:url(#sk-slate);color:var(--ink);opacity:.75;transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);transition:transform 1.1s var(--ease)}
.schema g.is-on .sk-slate{transform:scaleY(1)}
.sk-epi{fill:var(--brick)}
.sk-lead{stroke:var(--brick);stroke-width:.8;opacity:.7}
.sk-dot{fill:var(--brick)}
.sk-lab{font-family:var(--hand);font-size:17px;fill:var(--ink-soft)}
.build__now{min-height:0;padding-bottom:1rem}
.sheet{display:none}
@media (max-width:1000px){
  .schema{display:none}
  .sheet{display:grid}
}

.sk-lab{font-size:20px;fill:var(--ink)}
.sk-lead{opacity:.9}

/* images dimensionnées (width/height) : hauteur auto sans écraser les règles des composants */
:where(img[height]){height:auto}

/* ---------- héros : une seule photo en fond ---------- */
.hero--bg{position:relative;isolation:isolate;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;background:var(--ink);padding-top:clamp(7rem,12vh,9rem);padding-bottom:clamp(3rem,8vh,5.5rem)}
.hero__bg{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:50% 32%;animation:heroIn 2.4s var(--ease) both}
@keyframes heroIn{from{transform:scale(1.08);opacity:.4}to{transform:scale(1);opacity:1}}
.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(30,24,19,.82) 0%,rgba(30,24,19,.55) 42%,rgba(30,24,19,.08) 75%),linear-gradient(0deg,rgba(30,24,19,.55) 0%,rgba(30,24,19,0) 45%)}
.hero--bg .hero__in{width:100%}
.hero--bg .hero__txt{grid-column:1 / 8;color:#fff}
.hero--bg h1{color:#fff;max-width:14ch}
.hero--bg h1 .italic{color:#F0B48F}
.hero--bg .hero__kicker{color:#F0B48F}
.hero--bg .hero__intro{color:rgba(255,255,255,.86);max-width:44ch}
.hero--bg .btn--line{color:#fff;border-color:rgba(255,255,255,.55)}
.hero--bg .btn--line:hover{border-color:var(--brick)}
.hero--bg .hero__proof{color:rgba(255,255,255,.82)}
.hero--bg .hero__proof b{color:#fff}
.hero--bg .hero__stars{color:#F0B48F}
@media (max-width:1000px){
  .hero--bg .hero__txt{grid-column:1 / -1}
  .hero__shade{background:linear-gradient(0deg,rgba(30,24,19,.88) 0%,rgba(30,24,19,.6) 55%,rgba(30,24,19,.2) 100%)}
}
@media (prefers-reduced-motion:reduce){.hero__bg{animation:none}}

.build__more{margin-top:1rem}
@media (max-width:1000px){.build__more{display:none}}

/* ---------- galerie « Sur nos chantiers » ---------- */
.cards--real .card:nth-child(2) .card__media{aspect-ratio:4 / 3}
.cards--real{grid-template-columns:repeat(2,1fr)}
.cards--real .card:first-child{grid-column:auto}
.cards--real .card:first-child .card__media{aspect-ratio:4 / 3}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.7rem,1.2vw,1.1rem)}
.gallery-grid figure{margin:0}
.gallery-grid img{width:100%;aspect-ratio:4 / 4.4;object-fit:cover;border-radius:3px;filter:saturate(.88)}
.gallery-grid figcaption{margin-top:.55rem;font-size:.8125rem;color:var(--ink-soft);line-height:1.45}
@media (max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
.hero__bg{object-position:50% 38%}

/* ---------- « Comment ça se passe » : cartes à icônes ---------- */
.process{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.9rem,1.4vw,1.3rem);counter-reset:none}
.proc{position:relative;overflow:hidden;background:var(--bone);border:1px solid var(--rule-soft);border-radius:6px;padding:clamp(1.4rem,2.2vw,2rem);min-height:13.5rem;display:flex;flex-direction:column;transition:transform .6s var(--ease),box-shadow .6s var(--ease),border-color .4s var(--ease)}
.proc:hover{transform:translateY(-4px);box-shadow:0 28px 56px -40px rgba(58,47,38,.5);border-color:var(--rule)}
.proc__num{position:absolute;right:-.06em;top:-.22em;font-family:var(--display);font-size:clamp(6rem,9vw,8.5rem);line-height:1;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(160,68,31,.28);pointer-events:none;transition:-webkit-text-stroke-color .5s var(--ease)}
.proc:hover .proc__num{-webkit-text-stroke-color:rgba(160,68,31,.5)}
.proc__ico{width:3.2rem;height:3.2rem;border-radius:50%;display:grid;place-items:center;background:var(--brick);color:#fff;margin-bottom:auto;box-shadow:0 12px 24px -14px rgba(160,68,31,.8)}
.proc__ico svg{width:1.45rem;height:1.45rem}
.proc h3{font-size:clamp(1.3rem,1.8vw,1.6rem);margin:1.6rem 0 .45rem;line-height:1.15}
.proc__step{display:block;font-family:var(--sans);font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brick);font-weight:500;margin-bottom:.45rem}
.proc p{margin:0;color:var(--ink-soft);font-size:.9375rem;line-height:1.55}
@media (max-width:560px){.process{grid-template-columns:1fr}.proc{min-height:0}.proc h3{margin-top:1.1rem}}

/* citation mise en avant : police droite, plus lisible (demande de Dylan) */
.rv--lead blockquote p{font-style:normal;font-variation-settings:"opsz" 36;font-size:clamp(1.15rem,1.55vw,1.45rem);line-height:1.55;letter-spacing:0;color:var(--ink-2)}

.all-services{margin-top:clamp(2rem,3vw,2.8rem)}
.all-services .communes{margin-top:.4rem}
.all-services{max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}

/* ---------- menu déroulant « Prestations » ---------- */
.nav__dd{position:relative}
.nav__ddbtn{display:inline-flex;align-items:center;gap:.3rem;font-size:.8125rem;font-weight:450;padding:.52rem clamp(.7rem,1.1vw,1.05rem);border-radius:100px;transition:background .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
.nav__chev{width:.85rem;height:.85rem;transition:transform .35s var(--ease)}
.nav__dd:hover .nav__ddbtn,.nav__dd.is-open .nav__ddbtn{background:var(--white);color:var(--brick);box-shadow:0 2px 8px -4px rgba(58,47,38,.35)}
.nav__dd:hover .nav__chev,.nav__dd.is-open .nav__chev{transform:rotate(180deg)}
.mega{position:absolute;top:calc(100% + .9rem);left:50%;width:min(860px,calc(100vw - 2rem));display:grid;grid-template-columns:1fr 220px;gap:1.2rem;padding:1.3rem;background:var(--white);border:1px solid var(--rule);border-radius:10px;box-shadow:0 40px 80px -40px rgba(58,47,38,.45);opacity:0;visibility:hidden;transform:translate(-50%,8px);transition:opacity .3s var(--ease),transform .4s var(--ease),visibility .3s;z-index:100}
.mega::before{content:"";position:absolute;left:0;right:0;top:-1rem;height:1rem}
.nav__dd:hover .mega,.nav__dd.is-open .mega,.nav__dd:focus-within .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega__cols{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:.4rem 1rem}
.mega__k{margin:.2rem .7rem .5rem;font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brick);font-weight:500}
.nav .mega__link{display:flex;flex-direction:column;gap:.12rem;padding:.6rem .7rem;border-radius:6px;white-space:normal;font-size:inherit;background:none;box-shadow:none;transition:background .25s var(--ease)}
.nav .mega__link:hover{background:var(--sand);color:inherit;box-shadow:none}
.mega__link b{font-family:var(--display);font-weight:400;font-size:1.02rem;letter-spacing:-.01em;color:var(--ink);transition:color .25s var(--ease)}
.mega__link span{font-size:.75rem;color:var(--ink-mute);line-height:1.4}
.mega__link:hover b{color:var(--brick)}
.nav .mega__card{position:relative;display:block;border-radius:8px;overflow:hidden;padding:0;min-height:240px;background:var(--ink);white-space:normal}
.nav .mega__card:hover{background:var(--ink);box-shadow:none}
.mega__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75;transition:transform .8s var(--ease),opacity .4s var(--ease)}
.mega__card:hover img{transform:scale(1.05);opacity:.6}
.mega__cardtxt{position:absolute;inset:auto 0 0 0;padding:1rem;display:flex;flex-direction:column;gap:.3rem;color:#fff;background:linear-gradient(to top,rgba(30,24,19,.88),rgba(30,24,19,0))}
.mega__cardtxt b{font-family:var(--display);font-weight:400;font-size:1.3rem}
.mega__cardtxt span{font-size:.75rem;line-height:1.4;color:rgba(255,255,255,.85)}
.mega__cardtxt i{font-style:normal;font-size:.8125rem;font-weight:500;color:#F0B48F;margin-top:.2rem}
/* menu mobile */
.drawer__svc{opacity:0;transform:translateY(1.1em);transition:opacity .6s var(--ease),transform .7s var(--ease)}
.drawer.is-open .drawer__svc{opacity:1;transform:none}
.drawer__svc summary{list-style:none;cursor:pointer;font-family:var(--display);font-size:clamp(2rem,9vw,3.4rem);line-height:1.22;letter-spacing:-.03em;display:flex;align-items:center;gap:.6rem}
.drawer__svc summary::-webkit-details-marker{display:none}
.drawer__svc summary::after{content:"+";font-size:.6em;color:var(--brick);transition:transform .35s var(--ease)}
.drawer__svc[open] summary::after{transform:rotate(45deg)}
.drawer__svclist{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 1rem;padding:.6rem 0 1rem .2rem}
.drawer__svclist a{font-family:var(--sans) !important;font-size:.95rem !important;line-height:1.5 !important;letter-spacing:0 !important;opacity:1 !important;transform:none !important;color:var(--ink-soft);padding:.35rem 0}

/* plus de trait décoratif devant les sur-titres (demande de Dylan) */
.hero__kicker::before{display:none}

/* ---------- listes de communes / services : colonnes sobres au lieu des pastilles ---------- */
.communes{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:0 1.8rem;margin-top:1.6rem;border-top:1px solid var(--rule)}
.communes a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.7rem 0;border:0;border-bottom:1px solid var(--rule);border-radius:0;background:none;font-size:.9375rem;color:var(--ink-2);transition:color .3s var(--ease),padding .4s var(--ease)}
.communes a::after{content:"→";font-size:.85rem;color:var(--brick);opacity:0;transform:translateX(-6px);transition:opacity .3s var(--ease),transform .4s var(--ease)}
.communes a:hover{color:var(--brick);background:none;border-color:var(--rule);padding-left:.25rem}
.communes a:hover::after{opacity:1;transform:none}
.area__txt .communes{grid-template-columns:repeat(2,minmax(0,1fr))}

/* pied de page sans colonne Secteur */
.foot__grid{grid-template-columns:2.2fr 1fr 1.4fr}
@media (max-width:900px){.foot__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot__grid{grid-template-columns:1fr}}

/* lien discret vers l'espace gestion (pied de page) */
.foot__admin{opacity:.45;transition:opacity .2s}.foot__admin:hover,.foot__admin:focus-visible{opacity:1}
