/* K-CY BAT — V2 (voir DECISIONS-V2.md). Geist, blanc / brume / anthracite, rouge du logo en accent rare. */
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geist-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geist-mono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/geist-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --blanc:#fff; --brume:#F3F4F6; --filet:#E2E4E9; --ardoise:#5A606B; --encre:#0D0F12; --anthracite:#111316;
  --rouge:#C62128; --rouge-fonce:#A9191F;
  --ocre:#B4532E; --pse:#34373C; --ldr:#A8A440; --sous-enduit:#8F949A; --pierre:#B7AC98;
  --marge:clamp(20px,4vw,56px); --entete:72px;
  --r-grand:24px; --r-moyen:20px; --r-petit:12px;
  --sans:"Geist",system-ui,-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"Geist Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --doux:cubic-bezier(.22,.61,.36,1);
  interpolate-size:allow-keywords;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--entete) + 16px)}
html.menu-ouvert{overflow:hidden}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.6;color:var(--encre);background:var(--blanc);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
img{height:auto}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote,fieldset{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
address{font-style:normal}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--rouge);outline-offset:3px}
::selection{background:var(--encre);color:#fff}
.masque{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.mono{font-family:var(--mono);letter-spacing:-.03em;word-spacing:-.28em}
.evitement{position:absolute;left:12px;top:-60px;z-index:100;background:var(--encre);color:#fff;padding:10px 16px;border-radius:999px}
.evitement:focus{top:12px}

.cadre{width:min(100% - 2 * var(--marge),1320px);margin-inline:auto}
.bloc{padding-block:clamp(72px,9vw,136px)}
.bloc--brume{background:var(--brume)}
.titre-2{font-size:clamp(2rem,3.5vw,3.1rem);font-weight:400;letter-spacing:-.038em;line-height:1.08;max-width:17ch;text-wrap:balance}
.titre-3{font-size:1.5rem;font-weight:400;letter-spacing:-.025em;line-height:1.2}
.chapo{font-size:clamp(1.1rem,1.4vw,1.28rem);line-height:1.5;color:var(--ardoise);max-width:50ch;text-wrap:pretty}
.grand{font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.38;letter-spacing:-.018em;max-width:38ch;text-wrap:pretty}
.note{color:var(--ardoise);font-size:.94rem}
.actions{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- boutons, liens */
.btn{display:inline-flex;align-items:center;justify-content:center;height:52px;padding:0 26px;border-radius:999px;border:1px solid transparent;font-weight:500;font-size:1rem;line-height:1;text-decoration:none;white-space:nowrap;transition:background-color .2s,color .2s,border-color .2s,transform .15s var(--doux)}
.btn:active{transform:scale(.97)}
.btn--rouge{background:var(--rouge);color:#fff}
.btn--rouge:hover{background:var(--rouge-fonce)}
.btn--clair{background:#fff;border-color:var(--filet);color:var(--encre)}
.btn--clair:hover{border-color:var(--encre)}
.btn--sombre{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.24);color:#fff}
.btn--sombre:hover{background:#fff;color:var(--encre);border-color:#fff}
.btn--petit{height:42px;padding:0 18px;font-size:.93rem}
.btn[disabled]{opacity:.6;cursor:default}
.lien{font-weight:500;text-decoration:underline;text-decoration-color:var(--rouge);text-decoration-thickness:1.5px;text-underline-offset:5px;transition:color .2s}
.lien:hover{color:var(--rouge)}
.rond{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid var(--filet);background:#fff;transition:border-color .2s,background-color .2s,opacity .2s,transform .15s}
.rond:hover{border-color:var(--encre)}
.rond:active{transform:scale(.94)}
.rond[disabled]{opacity:.35;cursor:default;border-color:var(--filet)}
.rond svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* ---------- en-tête translucide */
.entete{position:sticky;top:0;z-index:60;height:var(--entete)}
.entete::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid rgba(13,15,18,.07)}
.entete-in{width:min(100% - 2 * var(--marge),1320px);margin-inline:auto;height:100%;display:flex;align-items:center;gap:28px}
.entete-logo{flex:none}
.entete-logo img{height:36px;width:auto}
.menu{margin-right:auto}
.menu ul{display:flex;gap:2px}
.menu a{display:block;padding:8px 13px;border-radius:999px;font-size:.95rem;text-decoration:none;white-space:nowrap;transition:background-color .2s}
.menu a:hover{background:rgba(13,15,18,.055)}
.menu a[aria-current]{background:rgba(13,15,18,.055);font-weight:500}
.menu-coord{display:none}
.entete-actions{display:flex;align-items:center;gap:18px;flex:none}
.entete-tel{font-weight:500;text-decoration:none;white-space:nowrap;font-size:.95rem}
.entete-tel:hover{color:var(--rouge)}
.menu-btn{display:none;position:relative;flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--filet);background:#fff}
.menu-btn span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--encre);transition:transform .3s var(--doux),top .3s var(--doux)}
.menu-btn span:first-child{top:17px}
.menu-btn span:last-child{top:25px}
.entete--ouvert .menu-btn span:first-child{top:21px;transform:rotate(45deg)}
.entete--ouvert .menu-btn span:last-child{top:21px;transform:rotate(-45deg)}
@media (max-width:1180px){.entete-tel{display:none}}
@media (max-width:1080px){
  .menu-btn{display:block;margin-left:auto}
  .entete-actions{order:2;margin-left:auto}
  .menu-btn{margin-left:0;order:3}
  .js .menu{position:fixed;inset:var(--entete) 0 0 0;z-index:59;display:none;flex-direction:column;justify-content:space-between;gap:40px;background:#fff;padding:20px var(--marge) 120px;overflow:auto;margin:0}
  .js .entete--ouvert .menu{display:flex}
  .js .menu ul{flex-direction:column;gap:0}
  .js .menu a{padding:17px 0;border-radius:0;border-bottom:1px solid var(--filet);font-size:clamp(1.7rem,6vw,2.2rem);font-weight:300;letter-spacing:-.035em;white-space:normal}
  .js .menu a:hover,.js .menu a[aria-current]{background:none}
  .js .menu a[aria-current]{font-weight:400}
  .js .menu-coord{display:grid;gap:6px;color:var(--ardoise);font-size:1rem}
  .js .menu-coord a{padding:0;border:0;font-size:1.15rem;font-weight:500;letter-spacing:0;color:var(--encre)}
  html:not(.js) .entete{height:auto}
  html:not(.js) .entete-in{flex-wrap:wrap;padding-block:12px;gap:8px 20px}
  html:not(.js) .menu{order:5;width:100%}
  html:not(.js) .menu ul{flex-wrap:wrap}
  html:not(.js) .menu-btn{display:none}
}
@media (max-width:860px){.entete-actions{display:none}.menu-btn{margin-left:auto}:root{--entete:64px}.entete-logo img{height:32px}}

/* ---------- héros */
.heros{position:relative;background:var(--brume);overflow:clip}
.heros-in{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:1fr auto;column-gap:32px;row-gap:28px;align-items:end;min-height:min(820px,calc(100svh - var(--entete)));padding-block:clamp(36px,6vh,72px) 30px}
.heros-texte{grid-column:1;grid-row:1;align-self:center;position:relative;z-index:2}
.heros h1{font-size:clamp(2.7rem,5.5vw,5.1rem);font-weight:400;letter-spacing:-.05em;line-height:.98;max-width:9.5ch;text-wrap:balance}
.heros .chapo{margin-top:26px;max-width:36ch}
.heros .actions{margin-top:32px}
.preuves{grid-column:1;grid-row:2;position:relative;z-index:2;display:flex;flex-wrap:wrap;row-gap:6px;font-size:.86rem;color:var(--ardoise)}
.preuves li{white-space:nowrap;padding-right:12px;margin-right:12px;border-right:1px solid #C9CDD4;line-height:1.2}
.preuves li:last-child{border:0;margin:0;padding:0}

/* ---------- la coupe 3D */
.coupe-cadre{position:relative;container-type:size}
.coupe-scene{position:absolute;inset:0}
.coupe-scene canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1s}
.coupe.est-vivante canvas{opacity:1}
.coupe.est-repli .coupe-scene,html:not(.js) .coupe-scene{inset:0;margin:auto;width:min(100cqw,120cqh);height:auto;aspect-ratio:6/5}
.coupe-image{display:block;width:100%;height:100%;object-fit:contain}
.coupe-point{position:absolute;left:0;top:0;z-index:3;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;border-radius:50%;background:none;opacity:0;pointer-events:none;transition:opacity .7s}
.coupe.est-pret .coupe-point{opacity:1;pointer-events:auto}
html:not(.js) .coupe-point,html:not(.js) .coupe-reglages{display:none}
.coupe-point::before{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;margin:-6.5px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(13,15,18,.22),0 2px 10px rgba(13,15,18,.4);transition:transform .25s var(--doux)}
.coupe-point::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:13px;margin:-6.5px;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(13,15,18,.12);animation:pouls 2.6s var(--doux) infinite}
.coupe-point:nth-of-type(2)::after{animation-delay:.4s}.coupe-point:nth-of-type(3)::after{animation-delay:.8s}.coupe-point:nth-of-type(4)::after{animation-delay:1.2s}.coupe-point:nth-of-type(5)::after{animation-delay:1.6s}.coupe-point:nth-of-type(6)::after{animation-delay:2s}
.coupe-point:hover::before,.coupe-point[aria-expanded=true]::before{transform:scale(1.35)}
.coupe-point[aria-expanded=true]::before{background:var(--rouge);box-shadow:0 0 0 2px #fff,0 2px 10px rgba(13,15,18,.4)}
.coupe-etape,.coupe-rejouer{position:absolute;z-index:4;left:max(11%,14px);bottom:20px;margin:0;font-size:.86rem;line-height:1.3;color:var(--ardoise)}
.coupe-etape{display:flex;align-items:baseline;gap:10px;color:var(--encre);opacity:0;transition:opacity .45s;pointer-events:none}
.coupe-etape.est-la{opacity:1}
.coupe-etape .mono{font-size:.78rem;color:var(--ardoise)}
.coupe-rejouer{display:inline-flex;align-items:center;gap:7px;padding:6px 2px;border:0;background:none;font:inherit;font-size:.84rem;color:var(--ardoise);cursor:pointer;text-decoration:underline;text-decoration-color:#B9BEC7;text-underline-offset:4px;animation:fiche .5s var(--doux)}
.coupe-rejouer:hover{color:var(--encre);text-decoration-color:var(--rouge)}
.coupe-rejouer:focus-visible{outline:2px solid var(--rouge);outline-offset:3px;border-radius:6px}
.coupe-rejouer svg{flex:none}
.coupe.est-repli .coupe-rejouer,.coupe.est-repli .coupe-etape,html:not(.js) .coupe-rejouer{display:none}
@keyframes pouls{0%{transform:scale(1);opacity:.9}70%,100%{transform:scale(3.1);opacity:0}}
.coupe-fiche{position:absolute;z-index:6;width:min(310px,calc(100% - 16px));padding:16px 18px 18px;border-radius:18px;background:rgba(255,255,255,.93);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 0 0 1px rgba(13,15,18,.05),0 22px 50px -14px rgba(13,15,18,.32);font-size:.92rem;line-height:1.45;animation:fiche .22s var(--doux)}
@keyframes fiche{from{opacity:0;transform:translateY(6px)}}
.coupe-fiche h3{font-size:1.08rem;font-weight:500;letter-spacing:-.015em;margin-bottom:5px}
.coupe-fiche p{color:var(--ardoise)}
.fiche-rang{font-family:var(--mono);font-size:.74rem;color:var(--ardoise);margin-bottom:8px}
.fiche-cotes{margin-top:12px;border-top:1px solid var(--filet)}
.fiche-cotes div{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid var(--filet);font-size:.86rem}
.fiche-cotes dt{color:var(--ardoise)}
.coupe-reglages{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 30px}
.reglage legend{font-size:.82rem;color:var(--ardoise);margin-bottom:7px}
.reglage-in{display:flex;align-items:center;gap:12px;min-height:54px}
.segments{display:flex;padding:3px;border-radius:17px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px var(--filet)}
.segments label{position:relative;cursor:pointer}
.segments input,.pastilles input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.segments span{display:block;padding:7px 14px;border-radius:14px;font-size:.84rem;line-height:1.3;white-space:nowrap;color:var(--ardoise);transition:background-color .25s,color .25s}
.segments b{display:block;font-weight:400;font-size:.78rem;opacity:.7}
.segments label:hover span{color:var(--encre)}
.segments input:checked + span{background:var(--encre);color:#fff}
.segments input:focus-visible + span,.pastilles input:focus-visible + .pastille{outline:2px solid var(--rouge);outline-offset:3px}
.pastilles{display:flex;gap:9px}
.pastilles label{position:relative;display:block;width:34px;height:34px;cursor:pointer}
.pastille{display:block;width:100%;height:100%;border-radius:50%;background:var(--teinte);box-shadow:inset 0 0 0 1px rgba(13,15,18,.14);transition:transform .2s var(--doux),box-shadow .2s}
.pastille--pierre{background:radial-gradient(circle at 30% 30%,#8f8676 0 22%,transparent 23%),radial-gradient(circle at 72% 40%,#a39a88 0 20%,transparent 21%),radial-gradient(circle at 45% 76%,#978d7c 0 24%,transparent 25%),#ddd3bf}
.pastilles label:hover .pastille{transform:scale(1.08)}
.pastilles input:checked + .pastille{box-shadow:inset 0 0 0 1px rgba(13,15,18,.14),0 0 0 2px var(--brume),0 0 0 3.5px var(--encre)}
.reglage-nom{font-size:.88rem;min-width:8.5em}
.coupe-lecture{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;width:100%;font-size:.84rem;color:var(--ardoise)}
.coupe-lecture .mono{color:var(--encre)}
.coupe-lecture a{text-underline-offset:4px;text-decoration-color:#B9BEC7}
.coupe-lecture a:hover{color:var(--encre);text-decoration-color:var(--rouge)}

.coupe--heros{display:contents}
.coupe--heros .coupe-cadre{position:absolute;top:0;bottom:136px;left:35%;right:calc((100% - 100vw) / 2 - 5vw)}
.coupe--heros .coupe-scene canvas{-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%);mask-image:linear-gradient(90deg,transparent,#000 9%)}
.coupe--heros .coupe-reglages{grid-column:2;grid-row:2;position:relative;z-index:2;justify-content:flex-end}
.coupe--heros .coupe-lecture{justify-content:flex-end}

@media (max-width:1080px){
  .heros-in{grid-template-columns:1fr;grid-template-rows:auto;min-height:0;row-gap:0;padding-block:40px 36px}
  .heros-texte,.preuves,.coupe--heros .coupe-reglages{grid-column:1;grid-row:auto}
  .heros h1{max-width:12ch}
  .coupe--heros .coupe-cadre{position:relative;inset:auto;height:min(78vw,560px);margin:10px calc(-1 * var(--marge)) 0}
  .coupe--heros .coupe-scene canvas{-webkit-mask-image:none;mask-image:none}
  .coupe--heros .coupe-reglages,.coupe--heros .coupe-lecture{justify-content:flex-start}
  .preuves{margin-top:30px}
}
@media (max-width:860px){
  .coupe-fiche{left:12px!important;right:12px;top:calc(100% + 4px)!important;width:auto}   /* sous la scène : la coupe reste visible… */
  .coupe .coupe-cadre{margin-bottom:calc(var(--fiche-h,-26px) + 26px)}                                    /* …et les réglages descendent d'autant : la fiche ne les recouvre plus */
  .coupe-etape,.coupe-rejouer{left:var(--marge,16px);bottom:4px}
  .reglage--isolant,.reglage--isolant .segments{width:100%}
  .segments label{flex:1}
  .segments span{white-space:normal;text-align:center;padding:8px 6px;font-size:.8rem}
}

/* ---------- repères : une cote d'architecte */
.reperes{padding-block:clamp(56px,7vw,104px) 0}
.cote-ligne{position:relative;display:grid;grid-template-columns:repeat(4,1fr)}
.cote-ligne > div{position:relative;display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:30px 24px 0 0;border-top:1px solid var(--encre)}
.cote-ligne > div::before,.cote-ligne::after{content:"";position:absolute;top:-8px;left:0;width:1px;height:17px;background:var(--encre);transform:rotate(38deg)}
.cote-ligne::after{left:auto;right:0}
.cote-ligne dd{font-size:clamp(2.5rem,5vw,4.5rem);font-weight:300;letter-spacing:-.055em;line-height:1}
.cote-ligne dt{margin-top:12px;color:var(--ardoise);max-width:20ch;line-height:1.35}
@media (max-width:860px){
  .cote-ligne{grid-template-columns:1fr 1fr;row-gap:36px}
  .cote-ligne > div:nth-child(even)::after{content:"";position:absolute;top:-8px;right:0;width:1px;height:17px;background:var(--encre);transform:rotate(38deg)}
  .cote-ligne::after{display:none}
  .cote-ligne > div{padding-top:22px}
}

/* ---------- métiers : liste + photo */
.metiers{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,96px);align-items:start;margin-top:clamp(36px,4vw,64px)}
.metiers-liste > li{border-top:1px solid var(--filet)}
.metiers-liste > li:last-child{border-bottom:1px solid var(--filet)}
.metiers-liste h3{font-size:inherit;font-weight:inherit}
.metiers-liste button{display:block;width:100%;padding:24px 0;border:0;background:none;text-align:left;font-size:clamp(1.45rem,2.3vw,2.05rem);font-weight:400;letter-spacing:-.035em;line-height:1.15;color:#9499A3;transition:color .3s}
.metiers-liste .est-actif button,.metiers-liste button:hover{color:var(--encre)}
.metier-corps{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--doux)}
.metier-corps > div{overflow:hidden}
.est-actif > .metier-corps,html:not(.js) .metier-corps{grid-template-rows:1fr}
.metier-corps p{color:var(--ardoise);max-width:46ch}
.metier-corps .lien{display:inline-block;margin:16px 0 28px}
.metiers-photos{position:relative;aspect-ratio:5/4;border-radius:var(--r-grand);overflow:hidden;background:var(--brume)}
.metiers-photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s}
.metiers-photos img.est-actif{opacity:1}
@media (max-width:860px){.metiers{grid-template-columns:1fr}.metiers-photos{order:-1;aspect-ratio:4/3}}

/* ---------- avant / après */
.avantapres-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"curis tete" "curis chaulme";grid-template-rows:auto 1fr;column-gap:clamp(28px,4vw,64px);row-gap:40px}
.avantapres-tete{grid-area:tete}
.avantapres-tete p{margin-top:20px;color:var(--ardoise);max-width:36ch}
.avantapres-in > .aa--poignee{grid-area:curis}
.avantapres-in > .aa--bascule{grid-area:chaulme;align-self:end}
.aa-vue{position:relative;aspect-ratio:3/2;border-radius:var(--r-grand);overflow:hidden;background:#b9b2a8;--p:50%;isolation:isolate}
.aa-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;-webkit-user-drag:none}
.aa-avant{position:absolute;inset:0}
.aa--poignee .aa-avant{clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.aa-poignee{position:absolute;top:0;bottom:0;left:var(--p);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(13,15,18,.08);pointer-events:none}
.aa-poignee svg{max-width:none;position:absolute;top:50%;left:50%;width:46px;height:46px;padding:12px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;fill:none;stroke:var(--encre);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;box-shadow:0 6px 22px rgba(13,15,18,.3);transition:transform .2s var(--doux)}
.aa-vue:hover .aa-poignee svg{transform:translate(-50%,-50%) scale(1.08)}
.aa-vue:has(.aa-curseur:focus-visible) .aa-poignee svg{outline:2px solid var(--rouge);outline-offset:3px}
.aa-curseur{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y;-webkit-appearance:none;appearance:none}
.aa-curseur::-webkit-slider-thumb{-webkit-appearance:none;width:56px;height:400px}
.aa-curseur::-moz-range-thumb{width:56px;height:400px;border:0}
.aa--bascule .aa-avant{opacity:0;transition:opacity .55s}
.aa--bascule.aa--avant .aa-avant{opacity:1}
.aa figcaption{display:grid;gap:8px;margin-top:14px;font-size:.94rem;color:var(--ardoise)}
.aa-bornes{display:flex;justify-content:space-between;color:var(--encre);font-weight:500}
.aa--bascule figcaption{grid-template-columns:auto 1fr;align-items:center;gap:16px}
.aa-choix{display:inline-flex;padding:3px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--filet)}
.aa-choix button{padding:8px 16px;border:0;border-radius:999px;background:none;font-size:.9rem;color:var(--ardoise);transition:background-color .25s,color .25s}
.aa-choix button[aria-pressed=true]{background:var(--encre);color:#fff}
@media (max-width:860px){
  .avantapres-in{grid-template-columns:1fr;grid-template-areas:"tete" "curis" "chaulme";row-gap:32px}
  .aa--bascule figcaption{grid-template-columns:1fr}
  .aa-choix{justify-self:start}
}

/* ---------- carrousel des chantiers */
.chantiers{overflow:clip}
.chantiers-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:clamp(28px,3.5vw,52px)}
.defile-fleches{display:flex;gap:8px}
.defile{--bord:max(var(--marge),calc((100vw - 1320px) / 2));display:flex;gap:24px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--bord);padding-inline:var(--bord);scrollbar-width:none;cursor:grab;border-radius:0}
.defile::-webkit-scrollbar{display:none}
.defile.est-glisse{scroll-snap-type:none;cursor:grabbing;user-select:none}
.defile.est-glisse a{pointer-events:none}
.defile > li{flex:0 0 min(560px,84vw);scroll-snap-align:start}
.defile a{display:block;text-decoration:none;-webkit-user-drag:none}
.defile img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-grand);transition:filter .3s}
.defile a:hover img{filter:brightness(1.05)}
.defile h3{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:18px;font-size:1.5rem;font-weight:400;letter-spacing:-.03em}
.defile h3 span{font-family:var(--mono);font-size:.9rem;letter-spacing:-.02em;color:var(--ardoise)}
.defile p{color:var(--ardoise);margin-top:4px;max-width:46ch}
.defile .cotes{display:flex;margin-top:12px;font-size:.84rem;color:var(--encre)}
.defile .cotes span + span{margin-left:14px;padding-left:14px;border-left:1px solid #C9CDD4}
.defile-fin a{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;aspect-ratio:4/3;padding:clamp(22px,3vw,36px);border-radius:var(--r-grand);background:var(--brume);font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.035em;line-height:1.15}
.defile-fin a > span:first-child{max-width:12ch}
.defile-fin a:hover .btn{border-color:var(--encre)}
@media (max-width:860px){.defile-fleches{display:none}.defile{gap:14px}}

/* ---------- méthode : onglets */
.methode-bloc{padding-top:0}
.methode{background:var(--brume);border-radius:clamp(24px,3vw,36px);padding:clamp(22px,4vw,56px)}
.methode-tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px 40px;margin-bottom:clamp(24px,3vw,44px)}
.onglets{display:flex;flex-wrap:wrap;gap:6px}
.onglets button{display:inline-flex;align-items:center;gap:10px;height:46px;padding:0 20px 0 16px;border:0;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--filet);font-size:.95rem;transition:background-color .25s,color .25s,box-shadow .25s}
.onglets button .mono{font-size:.8rem;opacity:.55}
.onglets button:hover{box-shadow:inset 0 0 0 1px var(--encre)}
.onglets button[aria-selected=true]{background:var(--encre);color:#fff;box-shadow:none}
.methode-corps{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,64px);align-items:center}
.methode-photos{position:relative;aspect-ratio:3/2;border-radius:var(--r-moyen);overflow:hidden;background:#b7a999}
.methode-photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s}
.methode-photos img.est-actif{opacity:1}
.methode-volets h3{font-size:clamp(1.7rem,2.6vw,2.4rem);font-weight:400;letter-spacing:-.04em;line-height:1.1;margin-bottom:16px}
.methode-volets p{max-width:42ch}
.methode-ici{margin-top:22px;padding-top:16px;border-top:1px solid #D5D8DE;color:var(--ardoise);font-size:.94rem}
.methode:not(.est-monte) [role=tabpanel] + [role=tabpanel]{margin-top:28px}
@media (max-width:860px){
  .methode{margin-inline:calc(-1 * var(--marge) + 8px);padding:28px 16px}
  .methode-corps{grid-template-columns:1fr}
  .onglets{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding-inline:16px;scrollbar-width:none;width:calc(100% + 32px)}
  .onglets::-webkit-scrollbar{display:none}
  .onglets button{flex:none;height:42px;padding:0 15px 0 12px;font-size:.9rem}
}

/* ---------- garanties (section sombre) */
.garanties{background:var(--anthracite);color:#fff}
.garanties-grille{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:clamp(32px,6vw,104px);margin-top:clamp(40px,5vw,72px)}
.garanties h3{font-size:1rem;font-weight:500;color:#fff;margin-bottom:14px}
.garanties p,.garanties li{color:rgba(255,255,255,.7)}
.gar-numero{font-size:clamp(2.6rem,7vw,6rem);font-weight:300;letter-spacing:-.06em;line-height:1;color:#fff!important;margin-bottom:24px}
.gar-qualibat p{max-width:50ch}
.gar-validite{display:flex;align-items:center;gap:16px;margin-top:34px;font-size:.84rem;color:rgba(255,255,255,.7);max-width:520px}
.gar-trait{position:relative;flex:1;height:1px;background:rgba(255,255,255,.4)}
.gar-trait::before,.gar-trait::after{content:"";position:absolute;top:-7px;width:1px;height:15px;background:rgba(255,255,255,.7);transform:rotate(38deg)}
.gar-trait::before{left:0}.gar-trait::after{right:0}
.gar-axa .mono{font-size:.9em;white-space:nowrap}
.gar-axa ul{margin-top:20px;border-top:1px solid rgba(255,255,255,.16)}
.gar-axa li{padding:13px 0;border-bottom:1px solid rgba(255,255,255,.16);color:#fff;line-height:1.35}
.gar-social{grid-column:1 / -1;margin-top:clamp(40px,5vw,72px);padding:22px 28px;border-radius:999px;background:rgba(255,255,255,.06)}
.gar-social strong{color:#fff;font-weight:500;margin-right:6px}
@media (max-width:860px){.garanties-grille{grid-template-columns:1fr;row-gap:48px}.gar-social{border-radius:20px;margin-top:0;padding:20px}}

/* ---------- moyens : mosaïque */
.moyens-tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 48px;margin-bottom:clamp(28px,3.5vw,52px)}
.moyens-tete p{color:var(--ardoise);max-width:44ch}
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(150px,15.5vw,224px);grid-template-areas:"a a b c" "a a d c" "e e f f";gap:16px}
.bento > a{display:block;border-radius:var(--r-moyen);overflow:hidden;background:#c9c5bf}
.bento img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--doux)}
.bento > a:hover img{transform:scale(1.04)}
.bento-a{grid-area:a}.bento-b{grid-area:b}.bento-c{grid-area:c}.bento-d{grid-area:d}.bento-e{grid-area:e}.bento-f{grid-area:f}.bento-g{grid-area:g}
.tuile{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:clamp(16px,1.8vw,26px);border-radius:var(--r-moyen);background:#fff;font-size:.94rem;line-height:1.4;color:var(--ardoise)}
.tuile-val{font-size:clamp(1.6rem,2.7vw,2.6rem);font-weight:300;letter-spacing:-.05em;line-height:1.02;color:var(--encre)}
.tuile--sombre{background:var(--anthracite);color:rgba(255,255,255,.72)}
.tuile--sombre .tuile-val{color:#fff;font-size:clamp(1.3rem,1.9vw,1.75rem);letter-spacing:-.035em;line-height:1.1}
@media (max-width:860px){.bento{grid-template-columns:1fr 1fr;grid-template-areas:"a a" "b c" "d c" "e f";grid-auto-rows:minmax(150px,auto);gap:10px}.bento-a{aspect-ratio:16/10}}
.inventaire{display:grid;grid-template-columns:repeat(3,1fr);gap:0 40px;margin-top:40px}
.inventaire div{padding-top:18px;border-top:1px solid #D5D8DE}
.inventaire dt{font-weight:500;margin-bottom:4px}
.inventaire dd{color:var(--ardoise)}
@media (max-width:860px){.inventaire{grid-template-columns:1fr;row-gap:20px}}

/* ---------- zone */
.zone-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:center}
.carte{width:100%;max-width:640px;height:auto;overflow:visible}
.carte-dep{fill:#fff;stroke:#C4C8D0;stroke-width:1;stroke-linejoin:round}
.carte-dep--chantier{fill:var(--brume)}
.carte-trajet{fill:none;stroke:var(--encre);stroke-width:1;stroke-dasharray:1.5 5;stroke-linecap:round;opacity:.55;transition:stroke .2s,opacity .2s}
.carte-point{fill:var(--encre);stroke:#fff;stroke-width:2;transition:fill .2s}
.carte-lieu--siege .carte-point{fill:var(--rouge)}
.carte-halo{fill:rgba(198,33,40,.14)}
.carte text{font-family:var(--sans);font-size:14px;fill:var(--encre);paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round}
.carte-lieu--siege text{font-weight:600}
.carte .est-allume .carte-point{fill:var(--rouge)}
.carte-trajet.est-allume{stroke:var(--rouge);opacity:1;stroke-dasharray:none}
.zone-texte > p{margin-top:22px;color:var(--ardoise);max-width:46ch}
.zone-liste{margin-top:32px;border-top:1px solid var(--filet)}
.zone-liste a{display:grid;grid-template-columns:1.3fr 1fr auto;gap:16px;align-items:baseline;padding:15px 12px;margin-inline:-12px;border-radius:12px;text-decoration:none;transition:background-color .2s}
.zone-liste li{border-bottom:1px solid var(--filet)}
.zone-liste a:hover{background:var(--brume)}
.zone-liste span:first-child{font-size:1.15rem;letter-spacing:-.02em}
.zone-liste span:nth-child(2){color:var(--ardoise);font-size:.94rem}
.zone-liste .mono{font-size:.86rem;color:var(--ardoise)}
@media (max-width:860px){.carte text{font-size:24px;stroke-width:6px}.carte-lieu:not(.carte-lieu--siege) text{display:none}.carte-point{r:8px}.zone-in{grid-template-columns:1fr}.zone-in .carte{order:2}.zone-liste a{grid-template-columns:1fr auto}.zone-liste span:nth-child(2){display:none}}

/* ---------- questions */
.questions-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.questions-tete p{margin-top:20px;color:var(--ardoise)}
.questions-tete a{color:var(--encre);font-weight:500;text-underline-offset:4px;text-decoration-color:var(--rouge);white-space:nowrap}
.faq details{border-top:1px solid #D5D8DE}
.faq details:last-child{border-bottom:1px solid #D5D8DE}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 0;font-size:clamp(1.1rem,1.5vw,1.3rem);letter-spacing:-.02em;line-height:1.3;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{flex:none;width:36px;height:36px;padding:9px;border-radius:50%;background:#fff;fill:none;stroke:var(--encre);stroke-width:1.6;stroke-linecap:round;transition:transform .35s var(--doux),background-color .2s}
.faq summary:hover svg{background:var(--encre);stroke:#fff}
.faq details[open] summary svg{transform:rotate(45deg)}
.faq details::details-content{block-size:0;overflow:clip;transition:block-size .4s var(--doux),content-visibility .4s allow-discrete}
.faq details[open]::details-content{block-size:auto}
.faq-reponse{padding:0 60px 26px 0;color:var(--ardoise);max-width:64ch}
@media (max-width:860px){.questions-in{grid-template-columns:1fr}.faq-reponse{padding-right:0}}

/* ---------- pied : appel final + coordonnées */
.pied{background:var(--anthracite);color:rgba(255,255,255,.68);font-size:.95rem}
.pied a{text-decoration:none;transition:color .2s}
.pied a:hover{color:#fff}
.pied-appel{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:32px clamp(32px,6vw,96px);align-items:end;padding-block:clamp(72px,9vw,136px) clamp(56px,6vw,88px);border-bottom:1px solid rgba(255,255,255,.14)}
.pied-appel h2{font-size:clamp(2.6rem,6.4vw,6rem);font-weight:300;letter-spacing:-.055em;line-height:.98;color:#fff;text-wrap:balance}
.pied-appel p:first-child{font-size:1.1rem;max-width:34ch;margin-bottom:22px}
.pied-in{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:40px clamp(24px,4vw,64px);padding-block:clamp(48px,5vw,72px)}
.pied-marque img{width:132px;height:auto;margin-bottom:20px}
.pied-marque p{max-width:36ch}
.pied-col h2{font-size:.86rem;font-weight:400;color:rgba(255,255,255,.45);margin-bottom:14px}
.pied-col p + p{margin-top:12px}
.pied-col li + li{margin-top:6px}
.pied-col a{color:#fff}
.pied-col a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--rouge)}
.pied-bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-block:20px;border-top:1px solid rgba(255,255,255,.14);font-size:.86rem}
.credit-aelvon-row{width:100%;padding:14px 0 20px;text-align:center;line-height:1}
.credit-aelvon{display:inline-flex;align-items:center;gap:.5em;color:inherit;text-decoration:none;font-size:12px;opacity:.6}
.credit-aelvon:hover{opacity:1}
.credit-aelvon img{height:19px;width:auto;display:block}
@media (max-width:860px){
  .pied-appel{grid-template-columns:1fr}
  .pied-in{grid-template-columns:1fr 1fr}
  .pied-marque{grid-column:1 / -1}
  .pied-col:last-child{grid-column:1 / -1}
  .pied{padding-bottom:calc(78px + env(safe-area-inset-bottom))}
}
.barre-basse{display:none}
@media (max-width:860px){
  .barre-basse{position:fixed;z-index:55;left:50%;bottom:calc(12px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:4px;padding:5px;border-radius:999px;background:rgba(17,19,22,.84);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 34px -10px rgba(0,0,0,.5)}
  .barre-basse a{display:flex;align-items:center;height:44px;padding:0 24px;border-radius:999px;color:#fff;font-weight:500;font-size:.98rem;text-decoration:none}
  .barre-basse-devis{background:var(--rouge)}
}

/* ---------- en-têtes des pages intérieures */
.tete{padding-block:clamp(48px,7vw,104px) clamp(40px,5vw,72px)}
.tete h1{font-size:clamp(2.4rem,5vw,4.5rem);font-weight:400;letter-spacing:-.048em;line-height:1.02;max-width:15ch;text-wrap:balance}
.tete .chapo{margin-top:24px}
.tete .actions{margin-top:30px}
.tete--photo .tete-in{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,5vw,80px);align-items:center}
.tete-photo{aspect-ratio:4/3;border-radius:var(--r-grand);overflow:hidden}
.tete-photo img{width:100%;height:100%;object-fit:cover}
.tete--simple{padding-bottom:0}
.tete--404{text-align:center;padding-block:clamp(80px,14vw,200px)}
.tete--404 h1,.tete--404 .chapo{margin-inline:auto}
.tete--404 .actions{justify-content:center}
.erreur-code{color:var(--ardoise);margin-bottom:18px}
@media (max-width:860px){.tete--photo .tete-in{grid-template-columns:1fr}}

/* ---------- page Isolation */
.tete--ite{padding-bottom:clamp(40px,5vw,64px)}
.coupe-bloc{padding-block:clamp(48px,6vw,96px);overflow:clip}
.coupe-bloc-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(24px,4vw,64px);align-items:start}
.coupe-bloc-texte > p{margin-top:18px;color:var(--ardoise);max-width:40ch}
.couches{margin-top:26px;border-bottom:1px solid #D5D8DE}
.couches button{display:grid;grid-template-columns:22px 1fr;gap:12px;width:100%;padding:13px 12px;margin-inline:-12px;width:calc(100% + 24px);border:0;border-top:1px solid #D5D8DE;background:none;text-align:left;font-size:.92rem;line-height:1.4;color:var(--ardoise);transition:background-color .2s}
.couches button:hover,.couches button.est-actif{background:#fff;border-radius:14px;border-color:transparent}
.couches li:has(button:hover) + li button,.couches li:has(button.est-actif) + li button{border-color:transparent}
.couches .mono{padding-top:2px;font-size:.8rem;color:var(--encre)}
.couches strong{display:block;font-weight:500;font-size:1rem;color:var(--encre)}
.coupe-bloc-texte .note{margin-top:20px}
.coupe--grande .coupe-cadre{height:clamp(420px,48vw,680px);margin-right:calc((100% - 100vw) / 2 + var(--marge) * 0)}
.coupe--grande .coupe-reglages{margin-top:8px}
@media (max-width:1080px){
  .coupe-bloc-in{grid-template-columns:1fr}
  .coupe--grande{order:-1}
  .coupe--grande .coupe-cadre{height:min(80vw,560px);margin-inline:calc(-1 * var(--marge))}
}
.isolants-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 48px;margin-bottom:clamp(28px,3.5vw,52px)}
.isolants-tete p{color:var(--ardoise);max-width:42ch}
.comparateur{width:100%;border-collapse:collapse;text-align:left}
.comparateur thead th{padding:0 16px 12px 0;font-size:.84rem;font-weight:400;color:var(--ardoise)}
.comparateur tbody th,.comparateur td{padding:22px 16px 22px 0;border-top:1px solid var(--filet);vertical-align:middle;font-weight:400}
.comparateur tbody tr:last-child th,.comparateur tbody tr:last-child td{border-bottom:1px solid var(--filet)}
.comparateur tbody th{display:flex;align-items:center;gap:16px;font-size:1.2rem;letter-spacing:-.02em}
.comparateur small{display:block;font-size:.86rem;letter-spacing:0;color:var(--ardoise)}
.echantillon{flex:none;width:46px;height:46px;border-radius:12px;background:var(--pse)}
.echantillon--pse{background:radial-gradient(circle at 20% 30%,#565a61 0 5%,transparent 6%),radial-gradient(circle at 60% 20%,#50545b 0 4%,transparent 5%),radial-gradient(circle at 75% 65%,#5a5e66 0 5%,transparent 6%),radial-gradient(circle at 35% 75%,#4c5057 0 4%,transparent 5%),var(--pse)}
.echantillon--ldr{background:repeating-linear-gradient(8deg,rgba(255,255,255,.12) 0 1px,transparent 1px 4px),var(--ldr)}
.barre{display:inline-block;vertical-align:middle;width:calc(var(--mm) * 1.5px);height:16px;margin-right:16px;border-radius:4px;background:var(--pse)}
.barre--ldr{background:var(--ldr)}
.comparateur .note{margin-top:20px}
.isolants .note{margin-top:22px}
@media (max-width:860px){
  .comparateur thead{display:none}
  .comparateur tbody tr{display:block;padding:20px 0;border-top:1px solid var(--filet)}
  .comparateur tbody th,.comparateur td{display:block;padding:0;border:0!important}
  .comparateur tbody th{display:flex;margin-bottom:14px}
  .comparateur td{margin-top:6px}
  .barre{width:calc(var(--mm) * 1px)}
}
.rge{padding-top:0}
.rge-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,5vw,80px);padding:clamp(28px,5vw,72px);border-radius:clamp(24px,3vw,36px);background:var(--anthracite);color:#fff}
.rge-texte p + p{margin-top:18px;color:rgba(255,255,255,.72);max-width:54ch}
.rge-faits{display:grid;grid-template-columns:repeat(3,auto);justify-content:start;gap:16px clamp(24px,4vw,56px);margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18)}
.rge-faits dt{font-size:.84rem;color:rgba(255,255,255,.55);margin-bottom:4px}
@media (max-width:860px){.rge-in{grid-template-columns:1fr;width:calc(100% - 16px)}.rge-faits{grid-template-columns:1fr}}
.pose{padding-top:0}
.pose-grille{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:clamp(150px,17vw,250px);gap:16px 16px;margin-top:clamp(28px,3.5vw,52px)}
.pose-grille li,.pierre-photos li{display:flex;flex-direction:column;min-height:0}
.pose-grille a,.pierre-photos a{display:block;flex:1;min-height:0;border-radius:var(--r-moyen);overflow:hidden}
.pose-grille img,.pierre-photos img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--doux)}
.pose-grille a:hover img,.pierre-photos a:hover img{transform:scale(1.04)}
.pose-grille p,.pierre-photos p{margin-top:8px;font-size:.86rem;color:var(--ardoise);line-height:1.3}
.pose-1{grid-column:1 / 5;grid-row:1 / 3}.pose-2{grid-column:5 / 7}.pose-3{grid-column:5 / 7}
.pose-4{grid-column:1 / 4}.pose-5{grid-column:4 / 7}.pose-6{grid-column:1 / 3}.pose-7{grid-column:3 / 7}
@media (max-width:860px){.pose-grille{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:10px}.pose-grille li{grid-column:auto;grid-row:auto}.pose-grille a{aspect-ratio:4/3;flex:none}.pose-1,.pose-7{grid-column:1 / -1!important}.pose-1 a,.pose-7 a{aspect-ratio:16/10}}

/* ---------- page Ravalement */
.chaux-in{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,3fr);gap:clamp(24px,4vw,64px);align-items:start}
.chaux-texte p + p{margin-top:18px;color:var(--ardoise);max-width:46ch}
.chaux-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-moyen)}
.chaux-photo figcaption{margin-top:8px;font-size:.86rem;color:var(--ardoise)}
.anciens-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(28px,5vw,80px);align-items:center}
.anciens-texte blockquote{margin:26px 0;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:300;letter-spacing:-.03em;line-height:1.22;max-width:20ch}
.anciens-texte blockquote p::before{content:"« "}.anciens-texte blockquote p::after{content:" »"}
.anciens-texte > p{color:var(--ardoise);max-width:46ch}
.anciens-texte > p + p{margin-top:14px}
.pierre-tete{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 48px}
.pierre-tete p{color:var(--ardoise);max-width:48ch}
.pierre-photos{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:clamp(140px,16vw,236px);gap:16px;margin-top:clamp(28px,3.5vw,52px)}
.pierre-1{grid-column:span 7;grid-row:span 2}.pierre-2{grid-column:span 5}.pierre-3{grid-column:span 5}.pierre-4,.pierre-5,.pierre-6{grid-column:span 4}
.nuancier{margin-top:clamp(56px,7vw,104px)}
.nuancier h3{font-size:1.5rem;font-weight:400;letter-spacing:-.03em;margin-bottom:24px}
.nuancier-liste{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.nuancier-liste img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--r-moyen);margin-bottom:12px;background:var(--brume)}
.nuancier-liste strong{display:block;font-weight:500;line-height:1.3}
.nuancier-liste span{font-size:.88rem;color:var(--ardoise)}
.peinture-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px)}
.peinture-texte p{margin-top:20px;color:var(--ardoise);max-width:42ch}
.preparation{padding:clamp(24px,3vw,44px);border-radius:var(--r-grand);background:#fff}
.etapes{margin-top:18px}
.etapes li{display:grid;grid-template-columns:28px 1fr;padding:14px 0;border-top:1px solid var(--filet)}
.etapes .mono{font-size:.82rem;color:var(--ardoise);padding-top:3px}
.preparation .note{margin-top:14px;padding-top:16px;border-top:1px solid var(--filet)}
@media (max-width:860px){
  .chaux-in,.anciens-in,.peinture-in{grid-template-columns:1fr}
  .pierre-photos{grid-template-columns:1fr 1fr;grid-auto-rows:auto;gap:10px}
  .pierre-photos li{grid-column:auto;grid-row:auto}
  .pierre-photos a{aspect-ratio:4/3;flex:none}
  .pierre-1,.pierre-2{grid-column:1 / -1}
  .pierre-1 a,.pierre-2 a{aspect-ratio:16/10}
  .nuancier-liste{grid-template-columns:repeat(3,1fr)}
}

/* ---------- page Réalisations */
.tete--realisations{padding-bottom:clamp(28px,3vw,44px)}
.galerie-bloc{padding-bottom:clamp(72px,9vw,136px)}
.filtres{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.filtres button{display:inline-flex;align-items:center;gap:9px;height:44px;padding:0 18px;border:0;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--filet);font-size:.95rem;transition:background-color .25s,color .25s,box-shadow .25s}
.filtres button .mono{font-size:.78rem;opacity:.55}
.filtres button:hover{box-shadow:inset 0 0 0 1px var(--encre)}
.filtres button[aria-pressed=true]{background:var(--encre);color:#fff;box-shadow:none}
.galerie{columns:4;column-gap:16px}
.galerie li{break-inside:avoid;margin-bottom:16px}
.galerie a{display:block;border-radius:16px;overflow:hidden}
.galerie img{width:100%;height:auto;transition:transform .6s var(--doux)}
.galerie a:hover img{transform:scale(1.04)}
.galerie-aide{margin-top:12px;font-size:.88rem;color:var(--ardoise)}
@media (max-width:1100px){.galerie{columns:3}}
@media (max-width:600px){.galerie{columns:2;column-gap:10px}.galerie li{margin-bottom:10px}.galerie a{border-radius:12px}.galerie-aide{display:none}}
.fiches .titre-2{margin-bottom:clamp(24px,3vw,44px)}
.fiche-chantier{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,4fr);gap:clamp(24px,4vw,56px);align-items:start;padding-block:clamp(28px,3.5vw,48px);border-top:1px solid #D5D8DE;scroll-margin-top:calc(var(--entete) + 8px)}
.fiche-chantier-photo{aspect-ratio:4/3;border-radius:var(--r-moyen);overflow:hidden}
.fiche-chantier-photo img{width:100%;height:100%;object-fit:cover}
.fiche-chantier h3{font-size:clamp(1.7rem,2.6vw,2.3rem);font-weight:400;letter-spacing:-.04em;line-height:1.1}
.fiche-chantier-ou{color:var(--ardoise);margin:6px 0 18px}
.fiche-chantier-texte p:last-child{max-width:48ch}
.fiche div{display:grid;grid-template-columns:1fr;gap:2px;padding:12px 0;border-bottom:1px solid #D5D8DE}
.fiche div:first-child{padding-top:0}
.fiche dt{font-size:.84rem;color:var(--ardoise)}
.dag-zone{padding-block:0}
.dag-zone:has(#dag-chantiers:not(:empty)){padding-block:clamp(56px,7vw,104px)}
@media (max-width:860px){.fiche-chantier{grid-template-columns:1fr;gap:20px}}

/* ---------- page Entreprise */
.recit-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,6vw,96px)}
.recit-texte p + p{margin-top:18px;color:var(--ardoise);max-width:56ch}
.recit{padding-top:clamp(24px,3vw,48px)}
.tenue-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,56px) clamp(28px,6vw,96px)}
.tenue-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.tenue-cols h3{font-size:1rem;font-weight:500;margin-bottom:8px;padding-top:16px;border-top:1px solid var(--encre)}
.tenue-cols p{color:var(--ardoise)}
.tenue-photo{grid-column:1 / -1;aspect-ratio:21/9;border-radius:var(--r-grand);overflow:hidden}
.tenue-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
@media (max-width:860px){.recit-in,.tenue-in{grid-template-columns:1fr}.tenue-cols{grid-template-columns:1fr}.tenue-photo{aspect-ratio:4/3}}

/* ---------- page Contact */
.tete--contact{background:var(--brume);padding-block:clamp(32px,4vw,64px) clamp(64px,8vw,120px)}
.contact-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(28px,5vw,80px);align-items:start}
.contact-form{padding:clamp(22px,4vw,56px);border-radius:clamp(24px,3vw,36px);background:#fff;scroll-margin-top:calc(var(--entete) + 12px)}
.contact-form h1{font-size:clamp(2.2rem,4vw,3.4rem)}
.contact-form .chapo{margin-top:16px}
.formulaire{margin-top:34px;display:grid;gap:22px}
.formulaire-note{font-size:.88rem;color:var(--ardoise)}
.champs-2{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}
.champ label,.champ legend{display:block;font-size:.9rem;font-weight:500;margin-bottom:8px}
.champ input[type=text],.champ input[type=tel],.champ input[type=email],.champ select,.champ textarea{display:block;width:100%;height:54px;padding:0 16px;border:1px solid #D5D8DE;border-radius:14px;background:#fff;font:inherit;color:var(--encre);transition:border-color .2s,box-shadow .2s}
.champ textarea{height:auto;min-height:140px;padding:14px 16px;resize:vertical;line-height:1.5}
.champ select{-webkit-appearance:none;appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D0F12' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px}
.champ input:hover,.champ select:hover,.champ textarea:hover{border-color:#A9AEB8}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:0;border-color:var(--encre);box-shadow:0 0 0 3px rgba(13,15,18,.1)}
.choix{display:flex;flex-wrap:wrap;gap:8px}
.choix label{position:relative;margin:0;font-weight:400;cursor:pointer}
.choix input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.choix span{display:flex;align-items:center;height:46px;padding:0 18px;border-radius:999px;box-shadow:inset 0 0 0 1px #D5D8DE;font-size:.95rem;transition:background-color .2s,color .2s,box-shadow .2s}
.choix label:hover span{box-shadow:inset 0 0 0 1px var(--encre)}
.choix input:checked + span{background:var(--encre);color:#fff;box-shadow:none}
.choix input:focus-visible + span{outline:2px solid var(--rouge);outline-offset:3px}
.depot{position:relative;display:grid;justify-items:center;gap:4px;padding:28px 20px;border:1.5px dashed #BFC4CD;border-radius:var(--r-moyen);text-align:center;transition:border-color .2s,background-color .2s}
.depot:hover,.depot.est-survole,.depot:focus-within{border-color:var(--encre);background:var(--brume)}
.depot input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.depot svg{width:30px;height:30px;margin-bottom:6px;fill:none;stroke:var(--encre);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.depot-texte strong{font-weight:500}
.depot-texte{color:var(--ardoise)}
.depot-texte strong{color:var(--encre)}
.champ-aide{font-size:.86rem;color:var(--ardoise)}
.depot-liste li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--filet);font-size:.92rem}
.depot-liste li span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.depot-liste .mono{flex:none;color:var(--ardoise);font-size:.84rem}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.champ--rgpd label{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start;font-weight:400;font-size:.94rem;color:var(--ardoise);margin:0;cursor:pointer}
.champ--rgpd input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--encre)}
.champ--rgpd a{color:var(--encre);text-underline-offset:4px}
.champ-err{margin-top:7px;font-size:.88rem;color:var(--rouge)}
.champ--erreur input[type=text],.champ--erreur input[type=tel],.champ--erreur input[type=email],.champ--erreur .depot{border-color:var(--rouge)}
.formulaire-etat{padding:14px 18px;border-radius:14px;background:#FCEBEC;color:#8C1419;font-size:.95rem}
.formulaire-merci{margin-top:34px;padding:clamp(22px,3vw,36px);border-radius:var(--r-moyen);background:var(--brume)}
.formulaire-merci p{margin-top:12px;color:var(--ardoise)}
.formulaire-merci a{color:var(--encre);font-weight:500}
.contact-coord{position:sticky;top:calc(var(--entete) + 24px);padding-top:clamp(0px,3vw,48px)}
.contact-coord div{padding:18px 0;border-top:1px solid #D5D8DE}
.contact-coord dt{font-size:.84rem;color:var(--ardoise);margin-bottom:4px}
.contact-coord a{display:block;text-decoration:none}
.contact-coord a:hover{color:var(--rouge)}
.contact-tel{font-size:clamp(1.7rem,2.6vw,2.3rem);font-weight:400;letter-spacing:-.04em;line-height:1.2}
@media (max-width:860px){.contact-in{grid-template-columns:1fr}.contact-form{margin-inline:calc(-1 * var(--marge) + 8px)}.champs-2{grid-template-columns:1fr}.contact-coord{position:static}}

/* ---------- mentions légales */
.legal{padding-top:clamp(28px,3vw,48px)}
.prose{max-width:none}
.prose h2{font-size:1.4rem;font-weight:500;letter-spacing:-.02em;margin:40px 0 10px;max-width:68ch}
.prose p{max-width:68ch;color:var(--ardoise)}
.prose p + p{margin-top:12px}
.prose a{color:var(--encre);text-underline-offset:4px;text-decoration-color:var(--rouge)}

/* ---------- visionneuse */
.vis{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(13,15,18,.94);color:#fff;overflow:hidden}
.vis::backdrop{background:rgba(13,15,18,.6)}
.vis-in{display:flex;flex-direction:column;height:100%;padding:72px clamp(16px,6vw,96px) 22px}
.vis figure{flex:1;min-height:0;display:grid;place-items:center}
.vis img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--r-petit)}
.vis-bas{display:flex;justify-content:space-between;gap:24px;padding-top:16px;font-size:.92rem;color:rgba(255,255,255,.75)}
.vis-compte{flex:none;font-size:.84rem}
.vis .rond{position:absolute;background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.vis .rond:hover{background:#fff;color:var(--encre);border-color:#fff}
.vis-fermer{top:14px;right:clamp(12px,2vw,28px)}
.vis-prec{left:clamp(8px,2vw,28px);top:50%;margin-top:-24px}
.vis-suiv{right:clamp(8px,2vw,28px);top:50%;margin-top:-24px}
@media (max-width:860px){.vis{background:#0D0F12}.vis-in{padding:72px 10px 14px}.vis-prec,.vis-suiv{top:auto;bottom:14px;margin:0}.vis-prec{left:auto;right:74px}.vis-suiv{right:14px}.vis-bas{min-height:74px;padding:14px 130px 0 6px;flex-direction:column;gap:4px}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .coupe-point::after{display:none}
}
