
:root{
  --grege-000:#FBF8F4; --grege-100:#F2ECE3; --grege-200:#E7DFD3; --grege-300:#D6CCBC;
  --encre:#1C1A17;
  --encre-70:rgba(28,26,23,.70); --encre-45:rgba(28,26,23,.45);
  --encre-14:rgba(28,26,23,.14); --encre-08:rgba(28,26,23,.08);
  --terre:#B4552F; --terre-clair:#C9714B;
  --terre-08:rgba(180,85,47,.08); --terre-18:rgba(180,85,47,.18);
  --display:'Fraunces',Georgia,serif;
  --texte:'General Sans','Helvetica Neue',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1); --ease-doux:cubic-bezier(.32,.72,0,1);
  --lent:900ms; --moyen:520ms; --court:280ms;
  --gutter:clamp(20px,5vw,72px); --max:1400px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--texte);font-weight:400;color:var(--encre);background:var(--grege-100);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.no-scroll{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--terre);outline-offset:3px;border-radius:2px}
.grain{position:fixed;inset:0;z-index:9000;pointer-events:none;opacity:.32;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")}
@media (max-width:767px){.grain{display:none}}
h1,h2,h3{font-family:var(--display);font-weight:900;line-height:1.02;letter-spacing:-.028em}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--etroit{max-width:900px}
section{position:relative}
.oeil{font-family:var(--texte);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terre);display:inline-flex;align-items:center;gap:.7em}
.oeil::before{content:"";width:26px;height:1px;background:var(--terre);opacity:.6}
.oeil--clair{color:var(--terre-clair)}
.oeil--clair::before{background:var(--terre-clair)}
.rise{opacity:0;transform:translateY(28px);transition:opacity var(--lent) var(--ease),transform var(--lent) var(--ease)}
.rise.vu{opacity:1;transform:none}
.saut{position:absolute;left:-9999px;top:0;z-index:9999}
.saut:focus{left:1rem;top:1rem}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.85em;min-height:56px;padding:0 2rem;
  font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;border-radius:2px;position:relative;overflow:hidden;
  transition:transform var(--court) var(--ease-doux),box-shadow var(--moyen) var(--ease),background var(--court) var(--ease),color var(--court) var(--ease),border-color var(--court) var(--ease);will-change:transform}
.btn svg{transition:transform var(--moyen) var(--ease)}
.btn:hover svg{transform:translateX(5px)}
.btn--terre{background:var(--terre);color:var(--grege-000);box-shadow:0 1px 0 rgba(0,0,0,.06)}
.btn--terre::after{content:"";position:absolute;inset:0;background:var(--terre-clair);transform:scaleY(0);transform-origin:bottom;transition:transform var(--moyen) var(--ease);z-index:-1}
.btn--terre:hover{box-shadow:0 14px 34px -14px rgba(180,85,47,.62)}
.btn--terre:hover::after{transform:scaleY(1)}
.btn--terre span{position:relative;z-index:1}
.btn--ligne{border:1px solid var(--encre-14);color:var(--encre)}
.btn--ligne:hover{border-color:var(--encre);background:var(--encre);color:var(--grege-000)}
.btn--clair{border:1px solid rgba(242,236,227,.24);color:var(--grege-100)}
.btn--clair:hover{background:var(--grege-100);color:var(--encre);border-color:var(--grege-100)}

/* Header */
.entete{position:fixed;top:0;left:0;right:0;z-index:1000;padding:clamp(14px,2vw,26px) var(--gutter);transition:padding var(--moyen) var(--ease)}
.entete__barre{max-width:var(--max);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:.6rem .6rem .6rem 0;border-radius:999px;background:transparent;border:1px solid transparent;backdrop-filter:blur(0px);
  transition:background var(--moyen) var(--ease),border-color var(--moyen) var(--ease),backdrop-filter var(--moyen) var(--ease),padding var(--moyen) var(--ease),box-shadow var(--moyen) var(--ease)}
.entete.scrolled{padding-top:10px;padding-bottom:10px}
.entete.scrolled .entete__barre{background:rgba(251,248,244,.72);border-color:var(--encre-08);backdrop-filter:blur(18px) saturate(140%);
  padding:.5rem .5rem .5rem 1.25rem;box-shadow:0 18px 40px -30px rgba(28,26,23,.45)}
.entete--plein .entete__barre{background:rgba(251,248,244,.72);border-color:var(--encre-08);backdrop-filter:blur(18px) saturate(140%);padding:.5rem .5rem .5rem 1.25rem}
.marque{display:flex;align-items:center;gap:.85rem;flex-shrink:0}
.marque__sceau{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;background:var(--terre);color:var(--grege-000);border-radius:2px;
  font-family:var(--display);font-weight:900;font-size:1rem;letter-spacing:-.04em;transition:transform var(--moyen) var(--ease)}
.entete.scrolled .marque__sceau{transform:scale(.86)}
.marque__nom{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(1.05rem,1.5vw,1.28rem);line-height:1;white-space:nowrap;transition:font-size var(--moyen) var(--ease)}
.entete.scrolled .marque__nom{font-size:1.02rem}
.nav{display:flex;align-items:center;gap:2rem}
.nav a{position:relative;font-size:.88rem;font-weight:500;padding:.4rem 0;color:var(--encre-70);transition:color var(--court) var(--ease);white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--terre);transform:scaleX(0);transform-origin:right;transition:transform var(--moyen) var(--ease)}
.nav a:hover{color:var(--encre)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav a[aria-current="page"]{color:var(--terre)}
.entete__droite{display:flex;align-items:center;gap:1.1rem}
.langues{display:flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:600;letter-spacing:.08em;color:var(--encre-45)}
.langues a[aria-current]{color:var(--encre)}
.langues span{opacity:.35}
.tel-pill{display:inline-flex;align-items:center;gap:.6rem;min-height:46px;padding:0 1.15rem;border-radius:999px;background:var(--grege-000);border:1px solid var(--encre-08);
  font-weight:600;font-size:.9rem;white-space:nowrap;transition:background var(--court) var(--ease),color var(--court) var(--ease),border-color var(--court) var(--ease)}
.tel-pill svg{color:var(--terre);transition:color var(--court) var(--ease)}
.tel-pill:hover{background:var(--terre);color:var(--grege-000);border-color:var(--terre)}
.tel-pill:hover svg{color:var(--grege-000)}
.burger{display:none;flex-direction:column;width:46px;height:46px;border-radius:999px;border:1px solid var(--encre-14);align-items:center;justify-content:center;background:rgba(251,248,244,.8);backdrop-filter:blur(10px)}
.burger span{display:block;width:18px;height:1.5px;background:var(--encre);transition:transform var(--moyen) var(--ease),opacity var(--court) var(--ease)}
.burger span+span{margin-top:5px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* Menu mobile */
.voile{position:fixed;inset:0;z-index:999;background:var(--grege-000);clip-path:circle(0% at calc(100% - 44px) 44px);
  transition:clip-path 780ms var(--ease);display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gutter) 2rem;pointer-events:none;height:100dvh;overflow-y:auto}
.voile.ouvert{clip-path:circle(150% at calc(100% - 44px) 44px);pointer-events:auto}
.voile nav{display:flex;flex-direction:column;gap:.1rem}
.voile nav a{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(1.75rem,7.5vw,2.5rem);padding:.3rem 0;border-bottom:1px solid var(--encre-08);
  opacity:0;transform:translateY(22px);transition:opacity 620ms var(--ease),transform 620ms var(--ease)}
.voile.ouvert nav a{opacity:1;transform:none}
.voile.ouvert nav a:nth-child(1){transition-delay:110ms}
.voile.ouvert nav a:nth-child(2){transition-delay:160ms}
.voile.ouvert nav a:nth-child(3){transition-delay:210ms}
.voile.ouvert nav a:nth-child(4){transition-delay:260ms}
.voile.ouvert nav a:nth-child(5){transition-delay:310ms}
.voile.ouvert nav a:nth-child(6){transition-delay:360ms}
.voile.ouvert nav a:nth-child(7){transition-delay:410ms}
.voile__cta{margin-top:2rem;opacity:0;transform:translateY(22px);transition:opacity 620ms var(--ease) 470ms,transform 620ms var(--ease) 470ms}
.voile.ouvert .voile__cta{opacity:1;transform:none}
.voile__cta .btn{width:100%}
.voile__pied{margin-top:1.6rem;font-size:.85rem;color:var(--encre-45)}
.voile__pied a{text-decoration:underline}

/* Fil d'Ariane */
.fil{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-size:.8rem;color:var(--encre-45);margin-bottom:1.4rem}
.fil a{transition:color var(--court) var(--ease)}
.fil a:hover{color:var(--terre)}
.fil span{opacity:.4}

/* Hero de page intérieure */
.entete-page{padding:clamp(150px,16vw,200px) 0 clamp(56px,7vw,88px);background:var(--grege-000);border-bottom:1px solid var(--encre-08);position:relative;overflow:hidden}
.entete-page__grille{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,5rem);align-items:center}
.entete-page h1{font-size:clamp(2.2rem,4.2vw,3.9rem);margin:1rem 0 1.4rem;max-width:16ch}
.entete-page h1 em{font-style:normal;color:var(--terre)}
.entete-page__intro{font-size:clamp(1rem,1.1vw,1.12rem);color:var(--encre-70);max-width:48ch}
.entete-page__actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:2.2rem}
.entete-page__image{position:relative;overflow:hidden;border-radius:3px;aspect-ratio:4/3}
.entete-page__image img{width:100%;height:100%;object-fit:cover;transition:transform 1600ms var(--ease)}
.entete-page__image:hover img{transform:scale(1.03)}
.entete-page--sobre{padding-bottom:clamp(40px,5vw,60px)}
.entete-page--sobre .entete-page__grille{grid-template-columns:1fr}
.entete-page--sobre h1{max-width:20ch}

/* Bandeau de preuves */
.preuves{background:var(--encre);color:var(--grege-100);padding:clamp(2.4rem,4vw,3.2rem) 0}
.preuves__grille{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.preuves__item{display:flex;flex-direction:column;gap:.35rem}
.preuves__item b{font-family:var(--display);font-weight:700;font-size:clamp(1.6rem,2.3vw,2.1rem);letter-spacing:-.03em;line-height:1.05}
.preuves__item b i{font-style:normal;color:var(--terre-clair)}
.preuves__item span{font-size:.82rem;color:rgba(242,236,227,.55);max-width:26ch}

/* Grille de services — aura chromatique */
.svc-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;background:var(--encre-08)}
.svc{position:relative;isolation:isolate;overflow:hidden;background:var(--grege-000);padding:clamp(2rem,2.6vw,2.6rem);
  display:flex;flex-direction:column;gap:.9rem;min-height:270px;transition:background var(--moyen) var(--ease)}
.svc::before{content:"";position:absolute;z-index:-1;width:100%;height:100%;
  background:radial-gradient(circle at var(--ax,0%) var(--ay,100%),var(--terre-18) 0%,transparent 62%);
  opacity:0;transform:scale(1);transition:opacity var(--lent) var(--ease),transform var(--lent) var(--ease)}
.svc:hover::before,.svc:focus-within::before{opacity:1;transform:scale(1.8)}
.svc::after{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--terre);transform:scaleY(0);transform-origin:top;transition:transform var(--moyen) var(--ease)}
.svc:hover::after,.svc:focus-within::after{transform:scaleY(1)}
.svc__num{font-family:var(--display);font-weight:500;font-size:.9rem;color:var(--encre-45);opacity:.55;transition:opacity var(--moyen) var(--ease),color var(--moyen) var(--ease)}
.svc:hover .svc__num{opacity:1;color:var(--terre)}
.svc h3{font-size:1.5rem;font-weight:700;letter-spacing:-.025em;position:relative;display:inline-block;align-self:flex-start;padding-bottom:.28rem}
.svc h3::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--terre);transform:scaleX(0);transform-origin:left;transition:transform var(--moyen) var(--ease)}
.svc:hover h3::after,.svc:focus-within h3::after{transform:scaleX(1)}
.svc p{font-size:.94rem;color:var(--encre-70);margin-bottom:auto}
.svc__lien{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.4rem;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--encre-45);transition:color var(--court) var(--ease)}
.svc:hover .svc__lien{color:var(--terre)}
.svc__lien svg{transition:transform var(--moyen) var(--ease)}
.svc:hover .svc__lien svg{transform:translateX(5px)}
.svc__zone{position:absolute;inset:0;z-index:1}

/* Section générique */
.sec{padding:clamp(88px,12vw,170px) 0}
.sec--000{background:var(--grege-000)}
.sec--100{background:var(--grege-100)}
.sec--encre{background:var(--encre);color:var(--grege-100)}
.sec__entete{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:2.5rem;align-items:end;margin-bottom:clamp(3rem,5vw,4.5rem)}
.sec__entete h2{font-size:clamp(2rem,3.4vw,3.3rem);max-width:17ch;margin-top:1rem}
.sec__entete p{color:var(--encre-70);max-width:46ch;padding-bottom:.4rem}
.sec--encre .sec__entete p{color:rgba(242,236,227,.6)}

/* Article / prose */
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.5rem,2.2vw,2rem);margin:2.8rem 0 1rem;letter-spacing:-.025em}
.prose h2:first-child{margin-top:0}
.prose p{margin-bottom:1.1rem;color:var(--encre-70);font-size:1.02rem}
.prose p strong{color:var(--encre);font-weight:600}
.prose>p:first-of-type{font-size:1.15rem;color:var(--encre)}
.prose ul{list-style:none;display:flex;flex-direction:column;gap:.8rem;margin:1.6rem 0}
.prose li{display:flex;gap:.85rem;align-items:flex-start;color:var(--encre-70)}
.prose li svg{color:var(--terre);flex-shrink:0;margin-top:.32rem}

.article{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2.5rem,5vw,5rem);align-items:start}
.aside{position:sticky;top:120px;display:flex;flex-direction:column;gap:1.6rem}
.carte{background:var(--grege-000);border:1px solid var(--encre-08);padding:1.8rem;border-radius:3px}
.sec--100 .carte{background:var(--grege-000)}
.sec--000 .carte{background:var(--grege-100)}
.carte h3{font-family:var(--texte);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terre);margin-bottom:1.1rem}
.carte p{font-size:.92rem;color:var(--encre-70);margin-bottom:1.2rem}
.carte .btn{width:100%;padding-inline:1rem;letter-spacing:.1em;gap:.6em}
.carte__liens{display:flex;flex-direction:column;gap:.7rem}
.carte__liens a{font-size:.94rem;color:var(--encre-70);display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding-bottom:.7rem;border-bottom:1px solid var(--encre-08);transition:color var(--court) var(--ease)}
.carte__liens a:last-child{border-bottom:0;padding-bottom:0}
.carte__liens a:hover{color:var(--terre)}
.carte__liens svg{opacity:.4;transition:transform var(--moyen) var(--ease),opacity var(--court) var(--ease)}
.carte__liens a:hover svg{transform:translateX(4px);opacity:1}

/* Points-clés */
.points{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--encre-08);margin:2.5rem 0}
.point{background:var(--grege-000);padding:1.6rem;display:flex;gap:.9rem;align-items:flex-start;font-size:.94rem;color:var(--encre-70)}
.sec--000 .point{background:var(--grege-100)}
.point svg{color:var(--terre);flex-shrink:0;margin-top:.3rem}

/* Étapes */
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(242,236,227,.14)}
.etape{background:var(--encre);padding:2rem 1.8rem;display:flex;flex-direction:column;gap:.7rem}
.etape__num{font-family:var(--display);font-weight:900;font-size:2.6rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(242,236,227,.32);letter-spacing:-.04em;
  transition:color var(--lent) var(--ease),-webkit-text-stroke-color var(--lent) var(--ease)}
.etape:hover .etape__num{color:var(--terre-clair);-webkit-text-stroke-color:transparent}
.etape h3{font-size:1.15rem;font-weight:700;letter-spacing:-.02em}
.etape p{font-size:.9rem;color:rgba(242,236,227,.6)}

/* Galerie */
.galerie{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:clamp(1.2rem,2vw,1.8rem)}
.real{display:flex;flex-direction:column;gap:1rem}
.real__image{position:relative;overflow:hidden;border-radius:3px;aspect-ratio:4/3;background:var(--grege-200)}
.real__image img{width:100%;height:100%;object-fit:cover;transition:transform 1400ms var(--ease),filter 900ms var(--ease);filter:saturate(.92)}
.real:hover .real__image img{transform:scale(1.045);filter:saturate(1)}
.real__badge{position:absolute;left:1rem;top:1rem;padding:.5rem .85rem;background:var(--terre);color:var(--grege-000);
  font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.real h3{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}
.real__lieu{font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--encre-45)}
.real p{font-size:.94rem;color:var(--encre-70)}

/* Grille de cartes (guides, zones) */
.cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1px;background:var(--encre-08)}
.crt{position:relative;background:var(--grege-000);padding:clamp(1.8rem,2.4vw,2.4rem);display:flex;flex-direction:column;gap:.8rem;min-height:230px;transition:background var(--court) var(--ease)}
.sec--100 .crt{background:var(--grege-000)}
.crt:hover{background:var(--grege-100)}
.sec--100 .crt:hover{background:var(--grege-200)}
.crt__meta{font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--terre)}
.crt h3{font-size:1.32rem;font-weight:700;letter-spacing:-.025em}
.crt p{font-size:.94rem;color:var(--encre-70);margin-bottom:auto}
.crt__fl{display:inline-flex;align-items:center;gap:.55rem;margin-top:1.3rem;font-size:.74rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--encre-45);transition:color var(--court) var(--ease)}
.crt:hover .crt__fl{color:var(--terre)}
.crt:hover .crt__fl svg{transform:translateX(5px)}
.crt__fl svg{transition:transform var(--moyen) var(--ease)}
.crt__zone{position:absolute;inset:0}

/* FAQ */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--encre-08)}
.faq details{border-bottom:1px solid var(--encre-08)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.5rem 0;font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,1.5vw,1.3rem);letter-spacing:-.02em;
  transition:color var(--court) var(--ease);min-height:56px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--terre)}
.faq summary svg{flex-shrink:0;color:var(--terre);transition:transform var(--moyen) var(--ease)}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq__r{padding:0 0 1.6rem;color:var(--encre-70);max-width:70ch;animation:monte 520ms var(--ease) both}

/* Nuancier */
.nuancier__grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(2.5rem,5vw,5rem);align-items:center}
.nuancier__texte h2{font-size:clamp(2rem,3.2vw,3rem);margin:1rem 0 1.3rem;max-width:14ch}
.nuancier__texte>p{color:var(--encre-70);max-width:42ch;margin-bottom:2.2rem}
.teintes{display:flex;flex-direction:column;gap:.2rem;margin-bottom:2.2rem}
.teinte{display:flex;align-items:center;gap:1.1rem;width:100%;text-align:left;padding:.85rem 1rem;min-height:56px;border:1px solid transparent;border-radius:3px;
  transition:background var(--court) var(--ease),border-color var(--court) var(--ease)}
.teinte:hover{background:var(--grege-100)}
.teinte[aria-pressed="true"]{border-color:var(--encre-14);background:var(--grege-100)}
.teinte__pastille{width:34px;height:34px;border-radius:2px;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(28,26,23,.12);transition:transform var(--moyen) var(--ease)}
.teinte[aria-pressed="true"] .teinte__pastille{transform:scale(1.12)}
.teinte__nom{font-weight:500;font-size:.98rem}
.teinte__ref{margin-left:auto;font-size:.76rem;letter-spacing:.1em;color:var(--encre-45);font-variant-numeric:tabular-nums}
.teinte[aria-pressed="true"] .teinte__ref{color:var(--terre)}
.mur{position:relative;overflow:hidden;border-radius:3px;aspect-ratio:4/3;background:var(--grege-200)}
.mur img{width:100%;height:100%;object-fit:cover}
.mur__teinte{position:absolute;inset:0;background:var(--teinte-active,#EDE6D9);mix-blend-mode:multiply;opacity:.86;transition:background 700ms var(--ease-doux)}
.mur__grain{position:absolute;inset:0;pointer-events:none;opacity:.16;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23m)'/%3E%3C/svg%3E")}
.mur__etiquette{position:absolute;right:1.1rem;bottom:1.1rem;z-index:2;display:flex;align-items:center;gap:.65rem;padding:.7rem 1.1rem;
  background:rgba(251,248,244,.94);backdrop-filter:blur(8px);font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.mur__etiquette i{width:12px;height:12px;background:var(--teinte-active,#EDE6D9);border-radius:1px;box-shadow:inset 0 0 0 1px rgba(28,26,23,.15)}
.mur__note{margin-top:1rem;font-size:.82rem;color:var(--encre-45)}

/* Section matière (parallaxe) */
.matiere{position:relative;overflow:hidden;color:var(--grege-100);background:var(--encre);padding:clamp(100px,14vw,190px) 0}
.matiere__fond{position:absolute;inset:-12% 0;z-index:0;opacity:.42;will-change:transform}
.matiere__fond img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) contrast(1.05)}
.matiere::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,var(--encre) 0%,rgba(28,26,23,.72) 35%,rgba(28,26,23,.82) 100%)}
.matiere .wrap{position:relative;z-index:1}
.matiere h2{font-size:clamp(2rem,3.4vw,3.2rem);max-width:15ch;margin:1rem 0 clamp(3rem,5vw,4.5rem)}

/* Avis */
.avis{border-left:2px solid var(--terre);padding-left:1.4rem}
.avis blockquote{font-family:var(--display);font-weight:300;font-size:1.18rem;line-height:1.45;font-style:italic;letter-spacing:-.01em}
.avis figcaption{margin-top:.8rem;font-size:.82rem;color:var(--encre-45)}
.avis__etoiles{color:var(--terre);letter-spacing:.18em;font-size:.8rem;margin-bottom:.7rem}

/* Contact */
.contact__grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,5rem);align-items:start}
.coord{display:flex;flex-direction:column;gap:1.6rem;font-style:normal}
.coord__bloc{padding-bottom:1.6rem;border-bottom:1px solid var(--encre-08)}
.coord__bloc:last-child{border-bottom:0}
.coord__label{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--terre);margin-bottom:.6rem}
.coord__val{font-family:var(--display);font-weight:700;font-size:1.5rem;letter-spacing:-.025em;line-height:1.25}
.coord__val a:hover{color:var(--terre)}
.coord__note{font-size:.9rem;color:var(--encre-70);margin-top:.4rem}

/* Formulaires */
.champ{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1rem}
.champ label{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--encre-45)}
.champ input,.champ textarea,.champ select{font-family:var(--texte);font-size:1rem;color:var(--encre);padding:.95rem 1rem;min-height:54px;width:100%;
  background:var(--grege-100);border:1px solid transparent;border-radius:3px;transition:border-color var(--court) var(--ease),background var(--court) var(--ease)}
.sec--100 .champ input,.sec--100 .champ textarea,.sec--100 .champ select{background:var(--grege-000)}
/* Dans une carte, l'input doit contraster avec le fond de la carte, pas s'y fondre */
.carte .champ input,.carte .champ textarea,.carte .champ select{background:var(--grege-100);border-color:var(--encre-08)}
.sec--000 .carte .champ input,.sec--000 .carte .champ textarea,.sec--000 .carte .champ select{background:var(--grege-000)}
.champ input:focus,.champ textarea:focus,.champ select:focus{outline:none;border-color:var(--terre);background:var(--grege-000)}
.carte .champ input:focus,.carte .champ textarea:focus,.carte .champ select:focus{border-color:var(--terre)}
.champ textarea{min-height:130px;resize:vertical}
.champ--duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.champ--duo .champ{margin-bottom:0}
.form-note{font-size:.82rem;color:var(--encre-45);margin-top:1rem}

/* Footer */
.pied{background:var(--encre);color:var(--grege-100);position:relative;overflow:hidden}
.pied__cta{padding:clamp(80px,10vw,130px) 0 clamp(60px,7vw,90px);border-bottom:1px solid rgba(242,236,227,.12)}
.pied__cta-grille{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:clamp(2rem,5vw,4rem);align-items:end}
.pied__cta h2{font-size:clamp(2.4rem,5.4vw,5.2rem);line-height:.98;letter-spacing:-.035em;max-width:12ch}
.pied__cta h2 em{font-style:normal;color:var(--terre-clair)}
.pied__cta-actions{display:flex;flex-direction:column;gap:.9rem}
.pied__cta-actions .btn{width:100%}
.pied__delai{font-size:.82rem;color:rgba(242,236,227,.5);text-align:center;margin-top:.3rem}
.pied__corps{padding:clamp(60px,7vw,90px) 0 2.5rem;display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:2.5rem}
.pied__corps h3{font-family:var(--texte);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--terre-clair);margin-bottom:1.4rem}
.pied__liens{display:flex;flex-direction:column;gap:.65rem}
.pied__liens a{font-size:.94rem;color:rgba(242,236,227,.62);width:fit-content;position:relative;transition:color var(--court) var(--ease)}
.pied__liens a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:var(--terre-clair);transform:scaleX(0);transform-origin:right;transition:transform var(--moyen) var(--ease)}
.pied__liens a:hover{color:var(--grege-100)}
.pied__liens a:hover::after{transform:scaleX(1);transform-origin:left}
.pied__marque .marque__nom{font-size:1.35rem;color:var(--grege-100)}
.pied__baseline{margin:1.2rem 0 1.8rem;font-size:.94rem;color:rgba(242,236,227,.55);max-width:32ch}
.pied__nap{font-style:normal;display:flex;flex-direction:column;gap:.55rem;font-size:.94rem;color:rgba(242,236,227,.62)}
.pied__nap a{transition:color var(--court) var(--ease)}
.pied__nap a:hover{color:var(--terre-clair)}
.pied__nap strong{color:var(--grege-100);font-weight:600}
.pied__labels{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.6rem}
.pied__labels span{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.45rem .75rem;border:1px solid rgba(242,236,227,.18);color:rgba(242,236,227,.7);border-radius:2px}
.pied__bas{border-top:1px solid rgba(242,236,227,.12);padding:1.6rem 0 2rem;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:space-between;font-size:.8rem;color:rgba(242,236,227,.45)}
.pied__bas nav{display:flex;gap:1.5rem;flex-wrap:wrap}
.pied__bas a:hover{color:var(--grege-100)}
.pied__bas em{font-style:normal;color:rgba(242,236,227,.62)}

/* Drawer devis */
.drawer-fond{position:fixed;inset:0;z-index:1100;background:rgba(28,26,23,.55);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity var(--moyen) var(--ease)}
.drawer-fond.ouvert{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:1101;width:min(560px,100%);background:var(--grege-000);
  transform:translateX(101%);transition:transform 640ms var(--ease);display:flex;flex-direction:column;box-shadow:-30px 0 80px -40px rgba(28,26,23,.5)}
.drawer.ouvert{transform:none}
.drawer__entete{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:clamp(1.6rem,3vw,2.4rem) clamp(1.4rem,3vw,2.4rem) 1.2rem;border-bottom:1px solid var(--encre-08)}
.drawer__entete h2{font-size:1.5rem}
.drawer__entete p{font-size:.86rem;color:var(--encre-45);margin-top:.35rem}
.drawer__fermer{width:44px;height:44px;flex-shrink:0;border:1px solid var(--encre-14);border-radius:999px;display:grid;place-items:center;
  transition:background var(--court) var(--ease),color var(--court) var(--ease)}
.drawer__fermer:hover{background:var(--encre);color:var(--grege-000)}
.jauge{height:2px;background:var(--encre-08)}
.jauge__barre{height:100%;background:var(--terre);width:25%;transition:width 560ms var(--ease)}
.drawer__corps{flex:1;overflow-y:auto;padding:clamp(1.6rem,3vw,2.4rem);-webkit-overflow-scrolling:touch}
.etape-form{display:none;border:0;min-inline-size:0;animation:monte 620ms var(--ease) both}
.etape-form.active{display:block}
@keyframes monte{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.etape-form>.oeil{margin-bottom:.9rem}
.etape-form h3{font-size:1.35rem;margin-bottom:1.5rem;letter-spacing:-.02em}
.choix{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.choix label{display:flex;align-items:center;gap:.7rem;min-height:56px;padding:.9rem 1rem;border:1px solid var(--encre-14);border-radius:3px;cursor:pointer;font-size:.92rem;
  transition:border-color var(--court) var(--ease),background var(--court) var(--ease)}
.choix input{position:absolute;opacity:0;width:0;height:0}
.choix label:hover{border-color:var(--encre-45)}
.choix label:has(input:checked){border-color:var(--terre);background:var(--terre-08)}
.choix label:has(input:focus-visible){outline:2px solid var(--terre);outline-offset:2px}
.choix i{width:16px;height:16px;flex-shrink:0;border:1px solid var(--encre-14);border-radius:50%;display:grid;place-items:center;transition:border-color var(--court) var(--ease)}
.choix label:has(input:checked) i{border-color:var(--terre)}
.choix label:has(input:checked) i::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--terre)}
.drawer__pied{padding:1.2rem clamp(1.4rem,3vw,2.4rem) calc(1.4rem + env(safe-area-inset-bottom));border-top:1px solid var(--encre-08);
  display:flex;gap:.7rem;align-items:center;background:var(--grege-000)}
.drawer__pied .btn{flex:1}
.drawer__pied .btn--ligne{flex:0 0 auto;padding-inline:1.4rem}
.recap{background:var(--grege-100);padding:1.2rem;border-radius:3px;margin-bottom:1.4rem;display:flex;flex-direction:column;gap:.5rem;font-size:.9rem}
.recap div{display:flex;justify-content:space-between;gap:1rem;color:var(--encre-70)}
.recap div b{font-weight:600;color:var(--encre);text-align:right}
.merci{display:none;text-align:center;padding:3rem 1rem}
.merci.active{display:block;animation:monte 620ms var(--ease) both}
.merci__sceau{width:64px;height:64px;margin:0 auto 1.5rem;border-radius:50%;background:var(--terre-08);color:var(--terre);display:grid;place-items:center}
.merci h3{font-size:1.6rem;margin-bottom:.8rem}
.merci p{color:var(--encre-70);max-width:34ch;margin:0 auto}

/* Barre mobile */
.barre-mobile{display:none;position:fixed;left:0;right:0;bottom:0;z-index:900;padding:.6rem .8rem calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(251,248,244,.9);backdrop-filter:blur(16px);border-top:1px solid var(--encre-08);gap:.6rem}
.barre-mobile a,.barre-mobile button{flex:1;min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-radius:2px}
.barre-mobile .appel{border:1px solid var(--encre-14)}
.barre-mobile .devis{background:var(--terre);color:var(--grege-000)}

/* 404 */
.err{min-height:100svh;display:grid;place-items:center;text-align:center;padding:8rem var(--gutter) 4rem;background:var(--grege-000)}
.err__num{font-family:var(--display);font-weight:900;font-size:clamp(6rem,20vw,14rem);line-height:.9;color:transparent;-webkit-text-stroke:1.5px var(--encre-14);letter-spacing:-.05em}
.err h1{font-size:clamp(1.8rem,3.4vw,2.8rem);margin:1.5rem 0 1rem}
.err p{color:var(--encre-70);max-width:44ch;margin:0 auto 2.2rem}
.err__actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}

/* Responsive */
@media (max-width:1100px){
  .nav,.langues{display:none}
  .burger{display:flex}
  .preuves__grille{grid-template-columns:repeat(2,1fr);gap:1.8rem}
  .etapes{grid-template-columns:repeat(2,1fr)}
  .pied__corps{grid-template-columns:1fr 1fr;gap:2.5rem}
  .sec__entete,.nuancier__grille,.pied__cta-grille,.contact__grille,.entete-page__grille{grid-template-columns:1fr}
  .nuancier__grille,.contact__grille{gap:3rem}
  .entete-page__grille{gap:2.5rem}
  .entete-page__image{order:-1}
  .article{grid-template-columns:1fr}
  .aside{position:static;flex-direction:row;flex-wrap:wrap}
  .aside .carte{flex:1 1 280px}
}
@media (max-width:900px){
  body{padding-bottom:76px}
  .barre-mobile{display:flex}
  .tel-pill span{display:none}
  .tel-pill{padding:0;width:46px;justify-content:center}
  .entete-page{padding-top:clamp(120px,26vw,150px)}
}
@media (max-width:640px){
  .preuves__grille{grid-template-columns:1fr;gap:1.4rem}
  .etapes,.svc-grille,.cartes,.galerie{grid-template-columns:1fr}
  .pied__corps{grid-template-columns:1fr;gap:2.2rem}
  .choix,.champ--duo{grid-template-columns:1fr}
  .drawer{width:100%}
  .aside{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .rise{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

.hero{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1fr);min-height:100svh;background:var(--grege-000)}
.hero__image{position:relative;overflow:hidden;background:var(--grege-200)}
.hero__image img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover;will-change:transform}
.hero__image::after{content:"";position:absolute;left:0;right:0;top:0;height:150px;pointer-events:none;
  background:linear-gradient(180deg,rgba(251,248,244,.92) 0%,rgba(251,248,244,.62) 45%,rgba(251,248,244,0) 100%)}
.hero__legende{position:absolute;left:0;bottom:0;z-index:2;display:flex;align-items:center;gap:.75rem;padding:.9rem 1.4rem;
  background:rgba(251,248,244,.9);backdrop-filter:blur(8px);font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--encre-70)}
.hero__legende b{color:var(--terre);font-weight:600}
.hero__texte{display:flex;flex-direction:column;justify-content:center;padding:clamp(6rem,10vw,8rem) clamp(1.5rem,4.5vw,5rem) clamp(3rem,6vw,5rem);position:relative}
.hero h1{font-size:clamp(2.6rem,4.6vw,4.5rem);margin:.6rem 0 1.6rem;max-width:15ch}
.hero h1 em{font-style:normal;color:var(--terre)}
.hero__sous{font-size:clamp(1rem,1.15vw,1.15rem);color:var(--encre-70);max-width:44ch;margin-bottom:2.4rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.9rem;align-items:center}
.hero__micro{margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:1.6rem 2.4rem;padding-top:1.8rem;border-top:1px solid var(--encre-08)}
.hero__micro div{display:flex;flex-direction:column;gap:.15rem}
.hero__micro b{font-family:var(--display);font-weight:700;font-size:1.6rem;letter-spacing:-.03em;line-height:1}
.hero__micro span{font-size:.76rem;letter-spacing:.06em;color:var(--encre-45)}
.hero__scroll{position:absolute;left:clamp(1.5rem,4.5vw,5rem);bottom:clamp(1.6rem,3vw,2.4rem);width:34px;height:46px;
  border:1px solid var(--encre-14);border-radius:999px;display:grid;place-items:center;color:var(--encre-45)}
.hero__scroll svg{animation:glisse 2.6s var(--ease-doux) infinite}
@keyframes glisse{0%,100%{transform:translateY(-2px);opacity:.5}50%{transform:translateY(3px);opacity:1}}
@media (max-width:900px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero__image{height:58svh;min-height:340px}
  .hero__texte{padding:2.8rem var(--gutter) 3.4rem}
  .hero h1{max-width:100%}
  .hero__scroll{display:none}
  .hero__actions .btn{flex:1;min-width:200px}
  .hero__legende{padding:.65rem 1rem;font-size:.62rem;letter-spacing:.09em;gap:.5rem}
  .hero__micro b{font-size:1.4rem}
}
