/* Régie Gontard — feuille de style principale */
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/bodoni-moda-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/bodoni-moda-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/bodoni-moda-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/jost-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/jost-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/jost-latin-500-normal.woff2) format("woff2")}
:root{
  --noir:#111111;--blanc:#FFFFFF;--pierre:#F3F1EE;--brun:#A7501F;--brun-fonce:#7E3B16;
  --gris:#5E5E5E;--filet:#E4DFD8;
  --taupe:linear-gradient(160deg,#6a5748 0%,#3d3129 55%,#1e1814 100%);--taupe-clair:#D99A6E;
  --bg:var(--blanc);--bg-alt:var(--pierre);--texte:var(--noir);--texte-2:var(--gris);--ligne:var(--filet);--accent-texte:var(--brun);
  --serif:"Bodoni Moda","Didot","Bodoni 72","Times New Roman",serif;
  --sans:"Jost","Futura","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --marge:clamp(1.25rem,6vw,7.5rem);--max:1440px;
  --ease:cubic-bezier(.19,1,.22,1);--ease-io:cubic-bezier(.77,0,.18,1);
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#111;--bg-alt:#1A1918;--texte:#F2EFEA;--texte-2:#A9A39C;--ligne:#2E2B28;--accent-texte:#D0773F}}
:root[data-theme="dark"]{--bg:#111;--bg-alt:#1A1918;--texte:#F2EFEA;--texte-2:#A9A39C;--ligne:#2E2B28;--accent-texte:#D0773F}
*,*::before,*::after{box-sizing:inherit}
html{height:100%;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 100px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--texte);font-family:var(--sans);font-weight:300;font-size:1.0625rem;line-height:1.75;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:1px solid var(--brun);outline-offset:4px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--marge)}
section{padding:clamp(6rem,12vw,11rem) 0}
.alt{background:var(--bg-alt)}

/* ---------- Typo ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:400;margin:0;letter-spacing:-.005em}
.titre{font-size:clamp(2.1rem,4.2vw,3.7rem);line-height:1.1}
.titre-m{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.15}
.label{font-family:var(--sans);font-size:.75rem;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-texte);margin:0 0 1.6rem;display:block}
.chapo{font-family:var(--serif);font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.5;max-width:30em}
p{margin:0 0 1.1em;max-width:34em}
.discret{color:var(--texte-2)}
.petit{font-size:.88rem;color:var(--texte-2)}
.centre{text-align:center;margin-left:auto;margin-right:auto}
.centre p,.centre .chapo{margin-left:auto;margin-right:auto}

/* ---------- Boutons et liens ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:1.05rem 2.1rem;font:400 .74rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid currentColor;color:inherit;background:none;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .6s var(--ease),border-color .6s var(--ease)}
.btn::before{content:"";position:absolute;inset:0;background:var(--texte);transform:scaleY(0);transform-origin:bottom;transition:transform .6s var(--ease);z-index:-1}
.btn:hover{color:var(--bg)}
.btn:hover::before{transform:scaleY(1)}
.btn-brun{background:var(--brun);border-color:var(--brun);color:#fff}
.btn-brun::before{background:var(--brun-fonce)}
.btn-brun:hover{color:#fff;border-color:var(--brun-fonce)}
.clair .btn:not(.btn-brun)::before{background:#fff}
.clair .btn:not(.btn-brun):hover{color:#111}
.trait{display:inline-flex;align-items:center;gap:1rem;font:400 .74rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:inherit}
.trait::after{content:"";width:40px;height:1px;background:var(--brun);transition:width .6s var(--ease)}
.trait:hover::after{width:72px}
.actions{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center}

/* ---------- Visuels (emplacements) ---------- */
.ph{position:relative;margin:0;overflow:hidden;background:#8a7a6c}
.ph .img{position:absolute;inset:0;background:var(--g,linear-gradient(160deg,#9b8a7b,#4a3d33));transition:scale 1.6s var(--ease)}
.ph .img img,.ph .img video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.ph .img img.charge,.ph .img video.joue{opacity:1}
.hero .img img,.hero .img video{filter:sepia(.22) contrast(1.04) brightness(.92)}
.accueil-perso{display:block;margin-bottom:3rem}
.accueil-perso .ph{width:100%;max-width:340px;margin-bottom:1.3rem}
.accueil-perso p{margin:0;line-height:1.5}
.accueil-perso strong{font-family:var(--serif);font-weight:400;font-size:1.45rem;display:block;margin-bottom:.2rem}
.equipe.deux{grid-template-columns:repeat(2,minmax(0,340px))}
.col-portrait{grid-column:1/6;width:100%;max-width:340px;justify-self:end}
.ph .note-img{position:absolute;left:1rem;bottom:1rem;z-index:2;font-size:.68rem;letter-spacing:.08em;color:rgba(255,255,255,.75);max-width:80%;line-height:1.4}
.g1{--g:linear-gradient(165deg,#8f7c6b 0%,#5a4a3e 55%,#2b231e 100%)}
.g2{--g:linear-gradient(140deg,#e2dbd2 0%,#c2b5a6 60%,#9f8f7f 100%)}
.g3{--g:linear-gradient(200deg,#6f5e51 0%,#3a2f28 60%,#171311 100%)}
.g4{--g:linear-gradient(150deg,#cdbfae 0%,#8e7865 70%,#5f4d40 100%)}
.g5{--g:linear-gradient(120deg,#b5a697 0%,#e8e2da 100%)}
.g6{--g:linear-gradient(175deg,#a58f7c 0%,#6b5646 50%,#3f322a 100%)}
.r45{aspect-ratio:4/5}.r34{aspect-ratio:3/4}.r32{aspect-ratio:3/2}.r11{aspect-ratio:1}

/* ---------- Header ---------- */
.header{position:fixed;top:0;left:0;right:0;z-index:80;padding-top:env(safe-area-inset-top,0px);color:var(--texte);background:var(--bg);border-bottom:1px solid var(--ligne);transition:background .5s,color .5s,border-color .5s}
.header.transparent{background:transparent;color:#fff;border-bottom-color:transparent}
.header .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:96px;gap:1rem}
.header-gauche{display:flex;align-items:center;gap:2.2rem}
.header-gauche > a{font:400 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.header-gauche > a:hover{opacity:.65}
.logo{text-align:center}
.btn-fin{padding:.85rem 1.4rem;font-size:.68rem}
.logo{text-decoration:none;line-height:1}
.logo .nom{font-family:var(--serif);font-size:1.6rem;display:block}
.logo-svg{display:block;line-height:0}
.logo-svg svg{display:block;height:42px;width:auto}
.logo-svg .lr{fill:#111;transition:fill .5s}.logo-svg .lg{fill:var(--brun);transition:fill .5s}
.header.transparent .logo-svg .lr,.menu .logo-svg .lr,footer .logo-svg .lr{fill:#fff}
.header.transparent .logo-svg .lg,.menu .logo-svg .lg,footer .logo-svg .lg{fill:#E3A982}
.header.transparent .logo-svg svg,.hero h1,.hero .grand,.bandeau-page h1{filter:drop-shadow(0 1px 14px rgba(0,0,0,.35))}
.header.transparent::before{content:"";position:absolute;inset:0 0 -60px;background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,0));pointer-events:none;z-index:-1}
.header .logo,.menu-haut .logo{justify-self:center}
.menu .logo-svg svg{height:34px}
.footer-logo .logo-svg svg{height:46px;margin:0 0 .9rem}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .header:not(.transparent) .logo-svg .lr{fill:#F2EFEA}}
.logo .sous{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;opacity:.7;display:block;margin-top:.4rem}
.header-droite{display:flex;align-items:center;justify-content:flex-end;gap:2.2rem}
.header-droite > a{font:400 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.header-droite > a:hover{color:var(--accent-texte)}
.header.transparent .btn::before{background:#fff}
.header.transparent .btn:hover{color:#2c231e}
.menu-btn{display:flex;align-items:center;gap:.9rem;background:none;border:0;color:inherit;cursor:pointer;font:400 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;padding:.5rem 0}
.menu-btn i{display:block;width:28px;height:7px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
@media (max-width:760px){.masquer{display:none!important}.logo .nom{font-size:1.3rem}.btn-fin{padding:.7rem .9rem;font-size:.6rem;letter-spacing:.14em}}

/* ---------- Menu plein écran ---------- */
.menu{position:fixed;inset:0;z-index:90;background:var(--taupe);color:#fff;display:grid;grid-template-columns:1fr 1fr;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease-io);visibility:hidden}
.menu.ouvert{clip-path:inset(0 0 0 0);visibility:visible}
.menu-gauche{display:flex;flex-direction:column;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + 2rem) var(--marge) calc(env(safe-area-inset-bottom,0px) + 2.5rem)}
.menu-haut{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:64px}
.menu-liens{list-style:none;margin:0;padding:0}
.menu-liens li{overflow:hidden}
.menu-liens a{display:inline-block;font-family:var(--serif);font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.2;text-decoration:none;transform:translateY(105%);transition:transform .9s var(--ease),color .3s}
.menu.ouvert .menu-liens a{transform:none}
.menu-liens li:nth-child(2) a{transition-delay:.05s}.menu-liens li:nth-child(3) a{transition-delay:.1s}.menu-liens li:nth-child(4) a{transition-delay:.15s}.menu-liens li:nth-child(5) a{transition-delay:.2s}.menu-liens li:nth-child(6) a{transition-delay:.25s}
.menu-liens a:hover,.menu-liens a[aria-current="page"]{color:#A7501F}
.menu-bas{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;font-size:.9rem;color:rgba(255,255,255,.75)}
.menu-bas a{text-decoration:none;color:#fff}
.menu-droite{position:relative;overflow:hidden}
.menu-droite .ph{position:absolute;inset:0;opacity:0;transition:opacity .8s var(--ease)}
.menu-droite .ph .img{scale:1.08;transition:scale 1.6s var(--ease)}
.menu-droite .ph.actif{opacity:1}
.menu-droite .ph.actif .img{scale:1}
@media (max-width:860px){.menu{grid-template-columns:1fr}.menu-droite{display:none}}

/* ---------- Voile de transition ---------- */
.voile{position:fixed;inset:0;background:var(--taupe);z-index:100;pointer-events:none;opacity:0;transition:opacity .45s ease}
.voile.on{opacity:1}

/* ---------- Pages ---------- */
.page{display:none}.page.active{display:block}

/* Hero accueil */
.hero{position:relative;height:100svh;min-height:600px;color:#fff;overflow:hidden;background:#2c231e}
.hero .ph{position:absolute;inset:0}
.hero .ph .img{scale:1.14;transition:scale 3.2s cubic-bezier(.25,.1,.25,1)}
.charge .hero .ph .img{scale:1}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.08) 28%,rgba(0,0,0,.12) 50%,rgba(0,0,0,.72) 100%);pointer-events:none}
.hero-texte{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(3rem,9vh,6.5rem)}
.hero h1{font-family:var(--sans);font-weight:400;font-size:.75rem;letter-spacing:.24em;text-transform:uppercase;margin:0 0 1.8rem;opacity:.9}
.hero .grand{font-family:var(--serif);font-size:clamp(3rem,8.4vw,8.2rem);line-height:.98;margin:0;max-width:none}
.hero-pied{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;margin-top:2.6rem}
.hero-pied p{margin:0;max-width:26em;font-size:1.05rem;opacity:.9}
.defiler{position:absolute;right:var(--marge);bottom:clamp(3rem,9vh,6.5rem);z-index:2;width:1px;height:64px;background:rgba(255,255,255,.3);overflow:hidden}
.defiler::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:#fff;animation:descend 2.2s var(--ease-io) infinite}
@keyframes descend{to{top:100%}}
@media (max-width:760px){.defiler{display:none}}

/* Hero pages */
.bandeau-page{position:relative;height:78svh;min-height:520px;color:#fff;overflow:hidden;background:#2b231e}
.bandeau-page .ph{position:absolute;inset:0}
.bandeau-page::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.1) 35%,rgba(0,0,0,.7));pointer-events:none}
.bandeau-page .wrap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding-bottom:clamp(2.8rem,8vh,5.5rem)}
.bandeau-page h1{font-size:clamp(2.6rem,6vw,5.6rem);line-height:1.02;max-width:14ch}
.bandeau-page .label{color:#fff;opacity:.85}
.fil{font-size:.78rem;letter-spacing:.08em;margin:1.8rem 0 0;opacity:.8}
.fil a{text-decoration:none}

/* Grilles */
.grille{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2vw,2rem);align-items:center}
.col-img-g{grid-column:1/8}.col-txt-d{grid-column:9/13}
.col-txt-g{grid-column:1/6}.col-img-d{grid-column:7/13}
.col-img-d-small{grid-column:8/13}
.deborde{margin-bottom:calc(-1 * clamp(4rem,8vw,7rem));position:relative;z-index:2}
@media (max-width:900px){.grille{grid-template-columns:1fr}.grille > *{grid-column:1/-1!important}.deborde{margin-bottom:0}}

.intro-centre{max-width:860px;margin:0 auto;text-align:center}
.intro-centre .titre{margin-bottom:2rem}
.intro-centre p{margin-left:auto;margin-right:auto}

/* Cartes métiers */
.cartes{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.2rem,2vw,2rem)}
.carte{text-decoration:none;display:block}
.carte:nth-child(even){margin-top:clamp(2rem,5vw,5rem)}
.carte .ph{aspect-ratio:3/4}
.carte:hover .ph .img{scale:1.05}
.carte h3{font-size:1.65rem;line-height:1.2;margin:1.6rem 0 .7rem}
.carte p{color:var(--texte-2);font-size:.98rem;margin:0 0 1.3rem}
@media (max-width:1000px){.cartes{grid-template-columns:1fr 1fr}.carte:nth-child(even){margin-top:3rem}}
@media (max-width:560px){.cartes{grid-template-columns:1fr}.carte:nth-child(even){margin-top:0}}

/* Chiffres */
.noir{background:var(--taupe);color:#fff}
.noir .discret,.noir .petit{color:rgba(255,255,255,.75)}
.noir .label{color:var(--taupe-clair)}
.chiffres{display:grid;grid-template-columns:repeat(4,1fr)}
.chiffres > div{padding:0 2rem;border-left:1px solid rgba(255,255,255,.25)}
.chiffres > div:first-child{padding-left:0;border-left:0}
.chiffres strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,5.2vw,4.8rem);line-height:1}
.chiffres span{display:block;margin-top:1rem;font-size:.92rem;color:rgba(255,255,255,.75)}
@media (max-width:800px){.chiffres{grid-template-columns:1fr 1fr;row-gap:3rem}.chiffres > div:nth-child(3){padding-left:0;border-left:0}}

/* Valeurs */
.valeurs{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem)}
.valeurs svg{width:56px;height:56px;stroke:var(--accent-texte);fill:none;stroke-width:1;margin-bottom:1.6rem}
.valeurs h3{font-size:1.45rem;margin-bottom:.7rem}
.valeurs p{color:var(--texte-2);font-size:.98rem;margin:0}
@media (max-width:900px){.valeurs{grid-template-columns:1fr 1fr;row-gap:3rem}}
@media (max-width:520px){.valeurs{grid-template-columns:1fr}}

/* Duo d'images */
.duo-img{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2vw,2rem);align-items:start}
.duo-img .a{grid-column:1/7}
.duo-img .b{grid-column:8/13;margin-top:clamp(4rem,12vw,11rem)}
@media (max-width:700px){.duo-img .a{grid-column:1/10}.duo-img .b{grid-column:4/13;margin-top:-3rem}}

.citation{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.4;margin:0}
.signature-nom{margin-top:2rem;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase}

/* Listes */
.missions{display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(2rem,6vw,6rem);list-style:none;padding:0;margin:0}
.missions li{padding:2.2rem 0;border-top:1px solid var(--ligne)}
.missions h3{font-size:1.5rem;margin-bottom:.7rem}
.missions p{margin:0;color:var(--texte-2)}
@media (max-width:760px){.missions{grid-template-columns:1fr}}
.engagements{list-style:none;padding:0;margin:2.2rem 0 0}
.engagements li{padding:1.05rem 0;border-top:1px solid var(--ligne);display:flex;gap:1.2rem}
.engagements li::before{content:"";flex:none;width:18px;height:1px;background:var(--brun);margin-top:.95rem}
.etapes{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem);list-style:none;padding:0;margin:0;counter-reset:e}
.etapes li{counter-increment:e;border-top:1px solid var(--brun);padding-top:1.6rem}
.etapes li::before{content:counter(e,decimal-leading-zero);display:block;font-family:var(--serif);font-size:1.1rem;color:var(--accent-texte);margin-bottom:1.2rem}
.etapes h3{font-size:1.35rem;margin-bottom:.5rem}
.etapes p{margin:0;color:var(--texte-2);font-size:.97rem}
@media (max-width:900px){.etapes{grid-template-columns:1fr 1fr;row-gap:2.5rem}}
@media (max-width:520px){.etapes{grid-template-columns:1fr}}

.entete{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(3rem,6vw,5rem)}
.entete p{margin:0}
@media (max-width:900px){.entete{grid-template-columns:1fr}}

.encart{border-left:1px solid var(--brun);padding-left:1.6rem;margin-top:2.4rem}
.encart p{color:var(--texte-2);font-size:.95rem;margin:0}

/* Honoraires */
.tableau{overflow-x:auto;margin-top:.5rem}
table{border-collapse:collapse;width:100%;min-width:460px}
th,td{text-align:left;padding:1.05rem 1rem 1.05rem 0;border-bottom:1px solid var(--ligne);font-weight:300}
th{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-2);font-weight:400}
td:last-child{font-family:var(--serif);font-size:1.15rem;text-align:right;padding-right:0}
th:last-child{text-align:right;padding-right:0}
tr.groupe th{padding-top:2.2rem;color:var(--accent-texte);text-align:left!important;border-bottom:1px solid var(--texte)}
tr.groupe:first-child th{padding-top:.4rem}


/* FAQ */
.faq{border-top:1px solid var(--ligne)}
.faq details{border-bottom:1px solid var(--ligne)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1.7rem 0;font-family:var(--serif);font-size:clamp(1.15rem,1.6vw,1.4rem);line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:13px;height:13px;background:linear-gradient(var(--accent-texte),var(--accent-texte)) center/100% 1px no-repeat,linear-gradient(var(--accent-texte),var(--accent-texte)) center/1px 100% no-repeat;transition:transform .5s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--texte-2);margin:0 0 1.8rem;max-width:44em}

/* Équipe */
.equipe{display:grid;grid-template-columns:repeat(3,minmax(0,340px));justify-content:start;gap:clamp(1.2rem,2.4vw,2.4rem) clamp(1rem,2vw,2rem)}
.equipe h3{font-size:1.3rem;margin-top:1.3rem}
.equipe p{margin:.2rem 0 0;color:var(--texte-2);font-size:.93rem}
@media (max-width:700px){.equipe,.equipe.deux{grid-template-columns:1fr 1fr}.col-portrait{max-width:none;justify-self:stretch}}

/* Contact */
.coord dt{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--texte-2);margin-top:2.2rem}
.coord dt:first-child{margin-top:0}
.coord dd{margin:.6rem 0 0;font-family:var(--serif);font-size:1.35rem;line-height:1.45}
.coord dd a{text-decoration:none}
.coord dd a:hover{color:var(--accent-texte)}
.services{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.5rem,3vw,3rem)}
.services > div{border-top:1px solid var(--ligne);padding-top:1.6rem}
.services h3{font-size:1.35rem;margin-bottom:.8rem}
.services a{display:block;text-decoration:none;color:var(--texte-2);font-size:.97rem}
.services a:hover{color:var(--accent-texte)}
@media (max-width:900px){.services{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.services{grid-template-columns:1fr}}
form{display:grid;grid-template-columns:1fr 1fr;gap:2.2rem 2.4rem}
.champ{position:relative}
.champ.plein{grid-column:1/-1}
.champ input,.champ textarea,.champ select{width:100%;font:inherit;font-weight:300;color:var(--texte);background:transparent;border:0;border-bottom:1px solid var(--ligne);padding:1.4rem 0 .6rem;border-radius:0;transition:border-color .4s}
.champ select{appearance:none;padding-right:1.6rem}.champ select option{color:#111}
.champ.fixe::after{content:"";position:absolute;right:.15rem;bottom:.85rem;width:.45rem;height:.45rem;border-right:1px solid var(--accent-texte);border-bottom:1px solid var(--accent-texte);transform:rotate(45deg);pointer-events:none}
.champ textarea{min-height:7rem;resize:vertical}
.champ label{position:absolute;left:0;top:1.4rem;font-size:1rem;color:var(--texte-2);pointer-events:none;transition:transform .4s var(--ease),font-size .4s var(--ease),color .4s}
.champ input:focus,.champ textarea:focus,.champ select:focus{outline:none;border-bottom-color:var(--brun)}
.champ input:focus + label,.champ input:not(:placeholder-shown) + label,.champ textarea:focus + label,.champ textarea:not(:placeholder-shown) + label,.champ.fixe label{transform:translateY(-1.35rem);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-texte)}
.form-message{grid-column:1/-1;margin:0;font-size:.95rem;color:var(--accent-texte);min-height:1.5em}
.rdv{position:fixed;inset:0;z-index:95;display:none;align-items:center;justify-content:center;padding:1.2rem}
.rdv.ouvert{display:flex}
.rdv-fond{position:absolute;inset:0;background:rgba(17,17,17,.55)}
.rdv-carte{position:relative;z-index:1;width:min(42rem,100%);max-height:min(92svh,54rem);overflow:auto;background:var(--bg);color:var(--texte);padding:clamp(1.6rem,4vw,2.8rem) clamp(1.4rem,3vw,2.4rem) 1.6rem}
.rdv-fermer{position:absolute;top:.6rem;right:.6rem;width:44px;height:44px;border:0;background:none;color:inherit;font:300 1.8rem/1 var(--serif);cursor:pointer}
.rdv-titre{margin:0 2.2rem 1.6rem 0;font-size:clamp(1.8rem,3vw,2.5rem)}
.rdv form{gap:1.5rem 1.6rem}
@media (max-width:620px){form{grid-template-columns:1fr}}

/* Bandeau final */
.final{text-align:center;padding-bottom:clamp(5rem,9vw,7rem);margin-bottom:clamp(4rem,7vw,6rem);border-bottom:1px solid rgba(255,255,255,.18)}
footer .label{color:#A7501F}
.final .titre{max-width:14em;margin:0 auto 2.6rem}
.final .actions{justify-content:center}

/* Footer */
footer{background:var(--taupe);color:#fff;padding:clamp(6rem,11vw,10rem) 0 2.2rem}
.footer-haut{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:4rem}
footer h4{font:400 .7rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0 0 1.4rem}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin:.55rem 0;font-size:.95rem}
footer a{text-decoration:none}
footer a:hover{color:var(--taupe-clair)}
.footer-logo .nom{font-size:2.2rem}
.legal{border-top:1px solid rgba(255,255,255,.2);padding-top:2rem;font-size:.8rem;color:rgba(255,255,255,.65);max-width:none;line-height:1.8}
.footer-bas{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.2rem;font-size:.8rem;color:rgba(255,255,255,.65)}
@media (max-width:900px){.footer-haut{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-haut{grid-template-columns:1fr}}

/* Mentions */
.legal-page{padding-top:calc(88px + clamp(5rem,9vw,8rem))}
.bareme-page{max-width:980px;padding-bottom:clamp(5rem,9vw,8rem)}
.bareme-page .titre{margin-bottom:2.6rem}
.bareme-contenu{border-top:1px solid var(--ligne);padding-top:2.4rem}
.bareme-contenu > p:first-child{margin-top:0}
.bareme-nav{margin-top:4rem;padding-top:3rem;border-top:1px solid var(--ligne)}
.legal-page h2{font-size:1.5rem;margin:3rem 0 .9rem}
.legal-page p{color:var(--texte-2)}

/* ---------- Mobile ---------- */
.hero .note-img,.bandeau-page .note-img,.exp-sticky .note-img{top:calc(env(safe-area-inset-top,0px) + 108px);bottom:auto;right:1rem;left:auto;text-align:right}
footer .label{color:var(--taupe-clair)}
.barre-mobile{display:none}
.ico-client{display:none}
.indic{display:none;justify-content:center;gap:.5rem;margin-top:1.8rem}
.indic i{width:18px;height:1px;background:var(--ligne);transition:background .4s,width .4s var(--ease)}
.indic i.on{background:var(--brun);width:34px}
@media (max-width:760px){
  body{font-size:1rem;line-height:1.7}
  section{padding:clamp(4.5rem,17vw,6rem) 0}
  .header .wrap{height:72px;grid-template-columns:48px 1fr 48px}
  html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 80px)}
  .menu-btn{min-height:44px;min-width:44px}
  .menu-btn .txt{display:none}
  .logo .nom{font-size:1.35rem}
  .logo-svg svg{height:28px}
  .footer-logo .logo-svg svg{height:40px;margin:0 auto .9rem}
  .logo .sous{font-size:.5rem;letter-spacing:.26em;margin-top:.3rem}
  .btn-fin{display:none!important}
  .ico-client{display:flex;justify-self:end;align-items:center;justify-content:center;width:44px;height:44px;color:inherit}
  .ico-client svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.1}
  .hero{min-height:540px}
  .hero h1{font-size:.64rem;letter-spacing:.22em;margin-bottom:1.1rem}
  .hero .grand{font-size:clamp(2.8rem,13.5vw,4.2rem);line-height:1.02}
  .hero-texte{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 2.4rem)}
  .hero-pied{margin-top:1.5rem;gap:1.4rem}
  .hero-pied p{font-size:.98rem}
  .hero-pied .actions,.hero-pied .btn{width:100%}
  .bandeau-page{height:64svh;min-height:430px}
  .bandeau-page h1{font-size:clamp(2.2rem,10.5vw,3.1rem)}
  .titre{font-size:clamp(1.9rem,8.4vw,2.5rem)}
  .titre-m{font-size:clamp(1.65rem,7.4vw,2.1rem)}
  .chapo{font-size:1.18rem}
  .intro-centre .actions .btn{width:100%}
  .entete{margin-bottom:2.2rem;gap:.8rem}
  .cartes{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;margin:0 calc(-1 * var(--marge));padding:0 var(--marge) .4rem;scroll-padding:0 var(--marge);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .cartes::-webkit-scrollbar{display:none}
  .carte{flex:0 0 80%;scroll-snap-align:start;margin-top:0!important}
  .carte h3{font-size:1.45rem;margin-top:1.2rem}
  .indic{display:flex}
  .chiffres{grid-template-columns:1fr 1fr;row-gap:2.6rem}
  .chiffres > div{padding:0 0 0 1.2rem}
  .chiffres > div:nth-child(odd){padding-left:0;border-left:0}
  .chiffres strong{font-size:2.6rem}
  .valeurs{grid-template-columns:1fr 1fr;gap:2.4rem 1.2rem}
  .valeurs h3{font-size:1.22rem}
  .valeurs p{font-size:.92rem}
  .valeurs svg{width:44px;height:44px;margin-bottom:1rem}
  .duo-img .a{grid-column:1/9!important}
  .duo-img .b{grid-column:5/13!important;margin-top:-30%;position:relative;z-index:2}
  .citation{font-size:1.4rem}
  .exp-piste{height:190vh}
  .exp-texte .grand-exp{font-size:clamp(2.4rem,12vw,3.4rem)}
  .exp-texte p{font-size:1rem}
  .missions li{padding:1.6rem 0}
  .missions h3{font-size:1.28rem}
  .engagements li{padding:.9rem 0;font-size:.97rem}
  .etapes{grid-template-columns:1fr 1fr;gap:2rem 1.2rem}
  .etapes h3{font-size:1.12rem}
  .etapes p{font-size:.9rem}
  table{min-width:0}
  th,td{padding:.85rem .6rem .85rem 0;font-size:.9rem}
  td:last-child{font-size:.98rem;white-space:normal;min-width:6.5rem}
  .faq summary{padding:1.3rem 0;font-size:1.1rem;gap:1.2rem}
  .coord dd{font-size:1.2rem}
  .services{grid-template-columns:1fr;gap:0}
  .services > div{padding:1.3rem 0}
  .final .actions{flex-direction:column}
  .final .btn{width:100%}
  .footer-haut{grid-template-columns:1fr 1fr;gap:2.4rem 1.5rem;padding-bottom:3rem}
  .footer-haut > div:first-child{grid-column:1/-1;text-align:center}
  .grille{row-gap:2.4rem}
  .hero .note-img,.bandeau-page .note-img{top:calc(env(safe-area-inset-top,0px) + 84px)}
  footer{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 6.5rem)}
  .menu-gauche{padding-top:calc(env(safe-area-inset-top,0px) + .5rem)}
  .menu-haut{height:72px}
  .menu-liens a{font-size:clamp(2rem,9.5vw,2.6rem);line-height:1.32}
  .menu-bas{flex-direction:column;gap:1.2rem}
  .barre-mobile{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:.75rem;right:.75rem;bottom:calc(env(safe-area-inset-bottom,0px) + .75rem);z-index:75;background:rgba(30,24,20,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateY(160%);transition:transform .8s var(--ease)}
  .barre-mobile.visible{transform:none}
  .barre-mobile a{display:flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;color:#fff;text-decoration:none;font:400 .68rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
  .barre-mobile a + a{background:var(--brun)}
  .barre-mobile svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.3}
}
@media (max-width:360px){.valeurs,.etapes{grid-template-columns:1fr}.carte{flex-basis:86%}}
@media (hover:none){.carte:hover h3{background-size:0 1px}}

/* ---------- Animations ---------- */
.defilant{overflow:hidden;padding:clamp(2.5rem,5vw,4rem) 0;border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne)}
.piste{display:flex;width:max-content;animation:defile 48s linear infinite}
.piste span{font-family:var(--serif);font-style:italic;font-size:clamp(2.6rem,6vw,5.6rem);line-height:1;white-space:nowrap;color:#8b7565;display:flex;align-items:center}
.piste span::after{content:"";width:.28em;height:.28em;background:var(--brun);transform:rotate(45deg);margin:0 .8em;flex:none}
@keyframes defile{to{transform:translateX(-50%)}}
.expansion{padding:0;background:var(--bg)}
.exp-piste{height:230vh;position:relative}
.exp-sticky{position:sticky;top:0;height:100svh;overflow:hidden}
.exp-sticky .ph{position:absolute;inset:0;clip-path:inset(16% 24% 16% 24%)}
.exp-sticky .ph::after{content:"";position:absolute;inset:0;background:rgba(20,15,12,.42);z-index:1}
.exp-texte .grand-exp,.exp-texte p{text-shadow:0 2px 24px rgba(0,0,0,.35)}
.exp-sticky .ph .img{transition:none;scale:1.25}
.exp-texte{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;opacity:0;padding:0 var(--marge)}
.exp-texte .grand-exp{font-family:var(--serif);font-size:clamp(2.6rem,7vw,6.8rem);line-height:1;margin:0 0 1.6rem}
.exp-texte p{margin:0 auto;max-width:30em;font-size:1.1rem}
.carte .ph::after{content:"";position:absolute;inset:0;z-index:3;background:var(--brun);transform-origin:top;transition:transform 1.3s var(--ease-io) .55s}
.carte .rideau.vu::after{transform:scaleY(0)}
.carte .ph .note-img{opacity:0;transition:opacity .8s 1.4s}
.carte .rideau.vu .note-img{opacity:1}
.carte .rideau{clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease-io)}
.carte .rideau.vu{clip-path:inset(0 0 0 0)}
.carte .rideau .img{scale:1.35;transition:scale 2.4s var(--ease) .55s}
.cartes .carte:nth-child(2) .ph::after{transition-delay:.7s}.cartes .carte:nth-child(3) .ph::after{transition-delay:.85s}.cartes .carte:nth-child(4) .ph::after{transition-delay:1s}
.cartes .carte:nth-child(2) .rideau{transition-delay:.12s}.cartes .carte:nth-child(3) .rideau{transition-delay:.24s}.cartes .carte:nth-child(4) .rideau{transition-delay:.36s}
.cartes .carte:nth-child(2) .rideau .img{transition-delay:.12s}.cartes .carte:nth-child(3) .rideau .img{transition-delay:.24s}.cartes .carte:nth-child(4) .rideau .img{transition-delay:.36s}
.carte h3{background:linear-gradient(var(--brun),var(--brun)) left bottom/0 1px no-repeat;display:block;width:fit-content;max-width:100%;padding-bottom:.2rem;transition:background-size .8s var(--ease)}
.carte:hover h3{background-size:100% 1px}
.valeurs > div:nth-child(2){transition-delay:.12s}.valeurs > div:nth-child(3){transition-delay:.24s}.valeurs > div:nth-child(4){transition-delay:.36s}
.valeurs svg *{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.2s var(--ease) .3s}
.valeurs .vu svg *{stroke-dashoffset:0}
.rideau-lat{clip-path:inset(0 100% 0 0)}
.rideau-lat.vu{clip-path:inset(0 0 0 0)}
.chiffres > div{transition:opacity 1s var(--ease),transform 1s var(--ease)}
.filet-anim{height:1px;background:var(--brun);width:0;transition:width 1.6s var(--ease-io);margin:0 auto 2.4rem}
.filet-anim.vu{width:80px}
@media (prefers-reduced-motion:reduce){.carte .ph::after{display:none}.piste{animation:none}.exp-sticky .ph{clip-path:none}.exp-texte{opacity:1}.valeurs svg *{stroke-dashoffset:0}.filet-anim{width:80px}.exp-piste{height:auto}.exp-sticky{position:relative}}
.mots .m{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.mots .m > span{display:inline-block;transform:translateY(110%);transition:transform 1.2s var(--ease)}
.mots.vu .m > span{transform:none}
.apparait{opacity:0;transform:translateY(24px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.apparait.vu{opacity:1;transform:none}
.rideau{clip-path:inset(100% 0 0 0);transition:clip-path 1.4s var(--ease-io)}
.rideau .img{scale:1.25;transition:scale 2s var(--ease)}
.rideau.vu{clip-path:inset(0 0 0 0)}
.rideau.vu .img{scale:1}
.carte:hover .rideau.vu .img{scale:1.05}
.parallaxe .img{inset:-9% 0}
@media (prefers-reduced-motion:reduce){
  .mots .m > span,.apparait,.rideau,.rideau .img,.hero .ph .img{transform:none!important;scale:1!important;opacity:1!important;clip-path:none!important;transition:none!important}
  .defiler::after{animation:none}
  .menu,.voile,.menu-liens a{transition:none!important}
}

/* ---------- Site statique : compléments ---------- */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-message.erreur{color:#B3261E}
.no-js .mots .m>span,.no-js .apparait,.no-js .rideau{transform:none!important;opacity:1!important;clip-path:none!important}
.no-js .rideau .img,.no-js .ph .img img{scale:1!important;opacity:1!important}
.no-js .carte .ph::after{display:none}
.no-js .exp-sticky .ph{clip-path:none}
.no-js .exp-texte{opacity:1}
.no-js .voile{display:none}
.no-js .barre-mobile{transform:none}
