/* Styven Couverture — identité « granit, ardoise et cuivre ». */
@font-face{font-family:"Bricolage";src:url(../fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-stretch:100%;font-display:swap}
@font-face{font-family:"Instrument";src:url(../fonts/instrument.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  --paper:#f3efe6;--paper2:#e8e2d5;--ink:#14202c;--slate:#223344;--mute:#55616d;
  --line:rgba(20,32,44,.16);--line-l:rgba(243,239,230,.18);
  --copper:#c4501a;--copper-d:#a8410f;--copper-l:#ec8048;--zinc:#a7b2bc;
  --gut:clamp(18px,4.2vw,60px);--max:1360px;--hd:76px;
  --disp:"Bricolage","Arial Narrow",Arial,sans-serif;--body:"Instrument",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --slates:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='56'%3E%3Cg fill='none' stroke='%2314202c' stroke-opacity='.07'%3E%3Cpath d='M0 .5h84M0 28.5h84M.5 0v28M42.5 0v28M21.5 28v28M63.5 28v28'/%3E%3C/g%3E%3C/svg%3E");
  --slates-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='84' height='56'%3E%3Cg fill='none' stroke='%23f3efe6' stroke-opacity='.06'%3E%3Cpath d='M0 .5h84M0 28.5h84M.5 0v28M42.5 0v28M21.5 28v28M63.5 28v28'/%3E%3C/g%3E%3C/svg%3E");
  --sct-bg:#14202c;--sct-fg:#f3efe6;--sct-accent:#c4501a;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hd) + 16px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--copper);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 18px;text-decoration:none;font-weight:600}
.skip:focus{top:12px}
em{font-style:normal;color:var(--copper)}

/* Titres */
.h-xl,.h-lg,.hero__h,.phero__h{font-family:var(--disp);font-weight:720;letter-spacing:-.026em;line-height:.99;text-wrap:balance}
.h-xl{font-size:clamp(2.1rem,5.2vw,4.4rem)}
.h-lg{font-size:clamp(1.7rem,3.4vw,2.8rem);line-height:1.04}
.eyebrow{font:600 .78rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--copper-d);display:flex;align-items:center;gap:10px;margin-bottom:22px}
.eyebrow--light{color:var(--copper-l)}
.eyebrow__dot{width:9px;height:9px;background:var(--copper);transform:rotate(45deg);flex:none}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:14px 24px;font:650 1rem/1 var(--body);text-decoration:none;border:2px solid transparent;border-radius:0;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease);position:relative}
.btn .ico{flex:none;transition:transform .3s var(--ease)}
.btn--call{background:var(--copper);color:#fff}
.btn--call:hover{background:var(--copper-d)}
.btn--quote{background:var(--ink);color:var(--paper)}
.btn--quote:hover{background:var(--slate)}
.btn--quote:hover .ico,.btn--ghost:hover .ico{transform:translateX(5px)}
.btn--ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.btn--lg{min-height:60px;padding:18px 30px;font-size:1.0625rem}
.btn--sm{min-height:44px;padding:10px 18px;font-size:.95rem}
.btn--block{display:flex;width:100%}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.link-call{display:inline-flex;align-items:center;gap:8px;font-weight:650;text-decoration:none;border-bottom:2px solid var(--copper);padding:4px 0}

/* Découpe « pente de toit » des images */
.pitch{clip-path:polygon(0 11%,100% 0,100% 100%,0 100%);overflow:hidden}
.pitch--rev{clip-path:polygon(0 0,100% 11%,100% 100%,0 100%)}
[data-parallax]{overflow:hidden}
[data-parallax] img{width:100%;height:100%;object-fit:cover;will-change:transform}
.js-anim [data-parallax] img{transform:translate3d(0,var(--py,0),0) scale(1.14)}

/* En-tête */
.hd{position:sticky;top:0;z-index:50;background:rgba(243,239,230,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.hd.is-stuck{border-color:var(--line);box-shadow:0 8px 30px -22px rgba(20,32,44,.55)}
.hd__in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);height:var(--hd);display:flex;align-items:center;gap:28px}
.hd__logo{flex:none;display:block}
.hd__logo img{height:50px;width:auto}
.hd__nav{display:flex;align-items:center;gap:6px;margin-left:auto}
.hd__nav>a,.dd__btn{font:560 .97rem/1 var(--body);text-decoration:none;padding:14px 14px;background:none;border:0;display:inline-flex;align-items:center;gap:8px;position:relative}
.hd__nav>a::after,.dd__btn::after{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:2px;background:var(--copper);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.hd__nav>a:hover::after,.dd__btn:hover::after,.dd__btn[aria-expanded=true]::after{transform:scaleX(1)}
.dd{position:relative}
.dd__panel{position:absolute;top:100%;left:-20px;width:min(560px,80vw);background:var(--ink);color:var(--paper);padding:14px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s var(--ease),visibility .25s;background-image:var(--slates-l)}
.dd:hover .dd__panel,.dd:focus-within .dd__panel,.dd__btn[aria-expanded=true]+.dd__panel{opacity:1;visibility:visible;transform:none}
.dd__list{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.dd__list a{display:flex;align-items:baseline;gap:12px;padding:13px 14px;text-decoration:none;font-weight:560;transition:background .2s,color .2s}
.dd__list a:hover{background:rgba(243,239,230,.09);color:var(--copper-l)}
.dd__n{font:500 .72rem var(--disp);color:var(--zinc);letter-spacing:.06em}
.hd__cta{display:flex;align-items:center;gap:14px;flex:none}
.hd__tel{display:inline-flex;align-items:center;gap:9px;font:700 1.08rem/1 var(--disp);letter-spacing:-.01em;text-decoration:none;padding:12px 6px;color:var(--ink)}
.hd__tel .ico{color:var(--copper)}
.hd__tel:hover{color:var(--copper-d)}
.hd__burger{display:none;width:48px;height:48px;background:none;border:0;padding:0;position:relative;margin-left:auto}
.hd__burger span{position:absolute;left:11px;right:11px;height:2px;background:var(--ink);transition:transform .3s var(--ease),top .3s var(--ease)}
.hd__burger span:first-child{top:19px}.hd__burger span:last-child{top:28px}
.hd__burger[aria-expanded=true] span:first-child{top:23px;transform:rotate(45deg)}
.hd__burger[aria-expanded=true] span:last-child{top:23px;transform:rotate(-45deg)}
.mnav{position:fixed;inset:var(--hd) 0 0 0;z-index:45;background:var(--ink) var(--slates-l);color:var(--paper);overflow-y:auto;padding:26px var(--gut) 120px}
.mnav[hidden]{display:none}
.mnav__t{font:600 .75rem var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--copper-l);margin-bottom:10px}
.mnav__list a{display:flex;align-items:baseline;gap:14px;padding:13px 0;border-bottom:1px solid var(--line-l);text-decoration:none;font:650 1.45rem/1.1 var(--disp);letter-spacing:-.02em}
.mnav__list span{font:500 .72rem var(--disp);color:var(--zinc);width:22px}
.mnav__links{display:grid;gap:4px;margin-top:26px}
.mnav__links a{padding:12px 0;text-decoration:none;font-weight:560;color:var(--zinc)}

/* Premier écran */
.hero{position:relative;background:var(--paper) var(--slates)}
.hero__in{max-width:var(--max);margin:0 auto;padding:clamp(28px,5vw,72px) var(--gut) clamp(40px,6vw,88px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:end}
.hero__txt{padding-bottom:clamp(0px,3vw,48px);position:relative;z-index:2}
.hero__h{font-size:clamp(2.9rem,7.6vw,7rem);line-height:.92;letter-spacing:-.03em;font-weight:760}
.hero__h em{display:inline-block;position:relative}
.hero__h em::after{content:"";position:absolute;left:0;right:0;bottom:-.06em;height:.07em;background:var(--copper);transform-origin:left;clip-path:polygon(0 100%,100% 0,100% 100%)}
.hero__sub{display:block;font-weight:380;font-size:.33em;letter-spacing:-.015em;line-height:1.15;color:var(--slate);margin-top:.75em}
.hero__lead{max-width:34em;margin-top:26px;font-size:clamp(1.05rem,1.35vw,1.2rem);color:#2c3946}
.hero__zone{margin-top:26px;font-size:.92rem;color:var(--mute);letter-spacing:.01em}
.hero__zone a{color:var(--copper-d);font-weight:600}
.hero__trust{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.hero__trust li{border:1px solid var(--ink);padding:7px 12px;font-size:.84rem;font-weight:600}
.hero__media{position:relative;align-self:stretch;min-height:clamp(380px,46vw,700px)}
.hero__main{position:absolute;inset:0}
.hero__main img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero__inset{position:absolute;left:-16%;bottom:-6%;width:46%;aspect-ratio:4/3;border:8px solid var(--paper);background:var(--paper2);z-index:2;overflow:hidden}
.hero__inset img{width:100%;height:100%;object-fit:cover}
.hero__num{position:absolute;left:-.5em;top:-.12em;font:800 clamp(7rem,17vw,16rem)/1 var(--disp);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1.5px rgba(20,32,44,.28);z-index:0;pointer-events:none;user-select:none}
.band{background:var(--ink);color:var(--paper);overflow:hidden}
.band__in{max-width:var(--max);margin:0 auto;padding:17px var(--gut);display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;font:600 .8rem/1 var(--body);letter-spacing:.17em;text-transform:uppercase}
.band i{width:7px;height:7px;background:var(--copper-l);transform:rotate(45deg);flex:none}
@media (prefers-reduced-motion:no-preference){
  .hero__txt>*{animation:rise .9s var(--ease) both}
  .hero__txt>*:nth-child(2){animation-delay:.07s}.hero__txt>*:nth-child(3){animation-delay:.16s}.hero__txt>*:nth-child(4){animation-delay:.24s}.hero__txt>*:nth-child(5){animation-delay:.32s}
  .hero__main img,.phero__img img{animation:settle 1.6s var(--ease) both}
  .hero__inset{animation:rise 1s .35s var(--ease) both}
  .hero__h em::after{animation:draw .9s .6s var(--ease) both}
  .phero__txt>*{animation:rise .9s var(--ease) both}
  .phero__txt>*:nth-child(3){animation-delay:.08s}.phero__txt>*:nth-child(4){animation-delay:.16s}.phero__txt>*:nth-child(5){animation-delay:.24s}
}
@keyframes rise{from{opacity:0;transform:translateY(26px)}}
@keyframes settle{from{transform:scale(1.22)}}
@keyframes draw{from{transform:scaleX(0)}}

/* Apparitions au défilement (uniquement si JS + animations acceptées) */
.js-anim .rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js-anim .rv.is-in{opacity:1;transform:none}

/* Façon de travailler */
.facts__in{max-width:var(--max);margin:0 auto;padding:clamp(44px,6vw,84px) var(--gut);display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(22px,3vw,44px)}
.fact{border-top:2px solid var(--ink);padding-top:16px}
.fact__k{font:600 .75rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--copper-d);margin-bottom:10px}
.fact__v{font-size:1.02rem;max-width:26em}
.fact--badge{border-color:var(--copper)}
.fact--badge .fact__v{font:680 1.3rem/1.15 var(--disp);letter-spacing:-.02em}

/* Prestations : index + scène photo */
.svc{background:var(--paper2);padding:clamp(56px,8vw,128px) 0}
.svc__head,.svc__in{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.svc__head{margin-bottom:clamp(30px,4vw,60px)}
.svc__head .h-xl{max-width:15em}
.svc__in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:start}
.svc__row{border-top:1px solid var(--line)}
.svc__row:last-child{border-bottom:1px solid var(--line)}
.svc__link{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:8px 18px;align-items:center;padding:22px 10px 22px 0;text-decoration:none;position:relative;transition:padding .4s var(--ease),background .3s}
.svc__n{font:500 .8rem var(--disp);letter-spacing:.06em;color:var(--mute);align-self:start;padding-top:9px;transition:color .3s}
.svc__body{display:grid;gap:6px}
.svc__t{font:680 clamp(1.5rem,2.9vw,2.5rem)/1.02 var(--disp);letter-spacing:-.03em;transition:color .3s}
.svc__d{color:var(--mute);font-size:.97rem;max-width:36em}
.svc__go{width:46px;height:46px;border:1.5px solid var(--ink);display:grid;place-items:center;transition:background .3s,color .3s,border-color .3s,transform .4s var(--ease)}
.svc__thumb{display:none}
a.svc__link:hover,a.svc__link:focus-visible,.svc__row.is-on a.svc__link{padding-left:16px}
.svc__row.is-on .svc__n,.svc__row.is-on .svc__t{color:var(--copper-d)}
a.svc__link:hover .svc__go,.svc__row.is-on .svc__go{background:var(--copper);border-color:var(--copper);color:#fff;transform:translateX(4px)}
.svc__stage{position:sticky;top:calc(var(--hd) + 28px)}
.svc__frame{position:relative;aspect-ratio:4/5;background:var(--slate)}
.svc__img{position:absolute;inset:0;opacity:0;clip-path:inset(100% 0 0 0);transition:clip-path .75s var(--ease),opacity .01s .75s}
.svc__img.is-on{opacity:1;clip-path:inset(0);z-index:2;transition:clip-path .75s var(--ease)}
.svc__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform 1.2s var(--ease)}
.svc__img.is-on img{transform:none}

/* Réalisations */
.real{background:var(--ink) var(--slates-l);color:var(--paper);padding:clamp(56px,8vw,128px) 0}
.real__head{max-width:var(--max);margin:0 auto clamp(30px,4vw,64px);padding:0 var(--gut);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px clamp(28px,5vw,80px);align-items:end}
.real__head .eyebrow{grid-column:1/-1;margin-bottom:0}
.real__head em{color:var(--copper-l)}
.real__lead{color:var(--zinc);max-width:30em}
.real__grid{max-width:var(--max);margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,28px);align-items:start}
.real__col{display:grid;gap:clamp(22px,2.6vw,40px)}
.real__col--1{margin-top:clamp(40px,8vw,130px)}
.real__col--2{margin-top:clamp(14px,3vw,48px)}
.shot__img{background:var(--slate)}
.shot figcaption{font-size:.9rem;color:var(--zinc);padding-top:11px;display:flex;gap:10px;align-items:baseline}
.shot figcaption::before{content:"";width:16px;height:1px;background:var(--copper-l);flex:none;transform:translateY(-4px)}
.real__hint{display:none}

/* Entreprise */
.about__in{max-width:var(--max);margin:0 auto;padding:clamp(56px,8vw,128px) var(--gut);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:center}
.about__img{aspect-ratio:4/5}
.about__txt p:not(.eyebrow){margin-top:20px;max-width:38em;color:#2c3946}
.about__txt .h-xl{font-size:clamp(2rem,4.4vw,3.7rem)}

/* Déroulement : marches montant comme un rampant de toit */
.steps{background:var(--paper2);padding:clamp(56px,8vw,120px) 0;position:relative;overflow:hidden}
.steps--alt{background:var(--paper)}
.steps__head{max-width:var(--max);margin:0 auto clamp(30px,4vw,56px);padding:0 var(--gut)}
.steps__list{max-width:var(--max);margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,30px);align-items:end;counter-reset:s}
.steps__list--5{grid-template-columns:repeat(5,minmax(0,1fr))}
.steps__list li{border-top:2px solid var(--ink);padding:18px 0 0;position:relative}
.steps__list li:nth-child(1){margin-bottom:0}
.steps__list li:nth-child(2){margin-bottom:clamp(18px,2.6vw,40px)}
.steps__list li:nth-child(3){margin-bottom:clamp(36px,5.2vw,80px)}
.steps__list li:nth-child(4){margin-bottom:clamp(54px,7.8vw,120px)}
.steps__list li:nth-child(5){margin-bottom:clamp(72px,10.4vw,160px)}
.steps__n{font:800 clamp(3rem,6vw,5.4rem)/.9 var(--disp);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--copper);display:block;margin-bottom:14px}
.steps__list h3{font:680 1.3rem/1.12 var(--disp);letter-spacing:-.02em;margin-bottom:8px}
.steps__list p{color:var(--mute);font-size:.97rem}

/* Zone */
.zone{background:var(--slate) var(--slates-l);color:var(--paper)}
.zone__in{max-width:var(--max);margin:0 auto;padding:clamp(56px,8vw,128px) var(--gut);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:start}
.zone em{color:var(--copper-l)}
.zone__txt p:not(.eyebrow){margin:20px 0 28px;color:#cdd5dc;max-width:30em}
.zone__list{display:flex;flex-wrap:wrap;gap:4px 0;font:700 clamp(1.7rem,3.9vw,3.5rem)/1.08 var(--disp);letter-spacing:-.035em}
.zone__list li{display:inline-flex;align-items:center}
.zone__list li:not(:last-child)::after{content:"";width:.2em;height:.2em;background:var(--copper-l);transform:rotate(45deg);margin:0 .38em}
.zone__more{color:var(--zinc);font-weight:400}

/* Questions */
.faq__in{max-width:var(--max);margin:0 auto;padding:clamp(56px,8vw,128px) var(--gut);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,6vw,96px);align-items:start}
.faq__head{position:sticky;top:calc(var(--hd) + 28px)}
.faq__head .h-xl{font-size:clamp(2rem,4.2vw,3.5rem)}
.qa{border-top:1px solid var(--line)}
.qa:last-of-type{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0;font:650 clamp(1.1rem,1.6vw,1.32rem)/1.2 var(--disp);letter-spacing:-.015em;min-height:56px}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--copper-d)}
.ico--plus{flex:none;transition:transform .35s var(--ease);color:var(--copper)}
.qa[open] .ico--plus{transform:rotate(45deg)}
.qa__a{padding:0 44px 24px 0;color:#2c3946;max-width:44em}
.faq__rev{margin-top:22px}.faq__rev a{font-weight:650;color:var(--copper-d)}

/* Devis */
.devis{background:var(--ink) var(--slates-l);color:var(--paper);scroll-margin-top:var(--hd)}
.devis__in{max-width:var(--max);margin:0 auto;padding:clamp(56px,8vw,120px) var(--gut);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:start}
.devis em{color:var(--copper-l)}
.devis__lead{margin-top:20px;color:#cdd5dc;max-width:28em}
.devis__num{display:inline-flex;align-items:center;gap:14px;margin-top:28px;font:760 clamp(2rem,4.2vw,3.5rem)/1 var(--disp);letter-spacing:-.035em;text-decoration:none;color:var(--paper);padding:6px 0;border-bottom:3px solid var(--copper)}
.devis__num .ico{width:.62em;height:.62em;color:var(--copper-l)}
.devis__num:hover{color:var(--copper-l)}
.devis__facts{margin-top:30px;display:grid;gap:10px;color:#cdd5dc;font-size:.97rem}
.devis__facts li{display:flex;gap:12px;align-items:baseline}
.devis__facts li::before{content:"";width:7px;height:7px;background:var(--copper-l);transform:rotate(45deg) translateY(-2px);flex:none}
.devis__form{background:var(--paper);color:var(--ink);padding:clamp(22px,3.4vw,46px);clip-path:polygon(0 0,calc(100% - 46px) 0,100% 46px,100% 100%,0 100%)}
.devis__rgpd{font-size:.84rem;color:var(--mute);margin-top:16px}
.devis-form,.wpcf7 form{display:grid;grid-template-columns:1fr 1fr;gap:30px 18px}
.wpcf7 form>*{grid-column:1/-1}
.wpcf7 form>.f-row{grid-column:span 1}
.wpcf7 form>.f-row--wide{grid-column:1/-1}
.f-row label{display:block;font-weight:650;font-size:.93rem;margin-bottom:7px}
.f-opt{font-weight:400;color:var(--mute)}
.f-row label span[aria-hidden]{color:var(--copper-d)}
.wpcf7-form-control-wrap{display:block;position:relative}
.f-row input:not([type=submit]),.f-row textarea{width:100%;font:400 1.0625rem/1.4 var(--body);color:var(--ink);background:#fff;border:1.5px solid rgba(20,32,44,.34);border-radius:0;padding:14px 14px;min-height:54px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.f-row textarea{min-height:128px;resize:vertical}
.f-row input:focus,.f-row textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(196,80,26,.35)}
.f-row .wpcf7-not-valid{border-color:#b3261e}
/* Messages d'erreur hors flux : corriger un champ ne décale jamais le bouton d'envoi */
.wpcf7-not-valid-tip{position:absolute;left:0;top:100%;margin-top:4px;color:#a01b14;font-size:.82rem;line-height:1.2;font-weight:600;white-space:nowrap}
.f-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.f-row .btn--submit{background:var(--copper);color:#fff;border:0;width:100%;min-height:60px;font:680 1.08rem/1 var(--body);cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:0;transition:background .25s}
.f-row .btn--submit:hover{background:var(--copper-d)}
.f-submit{position:relative}
.wpcf7-spinner{display:none;position:absolute;right:18px;top:50%;width:20px;height:20px;margin-top:-10px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%}
form.submitting .wpcf7-spinner{display:block;animation:spin .8s linear infinite}
form.submitting .btn--submit{opacity:.75;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hidden-fields-container{display:none}
.wpcf7-response-output{display:none;padding:15px 16px;font-weight:600;border-left:5px solid var(--ink);background:var(--paper2)}
form.sent .wpcf7-response-output{display:block;border-color:#1c6b3a;background:#e2efe5;color:#11472a}
form.invalid .wpcf7-response-output,form.unaccepted .wpcf7-response-output,form.failed .wpcf7-response-output,form.aborted .wpcf7-response-output,form.spam .wpcf7-response-output{display:block;border-color:#b3261e;background:#f8e4e1;color:#7d1610}
.form-fallback{font-weight:600}

/* Page prestation */
.phero{background:var(--paper) var(--slates)}
.phero__in{max-width:var(--max);margin:0 auto;padding:clamp(22px,3.4vw,48px) var(--gut) clamp(40px,6vw,88px);display:grid;grid-template-columns:minmax(0,6.4fr) minmax(0,5.6fr);gap:clamp(24px,5vw,80px);align-items:center}
.crumb{display:flex;flex-wrap:wrap;gap:8px;font-size:.86rem;color:var(--mute);margin-bottom:clamp(22px,3.4vw,50px)}
.crumb a{text-decoration:none;border-bottom:1px solid var(--line)}.crumb a:hover{color:var(--copper-d)}
.phero__h{font-size:clamp(2.2rem,5.1vw,4.5rem);line-height:.97;letter-spacing:-.038em;font-weight:740}
.phero__lead{margin-top:24px;font-size:clamp(1.05rem,1.3vw,1.18rem);max-width:36em;color:#2c3946}
.phero__img{aspect-ratio:5/6;max-height:76vh;width:100%}
.signs{background:var(--ink) var(--slates-l);color:var(--paper)}
.signs em{color:var(--copper-l)}
.signs__in{max-width:var(--max);margin:0 auto;padding:clamp(44px,6vw,90px) var(--gut);display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,5vw,80px);align-items:start}
.signs__list{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(18px,3vw,44px)}
.signs__list li{border-top:1px solid var(--line-l);padding:18px 0;display:flex;gap:16px;align-items:baseline;font-size:1.04rem}
.signs__list span{font:600 .76rem var(--disp);color:var(--copper-l);letter-spacing:.06em;flex:none}
.body__in{max-width:var(--max);margin:0 auto;padding:clamp(52px,7vw,110px) var(--gut);display:grid;grid-template-columns:minmax(0,7.4fr) minmax(0,4.6fr);gap:clamp(28px,6vw,100px);align-items:start}
.prose{max-width:46em}
.prose h2{font:700 clamp(1.6rem,2.9vw,2.4rem)/1.05 var(--disp);letter-spacing:-.03em;margin:1.7em 0 .55em;text-wrap:balance}
.prose h2:first-child{margin-top:0}
.prose h3{font:680 1.3rem/1.15 var(--disp);letter-spacing:-.02em;margin:1.6em 0 .45em}
.prose p{margin:0 0 1.05em;color:#243140}
.prose ul{margin:0 0 1.2em;display:grid;gap:10px}
.prose ul li{padding-left:26px;position:relative;color:#243140}
.prose ul li::before{content:"";position:absolute;left:3px;top:.62em;width:8px;height:8px;background:var(--copper);transform:rotate(45deg)}
.prose a{color:var(--copper-d);font-weight:600}
.side{position:sticky;top:calc(var(--hd) + 28px)}
.side__card{background:var(--paper2);padding:clamp(22px,2.6vw,34px);display:grid;gap:12px;clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%)}
.side__t{font:700 1.5rem/1.05 var(--disp);letter-spacing:-.025em}
.side__num{font:700 1.3rem var(--disp);letter-spacing:-.01em;text-align:center;margin-top:4px}
.qinfo{background:var(--paper2)}
.qinfo__in{max-width:var(--max);margin:0 auto;padding:clamp(52px,7vw,110px) var(--gut);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px);align-items:start}
.qinfo__in p:not(.eyebrow){margin:18px 0 26px;color:#2c3946;max-width:28em}
.qinfo__list li{border-top:1px solid var(--line);padding:17px 0 17px 34px;position:relative;font-size:1.04rem}
.qinfo__list li:last-child{border-bottom:1px solid var(--line)}
.qinfo__list li::before{content:"";position:absolute;left:4px;top:1.5em;width:14px;height:8px;border-left:2px solid var(--copper);border-bottom:2px solid var(--copper);transform:rotate(-45deg) translateY(-6px)}
.more__in{max-width:var(--max);margin:0 auto;padding:clamp(44px,6vw,90px) var(--gut)}
.more__list{margin-top:26px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 28px}
.more__list a{display:flex;gap:14px;align-items:baseline;padding:16px 0;border-top:1px solid var(--line);text-decoration:none;font:650 1.2rem/1.1 var(--disp);letter-spacing:-.02em;transition:color .25s,padding .35s var(--ease)}
.more__list a:hover{color:var(--copper-d);padding-left:10px}
.more__list span{font:500 .74rem var(--disp);color:var(--mute)}

/* Pages simples */
.plain__in{max-width:820px;margin:0 auto;padding:clamp(40px,6vw,90px) var(--gut) clamp(56px,8vw,110px)}
.plain__in .h-xl{margin-bottom:28px;font-size:clamp(2rem,4.6vw,3.6rem)}
.plain__list{margin:18px 0;display:grid;gap:8px}.plain__list a{font-weight:600;color:var(--copper-d)}

/* Pied de page */
.ft{background:var(--paper2);border-top:1px solid var(--line)}
.ft__in{max-width:var(--max);margin:0 auto;padding:clamp(40px,5vw,72px) var(--gut) 30px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3.5fr) minmax(0,3.5fr);gap:clamp(24px,4vw,64px)}
.ft__logo img{height:74px;width:auto;margin-bottom:16px}
.ft__brand p{color:#2c3946;margin-bottom:10px;max-width:26em}
.ft__tel{font:700 1.4rem var(--disp)}
.ft__h{font:600 .75rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--copper-d);margin-bottom:14px}
.ft__h--sp{margin-top:26px}
.ft__col ul{display:grid;gap:2px}
.ft__col a{text-decoration:none;display:inline-block;padding:7px 0}
.ft__col a:hover{color:var(--copper-d);text-decoration:underline}
.ft__zone{color:#2c3946;font-size:.97rem}
.ft__base{max-width:var(--max);margin:0 auto;padding:18px var(--gut) 26px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:.88rem;color:var(--mute)}
.ft__legal{display:flex;flex-wrap:wrap;gap:6px 20px}
.ft__legal a{color:inherit;padding:6px 0}

/* Barre de contact mobile */
.mbar{display:none}

/* Tablette */
@media (max-width:1080px){
  .hd__nav{display:none}.hd__burger{display:block;order:3;margin-left:0}.hd__cta{margin-left:auto}
  .svc__in{grid-template-columns:1fr}.svc__stage{display:none}
  .svc__link{grid-template-columns:34px minmax(0,1fr) 84px}
  .svc__go{display:none}
  .svc__thumb{display:block;width:84px;aspect-ratio:5/6;overflow:hidden;clip-path:polygon(0 12%,100% 0,100% 100%,0 100%);background:var(--slate)}
  .svc__thumb img{width:100%;height:100%;object-fit:cover}
  .steps__list,.steps__list--5{grid-template-columns:1fr 1fr;align-items:start}
  .steps__list li:nth-child(n){margin-bottom:0}
  .signs__in,.faq__in,.zone__in,.qinfo__in{grid-template-columns:1fr}
  .faq__head,.side{position:static}
  .body__in{grid-template-columns:1fr}
  .ft__in{grid-template-columns:1fr 1fr}.ft__brand{grid-column:1/-1}
}
/* Mobile : composition propre, pas une réduction de l'écran large */
@media (max-width:760px){
  :root{--hd:64px;--mbar:62px;--sct-bottom-offset:calc(var(--mbar) + env(safe-area-inset-bottom,0px))}
  body{padding-bottom:calc(var(--mbar) + env(safe-area-inset-bottom,0px))}
  .hd__in{gap:8px}.hd__logo img{height:40px}
  .hd__cta{display:none}.hd__burger{margin-left:auto}
  .hero__in{grid-template-columns:1fr;padding-top:26px;padding-bottom:0;gap:26px}
  .hero__h{font-size:clamp(2.75rem,14.2vw,4.6rem)}
  .hero__sub{font-size:.36em}
  .hero__lead{margin-top:20px}
  .cta-row{margin-top:26px}
  .hero .cta-row .btn{flex:1 1 100%}
  .hero__media{min-height:0;margin:0 calc(var(--gut) * -1);aspect-ratio:5/6}
  .hero__inset{left:var(--gut);bottom:-34px;width:44%;border-width:6px}
  .hero__num{left:auto;right:var(--gut);top:-.5em;font-size:8.4rem}
  .band{padding-top:34px}
  .band__in{gap:9px 14px;font-size:.7rem;letter-spacing:.14em}
  .facts__in{grid-template-columns:1fr}
  .svc__link{padding:18px 0}
  .svc__d{font-size:.93rem}
  .svc__link{grid-template-columns:28px minmax(0,1fr) 72px;gap:8px 12px}.svc__thumb{width:72px}
  .real__head{grid-template-columns:1fr}
  .real__grid{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:10px;scrollbar-width:none;align-items:flex-start}
  .real__grid::-webkit-scrollbar{display:none}
  .real__col{display:contents}
  .shot{flex:0 0 78vw;scroll-snap-align:center;margin-top:0}
  .shot__img{aspect-ratio:4/5!important}
  .js-anim .real .rv{opacity:1;transform:none}
  .real__hint{display:block;padding:14px var(--gut) 0;color:var(--zinc);font-size:.84rem}
  .about__in{grid-template-columns:1fr}.about__img{aspect-ratio:4/3}
  .steps__list,.steps__list--5{grid-template-columns:1fr;gap:0}
  .steps__list li{display:grid;grid-template-columns:62px 1fr;gap:0 14px;border-top:1px solid var(--line);padding:20px 0}
  .steps__n{grid-row:1/3;font-size:3.1rem;margin:0}
  .zone__list{font-size:clamp(1.55rem,7.6vw,2.2rem)}
  .signs__list{grid-template-columns:1fr}
  .devis__in{grid-template-columns:1fr}
  .wpcf7 form>.f-row{grid-column:1/-1}
  .devis__form{clip-path:polygon(0 0,calc(100% - 30px) 0,100% 30px,100% 100%,0 100%)}
  .phero__in{grid-template-columns:1fr;padding-bottom:0}
  .phero__h{font-size:clamp(2.1rem,10vw,3.2rem)}
  .phero .cta-row .btn{flex:1 1 100%}
  .phero__img{margin:0 calc(var(--gut) * -1);width:auto;aspect-ratio:4/3;max-height:none}
  .qa__a{padding-right:0}
  .ft__in{grid-template-columns:1fr}
  .mbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--ink);padding-bottom:env(safe-area-inset-bottom,0px);box-shadow:0 -10px 30px -18px rgba(0,0,0,.6);transition:transform .3s var(--ease)}
  .mbar.is-hidden{transform:translateY(110%)}
  .mbar__b{display:flex;align-items:center;justify-content:center;gap:10px;height:var(--mbar);font:700 1.06rem/1 var(--body);text-decoration:none}
  .mbar__b--call{background:var(--copper);color:#fff}
  .mbar__b--quote{background:var(--ink);color:var(--paper)}
}
@media (max-width:1080px) and (min-width:761px){
  .hero__in{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
  .hero__inset{left:-10%}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.hd,.mbar,.mnav,.band,.svc__stage{display:none!important}body{background:#fff}}
