/* Entreprise Verstraet, v2. DA « les matières du toit » : terre cuite, chaux, ardoise, zinc, papier. */
/* polices hébergées sur le site (aucun appel à un serveur extérieur) */
@font-face{font-family:"Chillax";src:url("../fonts/chillax-600.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Chillax";src:url("../fonts/chillax-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("../fonts/satoshi-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("../fonts/satoshi-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("../fonts/satoshi-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --ivoire:#FBF6EE; --chaux:#F2ECE1; --papier:#F1E9DA; --ardoise:#25221F; --ardoise-2:#2E2A26; --zinc:#8D9AA1;
  --terre:#E85A0C; --terre-deep:#C84A05; --terre-l:#FF8A3D; --creme:#FFF3E2;
  --ink:var(--ardoise); --muted:rgba(37,34,31,.76); --line:rgba(37,34,31,.13); --line-l:rgba(255,243,226,.14);
  --display:"Chillax","Satoshi",system-ui,sans-serif; --sans:"Satoshi",system-ui,sans-serif;
  --gut:clamp(18px,4vw,64px); --max:1380px; --r:4px; --ease:cubic-bezier(.16,1,.3,1); --ease2:cubic-bezier(.65,0,.35,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:var(--sans);font-size:clamp(17px,.35vw + 15.6px,19px);line-height:1.6;color:var(--ink);background:var(--ivoire);overflow-x:clip;-webkit-font-smoothing:antialiased;padding-bottom:calc(76px + env(safe-area-inset-bottom))}
@media(min-width:900px){body{padding-bottom:0}}
@media(min-width:1800px){:root{--max:1580px}}
body::after{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.035em;line-height:1}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ardoise);color:#fff;padding:10px 14px;z-index:200}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--terre);outline-offset:3px}

/* sélection de texte : orange sur fond clair, inversée sur fond orange */
::selection{background:var(--terre);color:#fff}
.contact ::selection,.etape--terre ::selection{background:var(--ardoise);color:var(--creme)}

/* surligneur orange : se trace quand le texte arrive */
.hl{--h:0;background:linear-gradient(100deg,transparent .25em,var(--terre) .3em) no-repeat 0 90%/calc(var(--h)*100%) .44em;padding:0 .08em;margin:0 -.08em}
.chap--dark .hl,.avis .hl,.hero .hl{background-image:linear-gradient(100deg,transparent .25em,var(--terre-deep) .3em)}
.rm .hl,.no-js .hl{--h:1}

/* étiquettes et liens */
.lab{display:inline-flex;align-items:center;gap:12px;font-size:13.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--terre-deep)}
.on-dark .lab{color:var(--terre-l)}
.link{display:inline-flex;align-items:center;gap:10px;font-weight:700;padding:8px 0;position:relative}
.link::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:2px;background:var(--terre);transform-origin:right;transition:transform .7s var(--ease)}
.link:hover::after{transform:scaleX(0)}
.link svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .6s var(--ease)}
.link:hover svg{transform:translateX(6px)}

/* boutons : remplissage qui monte, texte qui roule, appui */
.btn{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:58px;padding:0 28px;border-radius:999px;font-weight:700;font-size:17px;border:1px solid transparent;cursor:pointer;transition:color .45s var(--ease),border-color .45s,scale .35s var(--ease);-webkit-tap-highlight-color:transparent;transform:translateZ(0)}
.btn::before{content:"";position:absolute;z-index:-1;left:var(--x,50%);top:var(--y,50%);width:260%;aspect-ratio:1;border-radius:50%;background:var(--fill,#000);transform:translate(-50%,-50%) scale(0);transition:transform .65s var(--ease);pointer-events:none}
.btn:hover::before{transform:translate(-50%,-50%) scale(1)}
.btn:active{scale:.96;transition-duration:.12s}
.btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .6s var(--ease)}
.btn:hover svg{transform:rotate(-12deg) scale(1.08)}
.roule{display:inline-block;position:relative;overflow:hidden;line-height:1.3;vertical-align:middle;padding:0 .02em}
.roule>span{display:block;transition:transform .55s var(--ease)}
.roule::after{content:attr(data-t);position:absolute;left:.02em;top:100%;white-space:nowrap;transition:transform .55s var(--ease)}
a:hover>.roule>span,button:hover>.roule>span,a:hover>.roule::after,button:hover>.roule::after{transform:translateY(-100%)}
.btn--terre{background:var(--terre-deep);color:#fff;--fill:var(--ardoise)}
.hero .btn--terre,.chap--dark .btn--terre{--fill:var(--creme)}
.hero .btn--terre:hover,.chap--dark .btn--terre:hover{color:var(--ardoise)}
.btn--verre{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.5);color:#fff;--fill:var(--creme);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn--verre:hover{color:var(--ardoise);border-color:var(--creme)}
.btn--ardoise{background:var(--ardoise);color:#fff;--fill:var(--terre-deep)}

/* découpage des titres (animations) */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.swi{display:inline-block;will-change:transform}
.js .rv{opacity:0;transform:translateY(30px)}

/* chargement */
.loader{position:fixed;inset:0;z-index:150;background:var(--ivoire);display:grid;place-items:center}
.loader__in{display:grid;justify-items:center;gap:18px}
.loader svg{width:min(150px,38vw);height:auto;overflow:visible}
.loader path{fill:none;stroke:var(--terre);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.loader__n{font:700 14px var(--sans);letter-spacing:.2em;color:var(--terre-deep);font-variant-numeric:tabular-nums}
.loader__mq{overflow:hidden;display:block}
.loader__mot{display:block;font:700 clamp(15px,1.3vw,18px) var(--display);letter-spacing:.02em;color:var(--ardoise)}
.loader{pointer-events:none}
.ldl{display:inline-block}
.no-js .loader,.rm .loader{display:none}
.js .loader path{opacity:0}
.js .loader__mot,.js .loader__n{opacity:0}
/* rideau orange : ouverture du site et passage d'une page à l'autre */
.rideau{position:fixed;inset:0;z-index:160;background:var(--terre-deep);pointer-events:none;clip-path:inset(0 0 100% 0)}
.rideau::after{content:"";position:absolute;left:50%;top:50%;width:64px;height:44px;margin:-22px 0 0 -32px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 80'%3E%3Cpath d='M4 76 V44 L60 6 L116 44 V76 M88 25 V12 H98 V32' fill='none' stroke='%23FFF3E2' stroke-width='5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");opacity:.9}
.js .rideau--accueil{z-index:149;clip-path:inset(0)}
.js .rideau--accueil::after{display:none}
.rideau.ferme{clip-path:inset(0);transition:clip-path .7s cubic-bezier(.76,0,.24,1)}
.js .rideau--arrivee{clip-path:inset(0)}
.rideau--arrivee.part{clip-path:inset(100% 0 0 0);transition:clip-path .85s cubic-bezier(.76,0,.24,1) .1s}
.rm .rideau,.no-js .rideau{display:none}

/* barre de navigation flottante */
.nav{position:fixed;inset:0 0 auto 0;z-index:60;color:#fff;padding:12px clamp(10px,2vw,24px) 0;transition:transform .8s var(--ease)}
.nav__in{display:flex;align-items:center;gap:8px;max-width:1560px;margin:0 auto;padding:7px 7px 7px 7px;border-radius:20px;background:rgba(20,15,11,.22);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);transition:background .5s,border-color .5s,box-shadow .5s,color .5s}
.nav__logo{display:flex;align-items:center;flex:none;background:#fff;padding:6px 12px;border-radius:14px;transition:scale .4s var(--ease)}
.nav__logo:hover{scale:1.03}
.nav__logo img{height:clamp(34px,3vw,44px);width:auto}
.nav__links{display:none;margin:0 auto;gap:2px}
.nav__links a{padding:10px 13px;font-size:15px;font-weight:600;position:relative;border-radius:999px;transition:background .35s}
.nav__links a:hover{background:rgba(255,255,255,.14)}
.nav.solid .nav__links a:hover{background:rgba(37,34,31,.06)}
.nav__links a::after{content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;background:var(--terre);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease)}
.nav__links a.actif::after{transform:scaleX(1);transform-origin:left}
.nav__dispo{display:none;align-items:center;gap:8px;font-size:14px;font-weight:600;white-space:nowrap;margin-right:6px;opacity:.92}
.nav__dispo i{width:8px;height:8px;border-radius:50%;background:#5BD16A;box-shadow:0 0 0 0 rgba(91,209,106,.6);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(91,209,106,0)}100%{box-shadow:0 0 0 0 rgba(91,209,106,0)}}
.nav__tel{position:relative;isolation:isolate;overflow:hidden;margin-left:auto;display:inline-flex;align-items:center;gap:9px;background:var(--terre-deep);color:#fff;border-radius:14px;padding:0 18px;height:50px;font-size:15.5px;font-weight:700;white-space:nowrap}
.nav__tel svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.nav__tel{transition:color .45s var(--ease)}
.nav__tel:hover{color:var(--ardoise)}
.nav.solid .nav__tel:hover{color:#fff}
.nav__tel::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--creme);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease)}
.nav__tel:hover::before{transform:none}
.nav__burger{width:50px;height:50px;flex:none;border:0;background:#fff;color:var(--ardoise);border-radius:14px;display:grid;place-items:center;cursor:pointer}
.nav__burger span{display:block;width:18px;height:2px;background:currentColor;box-shadow:0 6px 0 currentColor,0 -6px 0 currentColor}
.nav.solid .nav__in{background:rgba(251,246,238,.88);border-color:var(--line);color:var(--ardoise);box-shadow:0 14px 40px -18px rgba(37,34,31,.35)}
.nav.solid .nav__tel::before{background:var(--ardoise)}
.nav.solid .nav__burger{background:var(--ardoise);color:#fff}
.nav.cache{transform:translateY(-130%)}
@media(max-width:420px){.nav__tel span{display:none}.nav__tel{width:50px;padding:0;justify-content:center}}
@media(min-width:1180px){.nav__links{display:flex}.nav__burger{display:none}.nav__tel{margin-left:0}}
@media(min-width:1440px){.nav__dispo{display:inline-flex}}
.menu{position:fixed;inset:0;z-index:70;background:var(--ardoise);color:var(--creme);padding:96px var(--gut) 40px;display:flex;flex-direction:column;gap:4px;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease2),visibility 0s .9s;visibility:hidden;overflow-y:auto}
.menu.ouvert{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .9s var(--ease2)}
.menu a{font:700 clamp(32px,9vw,56px)/1.12 var(--display);letter-spacing:-.03em;display:flex;align-items:baseline;gap:14px;opacity:0;transform:translateY(40px);transition:opacity .5s,transform .8s var(--ease)}
.menu.ouvert a{opacity:1;transform:none}
.menu.ouvert a:nth-child(2){transition-delay:.18s}.menu.ouvert a:nth-child(3){transition-delay:.22s}.menu.ouvert a:nth-child(4){transition-delay:.26s}.menu.ouvert a:nth-child(5){transition-delay:.3s}.menu.ouvert a:nth-child(6){transition-delay:.34s}.menu.ouvert a:nth-child(7){transition-delay:.38s}.menu.ouvert a:nth-child(8){transition-delay:.42s}.menu.ouvert a:nth-child(9){transition-delay:.48s}
.menu a small{font:700 13px var(--sans);letter-spacing:.14em;color:var(--terre-l)}
.menu .menu__tel{margin-top:auto;padding-top:28px;font-size:22px;color:var(--terre-l)}
.menu__close{position:absolute;top:14px;right:var(--gut);width:46px;height:46px;border:1px solid var(--line-l);background:none;color:var(--creme);border-radius:999px;font-size:22px;cursor:pointer}

/* ================= HERO ================= */
.hero-pin{position:relative}
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden;background:#3E7BC4;color:#fff}
.hero__bg,.hero__fg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transform-origin:50% 40%;will-change:transform}
.hero__bg{filter:saturate(1.04) contrast(1.02)}
.hero__fg{z-index:2;pointer-events:none}
.hero__name{position:absolute;left:0;right:0;top:12%;z-index:1;text-align:center;pointer-events:none}
.hero__name-in{display:inline-block;white-space:nowrap;font-family:var(--display);font-weight:700;letter-spacing:-.05em;line-height:.8;font-size:20vw;color:var(--creme)}
.hero__name-in .l{display:inline-block;color:var(--creme);text-shadow:0 10px 60px rgba(10,40,90,.18);will-change:transform}
.hero__sun{position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:soft-light;background:radial-gradient(55% 45% at var(--sx,72%) var(--sy,22%),rgba(255,186,104,.95),rgba(255,186,104,0) 70%)}
.hero__shade{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(to top,rgba(18,13,9,.9) 0%,rgba(18,13,9,.62) 26%,rgba(18,13,9,0) 54%)}
.hero__fumee{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}
.hero__ui{position:absolute;z-index:5;left:0;right:0;bottom:calc(92px + env(safe-area-inset-bottom));display:grid;gap:14px}
.hero__k{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:clamp(15px,1.1vw,17px);font-weight:600;color:#fff;margin-bottom:16px;text-shadow:0 1px 12px rgba(0,0,0,.35)}
.hero__k b{font-weight:700;color:#fff}
.etoiles{display:inline-flex;gap:2px;color:var(--terre-l)}
.etoiles svg{width:17px;height:17px;fill:currentColor}
.hero h1{font-size:clamp(31px,3.3vw + 13px,68px);max-width:15ch;line-height:1.02;text-shadow:0 2px 30px rgba(0,0,0,.2)}
.hero__sub{max-width:38ch;font-size:clamp(17px,1.4vw,21px);line-height:1.5;color:#fff;font-weight:500;text-shadow:0 1px 16px rgba(0,0,0,.35)}
.hero__sub .hl{color:#fff;font-weight:700}
.hero .cta{display:none;flex-wrap:wrap;gap:10px;margin-top:22px}
.hero__defil{display:none;position:absolute;z-index:5;left:50%;bottom:22px;width:1px;height:44px;background:rgba(255,255,255,.25);overflow:hidden}
.hero__defil i{position:absolute;left:0;top:0;width:1px;height:40%;background:#fff;animation:defil 2.2s var(--ease2) infinite}
@keyframes defil{0%{transform:translateY(-100%)}100%{transform:translateY(260%)}}
@media(min-width:900px){
  .hero__ui{bottom:64px;grid-template-columns:1.3fr .7fr;align-items:end;gap:40px}
  .hero__r{padding-bottom:6px}
  .hero .cta{display:flex}
  .hero__defil{display:block}
}

/* ================= PRÉSENTATION ================= */
.intro{padding:clamp(84px,12vw,180px) 0 clamp(60px,8vw,120px);overflow:hidden}
.intro__big{font-family:var(--display);font-weight:700;letter-spacing:-.035em;line-height:1.08;font-size:clamp(27px,4.5vw,68px);max-width:24ch;margin-top:26px}
.intro__big .sw{overflow:visible}
.intro__big .swi{color:rgba(37,34,31,.14);transition:color .25s}
.surl{position:relative;white-space:nowrap}
.surl::after{content:"";position:absolute;left:0;right:0;bottom:.02em;height:.08em;background:var(--terre);transform:scaleX(var(--u,0));transform-origin:left;transition:transform 1s var(--ease)}
.bande{margin-top:clamp(56px,8vw,110px)}
.bande__piste{display:flex;align-items:flex-start;gap:clamp(10px,1.2vw,18px);width:max-content;padding-inline:var(--gut);will-change:transform}
.bande__f{flex:none;margin:0}
.bande__f img{width:100%;height:auto;object-fit:cover;border-radius:var(--r)}
.bande__f figcaption{margin-top:12px;font-size:15px;font-weight:700;color:var(--ink)}
.bande__f--a{width:clamp(220px,24vw,380px)}.bande__f--a img{aspect-ratio:3/4}
.bande__f--b{width:clamp(180px,19vw,300px);margin-top:clamp(40px,7vw,110px)}.bande__f--b img{aspect-ratio:4/5}
.bande__f--c{width:clamp(250px,28vw,440px);margin-top:clamp(14px,2.4vw,40px)}.bande__f--c img{aspect-ratio:1/1}

/* ================= CHAPITRES ================= */
.chap{position:relative;padding:clamp(76px,11vw,160px) 0}
.chap--chaux{background:var(--chaux)}
.chap--dark{background:var(--ardoise);color:var(--creme)}
.chap__head{display:flex;align-items:center;gap:18px;padding-bottom:22px;margin-bottom:clamp(30px,5vw,64px);border-bottom:1px solid var(--line)}
.chap--dark .chap__head{border-color:var(--line-l)}
.chap__n{font:700 clamp(44px,6.4vw,96px)/1 var(--display);letter-spacing:-.04em;color:var(--terre);font-variant-numeric:tabular-nums;overflow:hidden;display:inline-block;padding:.06em .04em .1em 0;margin:-.06em 0 -.1em}
.chap__n span{display:inline-block}
.chap__grid{display:grid;gap:clamp(34px,5vw,80px)}
.chap__grid>*,.chap__intro>*,.faq__grid>*,.contact__grid>*,.methode__grid>*,.zinc__bas>*{min-width:0}
@media(max-width:420px){h2{hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}}
.chap h2{font-size:clamp(29px,5.6vw,84px);max-width:13ch}
.chap .lead{font-family:var(--display);font-weight:600;font-size:clamp(21px,2vw,30px);line-height:1.25;letter-spacing:-.015em;margin-top:22px;max-width:30ch}
.chap p.txt{color:var(--muted);margin-top:16px;max-width:46ch}
.chap--dark p.txt{color:rgba(255,243,226,.86)}
.chap__cta{display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;margin-top:30px}
.chap__intro{display:grid;gap:8px;margin-bottom:clamp(34px,5vw,70px)}
.chap__intro .lead{margin-top:18px}
@media(min-width:960px){
  .chap__grid{grid-template-columns:1fr 1.05fr;align-items:center}
  .chap--inv .chap__media{order:-1}
  .chap__grid--ba{grid-template-columns:1fr 1.15fr}
  .chap__intro{grid-template-columns:1.15fr .85fr;gap:60px;align-items:end}
  .chap__intro .lead{margin-top:0}
}

/* médias */
.media{position:relative;overflow:hidden;border-radius:var(--r);background:#cbbfae;margin:0}
.media img{width:100%;height:100%;object-fit:cover}
.media--34{aspect-ratio:3/4}.media--32{aspect-ratio:3/2}.media--45{aspect-ratio:4/5}
.media figcaption{position:absolute;left:12px;bottom:12px;z-index:3;background:var(--ivoire);color:var(--ardoise);font-size:14px;font-weight:700;padding:9px 14px;border-radius:999px;line-height:1.25}
.js .reveal-img{clip-path:inset(16% 0 0 0)}
.reveal-img img{will-change:transform}
.duo{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(10px,1.4vw,18px);align-items:start}
.duo--decal{margin-top:clamp(10px,1.4vw,18px)}
.duo--decal>:last-child{margin-top:clamp(40px,8vw,140px)}

/* urgence */
.urg-big{display:grid;gap:14px;margin-top:34px;padding:26px 0;border-top:1px solid var(--line-l);border-bottom:1px solid var(--line-l)}
.urg-big b{font:700 clamp(56px,7vw,112px)/.95 var(--display);letter-spacing:-.05em;color:var(--terre-l);white-space:nowrap}
.urg-big>span{font-size:clamp(18px,1.5vw,22px);line-height:1.4;color:var(--creme);max-width:30ch}
.urg-big strong{color:var(--terre-l)}
/* compteur « banque » : chaque chiffre roule sur sa colonne */
.mq{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.mqi{display:inline-block;will-change:transform}
.urg-big b{position:relative;display:inline-block;justify-self:start;padding-bottom:.12em}
.urg-trait{position:absolute;left:0;right:.1em;bottom:0;height:3px;border-radius:2px;background:var(--terre-l);transform-origin:left}
.odo{display:inline-block;white-space:nowrap}
.odo__c{display:inline-block;height:1.1em;overflow:hidden;overflow:clip;position:relative;line-height:1.1em;margin-right:-.035em}
.odo__p{display:flex;flex-direction:column;will-change:transform}
.odo__p span{display:block;height:1.1em;line-height:1.1em;text-align:center}
.odo__s{display:inline-block;line-height:1.1em}

/* avant / après */
.ba{--p:50%;position:relative;overflow:hidden;border-radius:var(--r);background:#cbbfae;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba__avant{clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.ba__ligne{position:absolute;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:var(--creme);z-index:2;box-shadow:0 0 0 1px rgba(0,0,0,.06)}
.ba__poignee{position:absolute;z-index:3;top:50%;left:var(--p);width:58px;height:58px;margin:-29px 0 0 -29px;border-radius:50%;border:0;background:var(--creme);display:grid;place-items:center;cursor:grab;box-shadow:0 10px 30px rgba(0,0,0,.22);transition:transform .5s var(--ease),background .4s}
.ba__poignee svg{width:22px;height:22px;stroke:var(--ardoise);stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke .4s}
.ba:hover .ba__poignee{transform:scale(1.08)}
.ba.tire .ba__poignee{transform:scale(.92);background:var(--terre-deep);cursor:grabbing}
.ba.tire .ba__poignee svg{stroke:#fff}
.ba__t{position:absolute;z-index:3;top:12px;font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:var(--r);pointer-events:none;line-height:1.2}
.ba__t--a{left:12px;background:var(--ivoire);color:var(--ardoise)}
.ba__t--b{right:12px;background:var(--terre-deep);color:#fff;text-align:right}
.ba__t small{display:block;font-weight:600;font-size:12px;letter-spacing:.01em;text-transform:none;opacity:.85;margin-top:2px}
.ba--large{aspect-ratio:4/3}
@media(min-width:760px){.ba--large{aspect-ratio:16/9}}

/* zinguerie : la feuille de zinc se plie en chéneau */
.pli{position:relative;height:320vh;margin-top:clamp(10px,2vw,30px)}
.pli__scene{position:sticky;top:0;height:100svh;display:grid;align-items:center;overflow:hidden}
.pli__grid{display:grid;gap:20px;width:100%;align-items:center}
.pli__etapes{list-style:none;display:grid;gap:clamp(14px,2vw,26px);position:relative;padding-left:22px;order:2}
.pli__etapes li{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:baseline;opacity:.32;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.pli__etapes li.on{opacity:1;transform:translateX(6px)}
.pli__etapes b{font:700 clamp(15px,1.2vw,18px) var(--display);color:var(--terre-deep)}
.pli__etapes p{font:500 clamp(18px,1.7vw,26px)/1.3 var(--display);letter-spacing:-.015em;max-width:24ch}
.pli__etapes strong{font-weight:700}
.pli__barre{position:absolute!important;left:0;top:6px;bottom:6px;width:2px;background:var(--line);opacity:1!important;transform:none!important;display:block!important}
.pli__barre i{position:absolute;left:0;top:0;width:100%;height:100%;background:var(--terre);transform:scaleY(var(--pb,0));transform-origin:top}
.pli__vue{position:relative;height:min(56svh,520px);display:grid;place-items:center;perspective:1300px;order:1}
.feuille{--fw:clamp(110px,13vw,210px);--fl:calc(var(--fw)*2.2);--fa:calc(var(--fw)*.5);--fo:calc(var(--fw)*.12);position:relative;width:var(--fw);height:var(--fl);transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-36deg)}
.feuille>div,.aile>div{position:absolute;transform-style:preserve-3d}
.zm{background:linear-gradient(100deg,#7f8c92 0%,#aab5ba 22%,#e4eaec calc(30% + var(--sh,0)*40%),#a5b0b5 calc(42% + var(--sh,0)*40%),#8b979d 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.zm::after{content:"";position:absolute;inset:0;background:#1d2326;opacity:var(--o,0);pointer-events:none}
.feuille__fond{inset:0}
.aile{top:0;height:100%;width:var(--fa)}
.aile--g{right:100%;transform-origin:100% 50%}
.aile--d{left:100%;transform-origin:0 50%}
.ourlet{top:0;height:100%;width:var(--fo)}
.ourlet--g{right:100%;transform-origin:100% 50%}
.ourlet--d{left:100%;transform-origin:0 50%}
.talon{left:0;top:100%;width:100%;height:var(--fa);transform-origin:50% 0}
.trait{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--terre);transform:scaleY(var(--t,0));transform-origin:top}
.trait--g{left:-1px}.trait--d{right:-1px}
.soudure{position:absolute;left:0;bottom:-1px;height:4px;width:calc(var(--w,0)*100%);background:linear-gradient(90deg,#ffb36b,#ff7a1a);border-radius:2px;box-shadow:0 0 12px 3px rgba(255,140,40,calc(var(--g,0)*.9)),0 0 30px 8px rgba(255,120,20,calc(var(--g,0)*.45))}
.soudure::after{content:"";position:absolute;right:-6px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:radial-gradient(#fff,#ffcf8a 40%,rgba(255,150,50,0) 70%);opacity:var(--g,0)}
.pli__ombre{position:absolute;left:50%;top:58%;width:min(52vw,520px);height:min(16vw,150px);margin-left:calc(min(52vw,520px)/-2);border-radius:50%;background:radial-gradient(rgba(37,34,31,.28),rgba(37,34,31,0) 70%);filter:blur(6px);transform:scaleX(var(--os,1))}
.pli__note{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--terre-deep);white-space:nowrap}
@media(max-width:899px){
  .pli__scene{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
  .pli__grid{gap:8px}
  .pli__vue{height:min(42svh,400px)}
  .pli__etapes{gap:10px}
  .pli__etapes p{font-size:17px}
  .pli__note{font-size:12.5px}
}
@media(min-width:900px){
  .pli__grid{grid-template-columns:.8fr 1.2fr;gap:40px}
  .pli__etapes{order:0}
  .pli__vue{height:min(78svh,720px)}
}
.zinc__bas{display:grid;gap:clamp(30px,5vw,80px);margin-top:clamp(40px,6vw,90px);align-items:center}
.zinc__bas .duo>:last-child{margin-top:clamp(30px,6vw,90px)}
.zinc__bas p.txt{margin-top:0;font-size:clamp(18px,1.4vw,21px);color:var(--ink);max-width:36ch}
@media(min-width:900px){.zinc__bas{grid-template-columns:1.1fr .9fr}}
.rm .pli{height:auto}.rm .pli__scene{position:relative;height:auto;padding:40px 0}

/* hydrofuge : deux produits côte à côte */
.hyd{display:grid;gap:clamp(40px,5vw,28px)}
.hyd__c{position:relative}
.hyd__c .ba,.hyd__c .media{width:100%}
.hyd__photo img{object-position:50% 0}
.hyd__n{display:inline-grid;place-items:center;width:34px;height:34px;margin-top:22px;border-radius:50%;background:var(--terre-deep);color:#fff;font:700 15px var(--display)}
.hyd__c h3{font-size:clamp(26px,2.8vw,40px);letter-spacing:-.03em;margin-top:14px}
.hyd__c p{margin-top:10px;color:var(--muted);max-width:40ch;font-size:clamp(17px,1.3vw,19px)}
.hyd__resine{aspect-ratio:762/980}
.zinc__bas>.ba{max-width:560px;width:100%}
#hydrofuge .chap__cta{margin-top:clamp(36px,4vw,56px)}
@media(min-width:760px){.hyd{grid-template-columns:1fr 1fr}.hyd__c:last-child{margin-top:clamp(40px,7vw,120px)}}

/* ================= GALERIE ================= */
.gal{padding:clamp(76px,11vw,160px) 0}
.gal__top{display:grid;gap:20px;margin-bottom:clamp(28px,4vw,50px)}
.gal h2{font-size:clamp(29px,5.6vw,84px);max-width:12ch;margin-top:18px}
.filtres{display:flex;flex-wrap:wrap;gap:8px}
.filtres button{border:1px solid var(--line);background:none;padding:11px 20px;border-radius:999px;font-weight:700;font-size:15px;cursor:pointer;color:var(--ardoise);transition:background .4s,color .4s,border-color .4s}
.filtres button:hover{border-color:var(--ardoise)}
.filtres button[aria-pressed=true]{background:var(--ardoise);border-color:var(--ardoise);color:var(--creme)}
.gal__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gallery-card{position:relative;overflow:hidden;border-radius:var(--r);background:#cbbfae;margin:0}
.gallery-card img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/4;transform:scale(1.08);transition:filter .8s var(--ease)}
.gallery-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:50px 16px 16px;background:linear-gradient(to top,rgba(18,13,9,.8),rgba(18,13,9,0));color:#fff;font-size:16px;font-weight:700;line-height:1.3}
.gallery-card figcaption small{display:block;font-weight:500;font-size:14px;opacity:.9;margin-top:3px}
.gallery-card.hide{display:none}
@media(min-width:760px){.gal__grid{grid-template-columns:repeat(3,1fr);gap:14px}.gallery-card figcaption{transform:translateY(12px);opacity:.92;transition:transform .7s var(--ease),opacity .5s}.gallery-card:hover figcaption{transform:none;opacity:1}}
@media(min-width:960px){.gal__top{grid-template-columns:1fr auto;align-items:end}}

/* ================= AVIS ================= */
.avis{background:var(--ardoise);color:var(--creme);padding:clamp(76px,11vw,160px) 0 clamp(70px,9vw,130px);overflow:hidden}
.avis__top{display:grid;justify-items:center;text-align:center}
.avis h2{font-size:clamp(29px,5.6vw,84px);max-width:14ch;margin-top:18px}
.note{display:grid;justify-items:center;gap:clamp(14px,1.6vw,22px);margin-top:clamp(40px,5vw,70px)}
.note__chiffre{display:flex;align-items:flex-end;gap:.08em;font:700 clamp(110px,17vw,260px)/.9 var(--display);letter-spacing:-.05em;color:var(--terre-l)}
.note__chiffre b{font-variant-numeric:tabular-nums}
.note__chiffre>span{font-size:.24em;color:rgba(255,243,226,.55);letter-spacing:-.02em;padding-bottom:.42em}
.note__etoiles{display:flex;gap:clamp(6px,1vw,14px)}
.etoile{position:relative;width:clamp(38px,5vw,66px);aspect-ratio:1;display:block}
.etoile svg{position:absolute;inset:0;width:100%;height:100%}
.etoile .vide{fill:none;stroke:var(--terre-l);stroke-width:1.2;stroke-linejoin:round}
.etoile .plein{fill:var(--terre-l);clip-path:inset(0 calc(100% - var(--f,0)*100%) 0 0)}
.note__d{font-size:clamp(17px,1.4vw,20px);color:rgba(255,243,226,.85)}
.note__d strong{color:var(--creme)}
.avis__une{font:700 clamp(28px,4.4vw,70px)/1.08 var(--display);letter-spacing:-.035em;max-width:23ch;margin:clamp(70px,9vw,140px) auto clamp(56px,7vw,100px);text-align:center}
.avis__une .sw{overflow:visible}
.avis__une .swi{color:rgba(255,243,226,.16);transition:color .25s}
.avis__une cite{display:block;margin-top:26px;font:500 17px/1.4 var(--sans);letter-spacing:0;font-style:normal;color:rgba(255,243,226,.78)}
.avis__une cite b{color:var(--creme)}
.rangs{display:grid;gap:clamp(12px,1.4vw,18px)}
.rang{overflow:hidden;touch-action:pan-y;cursor:grab}
.rang.tire{cursor:grabbing}
.rang .carte{user-select:none;-webkit-user-select:none}
.rang__piste{display:flex;gap:clamp(12px,1.4vw,18px);width:max-content;will-change:transform}
.carte{flex:none;width:clamp(288px,82vw,480px);display:flex;flex-direction:column;gap:20px;margin:0;padding:clamp(24px,2.4vw,36px);background:var(--ardoise-2);border:1px solid var(--line-l);border-radius:var(--r);transition:border-color .5s,background .5s}
.carte:hover{border-color:rgba(255,138,61,.55);background:#332E29}
.carte blockquote{font:600 clamp(19px,1.55vw,24px)/1.38 var(--display);letter-spacing:-.01em}
.carte figcaption{display:flex;align-items:center;gap:12px;margin-top:auto;font-size:14.5px;color:rgba(255,243,226,.75)}
.carte figcaption i{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:50%;background:var(--terre-deep);color:#fff;font:700 16px var(--display);font-style:normal}
.carte figcaption b{display:block;font-size:16.5px;color:var(--creme)}
.avis__bas{margin-top:clamp(30px,4vw,50px);text-align:center}

/* ================= DÉROULEMENT (papier) ================= */
.methode{position:relative;padding:clamp(76px,11vw,160px) 0;background:var(--papier);isolation:isolate;overflow:clip}
.methode__fond{position:sticky;top:0;height:100lvh;margin:calc(-1*clamp(76px,11vw,160px)) 0 calc(-100lvh + clamp(76px,11vw,160px));z-index:-1;pointer-events:none;
  background-color:var(--papier);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .33 0 0 0 0 .22 0 0 0 .55 -.12'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23p)'/%3E%3C/svg%3E"),
    radial-gradient(60% 50% at 18% 30%,rgba(150,110,60,.10),transparent 70%),radial-gradient(50% 60% at 82% 75%,rgba(150,110,60,.09),transparent 70%),
    linear-gradient(rgba(37,34,31,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(37,34,31,.045) 1px,transparent 1px);
  background-size:240px 240px,100% 100%,100% 100%,28px 28px,28px 28px}
.methode h2{font-size:clamp(29px,5.6vw,84px);max-width:14ch;margin:18px 0 clamp(24px,4vw,56px)}
.methode__gauche{display:contents}
.methode__grid{display:grid;gap:clamp(30px,4vw,70px)}
.methode__plan{align-self:start}
.plan-svg{width:100%;height:auto;display:block;overflow:visible}
.plan-svg .s{fill:none;stroke:var(--ardoise);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.plan-svg .f{fill:none;stroke:rgba(37,34,31,.6);stroke-width:1.4;stroke-linecap:round}
.plan-svg .k{fill:none;stroke:rgba(37,34,31,.2);stroke-width:1;stroke-dasharray:none}
.plan-svg .h{fill:none;stroke:rgba(37,34,31,.38);stroke-width:1.2}
.plan-svg .tu{fill:none;stroke:var(--terre);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.plan-svg .z{fill:none;stroke:#6F7C83;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.plan-svg .c{fill:none;stroke:var(--terre-deep);stroke-width:1.5;stroke-linecap:round}
.plan-svg text{font:700 14px var(--sans);fill:var(--ardoise)}
.plan-svg text.tc{fill:var(--terre-deep);font-size:17px;letter-spacing:.01em}
.plan-svg .pastille circle{fill:var(--terre-deep)}
.plan-svg .pastille text{fill:#fff;font-size:14px;text-anchor:middle}
/* cartes empilées : chacune reste collée en haut, la suivante vient se poser dessus */
.etapes{list-style:none;display:grid;gap:22vh}
.etapes__fin{height:30vh}
.etape{position:sticky;top:var(--carte-top,130px);display:flex;flex-direction:column;min-height:clamp(250px,26vw,330px);padding:clamp(24px,3vw,44px);background:var(--ardoise);color:var(--creme);border-radius:var(--r);transform-origin:50% 0;box-shadow:0 -1px 0 rgba(255,255,255,.05),0 24px 60px -30px rgba(37,34,31,.5)}
.etape b{font:700 clamp(40px,4vw,64px)/1 var(--display);letter-spacing:-.04em;color:var(--terre-l)}
.etape h3{font-size:clamp(24px,2.4vw,34px);letter-spacing:-.025em;margin-top:auto;padding-top:22px}
.etape p{color:rgba(255,243,226,.88);margin-top:10px;max-width:42ch;font-size:clamp(17px,1.25vw,19px)}
.etape__croquis{display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,243,226,.16);font-size:14.5px;font-weight:700;color:var(--creme)}
.etape__croquis i{flex:none;width:10px;height:10px;border-radius:50%}
.k-ardoise{background:#d9cfc2}.k-cote{background:var(--terre-l)}.k-tuile{background:var(--creme)}
.etape--terre{background:var(--terre-deep);color:#fff}
.etape--terre b{color:var(--creme)}
.etape--terre p{color:#fff}
.etape--terre .etape__croquis{border-color:rgba(255,255,255,.3)}
/* ordinateur : le titre et le croquis restent en place, seules les cartes défilent à côté et s'empilent */
@media(min-width:960px){
  .methode__grid{grid-template-columns:1.25fr .95fr;align-items:start;gap:clamp(40px,5vw,90px)}
  .methode__gauche{display:block;position:sticky;top:110px}
  .methode h2{font-size:clamp(34px,4vw,64px);margin-bottom:clamp(20px,2.5vw,40px)}
  .etapes{gap:44vh;padding-top:var(--carte-debut,200px)}
  .etape{min-height:var(--carte-min,0px)}
  .etapes__fin{height:40vh}
}
/* téléphone : le croquis reste en haut, les cartes s'empilent juste en dessous sans jamais le recouvrir */
@media(max-width:959px){
  .methode__grid{gap:12px}
  .methode__plan{position:sticky;top:84px;margin-bottom:var(--carte-h,300px)}
  .etapes{margin-top:calc(-1 * var(--carte-h,300px));gap:16vh}
  .etapes__fin{height:16vh}
  .etape{top:calc(84px + var(--plan-h,240px) + 12px);min-height:var(--carte-min,0px);padding:20px 20px 22px}
  .etape h3{padding-top:12px;font-size:22px}
  .etape b{font-size:32px}
  .etape p{font-size:16px}
  .etape__croquis{font-size:13.5px;margin-top:12px;padding-top:10px}
}
@media(max-width:959px) and (max-height:720px){.plan-svg{max-height:29svh;margin:0 auto;width:auto}.etape p{font-size:15px}.etape{padding:16px 18px}}
.rm .etape{position:relative;top:auto}

/* ================= QUESTIONS ================= */
.faq{background:var(--chaux);padding:clamp(76px,11vw,160px) 0 0}
.faq__grid{display:grid;gap:clamp(36px,5vw,80px)}
.faq h2{font-size:clamp(29px,5.6vw,84px);max-width:12ch;margin-top:18px}
.zone{margin-top:26px;color:var(--muted);max-width:40ch;font-size:clamp(17px,1.3vw,19px)}
.zone b{color:var(--ink)}
.acc__item{border-top:1px solid var(--line)}
.acc__item:last-child{border-bottom:1px solid var(--line)}
.acc h3{font-size:inherit;letter-spacing:inherit;line-height:inherit}
.acc__q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;border:0;background:none;text-align:left;cursor:pointer;font:700 clamp(18px,1.7vw,23px)/1.3 var(--display);letter-spacing:-.015em;color:var(--ink);transition:color .4s}
.acc__q:hover{color:var(--terre-deep)}
.acc__q i{flex:none;width:32px;height:32px;border:1.5px solid var(--terre);border-radius:50%;position:relative;transition:transform .7s var(--ease),background .4s}
.acc__q i::before,.acc__q i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:1.5px;background:var(--terre);transform:translate(-50%,-50%);transition:background .4s,transform .7s var(--ease)}
.acc__q i::after{transform:translate(-50%,-50%) rotate(90deg)}
.acc__q:hover i{background:var(--terre)}
.acc__q:hover i::before,.acc__q:hover i::after{background:#fff}
.acc__item.ouvert .acc__q i{transform:rotate(180deg);background:var(--terre)}
.acc__item.ouvert .acc__q i::before{background:#fff}
.acc__item.ouvert .acc__q i::after{transform:translate(-50%,-50%) rotate(0);background:#fff}
.acc__r{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.acc__r>div{overflow:hidden;min-height:0}
.acc__r p{padding:0 48px 26px 0;color:var(--muted);max-width:60ch;font-size:clamp(17px,1.25vw,19px);opacity:0;transform:translateY(-8px);transition:opacity .45s,transform .7s var(--ease)}
.acc__item.ouvert .acc__r{grid-template-rows:1fr}
.acc__item.ouvert .acc__r p{opacity:1;transform:none;transition-delay:.1s}
.no-js .acc__r{grid-template-rows:1fr}.no-js .acc__r p{opacity:1;transform:none}
@media(min-width:960px){.faq__grid{grid-template-columns:.9fr 1.3fr}}
.defile{margin-top:clamp(70px,9vw,120px);overflow:hidden;border-top:1px solid var(--line);padding:22px 0;white-space:nowrap}
.defile__piste{display:inline-flex;gap:40px;animation:defile 50s linear infinite;font:700 clamp(26px,3.6vw,52px)/1 var(--display);letter-spacing:-.03em;color:var(--ardoise)}
.defile__piste span{display:inline-flex;align-items:center;gap:40px}
.defile__piste span::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--terre)}
@keyframes defile{to{transform:translateX(-50%)}}

/* ================= CONTACT ================= */
.contact{background:var(--terre-deep);color:#fff;padding:clamp(76px,11vw,150px) 0 clamp(60px,8vw,110px);position:relative;overflow:hidden}
.contact .lab{color:#fff}
.contact__tel{display:block;width:max-content;max-width:100%;font:700 15vw/.9 var(--display);letter-spacing:-.05em;margin:18px 0 clamp(30px,5vw,60px);white-space:nowrap;transition:color .5s}
.contact__tel:hover{color:var(--ardoise)}
.contact__grid{display:grid;gap:clamp(36px,5vw,80px)}
.contact h2{font-size:clamp(30px,3.8vw,54px);max-width:14ch}
.contact__infos{list-style:none;margin-top:26px}
.contact__infos li{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-top:1px solid rgba(255,255,255,.3);font-size:17px}
.contact__infos li:last-child{border-bottom:1px solid rgba(255,255,255,.28)}
.contact__infos span{color:#fff}
.contact__infos a{font-weight:700;text-align:right;word-break:break-word;background:linear-gradient(currentColor,currentColor) no-repeat 100% 100%/0 1.5px;transition:background-size .6s var(--ease)}
.contact__infos a:hover{background-size:100% 1.5px;background-position:0 100%}
.form{display:grid;gap:12px;background:var(--ivoire);color:var(--ardoise);padding:clamp(20px,3vw,36px);border-radius:var(--r)}
.form h3{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.025em;margin-bottom:6px}
.form label{display:grid;gap:7px;font-size:15px;font-weight:700}
.form input,.form select,.form textarea{width:100%;font:500 16px var(--sans);color:var(--ardoise);background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px;transition:border-color .3s,box-shadow .3s}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--terre);box-shadow:0 0 0 3px rgba(232,90,12,.15)}
.form .duo2{display:grid;gap:12px}
@media(min-width:600px){.form .duo2{grid-template-columns:1fr 1fr}}
.form .pot{position:absolute;left:-9999px}
.form button{margin-top:6px;width:100%}
.form__note{font-size:14px;color:var(--muted)}
.form__etat{font-size:14px;font-weight:700;min-height:1.4em}
.form__etat.ok{color:#2F6B2F}.form__etat.err{color:#A12A00}
@media(min-width:960px){.contact__grid{grid-template-columns:.9fr 1.1fr}}

/* pied de page */
.pied{background:var(--ardoise);color:var(--creme);padding:clamp(60px,8vw,110px) 0 40px;overflow:hidden}
.pied__nom{display:block;width:max-content;font:700 20vw/.8 var(--display);letter-spacing:-.06em;color:var(--creme);white-space:nowrap;margin:0 auto;overflow:hidden;padding-bottom:.04em}
.pied__nom .pl{display:inline-block}
.pied__bas{display:grid;gap:20px;margin-top:clamp(36px,5vw,60px);padding-top:24px;border-top:1px solid var(--line-l);font-size:15.5px;color:rgba(255,243,226,.82)}
.pied__bas nav{display:flex;flex-wrap:wrap;gap:6px 22px}
.pied__bas a{transition:color .3s}.pied__bas a:hover{color:var(--terre-l)}
@media(min-width:960px){.pied__bas{grid-template-columns:1fr auto;align-items:center}}

/* dock d'appel */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;gap:8px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));background:rgba(251,246,238,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);transition:transform .7s var(--ease),opacity .5s}
.dock a{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:9px;height:54px;border-radius:999px;font-weight:700;font-size:16px;white-space:nowrap;transition:transform .4s var(--ease);-webkit-tap-highlight-color:transparent}
.dock a:active{transform:scale(.95);transition-duration:.12s}
.dock svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dock__appel{flex:1.15;background:var(--terre-deep);color:#fff}
.dock__devis{flex:1;background:var(--ardoise);color:#fff}
.dock__plus{display:none}
@media(min-width:480px){.dock__plus{display:inline;margin-left:-9px}}
.dock__wa{width:54px;flex:none;border:1px solid var(--line);color:var(--ardoise);background:#fff}
.dock__appel svg{animation:sonne 4s var(--ease) infinite}
@keyframes sonne{0%,86%,100%{transform:none}88%{transform:rotate(-14deg)}90%{transform:rotate(12deg)}92%{transform:rotate(-8deg)}94%{transform:rotate(4deg)}}
@media(max-width:340px){.dock{gap:6px}.dock a{font-size:15px}.dock__appel svg{display:none}}
@media(min-width:900px){
  .dock{left:auto;right:24px;bottom:20px;width:440px;border:1px solid var(--line);border-radius:999px;padding:7px;box-shadow:0 18px 50px -12px rgba(0,0,0,.25)}
  .dock a{height:50px}.dock__wa{width:50px}
  .dock.loin{transform:translateY(140%);opacity:0;pointer-events:none}
}

/* sans animation (préférence système ou scripts indisponibles) */
.rm .rv{opacity:1;transform:none}.rm .etoile{--f:1}.rm .reveal-img{clip-path:none}.rm .intro__big .swi{color:var(--ardoise)}.rm .avis__une .swi{color:var(--creme)}.rm .gallery-card img{transform:none}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* pages légales */
.legal{padding:150px 0 100px;background:var(--ivoire)}
.legal .wrap{max-width:860px}
.legal h1{font-size:clamp(36px,5vw,64px);margin:18px 0 40px}
.legal h2{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.02em;margin:46px 0 14px}
.legal p,.legal li{color:var(--ink);font-size:17px;margin-bottom:12px;max-width:68ch}
.legal ul{padding-left:20px}
.legal a{color:var(--terre-deep);text-decoration:underline;text-underline-offset:3px}
.legal .a-completer{background:#FFE3CC;color:#8E3402;padding:1px 6px;border-radius:4px;font-weight:700}
.legal__maj{color:var(--muted);font-size:15px}
.page-simple .nav{color:var(--ardoise)}
.page-simple .nav__in{background:rgba(251,246,238,.92);border-color:var(--line)}
.page-simple .nav__tel::before{background:var(--ardoise)}
.page-simple .nav__tel:hover{color:#fff}
.err404{min-height:100svh;display:grid;place-items:center;text-align:center;padding:120px var(--gut)}
.err404 b{display:block;font:700 clamp(120px,22vw,300px)/.85 var(--display);letter-spacing:-.05em;color:var(--terre)}
.err404 h1{font-size:clamp(28px,3.4vw,46px);margin:18px 0 26px}
