/* ==================================================================
   ECO RÉNOV ALSACE — DIRECTION C « ARCHITECTURAL INTELLIGENCE »
   « L'élégance de l'architecture rencontre la précision des données
     et la simplicité du conseil digital. »

   Charte respectée : vert #0A4F26 action · teal #02746C interaction
   doré #C99E67 accent non textuel · Montserrat famille unique
   ================================================================== */

@font-face{font-family:'Montserrat';src:url('./montserrat-latin-wght-normal.woff2') format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap;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:'Montserrat';src:url('./montserrat-latin-ext-wght-normal.woff2') format('woff2-variations');font-weight:100 900;font-style:normal;font-display:swap;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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* v59 (M4 b) : police de secours aux dimensions de Montserrat — le texte ne se réorganise plus quand Montserrat arrive */
@font-face{font-family:'Montserrat Fallback';src:local('Arial'),local('ArialMT'),local('Helvetica Neue'),local('Helvetica'),local('Liberation Sans'),local('Roboto');font-weight:100 599;size-adjust:113.97%;ascent-override:84.94%;descent-override:22.02%;line-gap-override:0%}
@font-face{font-family:'Montserrat Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Helvetica Neue Bold'),local('Helvetica-Bold'),local('Liberation Sans Bold'),local('Roboto Bold');font-weight:600 900;size-adjust:112.3%;ascent-override:86.2%;descent-override:22.35%;line-gap-override:0%}

:root{
  /* — primitifs — */
  --g-950:#031B0B; --g-900:#04240F; --g-800:#063418; --g-700:#08411F; --g-600:#0A4F26;
  --g-300:#9CC0A8; --g-100:#DDEAE1; --g-50:#F0F6F1;
  --t-700:#015C56; --t-600:#02746C; --t-100:#D3E7E5; --t-50:#EDF6F5;
  --o-700:#8A6634; --o-500:#C99E67; --o-300:#E2CAA9; --o-100:#F7F0E6;
  --ink:#141613; --ink-60:#4E534C; --ink-40:#8A8F86;
  --ink-20:#C9CCC5; --ink-15:#DCDFD8;
  --paper:#F7F5F1; --paper-2:#EFEBE3; --line:#DCD7CC; --white:#fff;
  --red:#A3231C;

  /* — sémantiques — */
  --action:var(--g-600); --action-h:var(--g-700);
  --inter:var(--t-600); --accent:var(--o-500);
  --bg:var(--paper); --fg:var(--ink); --fg-2:var(--ink-60); --fg-3:var(--ink-40);

  /* — formes : angles francs, menuiserie — */
  --r:2px; --r2:4px;

  /* — rythme — */
  --gut:clamp(20px,4.4vw,64px);
  --max:1440px;
  --nav-h:76px;

  /* — motion — */
  --e-out:cubic-bezier(.16,1,.3,1);
  --e-io:cubic-bezier(.65,0,.35,1);
}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:'Montserrat','Montserrat Fallback',system-ui,sans-serif;font-weight:400;font-size:17px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
img,svg,picture{display:block;max-width:100%}
h1,h2,h3,h4{margin:0;font-weight:800;line-height:1.02;letter-spacing:-.042em;text-wrap:balance}
p{margin:0 0 1em;max-width:62ch}
a{color:inherit}
button{font:inherit}
:focus-visible{outline:2px solid var(--g-600);outline-offset:3px;border-radius:var(--r)}
.on-dark :focus-visible{outline-color:var(--o-300)}

.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gut)}
.sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;top:-200px;left:20px;z-index:999;background:var(--g-600);color:#fff;padding:14px 22px;text-decoration:none;font-weight:700}
.skip:focus{top:14px}

/* Motion absent : le contenu ne doit jamais rester invisible */
.no-motion .reveal,.no-motion .rv-line>span,.no-motion .rv-img>*{opacity:1!important;transform:none!important;clip-path:none!important}
.no-motion .idx i{transform:scaleX(1)!important}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal,.rv-line>span,.rv-img>*{opacity:1!important;transform:none!important;clip-path:none!important}
}

/* ==================================================================
   TYPOGRAPHIE ÉDITORIALE
   ================================================================== */
.d1{font-size:clamp(2.6rem,6.9vw,5.9rem);letter-spacing:-.05em;line-height:.92}
.d2{font-size:clamp(2.1rem,5.2vw,4.4rem);letter-spacing:-.045em;line-height:.98}
.d3{font-size:clamp(1.6rem,3vw,2.6rem);letter-spacing:-.035em;line-height:1.06}
.d4{font-size:clamp(1.15rem,1.6vw,1.5rem);letter-spacing:-.02em;line-height:1.18;font-weight:700}
.lead{font-size:clamp(1.02rem,1.15vw,1.22rem);line-height:1.55;color:var(--fg-2);font-weight:400}
.on-dark .lead{color:#B9C9BE}
.tiny{font-size:12.5px;line-height:1.5;color:var(--fg-2)}
.on-dark .tiny{color:#93A497}

/* index de section : 01 — LIBELLÉ, filet doré qui se trace */
.idx{display:flex;align-items:center;gap:14px;font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-2);margin-bottom:22px}
.idx b{color:var(--o-700);font-weight:800}
.on-dark .idx{color:#93A497}
.on-dark .idx b{color:var(--o-300)}
.idx i{display:block;height:1px;flex:1;max-width:120px;background:var(--o-500);transform:scaleX(0);transform-origin:left;transition:transform 1s var(--e-out)}
.idx.is-in i{transform:scaleX(1)}

/* ==================================================================
   BOUTONS
   ================================================================== */
.btn{
  --bg:var(--action);--fg:#fff;--bd:var(--action);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:56px;padding:0 30px;border:1.5px solid var(--bd);border-radius:var(--r2);
  background:var(--bg);color:var(--fg);font-size:14.5px;font-weight:700;letter-spacing:.005em;
  text-decoration:none;cursor:pointer;overflow:hidden;isolation:isolate;white-space:nowrap;
  transition:color .3s var(--e-out),border-color .3s var(--e-out),transform .18s var(--e-out);
}
.btn::before{content:'';position:absolute;inset:0;z-index:-1;background:var(--g-800);transform:translateY(101%);transition:transform .42s var(--e-out)}
.btn:hover::before{transform:translateY(0)}
.btn:active{transform:translateY(1px)}
.btn svg{width:17px;height:17px;transition:transform .3s var(--e-out)}
.btn:hover svg{transform:translateX(3px)}
.btn--line{--bg:transparent;--fg:var(--ink);--bd:var(--ink-40)}
.btn--line:hover{--fg:#fff;--bd:var(--g-800)}
.btn--onDark{--bg:#fff;--fg:var(--g-900);--bd:#fff}
.btn--onDark::before{background:var(--o-500)}
.btn--onDark:hover{--fg:var(--g-900);--bd:var(--o-500)}
.btn--ghostDark{--bg:transparent;--fg:#fff;--bd:rgba(255,255,255,.42)}
.btn--ghostDark::before{background:rgba(255,255,255,.14)}
.btn--ghostDark:hover{--bd:#fff}
.btn--sm{min-height:46px;padding:0 20px;font-size:13px}
.btn--block{width:100%}
.btns{display:flex;flex-wrap:wrap;gap:12px}

.tlink{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:13.5px;font-weight:700;letter-spacing:.02em;text-decoration:none;color:var(--t-700);position:relative}
.tlink span{position:relative}
.tlink span::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .4s var(--e-out)}
.tlink:hover span::after{transform:scaleX(1);transform-origin:left}
.tlink::after{content:'→';transition:transform .3s var(--e-out)}
.tlink:hover::after{transform:translateX(4px)}
.on-dark .tlink{color:var(--o-300)}

/* ==================================================================
   NAVIGATION
   ================================================================== */
.topline{background:var(--g-950);color:#8FA595;font-size:12px;font-weight:600;letter-spacing:.04em}
.topline .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:34px}
.topline b{color:#D6E2D9;font-weight:700}
.topline a{color:#fff;text-decoration:none}
@media(max-width:800px){.topline .r{display:none}}

.nav{position:sticky;top:0;z-index:80;transition:background .5s var(--e-out),border-color .5s,backdrop-filter .5s}
.nav[data-solid='false']{background:transparent;border-bottom:1px solid rgba(255,255,255,.14)}
.nav[data-solid='true']{background:rgba(247,245,241,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:clamp(10px,1.4vw,26px);min-height:var(--nav-h)}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;padding:6px 8px 6px 0}
.brand__mark{height:40px;width:auto;flex:none}
.brand__mark--white{display:none}
.brand--invert .brand__mark--color,.nav[data-solid='false'] .brand__mark--color{display:none}
.brand--invert .brand__mark--white,.nav[data-solid='false'] .brand__mark--white{display:block}
.brand__txt em{font-style:normal;display:block;font-size:14.5px;font-weight:800;letter-spacing:.055em;line-height:1;white-space:nowrap}
.brand__txt small{display:block;font-size:8.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;margin-top:5px;opacity:.9}
.nav[data-solid='false'] .brand{color:#fff}
.nav[data-solid='true'] .brand{color:var(--g-700)}
.nav[data-solid='true'] .brand small{color:var(--ink-60)}

.menu{display:none;margin-left:4px;min-width:0}
@media(min-width:1100px){.menu{display:block}}
@media(min-width:1100px) and (max-width:1420px){.mlink{font-size:12.5px}.brand__txt small{display:none}}
.menu ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.mlink{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 clamp(7px,.72vw,14px);background:none;border:0;cursor:pointer;
  font-size:13.5px;font-weight:600;letter-spacing:.01em;text-decoration:none;position:relative;color:inherit;white-space:nowrap}
.nav[data-solid='false'] .mlink{color:rgba(255,255,255,.9)}
.nav[data-solid='true'] .mlink{color:var(--ink)}
.mlink::after{content:'';position:absolute;left:clamp(7px,.72vw,14px);right:clamp(7px,.72vw,14px);bottom:12px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .38s var(--e-out)}
.mlink:hover::after,.mlink[aria-expanded='true']::after{transform:scaleX(1)}
.mlink .cv{transition:transform .3s var(--e-out)}
.mlink[aria-expanded='true'] .cv{transform:rotate(180deg)}
.nav-act{display:flex;align-items:center;gap:10px;margin-left:auto;padding-left:16px}
/* sur nav transparente, le bouton secondaire doit rester lisible sur la photographie */
.nav[data-solid='false'] .btn--line{--fg:#fff;--bd:rgba(255,255,255,.5)}
.nav[data-solid='false'] .btn--line:hover{--fg:var(--g-950);--bg:#fff;--bd:#fff}
@media(max-width:1099px){.nav-act .btn--line{display:none}}
.burger{width:52px;height:52px;display:grid;place-items:center;border:1.5px solid currentColor;border-radius:var(--r2);background:transparent;cursor:pointer;color:inherit}
.nav[data-solid='false'] .burger{color:#fff}
.nav[data-solid='true'] .burger{color:var(--ink)}
@media(min-width:1100px){.burger{display:none}}

/* méga-menu visuel */
.mega{position:absolute;left:0;right:0;top:100%;background:var(--white);border-bottom:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(4,36,15,.35);overflow:hidden;display:none}
.mega[data-open='true']{display:block}
@media(max-width:1099px){.mega{display:none!important}}
.mega__in{display:grid;grid-template-columns:1.15fr 1fr .95fr 1.25fr;gap:44px;padding-block:44px}
.mega .colt{font-size:10.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-60);
  padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--o-300)}
.mega ul{list-style:none;margin:0;padding:0}
.mega ul a{display:flex;align-items:center;min-height:44px;padding:6px 0;font-size:14px;font-weight:500;text-decoration:none;color:var(--ink);transition:color .25s,transform .35s var(--e-out)}
.mega ul a:hover{color:var(--g-600);transform:translateX(5px)}
.mega__card{position:relative;overflow:hidden;border-radius:var(--r2);min-height:230px;display:flex;align-items:flex-end;text-decoration:none;color:#fff}
.mega__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--e-out)}
.mega__card:hover img{transform:scale(1.06)}
.mega__card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(4,36,15,.9) 8%,rgba(4,36,15,.15) 62%)}
.mega__card>div{position:relative;z-index:2;padding:22px}
.mega__card strong{display:block;font-size:16px;font-weight:800;letter-spacing:-.02em}
.mega__card span{display:block;font-size:12px;color:#C3D3C8;margin-top:4px}

/* panneau mobile */
.mnav{position:fixed;inset:0;z-index:120;display:none}
.mnav[data-open='true']{display:block}
.mnav__bg{position:absolute;inset:0;background:rgba(3,27,11,.6)}
.mnav__p{position:absolute;inset:0 0 0 auto;width:min(440px,100%);background:var(--g-900);color:#fff;display:flex;flex-direction:column}
.mnav__h{display:flex;align-items:center;justify-content:space-between;padding:18px var(--gut);border-bottom:1px solid rgba(255,255,255,.14)}
.mnav__b{flex:1;overflow-y:auto;padding:10px var(--gut) 24px}
.mnav__b a{display:flex;align-items:center;justify-content:space-between;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.1);
  font-size:20px;font-weight:700;letter-spacing:-.02em;text-decoration:none;color:#fff}
.mnav__b a span{color:var(--o-300);font-size:14px}
.mnav__f{padding:18px var(--gut);border-top:1px solid rgba(255,255,255,.14);display:grid;gap:10px}
.mnav__x{width:52px;height:52px;border:1px solid rgba(255,255,255,.4);background:none;color:#fff;border-radius:var(--r2);cursor:pointer;font-size:20px}

/* ==================================================================
   HERO
   ================================================================== */
.hero{position:relative;margin-top:calc(-1*var(--nav-h));min-height:min(104svh,1080px);display:flex;flex-direction:column;background:var(--g-950);color:#fff;isolation:isolate;overflow:hidden}
.hero__media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);transform-origin:52% 60%}
.hero__media::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(3,27,11,.80) 0%,rgba(3,27,11,.30) 32%,rgba(3,27,11,.18) 54%,rgba(3,27,11,.88) 100%),
             linear-gradient(94deg,rgba(3,27,11,.86) 0%,rgba(3,27,11,.34) 50%,rgba(3,27,11,0) 76%)}
/* trame de dessin d'architecte */
.hero__grid{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:100% 96px,25% 100%}
.hero__in{position:relative;flex:1;display:grid;align-content:center;padding-block:calc(var(--nav-h) + clamp(30px,7vh,86px)) 0}
.hero__cols{display:grid;gap:clamp(28px,4vw,60px)}
@media(min-width:1080px){.hero__cols{grid-template-columns:minmax(0,1.32fr) minmax(340px,.68fr);align-items:end}}
.hero h1{color:#fff}
.hero h1 .l3{color:var(--o-300)}
.hero__sub{max-width:47ch;margin-top:26px;color:#C3D3C8;font-size:clamp(1rem,1.15vw,1.16rem);line-height:1.55}
.hero__btns{margin-top:34px}
.hero__terr{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#9DB4A4;margin-bottom:26px}
.hero__terr::before{content:'';width:26px;height:1.5px;background:var(--o-500)}

/* panneau « intelligence » : la donnée rencontre l'architecture */
.hpanel{background:linear-gradient(180deg,rgba(3,27,11,.80),rgba(3,27,11,.92));backdrop-filter:blur(26px) saturate(1.15);border:1px solid rgba(255,255,255,.15);border-radius:var(--r2);padding:clamp(20px,1.5vw,24px);padding-bottom:clamp(12px,0.9vw,14px);position:relative;overflow:visible}
.hpanel::before{content:'';position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--o-500),transparent)}
.hpanel__k{display:flex;align-items:center;gap:10px;font-size:9.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--o-300);margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.13)}
.hpanel__k span{margin-left:auto;letter-spacing:.14em;color:#8FA595;border:1px solid rgba(255,255,255,.18);padding:3px 8px}
.hpanel__k::before{content:'';width:20px;height:1.5px;background:var(--o-500);flex:none}
.hpanel h2{font-size:clamp(1rem,1.12vw,1.14rem);font-weight:800;letter-spacing:-.03em;line-height:1.24;margin-bottom:7px}
.hpanel p{font-size:12px;line-height:1.46;color:#9DB4A4;margin:0 0 17px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.13)}
.hstats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);margin-bottom:18px}
.hstats div{background:rgba(4,36,15,.55);padding:14px}
.hstats b{display:flex;align-items:baseline;gap:2px;white-space:nowrap;font-size:26px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}
.hstats>div>span{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8FA595;margin-top:6px}
.hero__scroll{display:flex;align-items:center;gap:12px;padding-block:26px 30px;font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#7E9587;border-top:1px solid rgba(255,255,255,.14);margin-top:clamp(30px,6vh,64px)}
.hero__scroll i{display:block;width:1px;height:28px;background:linear-gradient(var(--o-500),transparent);animation:sc 2.4s var(--e-io) infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ==================================================================
   SECTIONS
   ================================================================== */
.sec{padding-block:clamp(64px,9vw,140px);position:relative}
.sec--dark{background:var(--g-900);color:#fff}
.sec--deep{background:var(--g-950);color:#fff}
.sec--paper{background:var(--paper-2)}
.sec--white{background:#fff}
.head{max-width:56ch;margin-bottom:clamp(34px,4.4vw,64px)}
.head p{color:var(--fg-2);margin-top:18px;margin-bottom:0}
.on-dark .head p,.sec--dark .head p,.sec--deep .head p{color:#A9BCB0}

/* — sélecteur de besoins — */
.needs{display:grid;gap:clamp(24px,3vw,48px)}
@media(min-width:1000px){.needs{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start}}
.needlist{display:grid;gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
.needbtn{position:relative;display:flex;align-items:center;gap:14px;width:100%;min-height:66px;padding:0 18px;
  background:var(--g-900);border:0;cursor:pointer;text-align:left;color:#fff;font-size:15px;font-weight:600;letter-spacing:-.01em;
  transition:background .35s var(--e-out),padding .35s var(--e-out)}
.needbtn svg{width:21px;height:21px;flex:none;color:var(--g-300);transition:color .3s}
.needbtn i{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--o-500);transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--e-out)}
.needbtn:hover{background:var(--g-800);padding-left:24px}
.needbtn[aria-selected='true']{background:var(--g-800);padding-left:26px}
.needbtn[aria-selected='true'] i{transform:scaleY(1);transform-origin:top}
.needbtn[aria-selected='true'] svg{color:var(--o-500)}
.needbtn em{margin-left:auto;font-style:normal;font-size:11px;letter-spacing:.14em;color:#7E9587;opacity:0;transition:opacity .3s}
.needbtn[aria-selected='true'] em{opacity:1;color:var(--o-300)}
.needview{position:relative;border:1px solid rgba(255,255,255,.16);border-radius:var(--r2);overflow:hidden;min-height:430px;display:flex;flex-direction:column}
.needview__img{position:relative;flex:1;min-height:330px;overflow:hidden;background:var(--g-800)}
.needview__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.needview__img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(4,36,15,.85),rgba(4,36,15,0) 55%)}
.needview__body{padding:24px;background:rgba(4,36,15,.72);backdrop-filter:blur(6px)}
.needview__body h3{font-size:20px;letter-spacing:-.03em;margin-bottom:10px}
.needview__body p{font-size:14px;color:#B9C9BE;margin:0 0 16px;max-width:52ch}
.needview__tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px}
.needview__tags span{font-size:11px;font-weight:600;letter-spacing:.04em;padding:6px 11px;border:1px solid rgba(255,255,255,.24);color:#D2DED6;border-radius:var(--r)}

/* — familles produits — */
.fams{display:grid;gap:14px}
@media(min-width:760px){.fams{grid-template-columns:repeat(6,1fr)}}
.fam{position:relative;display:block;overflow:hidden;border-radius:var(--r2);text-decoration:none;color:#fff;min-height:300px;grid-column:span 6}
@media(min-width:760px){.fam{grid-column:span 3;min-height:340px}.fam--big{grid-column:span 6;min-height:420px}.fam--third{grid-column:span 2;min-height:300px}}
.fam img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e-out)}
.fam:hover img{transform:scale(1.055)}
.fam::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(3,27,11,.92) 4%,rgba(3,27,11,.28) 52%,rgba(3,27,11,.1) 100%);transition:opacity .5s}
.fam__c{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:24px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.fam__c h3{font-size:clamp(1.05rem,1.5vw,1.45rem);letter-spacing:-.03em}
.fam__c p{font-size:12.5px;color:#BCCCC1;margin:6px 0 0;max-width:34ch}
.fam__go{width:42px;height:42px;flex:none;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;transition:background .35s var(--e-out),border-color .35s,transform .35s var(--e-out)}
.fam:hover .fam__go{background:var(--o-500);border-color:var(--o-500);color:var(--g-900);transform:translateX(4px)}
.fam__n{position:absolute;top:20px;left:24px;z-index:2;font-size:10.5px;font-weight:800;letter-spacing:.2em;color:var(--o-300)}

/* — révélations — */
.reveal{opacity:0;transform:translateY(26px)}
.rv-img{overflow:hidden}
.rv-img>*{clip-path:inset(0 0 100% 0)}
.rv-line{display:block;overflow:hidden}
.rv-line>span{display:block;transform:translateY(105%)}

/* — bandeau de preuves défilant (contrôlé, non agressif) — */
.proof{border-block:1px solid var(--line);background:var(--paper)}
.proof .wrap{display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,56px);align-items:center;justify-content:space-between;padding-block:22px}
.proof div{display:flex;align-items:baseline;gap:10px}
.proof b{font-size:24px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.proof span{font-size:12px;color:var(--fg-2);max-width:22ch;line-height:1.35}

/* ==================================================================
   CATALOGUE / CATÉGORIE
   ================================================================== */
.crumb{font-size:12px;letter-spacing:.06em;color:var(--fg-2);padding-block:16px}
.crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0}
.crumb li+li::before{content:'/';margin-right:9px;color:var(--ink-40)}
.crumb a{text-decoration:none;color:inherit}
.crumb a:hover{color:var(--g-600)}
.crumb [aria-current]{color:var(--fg);font-weight:700}

.chero{position:relative;margin-top:calc(-1*var(--nav-h));min-height:min(74svh,760px);display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--g-950)}
.chero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.chero::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(3,27,11,.95) 6%,rgba(3,27,11,.42) 52%,rgba(3,27,11,.72) 100%)}
.chero .wrap{position:relative;z-index:2;padding-block:calc(var(--nav-h) + 30px) clamp(36px,6vw,76px)}

.answer{border-left:2px solid var(--o-500);padding:4px 0 4px 26px;max-width:78ch}
.answer h2{font-size:clamp(1.1rem,1.5vw,1.32rem);letter-spacing:-.025em;margin-bottom:12px}
.answer p{font-size:15.5px;line-height:1.6;color:var(--fg-2);margin-bottom:10px;max-width:none}
.answer strong{color:var(--fg)}

.mats{display:grid;gap:12px}
@media(min-width:700px){.mats{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1100px){.mats{grid-template-columns:repeat(5,1fr)}}
.mat{position:relative;overflow:hidden;border-radius:var(--r2);min-height:300px;display:flex;align-items:flex-end;text-decoration:none;color:#fff;background:var(--g-800)}
.mat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform 1.1s var(--e-out)}
.mat:hover img{transform:scale(1.06)}
.mat::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(3,27,11,.9) 10%,rgba(3,27,11,.15) 65%)}
.mat>div{position:relative;z-index:2;padding:20px}
.mat h3{font-size:19px;letter-spacing:-.03em}
.mat p{font-size:12px;color:#BCCCC1;margin:6px 0 0}
.mat em{position:absolute;top:16px;right:18px;z-index:2;font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.14em;color:var(--o-300)}

/* — comparateur segmenté — */
.seg{display:inline-flex;position:relative;padding:4px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;gap:2px;flex-wrap:wrap}
.seg__pill{position:absolute;top:4px;bottom:4px;background:var(--g-600);border-radius:2px;z-index:0;transition:none}
.seg button{position:relative;z-index:1;min-height:44px;padding:0 18px;border:0;background:none;cursor:pointer;font-size:13px;font-weight:700;color:var(--fg-2);transition:color .3s}
.seg button[aria-selected='true']{color:#fff}
.cmp{display:grid;gap:0;border:1px solid var(--line);background:#fff;border-radius:var(--r2);overflow:hidden}
.cmp__row{display:grid;grid-template-columns:1.1fr 1fr 1fr;border-bottom:1px solid var(--line)}
.cmp__row:last-child{border-bottom:0}
.cmp__row>*{padding:15px 18px;font-size:13.5px}
.cmp__row>*:not(:first-child){border-left:1px solid var(--line);font-variant-numeric:tabular-nums;font-weight:700}
.cmp__row--h>*{background:var(--paper-2);font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--fg-2)}
.cmp small{display:block;font-weight:400;font-size:11px;color:var(--fg-2);margin-top:4px;line-height:1.4}

/* ==================================================================
   FICHE PRODUIT
   ================================================================== */
.pdp{display:grid;gap:clamp(28px,4vw,64px);align-items:start}
@media(min-width:1080px){.pdp{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr)}}
.stage{position:relative;background:radial-gradient(120% 90% at 50% 40%,#0E5F2E 0%,var(--g-900) 58%,var(--g-950) 100%);
  border-radius:var(--r2);overflow:hidden;aspect-ratio:4/3.4;display:grid;place-items:center}
.stage__grid{position:absolute;inset:0;opacity:.35;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:100% 64px,64px 100%}
.stage img{position:relative;z-index:2;max-height:82%;width:auto;object-fit:contain;filter:drop-shadow(0 40px 60px rgba(0,0,0,.5))}
.stage__tag{position:absolute;left:16px;bottom:16px;z-index:3;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8FA595;background:rgba(3,27,11,.7);border:1px solid rgba(255,255,255,.16);padding:7px 11px;border-radius:var(--r)}
.thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.thumb{position:relative;aspect-ratio:1;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--paper-2);cursor:pointer;padding:0}
.thumb picture{width:100%;height:100%;display:block}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb[aria-current='true']{border-color:var(--g-600);box-shadow:inset 0 0 0 1px var(--g-600)}

/* points chauds sur la menuiserie */
.hot{position:absolute;z-index:4;width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(255,255,255,.75);
  background:rgba(4,36,15,.5);backdrop-filter:blur(3px);cursor:pointer;display:grid;place-items:center;color:#fff;padding:0}
.hot::before{content:'';position:absolute;inset:-8px;border-radius:50%;border:1px solid rgba(201,158,103,.55);animation:pulse 2.8s var(--e-io) infinite}
@keyframes pulse{0%{transform:scale(.7);opacity:0}40%{opacity:.9}100%{transform:scale(1.25);opacity:0}}
.hot b{font-size:13px;font-weight:800;line-height:1}
.hot[aria-expanded='true']{background:var(--o-500);border-color:var(--o-500);color:var(--g-900)}
.hotbox{position:absolute;z-index:5;width:min(258px,72vw);background:rgba(3,27,11,.95);border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r2);padding:14px 16px;color:#fff;font-size:12.5px;line-height:1.5;opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .3s,transform .3s var(--e-out)}
.hotbox[data-open='true']{opacity:1;transform:none;pointer-events:auto}
.hotbox b{display:block;font-size:13px;margin-bottom:5px;color:var(--o-300)}

.sys{display:flex;align-items:center;gap:12px;font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-2)}
.sys::before{content:'';width:22px;height:1.5px;background:var(--o-500)}
.keyf{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-block:28px}
@media(min-width:540px){.keyf{grid-template-columns:repeat(4,1fr)}}
.keyf div{background:#fff;padding:16px}
.keyf b{display:block;font-size:23px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}
.keyf>div>span{display:block;font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);margin-top:7px}

.bul{list-style:none;padding:0;margin:0 0 26px}
.bul li{display:flex;gap:13px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.bul li::before{content:'';width:7px;height:7px;background:var(--g-600);flex:none;margin-top:8px}
.bul li:last-child{border-bottom:0}

/* visualiseur de finitions */
.finish{display:flex;flex-wrap:wrap;gap:9px}
.sw{width:46px;height:46px;border:1px solid var(--ink-40);border-radius:var(--r);cursor:pointer;padding:0;position:relative;transition:transform .3s var(--e-out)}
.sw:hover{transform:translateY(-3px)}
.sw[aria-pressed='true']{box-shadow:0 0 0 2px var(--white),0 0 0 3.5px var(--g-600)}

.acc{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:#fff}
.acc+.acc{margin-top:-1px}
.acc__b{width:100%;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;
  background:none;border:0;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:-.015em;text-align:left}
.acc__b:hover{background:var(--paper)}
.acc__b .s{width:22px;height:22px;flex:none;position:relative}
.acc__b .s::before,.acc__b .s::after{content:'';position:absolute;inset:50% 0 auto;height:1.5px;background:var(--g-600);transition:transform .4s var(--e-out)}
.acc__b .s::after{transform:rotate(90deg)}
.acc__b[aria-expanded='true'] .s::after{transform:rotate(0)}
.acc__p{overflow:hidden;height:0}
.acc__p>div{padding:4px 20px 22px}

.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th,.tbl td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.tbl thead th{background:var(--paper-2);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2)}
.tbl td.n{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.tbl .cond{display:block;font-size:12px;font-weight:400;color:var(--fg-2);margin-top:5px;line-height:1.45}
.tblw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r2)}
.tblw .tbl{min-width:520px}
.tbl tbody tr:last-child td,.tbl tbody tr:last-child th{border-bottom:0}

.limits{border:1px solid var(--o-300);background:var(--o-100);padding:22px 24px;border-radius:var(--r2)}
.limits h3{font-size:17px;letter-spacing:-.025em;margin-bottom:12px}
.limits ul{margin:0;padding-left:18px;font-size:14px}
.limits li{margin-bottom:7px}

.badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.02em;padding:7px 12px;border-radius:var(--r);
  background:var(--g-50);color:var(--g-700);border:1px solid var(--g-100)}
.badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--g-600)}
.badge--study{background:var(--o-100);color:var(--o-700);border-color:var(--o-300)}
.badge--study::before{background:var(--o-500)}
.tag{display:inline-flex;font-size:12px;font-weight:600;padding:7px 12px;border:1px solid var(--line);border-radius:var(--r);color:var(--fg-2);background:#fff}

.srcnote{font-size:12px;color:var(--fg-2);line-height:1.5}
.credit{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-40);margin-top:10px}
.on-dark .credit,.sec--dark .credit,.sec--deep .credit{color:#7E9587}

/* ==================================================================
   SIMULATEUR
   ================================================================== */
.sim{min-height:100svh;display:flex;flex-direction:column;background:var(--g-950);color:#fff}
.sim__top{padding:18px var(--gut) 0}
.sim__bar{height:2px;background:rgba(255,255,255,.16);overflow:hidden;margin-top:14px}
.sim__fill{height:100%;background:var(--o-500);width:14%}
.sim__meta{display:flex;justify-content:space-between;font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#8FA595}
.sim__body{flex:1;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,6vh,64px) var(--gut)}
.sim h1{font-size:clamp(1.7rem,4.6vw,2.6rem);letter-spacing:-.04em;margin-bottom:12px}
.sim__help{font-size:14px;color:#9DB4A4;margin-bottom:clamp(22px,4vh,38px)}
.opts{display:grid;gap:12px}
@media(min-width:620px){.opts{grid-template-columns:1fr 1fr}}
.opt{position:relative;display:flex;gap:16px;align-items:center;min-height:96px;padding:16px;border:1px solid rgba(255,255,255,.2);
  border-radius:var(--r2);background:rgba(255,255,255,.035);cursor:pointer;text-align:left;color:#fff;overflow:hidden;
  transition:border-color .35s var(--e-out),background .35s var(--e-out),transform .3s var(--e-out)}
.opt:hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.07);transform:translateY(-2px)}
.opt[aria-pressed='true']{border-color:var(--o-500);background:rgba(201,158,103,.14)}
.opt__img{width:88px;height:64px;flex:none;border-radius:var(--r);overflow:hidden;background:var(--g-800)}
.opt__img img{width:100%;height:100%;object-fit:cover}
.opt strong{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.02em}
.opt span{display:block;font-size:12px;color:#9DB4A4;margin-top:4px}
.opt__ck{position:absolute;top:12px;right:12px;width:24px;height:24px;border-radius:50%;background:var(--o-500);color:var(--g-900);
  display:grid;place-items:center;font-size:12px;font-weight:800;opacity:0;transform:scale(.4)}
.opt[aria-pressed='true'] .opt__ck{opacity:1;transform:none}
.sim__nav{display:flex;align-items:center;gap:14px;padding:20px var(--gut) 30px;border-top:1px solid rgba(255,255,255,.14)}
.sim__back{background:none;border:0;color:#9DB4A4;font-size:13px;font-weight:700;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:7px}
.sim__back:hover{color:#fff}

/* résultat */
.res__hero{background:var(--g-950);color:#fff;padding-block:clamp(34px,6vw,70px) clamp(28px,5vw,54px)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.chips span{font-size:12px;font-weight:600;padding:7px 12px;border:1px solid rgba(255,255,255,.26);border-radius:var(--r);color:#C3D3C8}
.reco{display:grid;gap:clamp(22px,3vw,44px)}
@media(min-width:900px){.reco{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}}
.reco__card{border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:#fff}
.reco__flag{background:var(--g-600);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:11px 16px;display:flex;align-items:center;gap:9px}
.why{list-style:none;margin:0;padding:0;counter-reset:w}
.why li{counter-increment:w;display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.why li::before{content:counter(w,decimal-leading-zero);flex:none;width:34px;height:34px;display:grid;place-items:center;
  border:1px solid var(--g-300);color:var(--g-700);font-size:11px;font-weight:800;border-radius:var(--r)}
.why b{display:block;font-size:14.5px;margin-bottom:4px}
.why span{font-size:13.5px;color:var(--fg-2);line-height:1.55}
.watch{border:1px solid var(--o-300);background:var(--o-100);padding:22px;border-radius:var(--r2)}
.watch h3{font-size:16px;margin-bottom:12px;letter-spacing:-.02em}
.watch ul{margin:0;padding-left:18px;font-size:13.5px}
.watch li{margin-bottom:8px}

/* barre d'action contextuelle */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:70;background:rgba(255,255,255,.97);border-top:1px solid var(--line);
  padding:10px var(--gut);display:flex;gap:10px;transform:translateY(110%)}
.dock .btn{flex:1;min-height:50px;font-size:13px;padding-inline:12px}
@media(min-width:1100px){.dock{display:none}}
body.dockpad{padding-bottom:78px}

/* pied de page */
.foot{background:var(--g-950);color:#93A497;padding-block:clamp(52px,7vw,96px) 30px;font-size:14px}
.foot .colt{color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(201,158,103,.36)}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:11px}
.foot a{color:#93A497;text-decoration:none}
.foot ul a,.foot address a{display:inline-flex;align-items:center;min-height:44px}
.topline a{display:inline-flex;align-items:center;min-height:32px;padding-inline:3px}
.foot a:hover{color:#fff}
.foot__g{display:grid;gap:34px;grid-template-columns:repeat(auto-fit,minmax(165px,1fr))}
.foot__top{display:flex;flex-wrap:wrap;gap:26px;justify-content:space-between;align-items:flex-start;margin-bottom:52px}
.foot__legal{margin-top:52px;padding-top:24px;border-top:1px solid rgba(255,255,255,.13);display:flex;flex-wrap:wrap;gap:14px 26px;justify-content:space-between;font-size:12px}
address{font-style:normal;line-height:1.7}
address strong{color:#fff}

/* — compactage de l'en-tête sur petits écrans — */
.lbl-s{display:none}
@media(max-width:760px){
  .nav .wrap{gap:12px}
  .brand__txt small{display:none}
  .brand__txt em{font-size:12.5px}
  .brand__mark{height:32px}
  .nav-act{gap:8px}
  .nav-act .btn{min-height:44px;padding:0 14px;font-size:12.5px}
  .burger{width:44px;height:44px}
  .lbl-l{display:none}
  .lbl-s{display:inline}
}

/* — hero mobile : la photographie doit rester lisible — */
@media(max-width:900px){
  .hero__media::after{
    background:linear-gradient(180deg,rgba(3,27,11,.55) 0%,rgba(3,27,11,.22) 22%,rgba(3,27,11,.62) 52%,rgba(3,27,11,.94) 88%);
  }
  .hero__media img{transform-origin:58% 46%}
  .hero__in{padding-top:calc(var(--nav-h) + 18vh)}
  .hpanel{padding:20px;padding-bottom:12px}
  .hstats b{font-size:22px}
}


/* ==================================================================
   MINI-DEVIS DU HERO — point d'entrée du tunnel de devis en ligne
   ================================================================== */

/* repère d'étape : même signature que l'index de section (chiffre + filet) */
.qd__step{display:flex;align-items:center;gap:11px;margin:0 0 11px;line-height:1;
  font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#8FA595}
.qd__step b{color:var(--o-300)}
.qd__step i{flex:1;height:1px;background:rgba(255,255,255,.14)}

/* pastilles produit : texte seul, angles francs, état choisi en doré */
.qd__chips{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:17px}
.qd__chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:68px;padding:9px 4px;
  border:1px solid rgba(255,255,255,.2);border-radius:var(--r);background:rgba(255,255,255,.045);color:#D9E4DC;
  font:inherit;font-size:10.5px;font-weight:700;letter-spacing:.04em;line-height:1.15;text-align:center;cursor:pointer;
  transition:border-color .3s var(--e-out),background .3s var(--e-out),color .3s var(--e-out)}
.qd__chip svg{width:26px;height:26px;color:#9DB4A4;transition:color .3s var(--e-out)}
.qd__chip:hover{border-color:rgba(255,255,255,.44);background:rgba(255,255,255,.1);color:#fff}
.qd__chip:hover svg{color:#fff}
.qd__chip[aria-pressed='true']{border-color:var(--o-500);background:rgba(201,158,103,.17);color:#fff;font-weight:800}
.qd__chip[aria-pressed='true'] svg{color:var(--o-500)}

/* champ commune */
.qd__field{position:relative;margin-bottom:13px}
.qd__field input{width:100%;min-height:46px;padding:0 14px 0 40px;font:inherit;font-size:14px;color:#fff;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.2);border-radius:var(--r);
  transition:border-color .3s var(--e-out),background .3s var(--e-out)}
.qd__field input::placeholder{color:#8AA194}
.qd__field input:hover{border-color:rgba(255,255,255,.44)}
.qd__field input:focus{outline:none;border-color:var(--o-500);background:rgba(255,255,255,.08)}
.qd__pin{position:absolute;left:13px;top:23px;transform:translateY(-50%);width:16px;height:16px;color:#8FA595;pointer-events:none}

/* liste des communes */
.qd__sug{position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:40;background:#052711;
  border:1px solid rgba(255,255,255,.22);border-radius:var(--r);max-height:212px;overflow-y:auto;display:none;
  box-shadow:0 24px 48px -20px rgba(0,0,0,.8)}
.qd__sug[data-open='true']{display:block}
.qd__sug button{display:flex;align-items:center;gap:9px;width:100%;min-height:44px;padding:0 14px;background:none;border:0;
  color:#fff;font:inherit;font-size:13.5px;text-align:left;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.08)}
.qd__sug button:last-child{border-bottom:0}
.qd__sug button:hover,.qd__sug button:focus-visible{background:rgba(201,158,103,.18)}
.qd__sug button em{font-style:normal;margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#8FA595}
.qd__sug .none{padding:14px;font-size:12.5px;color:#9DB4A4;line-height:1.5}

/* réponse de zone : dans la zone en doré, hors zone en neutre — jamais la couleur seule */
.qd__zone{display:flex;gap:9px;align-items:flex-start;font-size:12px;line-height:1.45;color:var(--o-300);
  background:rgba(201,158,103,.1);border-left:2px solid var(--o-500);padding:9px 12px;margin:-2px 0 14px}
.qd__zone svg{width:15px;height:15px;flex:none;margin-top:1px}
.qd__zone[data-out='true']{color:#D6E2D9;background:rgba(255,255,255,.06);border-left-color:rgba(255,255,255,.4)}

/* réassurance : une seule ligne, points dorés entre les mentions */
.qd__note{display:flex;flex-wrap:wrap;align-items:center;gap:4px 9px;margin:13px 0 0;line-height:1;
  font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8FA595}
.qd__note span{display:inline-flex;align-items:center;gap:9px;line-height:1}
.qd__note span:not(:last-child)::after{content:'';width:3px;height:3px;border-radius:50%;background:var(--o-500);flex:none}

@media(max-width:560px){
  .qd__chips{grid-template-columns:repeat(2,1fr)}
  .qd__chip{min-height:74px;font-size:11px}
}


/* ==================================================================
   LOT A — CATALOGUE PILOTÉ PAR LES DONNÉES
   ================================================================== */

/* — barre de filtres — */
.flt{position:sticky;top:var(--nav-h);z-index:30;background:var(--paper);border-bottom:1px solid var(--ink-15);
  padding-block:14px;margin-bottom:clamp(24px,3vw,40px)}
.flt__in{display:flex;flex-wrap:wrap;gap:10px 26px;align-items:center}
.flt__g{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.flt__l{font-size:9.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-2);margin-right:2px}
.flt__b{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 13px;border:1px solid var(--ink-20);
  border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
  transition:border-color .25s var(--e-out),background .25s var(--e-out),color .25s var(--e-out)}
.flt__b:hover{border-color:var(--g-600)}
.flt__b[aria-pressed='true']{border-color:var(--g-600);background:var(--g-600);color:#fff}
.flt__b b{font-weight:800;font-variant-numeric:tabular-nums;opacity:.62}
.flt__b[aria-pressed='true'] b{opacity:.8}
.flt__x{margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-height:36px;background:none;border:0;
  color:var(--t-700);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.flt select{min-height:36px;padding:0 10px;border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;font:inherit;font-size:12.5px}
.flt__n{font-size:12.5px;color:var(--fg-2)}
.flt__n b{color:var(--ink);font-variant-numeric:tabular-nums}

/* — grille de systèmes — */
.cards{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}
.card{position:relative;display:flex;flex-direction:column;gap:12px;padding:20px;background:#fff;
  border:1px solid var(--ink-15);border-radius:var(--r2);transition:border-color .3s var(--e-out),transform .35s var(--e-out)}
.card:hover{border-color:var(--g-600);transform:translateY(-2px)}
.card__t{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.card__n{font-size:1.14rem;font-weight:800;letter-spacing:-.025em;line-height:1.15}
.card__n a{color:inherit;text-decoration:none}
.card__n a::after{content:'';position:absolute;inset:0}
.card__m{flex:none;font-size:9.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 9px;border:1px solid var(--ink-20);border-radius:var(--r);color:var(--fg-2)}
.card__u{display:flex;align-items:baseline;gap:8px}
.card__u b{font-size:2rem;font-weight:800;letter-spacing:-.045em;line-height:1;font-variant-numeric:tabular-nums;color:var(--g-600)}
.card__u span{font-size:11px;color:var(--fg-2)}
.card__s{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--ink-15);border:1px solid var(--ink-15);margin-top:auto}
.card__s div{background:#fff;padding:9px 10px}
.card__s b{display:block;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.card__s span{display:block;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);margin-top:3px}
.card__f{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:2}
.card__cmp{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:12px;font-weight:700;color:var(--fg-2);cursor:pointer}
.card__cmp input{width:17px;height:17px;accent-color:var(--g-600);cursor:pointer}
.card__src{font-size:10px;color:var(--fg-3)}

/* — état vide — */
.empty{border:1px dashed var(--ink-20);padding:40px;text-align:center;background:#fff}

/* — dock de comparaison — */
.cdock{position:fixed;left:0;right:0;bottom:0;z-index:60;transform:translateY(110%);
  background:var(--g-950);color:#fff;border-top:2px solid var(--o-500);padding:14px 0}
.cdock[data-open='true']{transform:none;transition:transform .5s var(--e-out)}
.cdock .wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cdock__l{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0}
.cdock__i{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.24);font-size:12px;font-weight:700}
.cdock__i button{background:none;border:0;color:var(--o-300);font-size:15px;line-height:1;cursor:pointer;padding:0 2px}

/* — fiche système pilotée par les données — */
.pgrid{display:grid;gap:clamp(24px,3vw,44px)}
.pgrid>*{min-width:0}
@media(min-width:1000px){.pgrid{grid-template-columns:minmax(0,1fr) 340px;align-items:start}}
.pside{position:sticky;top:calc(var(--nav-h) + 20px);display:grid;gap:14px}
.pbox{border:1px solid var(--ink-15);background:#fff;padding:20px}
.pbox--dark{background:var(--g-950);color:#fff;border-color:transparent}
.pbox h3{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-2);margin-bottom:12px}
.pbox--dark h3{color:var(--o-300)}
.src{font-size:12px;line-height:1.55;color:var(--fg-2)}
.src b{color:var(--ink);font-weight:700}
.pbox--dark .src{color:#9DB4A4}.pbox--dark .src b{color:#fff}

/* — comparateur — */
.cmpw{overflow-x:auto;border:1px solid var(--ink-15);background:#fff}
.cmpt{width:100%;border-collapse:collapse;min-width:640px}
.cmpt th,.cmpt td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--ink-15);vertical-align:top;font-size:13.5px}
.cmpt thead th{background:var(--g-950);color:#fff;font-size:11px;letter-spacing:.12em;text-transform:uppercase;position:sticky;top:0}
.cmpt tbody th{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);font-weight:800;width:190px;background:var(--paper)}
.cmpt td b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
.cmpt .best{color:var(--g-600)}
.cmpt .best::after{content:' ✓';font-size:11px}

/* — prise de rendez-vous — */
.slots{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}
.slot{min-height:46px;border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;font:inherit;font-size:13px;font-weight:700;cursor:pointer;
  transition:border-color .25s var(--e-out),background .25s var(--e-out),color .25s var(--e-out)}
.slot:hover:not([disabled]){border-color:var(--g-600)}
.slot[aria-pressed='true']{background:var(--g-600);border-color:var(--g-600);color:#fff}
.slot[disabled]{opacity:.36;cursor:not-allowed;text-decoration:line-through}
.days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin-bottom:16px}
.day{flex:none;min-width:92px;padding:11px 12px;border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;cursor:pointer;text-align:center;font:inherit}
.day[aria-pressed='true']{border-color:var(--g-600);background:var(--g-600);color:#fff}
.day b{display:block;font-size:15px;font-weight:800}
.day span{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);margin-top:3px}
.day[aria-pressed='true'] span{color:rgba(255,255,255,.75)}

/* — modale « Être rappelé » — */
.mdl{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:18px}
.mdl[data-open='true']{display:flex}
.mdl__bg{position:absolute;inset:0;background:rgba(3,27,11,.72);backdrop-filter:blur(3px)}
.mdl__c{position:relative;width:min(460px,100%);max-height:90vh;overflow-y:auto;background:#fff;border-radius:var(--r2);padding:clamp(22px,3vw,32px)}
.mdl__x{position:absolute;right:10px;top:10px;width:40px;height:40px;display:grid;place-items:center;background:none;border:0;cursor:pointer;color:var(--fg-2)}
.fld{display:block;margin-bottom:14px}
.fld span{display:block;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-2);margin-bottom:6px}
.fld input,.fld select,.fld textarea{width:100%;min-height:48px;padding:12px 14px;font:inherit;font-size:15px;
  border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;color:var(--ink)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--g-600)}
.err{display:block;font-size:12px;color:#A3341F;margin-top:5px}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;line-height:1.5;color:var(--fg-2);margin-bottom:16px}
.chk input{width:19px;height:19px;flex:none;margin-top:1px;accent-color:var(--g-600)}

@media(max-width:760px){
  .flt{position:static}
  .pside{position:static}
  .cmpt tbody th{width:140px}
}


/* ==================================================================
   V7 — HAUT DE PAGE D'ACCUEIL
   Hero allégé · grille des six familles · bandeau de preuves
   ================================================================== */

/* — infobulle permanente sous le bouton de devis —
   Reprise d'un motif observé chez le leader : la promesse est attachée
   au bouton, pas reléguée en pied de panneau. Elle remplace la ligne
   « Gratuit · Sans engagement » : une seule promesse, écrite une fois. */
.hpanel__tip{position:relative;margin:14px 0 2px;padding:9px 12px;background:var(--paper);
  color:var(--ink);border-radius:var(--r);font-size:12px;font-weight:600;line-height:1.35;text-align:center}
.hpanel__tip::before{content:'';position:absolute;left:50%;top:-6px;transform:translateX(-50%);
  border:6px solid transparent;border-top:0;border-bottom-color:var(--paper)}

/* — hero mobile : la photographie doit rester dominante —
   Le contenu est calé en bas, la photographie occupe le haut de l'écran.
   Corrige le défaut B.3-1 : plus d'aplat vert sous une bande d'image. */
@media(max-width:900px){
  .hero{min-height:min(100svh,960px)}
  .hero__media::after{
    background:linear-gradient(180deg,rgba(3,27,11,.50) 0%,rgba(3,27,11,.14) 26%,rgba(3,27,11,.42) 60%,rgba(3,27,11,.90) 92%);
  }
  .hero__in{align-content:end;padding-block:calc(var(--nav-h) + 10vh) 0}
  .hero__scroll{padding-block:18px 20px;margin-top:clamp(20px,3vh,32px)}
}

/* — familles : titre + phrase de bénéfice, plus un micro-libellé de preuve
   là où la donnée existe réellement — */
#fams .fam__c h3{margin:0}
#fams .fam__c p{font-size:13.5px;line-height:1.45;color:#C7D5CB;max-width:38ch;margin-top:8px}
.fam__k{display:inline-block;margin-bottom:10px;font-size:10px;font-weight:800;letter-spacing:.2em;
  text-transform:uppercase;color:var(--o-300);border:1px solid rgba(201,158,103,.55);padding:4px 9px;border-radius:var(--r)}

/* ruptures de la grille : 1 colonne, puis 2, puis la grille asymétrique */
@media(min-width:640px) and (max-width:1023px){
  #fams{grid-template-columns:repeat(2,1fr)}
  #fams .fam,#fams .fam--big,#fams .fam--third{grid-column:span 1;min-height:310px}
}
@media(min-width:1024px){
  #fams{grid-template-columns:repeat(6,1fr)}
  #fams .fam{grid-column:span 3;min-height:330px}
  #fams .fam--big{grid-column:span 6;min-height:400px}
  #fams .fam--third{grid-column:span 2;min-height:300px}
}

/* — survol : jamais sur écran tactile, jamais sous la rupture desktop —
   Évite l'état de survol collant au doigt. Motif relevé chez le leader. */
@media (hover:none),(max-width:1023px){
  .fam:hover img{transform:none}
  .fam:hover .fam__go{background:none;border-color:rgba(255,255,255,.42);color:inherit;transform:none}
}

/* — bandeau de preuves vérifiables — */
.head--tight{margin-bottom:clamp(22px,3vw,34px)}
.trust__grid{display:grid;gap:14px}
@media(min-width:620px){.trust__grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.trust__grid{grid-template-columns:repeat(4,1fr)}}
.tcard{display:flex;flex-direction:column;gap:6px;padding:22px;border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.tcard__k{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-3);margin:0 0 4px}
.tcard__v{font-size:clamp(1.02rem,1.3vw,1.18rem);font-weight:800;letter-spacing:-.02em;line-height:1.2;margin:0;color:var(--fg)}
.tcard__v--todo{color:var(--fg-3);font-weight:700}
.tcard__d{font-size:12.5px;line-height:1.5;color:var(--fg-2);margin:0}
.tcard__s{font-size:12px;line-height:1.4;color:var(--fg-2);margin:0;padding-top:8px;border-top:1px solid var(--line);
  font-variant-numeric:tabular-nums}
.tcard__a{margin-top:auto;padding-top:10px;font-size:12px;font-weight:700;color:var(--g-600);min-height:24px;display:inline-flex;align-items:center}
/* l'état « à fournir » se lit sans la couleur seule : filet gauche + libellé explicite */
.tcard--todo{background:var(--paper);border-style:dashed;border-left:3px solid var(--ink-20)}

/* — correctif de fond du hero mobile —
   pic() enveloppe l'image dans un <picture> sans dimension : height:100%
   se résolvait donc contre un conteneur de hauteur automatique, et la
   photographie retombait sur son ratio intrinsèque — d'où la bande de
   ~180 px en mobile. Le <picture> doit porter la boîte. */
.hero__media picture{position:absolute;inset:0;display:block}

/* — panneau resserré — */
.hpanel{padding:20px;padding-bottom:14px}
.hpanel__k{margin-bottom:14px;padding-bottom:11px}
.qd__step{margin-bottom:9px}
.qd__field{margin-bottom:11px}

/* — ajustements de finition v7 — */
.tcard__a{min-height:44px}
@media(min-width:1024px){
  #fams .fam{min-height:310px}
  #fams .fam--big{min-height:380px}
  #fams .fam--third{min-height:280px}
}
/* note du bandeau de preuves : phrase longue, donc pas de capitales */
#trustNote{text-transform:none;letter-spacing:0;font-size:12.5px;line-height:1.55;max-width:70ch}

/* ===== v8 — mini-devis du hero (à ajouter à la fin de assets/era-c.css) ===== */
#hPanel.hpanel{padding:28px 28px 24px;background:linear-gradient(180deg,rgba(3,27,11,.86),rgba(3,27,11,.95));border:1px solid rgba(255,255,255,.17);container-type:inline-size}
/* neutralise l'ancienne règle « .hpanel p » qui s'appliquait à tous les paragraphes du panneau */
#hPanel > p,#hPanel > h2,#hPanel > ul{margin:0;padding:0;border:0}

/* en-tête : libellé + durée */
#hPanel .hpanel__k{display:flex;align-items:center;gap:10px;margin:0 0 20px;font-size:11px;font-weight:800;letter-spacing:.2em;line-height:1;text-transform:uppercase;white-space:nowrap;color:var(--o-300)}
#hPanel .hpanel__k span{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:6px 9px;border:1px solid rgba(255,255,255,.26);font-size:11px;letter-spacing:.14em;line-height:1;color:#DDE7E0}
#hPanel .hpanel__k span svg{width:12px;height:12px;flex:0 0 auto;color:var(--o-500)}

/* la question — sert aussi de libellé au champ */
#hPanel .hpanel__t{margin:0 0 16px;font-size:clamp(1.375rem,1.62vw,1.5rem);font-weight:800;letter-spacing:-.03em;line-height:1.18;color:#fff;text-wrap:balance}

/* champ commune */
#hPanel .qd__field{margin:0 0 12px}
#hPanel .qd__field input{min-height:54px;padding:0 16px 0 46px;font-size:16px;font-weight:500;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.06)}
#hPanel .qd__field input:hover{border-color:rgba(255,255,255,.6)}
#hPanel .qd__field input::placeholder{color:#A9BDB0;font-weight:400}
#hPanel .qd__field input:focus{border-color:var(--o-500);background:rgba(255,255,255,.1);box-shadow:0 0 0 3px rgba(201,158,103,.32)}
#hPanel .qd__pin,#hPanel .qd__field > svg{left:16px;top:27px;width:18px;height:18px;color:var(--o-300)}

/* réponse de zone */
#hPanel .qd__zone{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:10px 12px;font-size:13px;font-weight:500;line-height:1.45;color:var(--o-300);background:rgba(201,158,103,.12);border-left:2px solid var(--o-500)}
#hPanel .qd__zone[hidden]{display:none}
#hPanel .qd__zone svg{width:16px;height:16px;margin-top:1px;flex:0 0 auto}
#hPanel .qd__zone[data-out="true"]{color:#D6E2D9;background:rgba(255,255,255,.07);border-left-color:rgba(255,255,255,.45)}

/* bouton */
#hPanel #qdGo{min-height:56px;padding:0 18px;font-size:15.5px;font-weight:800;letter-spacing:0;gap:12px}
#hPanel #qdGo svg{flex:0 0 auto}

/* réassurance */
#hPanel .hpanel__ok{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:16px 0 0}
#hPanel .hpanel__ok li{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;line-height:1.3;color:#D0DCD4;white-space:nowrap}
#hPanel .hpanel__ok svg{width:13px;height:13px;flex:0 0 auto;color:var(--o-500)}

@media (max-width:900px){
  #hPanel.hpanel{padding:22px 20px 20px}
  #hPanel .hpanel__k{margin-bottom:16px}
  #hPanel .hpanel__t{font-size:1.3125rem;margin-bottom:14px}
}
@media (max-width:480px){
  #hPanel #qdGo{font-size:15px;gap:10px}
}
@media (min-width:640px) and (max-width:1079px){
  #hPanel.hpanel{max-width:520px}
}
/* le panneau s'adapte à sa propre largeur : coches au large, points dorés à l'étroit */
@container (max-width:355px){
  #hPanel .hpanel__ok{gap:6px 8px}
  #hPanel .hpanel__ok li{gap:8px;font-size:12px}
  #hPanel .hpanel__ok svg{display:none}
  #hPanel .hpanel__ok li:not(:last-child)::after{content:"";width:3px;height:3px;border-radius:50%;background:var(--o-500);flex:0 0 auto}
}
@container (max-width:295px){
  #hPanel .hpanel__ok{gap:6px}
  #hPanel .hpanel__ok li{gap:6px;font-size:11px}
}

/* ===== v9 — hero de la page d'accueil (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. le titre est lisible sans script : l'entrée est une animation CSS courte */
.hero h1 .rv-line>span{transform:none;animation:heroRise .7s var(--e-out) both}
.hero h1 .rv-line:nth-child(2)>span{animation-delay:.07s}
.hero h1 .rv-line:nth-child(3)>span{animation-delay:.14s}
@keyframes heroRise{from{transform:translateY(105%)}to{transform:none}}
@media (prefers-reduced-motion:reduce){.hero h1 .rv-line>span{animation:none}}

/* 2. sous-titre : dit ce que l'entreprise vend et fait */
.hero .hero__sub{max-width:44ch;margin:clamp(18px,2.6vh,28px) 0 0;color:#E4ECE6;font-size:clamp(1.0625rem,1.28vw,1.25rem);font-weight:500;line-height:1.5;text-wrap:pretty}

/* 3. bande de preuves, à la place de « Faites défiler » */
.hero__strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px;margin-top:clamp(22px,4vh,44px);padding-block:18px 22px;border-top:1px solid rgba(255,255,255,.16)}
.hero__proofs{list-style:none;display:flex;flex-wrap:wrap;gap:10px 30px;margin:0;padding:0}
.hero__proofs li{display:inline-flex;align-items:center;gap:9px;min-height:28px;font-size:13px;line-height:1.3;color:#C9D6CD}
.hero__proofs b{font-weight:700;color:#fff}
.hero__proofs svg{width:17px;height:17px;flex:0 0 auto;color:var(--o-500)}
.hero__proofs a{color:inherit;padding-block:5px;text-decoration:underline;text-decoration-color:rgba(201,158,103,.65);text-underline-offset:4px}
.hero__proofs a:hover{text-decoration-color:var(--o-300)}
.hero__next{display:inline-flex;align-items:center;gap:10px;min-height:28px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;text-decoration:none;color:#A9BDB0}
.hero__next:hover{color:#fff}
.hero__next i{display:block;width:1px;height:24px;background:linear-gradient(var(--o-500),transparent);animation:sc 2.4s var(--e-io) infinite}

/* 4. ordinateur : voile concentré sous le texte, photographie dégagée à droite */
@media (min-width:1080px){
  .hero__media::after{background:
    linear-gradient(180deg,rgba(3,27,11,.66) 0%,rgba(3,27,11,0) 24%,rgba(3,27,11,0) 62%,rgba(3,27,11,.92) 100%),
    linear-gradient(90deg,rgba(3,27,11,.90) 0%,rgba(3,27,11,.74) 34%,rgba(3,27,11,.22) 64%,rgba(3,27,11,.10) 100%)}
  .hero h1.d1{font-size:clamp(2.6rem,min(6.9vw,11.6vh),5.9rem)}
  .hero__cols{align-items:center}
}

/* 5. second chemin, dans le panneau : le rappel */
#hPanel .hpanel__alt{margin:16px 0 0;padding:14px 0 0;border-top:1px solid rgba(255,255,255,.14);text-align:center;font-size:13px;font-weight:400;line-height:1.4;color:#C3D3C8}
#hPanel .hpanel__alt a{padding:6px 2px;color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:4px}
#hPanel .hpanel__alt a:hover{color:var(--o-300)}

/* 6. mobile : barre d'action fixe, visible dès que le panneau du hero sort de l'écran */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;gap:10px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(4,36,15,.97);border-top:1px solid rgba(255,255,255,.16);transform:translateY(105%);visibility:hidden;transition:transform .35s var(--e-out),visibility 0s .35s}
.mbar[data-on="true"]{transform:none;visibility:visible;transition:transform .35s var(--e-out)}
.mbar a{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:50px;border-radius:var(--r2);font-size:14.5px;font-weight:800;text-decoration:none}
.mbar__go{background:#fff;color:var(--g-900)}
.mbar__tel{color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.mbar svg{width:17px;height:17px;flex:0 0 auto}
@media (max-width:760px){
  .mbar{display:flex}
  .foot{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
}
@media (max-width:900px){
  /* le texte passe au-dessus du ciel de la photographie : le voile doit le porter */
  .hero__media::after{background:linear-gradient(180deg,rgba(3,27,11,.56) 0%,rgba(3,27,11,.58) 22%,rgba(3,27,11,.68) 50%,rgba(3,27,11,.92) 82%,rgba(3,27,11,.95) 100%)}
  .hero__terr{color:#C9D6CD}
  .hero .hero__sub{font-size:1rem;margin-top:16px}
  .hero__strip{margin-top:20px;padding-block:16px 18px}
  .hero__proofs{gap:6px 22px}
  .hero__next{display:none}
}
@media (max-width:560px){
  /* remonte le bouton de devis dans le premier écran des petits téléphones */
  .hero__in{padding-top:calc(var(--nav-h) + 4vh)}
}
@media (max-width:400px){
  .hero__terr{letter-spacing:.14em}
}

/* ===== v10 — photographies du hero en fondu enchaîné (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. les photographies : empilées, une seule visible, fondu de 1,4 s et zoom lent */
.hero__media::after{z-index:3}
.hero__media .hslide{position:absolute;inset:0;display:block;opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1)}
.hero__media .hslide.is-on{opacity:1;z-index:2}
.hero__media .hslide.is-leaving{opacity:1;z-index:1}
.hero__media .hslide.is-on,.hero__media .hslide.is-leaving{animation:heroDrift 9s linear both}
.hero__media .hslide:not(:first-child) img{transform:scale(1.02)}
.hero__media .hslide img{translate:0 var(--py,0)}
@keyframes heroDrift{from{transform:scale(1)}to{transform:scale(1.08)}}

/* 2. l'indicateur : pause, numéro, progression, sujet de la photographie */
.hslides{display:inline-flex;align-items:center;gap:12px;min-height:32px;font-size:11px;font-weight:700;letter-spacing:.14em;line-height:1;text-transform:uppercase;white-space:nowrap;color:#C9D6CD}
.hslides[hidden]{display:none}
.hslides__pause{display:inline-grid;place-items:center;flex:0 0 auto;width:32px;height:32px;padding:0;border:1px solid rgba(255,255,255,.34);border-radius:50%;background:transparent;color:#fff;cursor:pointer;transition:border-color .2s,background .2s}
.hslides__pause:hover{border-color:var(--o-500);background:rgba(255,255,255,.08)}
.hslides__pause svg{width:12px;height:12px}
.hslides__pause .i-play{display:none}
.hslides__pause[aria-pressed="true"] .i-play{display:block}
.hslides__pause[aria-pressed="true"] .i-pause{display:none}
.hslides__n b{font-weight:800;color:#fff}
.hslides__bar{position:relative;flex:0 0 auto;width:56px;height:2px;overflow:hidden;background:rgba(255,255,255,.24)}
.hslides__bar i{position:absolute;inset:0;background:var(--o-500);transform:scaleX(0);transform-origin:0 50%}
.hslides.is-run .hslides__bar i{animation:hBar var(--hdur,6.5s) linear both}
.hslides.is-paused .hslides__bar i{animation-play-state:paused}
@keyframes hBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hslides__l{letter-spacing:.12em;color:#fff}
@media (max-width:1279px){.hslides__l{display:none}}
@media (max-width:900px){.hslides__pause{width:40px;height:40px} .hslides__l{display:inline}}

/* 3. animations désactivées : une seule photographie, fixe */
@media (prefers-reduced-motion:reduce){
  .hero__media .hslide{transition:none;animation:none!important}
}

/* ===== v11 — bande de preuves sous le hero : avis Google, RGE Qualibat, L'Alsace (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. la bande : une grande carte à gauche, deux cartes empilées à droite */
.trust--band{padding-block:clamp(56px,7vw,104px)}
.trust--band .head{margin-bottom:clamp(28px,3.4vw,48px)}
.trust--band .head .idx{margin-bottom:14px}
.trust--band .trust__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(14px,1.5vw,20px)}
.trust--band .credit:empty{display:none}

/* 2. socle commun : pas de bordure, toute la carte est cliquable */
.trust--band .tcard{position:relative;gap:0;padding:clamp(22px,2.3vw,32px);border:0;border-radius:var(--r2);background:var(--paper);transition:background .25s var(--e-out)}
.tcard__logo{display:block;flex:0 0 auto}
.trust--band .tcard__k{margin:0;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-60)}
.trust--band .tcard__d{margin:10px 0 0;font-size:14px;line-height:1.55;color:var(--ink-60)}
.tcard__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 20px;margin-top:auto;padding-top:16px}
.trust--band .tcard__s{display:inline-flex;align-items:center;gap:7px;margin:0;padding:0;border:0;font-size:12.5px;font-weight:600;line-height:1.3;color:var(--ink-60)}
.trust--band .tcard__s svg{width:15px;height:15px;flex:0 0 auto;color:var(--action)}
.trust--band .tcard__a{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin:0;padding:0;font-size:13.5px;font-weight:700;color:var(--action);text-decoration:none}
.trust--band .tcard__a::after{content:"";position:absolute;inset:0}
.tcard__at{text-decoration:underline;text-decoration-color:rgba(10,79,38,.35);text-underline-offset:4px}
.tcard__arr{width:16px;height:16px;flex:0 0 auto;transition:transform .25s var(--e-out)}
.trust--band .tcard:hover .tcard__arr{transform:translate(2px,-2px)}
.trust--band .tcard:hover .tcard__at{text-decoration-color:currentColor}
.trust--band .tcard:focus-within{outline:2px solid var(--o-500);outline-offset:3px}
.trust--band .tcard__a:focus-visible{outline:none}

/* 3. la carte Google : la preuve la plus parlante, en grand, sur le vert de la marque */
.trust--band .tcard--avis{grid-row:span 2;padding:clamp(26px,2.8vw,40px);color:#fff;background-color:var(--g-900);background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:100% 72px,25% 100%}
.trust--band .tcard--avis::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--o-500),transparent)}
.tcard__top{display:flex;align-items:center;gap:14px}
.tcard__top .tcard__logo{width:44px;height:44px}
.trust--band .tcard--avis .tcard__k{color:var(--o-300)}
.tcard__note{display:flex;align-items:baseline;gap:10px;margin:clamp(24px,3.2vw,44px) 0 0;color:#fff}
.tcard__note b{font-size:clamp(4.5rem,8.4vw,7.5rem);font-weight:800;letter-spacing:-.06em;line-height:.86}
.tcard__note span{font-size:clamp(1.1rem,1.6vw,1.5rem);font-weight:700;color:#A9BDB0}
.tcard__stars{position:relative;display:block;width:max-content;margin:20px 0 0;line-height:0}
.tcard__stars svg{display:block;flex:0 0 auto;width:28px;height:28px;fill:currentColor}
.tcard__stars-bg{display:flex;gap:4px;color:rgba(255,255,255,.2)}
/* #FBBC04 : le jaune des étoiles d'avis Google */
.tcard__stars-on{position:absolute;top:0;left:0;bottom:0;display:flex;gap:4px;overflow:hidden;color:#FBBC04}
.trust--band .tcard--avis .tcard__d{margin-top:18px;font-size:clamp(1rem,1.25vw,1.15rem);font-weight:500;line-height:1.45;color:#E4ECE6}
.trust--band .tcard--avis .tcard__s{color:#A9BDB0}
.trust--band .tcard--avis .tcard__a{color:#fff}
.trust--band .tcard--avis .tcard__at{text-decoration-color:var(--o-500)}

/* 4. les deux cartes latérales : logo dans une vignette blanche, preuve à droite */
.trust--band .tcard--rge,.trust--band .tcard--presse{display:grid;grid-template-columns:132px minmax(0,1fr);gap:clamp(18px,2vw,28px)}
.trust--band .tcard--rge:hover,.trust--band .tcard--presse:hover{background:#F1EEE7}
.tcard__tile{display:grid;place-items:center;align-self:start;width:132px;height:96px;border:1px solid var(--line);border-radius:var(--r);background:#fff}
.tcard__tile .tcard__logo{width:auto;height:auto;max-width:104px;max-height:60px}
.tcard__body{display:flex;flex-direction:column;min-width:0}
.trust--band .tcard__v{margin:8px 0 0;font-size:clamp(1.5rem,2.1vw,1.9rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;color:var(--ink)}
.trust--band .tcard__v--titre{font-size:clamp(1.05rem,1.3vw,1.2rem);font-weight:700;letter-spacing:-.015em;line-height:1.3;text-wrap:balance}

/* 5. l'appel à l'action de la section */
.trust__cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 32px;margin-top:clamp(26px,3.4vw,44px);padding-top:clamp(22px,2.6vw,32px);border-top:1px solid var(--line)}
.trust__cta p{max-width:30ch;margin:0;font-size:clamp(1.15rem,1.6vw,1.5rem);font-weight:800;letter-spacing:-.025em;line-height:1.2;color:var(--ink)}
.trust__cta-b{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.trust__alt{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:var(--ink);text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:4px}
.trust__alt:hover{color:var(--action)}

/* 6. tablette et mobile : une colonne, la carte Google en premier */
@media (max-width:999px){
  .trust--band .trust__grid{grid-template-columns:minmax(0,1fr)}
  .trust--band .tcard--avis{grid-row:auto}
}
@media (max-width:560px){
  .trust--band .tcard--rge,.trust--band .tcard--presse{grid-template-columns:minmax(0,1fr)}
  .tcard__tile{width:112px;height:80px}
  .tcard__tile .tcard__logo{max-width:88px;max-height:50px}
  .tcard__foot{flex-direction:column;align-items:flex-start;gap:0}
  .trust__cta-b{width:100%}
  .trust__cta-b .btn{width:100%}
  .trust__alt{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .trust--band .tcard,.tcard__arr{transition:none}
}

/* ===== v12 — « Nos solutions » : en-tête en deux colonnes, cartes à action lisible, deux portes de sortie (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. en-tête : le titre à gauche, la phrase et le lien catalogue à droite */
.sols .head--split{display:grid;gap:18px 48px;align-items:end;max-width:none}
.sols .head--split .idx{margin-bottom:18px}
.sols__t{max-width:16ch;font-size:clamp(2rem,4.3vw,3.6rem);letter-spacing:-.045em;line-height:1}
.sols .head__side p{max-width:44ch;margin:0;font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.55;color:var(--ink-60)}
.sols .head__side .tlink{margin-top:8px}
@media (min-width:1000px){
  .sols .head--split{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}

/* 2. la grille : une carte double, deux moyennes, trois tiers (inchangée dans son principe) */
.sols__grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.sol{position:relative;isolation:isolate;display:flex;align-items:flex-end;min-height:264px;overflow:hidden;border-radius:var(--r2);background:var(--g-900);color:#fff}
.sol picture{position:absolute;inset:0;z-index:-2;max-width:none}
.sol img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--e-out)}
/* voile léger sur toute la photographie ; le fond sombre suit la hauteur du texte, pas celle de la carte */
.sol::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(3,27,11,.3),rgba(3,27,11,.06))}

/* repères : toujours sur une plaque sombre, lisibles quelle que soit la photographie */
.sol__n,.sol__tag{position:absolute;top:16px;padding:7px 9px 6px;border-radius:var(--r);background:rgba(3,27,11,.78);font-weight:800;line-height:1;color:var(--o-300)}
.sol__n{left:16px;font-size:10.5px;letter-spacing:.2em}
.sol__tag{right:16px;border:1px solid rgba(201,158,103,.6);font-size:10px;letter-spacing:.18em;text-transform:uppercase}

/* contenu : déclinaisons, titre, bénéfice, puis les deux actions */
.sol__c{display:flex;flex-direction:column;width:100%;padding:clamp(18px,2vw,28px);padding-top:96px;background:linear-gradient(to top,rgba(3,27,11,.97) 0,rgba(3,27,11,.92) calc(100% - 104px),rgba(3,27,11,.6) calc(100% - 60px),rgba(3,27,11,.2) calc(100% - 22px),rgba(3,27,11,0) 100%)}
.sol__k{max-width:none;margin:0 0 9px;font-size:10.5px;font-weight:700;letter-spacing:.16em;line-height:1.5;text-transform:uppercase;color:var(--o-300)}
.sol__k i{font-style:normal;color:rgba(226,202,169,.6)}
.sol h3{font-size:clamp(1.22rem,1.7vw,1.55rem);letter-spacing:-.03em;line-height:1.1}
.sol__l{color:inherit;text-decoration:none}
/* toute la carte mène à la famille */
.sol__l::after{content:"";position:absolute;inset:0;z-index:1}
.sol__l:focus-visible{outline:none}
.sol:has(.sol__l:focus-visible){outline:2px solid var(--o-500);outline-offset:3px}
.sol__d{display:none;max-width:40ch;margin:8px 0 0;font-size:13.5px;line-height:1.45;color:#C7D5CB}
/* sous 520 px, la phrase de bénéfice s'efface : la photographie garde sa place */
@media (min-width:520px){.sol__d{display:block}}
.sol__f{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 16px;margin-top:14px;padding-top:6px;border-top:1px solid rgba(255,255,255,.18)}
.sol__go{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13.5px;font-weight:700;color:#fff}
.sol__go span{padding-bottom:3px;background:linear-gradient(var(--o-500),var(--o-500)) 0 100%/0 1.5px no-repeat;transition:background-size .45s var(--e-out)}
.sol__go svg{width:16px;height:16px;flex:0 0 auto;transition:transform .3s var(--e-out)}
/* le devis de cette famille : seconde cible, au-dessus du lien de carte */
.sol__q{position:relative;z-index:2;display:inline-flex;align-items:center;min-height:44px;font-size:12.5px;font-weight:700;color:var(--o-300);text-decoration:underline;text-decoration-color:rgba(226,202,169,.5);text-underline-offset:4px}
.sol__q:focus-visible{outline:2px solid var(--o-300);outline-offset:2px}

@media (min-width:640px){
  .sols__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sol{min-height:340px}
}
@media (min-width:1024px){
  .sols__grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .sol{grid-column:span 3;min-height:400px}
  .sol--big{grid-column:1/-1;min-height:430px}
  .sol--big .sol__c{max-width:680px;background:none}
  .sol--big h3{font-size:clamp(1.6rem,2.5vw,2.25rem)}
  .sol--big .sol__d{font-size:15px}
  .sol--third{grid-column:span 2;min-height:380px}
  /* la carte double est large : la photographie reste visible à droite */
  .sol--big::before{background:linear-gradient(90deg,rgba(3,27,11,.94) 0%,rgba(3,27,11,.8) 34%,rgba(3,27,11,.16) 68%,rgba(3,27,11,0) 100%),linear-gradient(to top,rgba(3,27,11,.6) 0%,rgba(3,27,11,0) 46%)}
}
/* survol : jamais sur écran tactile, jamais sous la rupture ordinateur */
@media (hover:hover) and (min-width:1024px){
  .sol:hover img{transform:scale(1.05)}
  .sol:hover .sol__go span{background-size:100% 1.5px}
  .sol:hover .sol__go svg{transform:translateX(4px)}
  .sol__q:hover{color:#fff;text-decoration-color:#fff}
}

/* 3. les deux portes de sortie : le devis en grand, l'aide au choix à côté */
.doors{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-top:clamp(28px,3.6vw,48px)}
.door{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:clamp(24px,3vw,44px);border-radius:var(--r2)}
.door--go{color:#fff;background-color:var(--g-900);background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:100% 72px,25% 100%}
.door--go::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--o-500),transparent)}
.door--ask{background:#fff}
.door__k{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;width:100%;max-width:none;margin:0 0 18px;font-size:11px;font-weight:800;letter-spacing:.2em;line-height:1.3;text-transform:uppercase;color:var(--ink-60)}
.door--go .door__k{color:var(--o-300)}
.door__k span{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.32);border-radius:var(--r);letter-spacing:.12em;color:#fff}
.door__k svg{width:13px;height:13px}
.door__t{max-width:21ch;font-size:clamp(1.6rem,3.1vw,2.75rem);letter-spacing:-.04em;line-height:1.04}
.door--ask .door__t{max-width:17ch;font-size:clamp(1.3rem,1.9vw,1.65rem);letter-spacing:-.03em;line-height:1.12;color:var(--ink)}
.door__p{max-width:42ch;margin:12px 0 0;font-size:14.5px;line-height:1.55;color:var(--ink-60)}
.door__ok{display:flex;flex-wrap:wrap;gap:6px 20px;margin:18px 0 0;padding:0;list-style:none;font-size:13px;font-weight:600;color:#E4ECE6}
.door__ok li{display:inline-flex;align-items:center;gap:7px}
.door__ok svg{width:14px;height:14px;flex:0 0 auto;color:var(--o-500)}
.door__b{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:auto;padding-top:clamp(22px,2.6vw,34px)}
.door__alt{display:inline-flex;align-items:center;min-height:44px;font-size:14px;font-weight:700;color:#fff;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:4px}
.door__alt:hover{color:var(--o-300)}
@media (min-width:1000px){
  .doors{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}
@media (max-width:560px){
  .door__b{width:100%}
  .door__b .btn{width:100%}
  .door__alt{width:100%;justify-content:center}
}
@media (max-width:359px){
  .door{padding-inline:16px}
  .door__b .btn{padding-inline:12px;font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){
  .sol img,.sol__go span,.sol__go svg{transition:none}
}

/* ===== v13 — « Notre méthode » : quatre étapes en accordéon, un appel à l'action en fin de section (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. en-tête : le titre à gauche, la phrase à droite, comme « Nos solutions » */
.meth .head--split{display:grid;gap:18px 48px;align-items:end;max-width:none}
.meth .head--split .idx{margin-bottom:18px}
.meth__t{max-width:18ch;font-size:clamp(2rem,4.3vw,3.6rem);letter-spacing:-.045em;line-height:1}
.meth .head__side p{max-width:46ch;margin:0;font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.55}
@media (min-width:1000px){
  .meth .head--split{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
}

/* 2. les étapes — état de base, sans script : toutes ouvertes, l'une sous l'autre */
.msteps{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.mstep{position:relative;isolation:isolate;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:var(--r2);background:var(--g-900);color:#fff}
.mstep__m{position:relative;height:clamp(150px,34vw,280px);overflow:hidden}
.mstep__m picture{display:block;width:100%;height:100%;max-width:none}
.mstep__m img{width:100%;height:100%;object-fit:cover}
/* l'étape 02 montre un rendu de produit : il n'est jamais recadré */
.mstep__m--r{background:radial-gradient(110% 80% at 50% 45%,#0E5F2E,#04240F 70%)}
.mstep__m--r picture{position:absolute;left:50%;top:50%;width:min(86%,400px);height:auto;aspect-ratio:1100/839;transform:translate(-50%,-50%)}
/* le rendu porte une ombre au sol à bords francs : on l'estompe sur le fond */
.mstep__m--r img{object-fit:contain;-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),linear-gradient(transparent,#000 6%,#000 88%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent),linear-gradient(transparent,#000 6%,#000 88%,transparent);mask-composite:intersect}
.mstep__h{margin:0;font-size:inherit;letter-spacing:0;line-height:inherit}
.mstep__b{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;margin:0;padding:12px 18px;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:default}
.mstep__n{flex:0 0 auto;padding:7px 9px 6px;border:1px solid rgba(201,158,103,.5);border-radius:var(--r);background:rgba(3,27,11,.78);font-size:10.5px;font-weight:800;letter-spacing:.2em;line-height:1;color:var(--o-300)}
.mstep__t{flex:1 1 auto;font-size:clamp(1.12rem,1.6vw,1.3rem);font-weight:800;letter-spacing:-.03em;line-height:1.15}
.mstep__i{display:none;flex:0 0 auto;width:30px;height:30px;padding:7px;border:1px solid rgba(255,255,255,.34);border-radius:50%;color:#fff}
.mstep__p{padding:0 18px 20px}
.mstep__p p{max-width:46ch;margin:0;font-size:14.5px;line-height:1.55;color:#C7D5CB}
.mstep__p ul{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none;font-size:13.5px;font-weight:600;line-height:1.4;color:#E4ECE6}
.mstep__p li{display:flex;align-items:flex-start;gap:9px}
.mstep__p svg{flex:0 0 auto;width:14px;height:14px;margin-top:3px;color:var(--o-500)}

/* 3. avec le script : accordéon, une étape ouverte à la fois */
.is-acc .mstep__b{cursor:pointer}
.is-acc .mstep__b[aria-disabled="true"]{cursor:default}
.is-acc .mstep__b:focus-visible{outline:2px solid var(--o-300);outline-offset:-4px}
.is-acc .mstep:not(.is-on) .mstep__m,
.is-acc .mstep:not(.is-on) .mstep__p{display:none}
.is-acc .mstep:not(.is-on) .mstep__i{display:block}
.is-acc .mstep.is-on{border-color:rgba(201,158,103,.45)}
.is-acc .mstep.is-on .mstep__p{animation:mstepIn .6s .08s var(--e-out) both}
@keyframes mstepIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes mstepA{from{opacity:0}to{opacity:1}}
@keyframes mstepB{from{opacity:0}to{opacity:1}}

/* 4. ordinateur : accordéon horizontal, la photographie occupe tout le panneau */
@media (min-width:1024px){
  .msteps.is-acc{display:flex;gap:10px;height:clamp(440px,36vw,520px)}
  .is-acc .mstep{display:flex;flex:1 1 0;flex-direction:column;justify-content:flex-end;min-width:0;border:0}
  /* la transition n'est branchée qu'après le premier affichage : la mise en place est immédiate, même dans un onglet en arrière-plan */
  .is-acc.is-rdy .mstep{transition:flex-grow .75s var(--e-out)}
  .is-acc .mstep.is-on{flex-grow:5.4}
  .is-acc .mstep .mstep__m,
  .is-acc .mstep:not(.is-on) .mstep__m{display:block;position:absolute;inset:0;z-index:-2;height:auto}
  .is-acc .mstep__m img{transition:transform 1.2s var(--e-out)}
  /* voile : léger sur les panneaux repliés, appuyé à gauche sous le texte du panneau ouvert */
  .is-acc .mstep::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(3,27,11,.94) 0,rgba(3,27,11,.5) 46%,rgba(3,27,11,.42) 100%);transition:background-color .4s}
  .is-acc .mstep.is-on::before{background:linear-gradient(90deg,rgba(3,27,11,.95) 0,rgba(3,27,11,.84) 34%,rgba(3,27,11,.2) 70%,rgba(3,27,11,0) 100%),linear-gradient(to top,rgba(3,27,11,.6) 0,rgba(3,27,11,0) 50%)}
  .is-acc .mstep__b{align-items:flex-end;min-height:0;padding:0 18px 22px}
  /* tout le panneau replié est cliquable */
  .is-acc .mstep__b::after{content:"";position:absolute;inset:0;z-index:1}
  .is-acc .mstep__b:focus-visible{outline:none}
  .is-acc .mstep:has(.mstep__b:focus-visible){outline:2px solid var(--o-300);outline-offset:3px}
  .is-acc .mstep__n{position:absolute;top:18px;left:18px}
  .is-acc .mstep:not(.is-on) .mstep__i{position:absolute;right:14px;bottom:20px}
  /* panneau replié : le titre se lit de bas en haut */
  .is-acc .mstep:not(.is-on) .mstep__t{flex:0 0 auto;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;font-size:1.18rem;animation:mstepA .5s both}
  /* panneau ouvert : largeur de texte fixe, il ne se recompose pas pendant l'ouverture */
  .is-acc .mstep.is-on .mstep__b{padding:0 clamp(22px,2.4vw,34px) 0}
  .is-acc .mstep.is-on .mstep__t{font-size:clamp(1.6rem,2.5vw,2.25rem);white-space:nowrap;animation:mstepB .5s .1s both}
  .is-acc .mstep.is-on .mstep__p{width:min(470px,36vw);padding:12px clamp(22px,2.4vw,34px) clamp(24px,2.6vw,34px);animation-delay:.16s}
  .is-acc .mstep.is-on .mstep__p p{font-size:15px}
  /* étape 02 : le rendu reste entier, centré quand le panneau est replié, à droite quand il est ouvert */
  .is-acc .mstep__m--r picture{top:40%;width:118%}
  .is-acc .mstep.is-on .mstep__m--r picture{left:73%;top:47%;width:min(50%,470px)}
}
@media (hover:hover) and (min-width:1024px){
  .is-acc .mstep:not(.is-on):hover::before{background-color:rgba(201,158,103,.08)}
  .is-acc .mstep:not(.is-on):hover .mstep__m img{transform:scale(1.05)}
  .is-acc .mstep:not(.is-on):hover .mstep__i{border-color:var(--o-300);color:var(--o-300)}
}

/* 5. fin de section : un seul bouton plein, le devis ; le rendez-vous de relevé en second */
.mcta{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:24px 56px;align-items:center;margin-top:clamp(28px,3.6vw,48px);padding:clamp(24px,3vw,44px);border:1px solid rgba(201,158,103,.34);border-radius:var(--r2);background:linear-gradient(115deg,rgba(201,158,103,.13) 0,rgba(201,158,103,0) 58%),var(--g-900)}
.mcta::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--o-500),transparent)}
.mcta__k{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;max-width:none;margin:0 0 16px;font-size:11px;font-weight:800;letter-spacing:.2em;line-height:1.3;text-transform:uppercase;color:var(--o-300)}
.mcta__k span{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.32);border-radius:var(--r);letter-spacing:.12em;color:#fff}
.mcta__k svg{width:13px;height:13px}
.mcta__t{max-width:20ch;font-size:clamp(1.6rem,3.1vw,2.75rem);letter-spacing:-.04em;line-height:1.04}
.mcta__p{max-width:52ch;margin:14px 0 0;font-size:14.5px;line-height:1.55;color:#C7D5CB}
.mcta__b{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.mcta__b .tlink{margin-top:0}
@media (min-width:1000px){
  .mcta{grid-template-columns:minmax(0,1fr) auto}
}
@media (max-width:560px){
  .mcta__b{align-items:stretch;width:100%}
  .mcta__b .btn{width:100%}
  .mcta__b .tlink{justify-content:center;font-size:13px;letter-spacing:0;text-align:center}
}
@media (max-width:359px){
  .mcta{padding-inline:16px}
  .mcta__b .btn{padding-inline:12px;font-size:13.5px}
  .mstep__b{padding-inline:14px}
  .mstep__p{padding-inline:14px}
}
@media (prefers-reduced-motion:reduce){
  .is-acc.is-rdy .mstep,.is-acc .mstep__m img{transition:none}
  .is-acc .mstep .mstep__t,.is-acc .mstep .mstep__p{animation:none!important}
}

/* ===== v14 — page famille « Fenêtres et portes-fenêtres » : matériaux en tuiles, tous les systèmes avec leur visuel, filtres, appel à l'action (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. en-tête de page */
.fp-hero{min-height:min(64svh,640px)}
.fp-hero__m{position:absolute;inset:0}
/* fil d'Ariane : liens de 44 px de haut, sans allonger l'en-tête */
.fp-hero .crumb{padding-block:2px}
.fp-hero .crumb a{display:inline-flex;align-items:center;min-height:44px}
.fp-hero__m picture{display:block;width:100%;height:100%;max-width:none}
.fp-hero__t{max-width:16ch;font-size:clamp(2.3rem,5.6vw,4.6rem);letter-spacing:-.05em;line-height:.98}
.fp-hero__t .rv-line>span{transform:none;animation:heroRise .7s var(--e-out) both}
.fp-hero .hero__sub{margin-top:20px;color:#E4ECE6}
.fp-hero .btns{margin-top:clamp(22px,2.6vw,32px)}
.fp-hero__ok{display:flex;flex-wrap:wrap;gap:6px 20px;margin:18px 0 0;padding:0;list-style:none;font-size:13px;font-weight:600;color:#E4ECE6}
.fp-hero__ok li{display:inline-flex;align-items:center;gap:7px}
.fp-hero__ok svg{width:14px;height:14px;flex:0 0 auto;color:var(--o-500)}

/* 2. en-têtes de section : titre à gauche, phrase à droite */
.fp-head{display:grid;gap:14px 48px;align-items:end;max-width:none}
.fp-head .idx{margin-bottom:16px}
.fp-t{max-width:20ch;font-size:clamp(1.9rem,3.8vw,3.2rem);letter-spacing:-.045em;line-height:1.02}
.fp-head__p{max-width:48ch;margin:0;font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.55;color:var(--ink-60)}
.fp-head__p strong{color:var(--ink)}
@media (min-width:1000px){.fp-head{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}

/* 3. tuiles matériau : le rendu du système le mieux isolant du matériau, sur fond clair */
.fp-mats{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.fp-mat{position:relative;display:flex;gap:16px;align-items:stretch;min-width:0;padding:14px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;color:var(--ink);text-decoration:none;transition:border-color .3s var(--e-out),box-shadow .3s var(--e-out),transform .3s var(--e-out)}
.fp-mat__m{flex:0 0 104px;display:grid;place-items:center;border-radius:var(--r);background:linear-gradient(165deg,#E6EAE5,#CED6CF);overflow:hidden}
.fp-mat__m picture{display:block;max-width:none;width:100%;padding:12px 10px}
.fp-mat__m img{display:block;width:100%;height:132px;object-fit:contain;transition:transform .8s var(--e-out)}
.fp-mat__c{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}
.fp-mat__k{font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--o-700)}
.fp-mat__n{margin-top:5px;font-size:clamp(1.25rem,1.7vw,1.5rem);font-weight:800;letter-spacing:-.035em;line-height:1.1}
.fp-mat__p{margin-top:8px;font-size:13px;line-height:1.45;color:var(--ink-60)}
.fp-mat__p b{color:var(--ink);font-weight:700}
.fp-mat__p--l{margin-top:4px;color:var(--ink-40)}
.fp-mat__p--l b{color:var(--ink-60)}
.fp-mat__u{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);font-size:12px;line-height:1.4;color:var(--ink-60)}
.fp-mat__u b{font-size:15px;color:var(--g-600)}
.fp-mat__u i{font-style:normal;color:var(--ink-40)}
.fp-mat__go{display:inline-flex;align-items:center;gap:8px;min-height:36px;margin-top:auto;padding-top:6px;font-size:13px;font-weight:700;color:var(--t-700)}
.fp-mat__go svg{width:16px;height:16px;transition:transform .3s var(--e-out)}
.fp-mat:focus-visible{outline:2px solid var(--o-500);outline-offset:3px}
/* téléphone : les cinq matériaux tiennent sur une rangée à faire défiler, la suivante dépasse pour l'annoncer */
@media (max-width:639px){
  .fp-mats{display:flex;gap:10px;margin-inline:calc(-1*var(--gut));padding:2px var(--gut) 10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .fp-mats::-webkit-scrollbar{display:none}
  .fp-mat{flex:0 0 min(78%,300px);flex-direction:column;gap:12px;scroll-snap-align:start}
  .fp-mat__m{flex:0 0 auto}
  .fp-mat__m img{height:150px}
}
@media (min-width:640px){
  .fp-mats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:1024px){
  .fp-mats{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
  .fp-mat{flex-direction:column;gap:14px;padding:12px 12px 16px}
  .fp-mat__m{flex:0 0 auto}
  .fp-mat__m img{height:190px}
  .fp-mat__c{padding-inline:6px}
}
@media (hover:hover) and (min-width:1024px){
  .fp-mat:hover{border-color:var(--g-600);box-shadow:0 18px 40px -24px rgba(4,36,15,.45);transform:translateY(-3px)}
  .fp-mat:hover img{transform:scale(1.06)}
  .fp-mat:hover .fp-mat__go svg{transform:translateX(4px)}
}

/* 4. barre de filtres : reste à l'écran pendant la lecture de la liste */
.fp-list{padding-block:clamp(48px,6vw,96px)}
.fp-list .fp-head{margin-bottom:clamp(20px,2.4vw,32px)}
/* la navigation du site ne reste pas à l'écran : la barre se colle tout en haut */
.fp-bar{position:sticky;top:0;z-index:30;margin-bottom:18px;border-block:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:saturate(1.2) blur(8px)}
.fp-bar__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;padding-block:10px}
.fp-chips,.fp-tog{display:flex;gap:8px;min-width:0}
.fp-opts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;min-width:0}
.fp-chip{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;min-height:44px;padding:0 15px;border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer;transition:border-color .25s var(--e-out),background-color .25s var(--e-out),color .25s var(--e-out)}
.fp-chip b{font-size:11px;font-weight:700;color:var(--ink-40)}
.fp-chip:hover{border-color:var(--g-600)}
.fp-chip[aria-pressed="true"]{border-color:var(--g-600);background:var(--g-600);color:#fff}
.fp-chip[aria-pressed="true"] b{color:rgba(255,255,255,.75)}
.fp-chip--t{font-weight:600}
.fp-chip--t::before{content:"";width:14px;height:14px;flex:0 0 auto;border:1.5px solid var(--ink-40);border-radius:2px;background:#fff}
.fp-chip--t[aria-pressed="true"]{border-color:var(--g-600);background:var(--g-50);color:var(--g-800)}
.fp-chip--t[aria-pressed="true"]::before{border-color:var(--g-600);background:var(--g-600) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat}
.fp-chip:focus-visible{outline:2px solid var(--o-500);outline-offset:2px}
.fp-sort{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60)}
.fp-sort select{min-height:44px;max-width:100%;padding:0 12px;border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}
/* petits écrans : matériaux, options et tri sur une seule ligne à faire défiler — la barre reste basse */
@media (max-width:1099px){
  .fp-bar__in{flex-wrap:nowrap;justify-content:flex-start;gap:8px;padding-block:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .fp-bar__in::-webkit-scrollbar{display:none}
  .fp-chips,.fp-tog,.fp-opts{flex:0 0 auto;flex-wrap:nowrap;gap:8px}
  .fp-opts{padding-left:8px;border-left:1px solid var(--ink-20)}
  .fp-sort{flex:0 0 auto}
  .fp-sort span{display:none}
  /* un fondu à droite signale qu'il reste des options */
  .fp-bar::after{content:"";position:absolute;right:0;top:0;bottom:0;width:28px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff);pointer-events:none}
}
.fp-count{max-width:none;margin:0 0 6px;font-size:13px;color:var(--ink-60)}
.fp-count b{color:var(--ink)}
.fp-reset{min-height:44px;margin-left:6px;padding:0 4px;border:0;background:none;color:var(--t-700);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:4px;cursor:pointer}

/* 5. groupes par matériau et cartes de système */
.fp-grp{padding-top:clamp(22px,2.6vw,34px)}
.fp-grp+.fp-grp{margin-top:clamp(26px,3vw,44px);border-top:1px solid var(--line)}
.fp-grp__h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin-bottom:16px}
.fp-grp__h h3{font-size:clamp(1.4rem,2.2vw,1.9rem);letter-spacing:-.04em}
.fp-grp__h h3 span{margin-left:8px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--o-700);vertical-align:middle}
.fp-grp__h p{max-width:60ch;margin:0;font-size:13.5px;color:var(--ink-60)}
.fp-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.fp-card{position:relative;display:flex;min-width:0;border:1px solid var(--line);border-radius:var(--r2);background:#fff;overflow:hidden;transition:border-color .3s var(--e-out),box-shadow .3s var(--e-out),transform .3s var(--e-out)}
.fp-card__m{position:relative;flex:0 0 116px;display:grid;place-items:center;background:linear-gradient(165deg,#E6EAE5,#CED6CF);overflow:hidden}
.fp-card__m picture{display:block;max-width:none;width:100%;padding:16px 12px}
.fp-card__m img{display:block;width:100%;height:150px;object-fit:contain;transition:transform .8s var(--e-out)}
.fp-card__mat{position:absolute;left:8px;top:8px;padding:5px 7px 4px;border-radius:var(--r);background:rgba(3,27,11,.82);font-size:9px;font-weight:800;letter-spacing:.14em;line-height:1;text-transform:uppercase;color:var(--o-300)}
.fp-card__c{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;padding:14px 14px 8px}
.fp-card__n{font-size:1.08rem;font-weight:800;letter-spacing:-.03em;line-height:1.15}
.fp-card__n a{color:inherit;text-decoration:none}
/* toute la carte mène à la fiche du système */
.fp-card__n a::after{content:"";position:absolute;inset:0;z-index:1}
.fp-card__n a:focus-visible{outline:none}
.fp-card:has(.fp-card__n a:focus-visible){outline:2px solid var(--o-500);outline-offset:3px}
.fp-card__u{display:flex;align-items:center;gap:10px;max-width:none;margin:10px 0 0}
.fp-card__u b{font-size:1.7rem;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--g-600)}
.fp-card__u span{font-size:10.5px;line-height:1.35;color:var(--ink-60)}
.fp-card__f{display:flex;flex-wrap:wrap;gap:4px 12px;margin:10px 0 0;padding:0;list-style:none;font-size:12px;font-weight:600;color:var(--ink-60)}
.fp-card__f li+li{padding-left:12px;border-left:1px solid var(--ink-20)}
.fp-card__s{max-width:none;margin:8px 0 0;font-size:12px;line-height:1.4;color:var(--o-700);font-weight:700}
.fp-card__a{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 12px;margin-top:auto;padding-top:6px}
.fp-card__go{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:13px;font-weight:700;color:var(--ink)}
.fp-card__go svg{flex:0 0 auto;width:15px;height:15px;transition:transform .3s var(--e-out)}
.fp-card__q{position:relative;z-index:2;display:inline-flex;align-items:center;min-height:44px;font-size:12.5px;font-weight:700;color:var(--t-700);text-decoration:underline;text-decoration-color:rgba(1,92,86,.4);text-underline-offset:4px}
.fp-card__q:hover{text-decoration-color:currentColor}
.fp-card__q:focus-visible{outline:2px solid var(--o-500);outline-offset:2px}
.fp-more{margin-top:16px}
@media (min-width:560px){
  .fp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .fp-card{flex-direction:column}
  .fp-card__m{flex:0 0 auto}
  .fp-card__m img{height:200px}
  .fp-card__c{padding:16px 16px 10px}
}
@media (min-width:900px){.fp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1200px){
  .fp-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
  .fp-card__m img{height:220px}
}
@media (hover:hover) and (min-width:900px){
  .fp-card:hover{border-color:var(--g-600);box-shadow:0 18px 40px -24px rgba(4,36,15,.45);transform:translateY(-3px)}
  .fp-card:hover .fp-card__m img{transform:scale(1.06)}
  .fp-card:hover .fp-card__go svg{transform:translateX(4px)}
}
@media (max-width:559px){
  .fp-more{width:100%}
  .fp-card__go{font-size:12.5px;gap:5px}
  .fp-card__q{font-size:12px}
}
@media (max-width:399px){
  .fp-card__m{flex-basis:100px}
}
@media (min-width:360px) and (max-width:559px){
  .fp-card__a{flex-wrap:nowrap;gap:8px}
  .fp-card__go,.fp-card__q{white-space:nowrap}
}

/* 6. aide au choix : trois questions numérotées */
.fp-qs{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none}
.fp-qs li{padding:clamp(18px,2vw,26px);border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.fp-qs span{display:inline-block;padding:6px 8px 5px;border-radius:var(--r);background:var(--g-900);font-size:10.5px;font-weight:800;letter-spacing:.2em;line-height:1;color:var(--o-300)}
.fp-qs h3{margin-top:14px;font-size:1.2rem;letter-spacing:-.03em}
.fp-qs p{max-width:none;margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--ink-60)}
@media (min-width:860px){.fp-qs{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}

@media (prefers-reduced-motion:reduce){
  .fp-hero__t .rv-line>span{animation:none}
  .fp-mat,.fp-mat img,.fp-card,.fp-card__m img,.fp-mat__go svg,.fp-card__go svg{transition:none}
}

/* ===== v15 — fenêtres : cartes photo par matériau, page d'un matériau (en-tête en deux volets, galerie en situation), preuves (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. cartes photo : la fenêtre dans un logement d'abord, le texte ensuite */
.fm-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.fm-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r2);background:#fff;color:var(--ink);text-decoration:none;overflow:hidden;transition:border-color .3s var(--e-out),box-shadow .3s var(--e-out),transform .3s var(--e-out)}
.fm-card__m{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--g-900)}
.fm-card__m picture{display:block;width:100%;height:100%;max-width:none}
.fm-card__m img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%);transition:transform 1.2s var(--e-out)}
.fm-card__k{position:absolute;left:14px;top:14px;padding:7px 9px 6px;border-radius:var(--r);background:rgba(3,27,11,.82);font-size:10.5px;font-weight:800;letter-spacing:.16em;line-height:1;text-transform:uppercase;color:var(--o-300)}
.fm-card__c{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;padding:clamp(16px,1.8vw,24px)}
.fm-card__n{font-size:clamp(1.4rem,2vw,1.85rem);font-weight:800;letter-spacing:-.04em;line-height:1.06}
.fm-card__p{margin-top:9px;font-size:13.5px;line-height:1.45;color:var(--ink-60)}
.fm-card__p b{color:var(--ink);font-weight:700}
.fm-card__p--l{margin-top:4px;color:var(--ink-60)}
.fm-card__p--l b{color:var(--ink-60)}
.fm-card__f{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 18px;margin-top:auto;padding-top:14px}
.fm-card__u{font-size:12.5px;color:var(--ink-60)}
.fm-card__u b{font-size:17px;color:var(--g-600)}
.fm-card__go{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:14px;font-weight:700;color:var(--t-700)}
.fm-card__go svg{flex:0 0 auto;width:16px;height:16px;transition:transform .3s var(--e-out)}
.fm-card:focus-visible{outline:2px solid var(--o-500);outline-offset:3px}
@media (min-width:700px){
  .fm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* cinq cartes sur deux colonnes : la première occupe toute la largeur */
  .fm-card:first-child{grid-column:1/-1}
  .fm-card:first-child .fm-card__m{aspect-ratio:21/9}
}
@media (min-width:1024px){
  .fm-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
  .fm-card,.fm-card:first-child{grid-column:span 2}
  .fm-card--big,.fm-card--big:first-child{grid-column:span 3}
  .fm-card:first-child .fm-card__m{aspect-ratio:16/10}
  .fm-card--big .fm-card__m,.fm-card--big:first-child .fm-card__m{aspect-ratio:16/9}
}
@media (hover:hover) and (min-width:1024px){
  .fm-card:hover{border-color:var(--g-600);box-shadow:0 22px 46px -26px rgba(4,36,15,.5);transform:translateY(-3px)}
  .fm-card:hover img{transform:scale(1.05)}
  .fm-card:hover .fm-card__go svg{transform:translateX(4px)}
}

/* 2. page d'un matériau — en-tête en deux volets : le texte à gauche, la photographie à droite.
      La photographie reste dans un cadre : les sources du fabricant ne supportent pas toutes le plein écran */
.fm-hero{position:relative;margin-top:calc(-1*var(--nav-h));overflow:hidden;background-color:var(--g-950);background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:100% 96px,12.5% 100%;color:#fff}
.fm-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px,3vw,52px);align-items:center;padding-block:calc(var(--nav-h) + clamp(18px,2.6vw,36px)) clamp(28px,4vw,60px)}
.fm-hero .crumb{padding-block:2px}
.fm-hero .crumb a{display:inline-flex;align-items:center;min-height:44px}
.fm-hero__t{max-width:14ch;font-size:clamp(2.3rem,5vw,4.2rem);letter-spacing:-.05em;line-height:.98}
.fm-hero .hero__sub{max-width:40ch;margin-top:18px;color:#E4ECE6}
@media (max-width:519px){.fm-hero__fam{display:none}}
.fm-hero .btns{margin-top:clamp(22px,2.6vw,32px)}
.fm-hero__fig{position:relative;min-width:0;margin:0;aspect-ratio:4/3;border-radius:var(--r2);overflow:hidden;background:var(--g-900)}
.fm-hero__fig picture{display:block;width:100%;height:100%;max-width:none}
.fm-hero__fig img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.fm-hero__fig figcaption,.fm-gal figcaption{font-size:10px;font-weight:600;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}
.fm-hero__fig figcaption{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:6px 9px 5px;border-radius:var(--r);background:rgba(3,27,11,.8);color:#C9D6CC}
@media (min-width:960px){
  .fm-hero .wrap{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
  .fm-hero__fig{aspect-ratio:5/4;max-height:min(66svh,620px);width:100%}
}

/* 3. le matériau en trois lignes */
.fm-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.fm-fact{min-width:0;padding:clamp(18px,2vw,26px);border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.fm-fact__k{max-width:none;margin:0 0 10px;font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--o-700)}
.fm-fact__v{max-width:none;margin:0;font-size:clamp(1.05rem,1.4vw,1.25rem);font-weight:700;letter-spacing:-.02em;line-height:1.3;color:var(--ink)}
.fm-fact--u .fm-fact__v{display:flex;align-items:center;gap:14px}
.fm-fact--u b{font-size:clamp(2.2rem,3.4vw,3rem);font-weight:800;letter-spacing:-.05em;line-height:1;color:var(--g-600)}
.fm-fact--u span{font-size:12px;font-weight:500;letter-spacing:0;line-height:1.45;color:var(--ink-60)}
@media (min-width:860px){.fm-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}

/* 4. galerie en situation : les photographies gardent leurs proportions */
.fm-gal{columns:2;column-gap:14px}
.fm-gal figure{position:relative;break-inside:avoid;margin:0 0 14px;border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;background:#fff}
.fm-gal picture{display:block;max-width:none}
.fm-gal img{display:block;width:100%;height:auto}
.fm-gal figcaption{padding:9px 12px 8px;color:var(--ink-40)}
.fm-gal[data-n="1"]{columns:1;max-width:760px}
.fm-gal[data-n="1"] img{aspect-ratio:3/2;object-fit:cover}
@media (min-width:1024px){
  .fm-gal{columns:3;column-gap:16px}
  .fm-gal figure{margin-bottom:16px}
  .fm-gal[data-n="1"]{columns:1}
}
/* téléphone : une rangée à faire défiler, la photographie suivante dépasse pour l'annoncer */
@media (max-width:639px){
  .fm-gal,.fm-gal[data-n="1"]{display:flex;gap:10px;columns:auto;max-width:none;margin-inline:calc(-1*var(--gut));padding:0 var(--gut) 8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .fm-gal::-webkit-scrollbar{display:none}
  .fm-gal figure{flex:0 0 76%;margin:0;scroll-snap-align:start}
  .fm-gal[data-n="1"] figure{flex-basis:100%}
  .fm-gal img{height:260px;object-fit:cover}
}

/* 5. barre de la liste : les matériaux sont des liens */
a.fp-chip{text-decoration:none}
.fp-chip[aria-current="page"]{border-color:var(--g-600);background:var(--g-600);color:#fff}
.fp-chip[aria-current="page"] b{color:rgba(255,255,255,.75)}

/* 6. preuves vérifiées : la note Google et la qualification, chacune avec son lien */
.fp-proof{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;margin:0;padding:0;list-style:none}
.fp-proof li{position:relative;display:flex;align-items:center;gap:18px;min-width:0;padding:16px 20px;border:1px solid var(--line);border-radius:var(--r2);background:var(--paper);transition:background-color .25s var(--e-out)}
.fp-proof img{flex:0 0 auto;width:52px;height:auto}
.fp-proof__v{max-width:none;margin:0;font-size:1.05rem;line-height:1.3;color:var(--ink)}
.fp-proof__v b{font-size:1.3rem;font-weight:800;letter-spacing:-.03em}
.fp-proof__d{max-width:none;margin:2px 0 0;font-size:12.5px;color:var(--ink-60)}
.fp-proof__a{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:13px;font-weight:700;color:var(--action);text-decoration:underline;text-decoration-color:rgba(10,79,38,.35);text-underline-offset:4px}
.fp-proof__a::after{content:"";position:absolute;inset:0}
.fp-proof__a svg{width:15px;height:15px;transition:transform .3s var(--e-out)}
.fp-proof__a:focus-visible{outline:none}
.fp-proof li:focus-within{outline:2px solid var(--o-500);outline-offset:3px}
@media (hover:hover){
  .fp-proof li:hover{background:#F1EEE7}
  .fp-proof li:hover .fp-proof__a svg{transform:translate(2px,-2px)}
}
@media (min-width:760px){.fp-proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}}

@media (prefers-reduced-motion:reduce){
  .fm-card,.fm-card img,.fm-card__go svg,.fp-proof li,.fp-proof__a svg{transition:none}
}

/* ===== v17 — catalogue : un visuel par système, filtres sur une ligne au téléphone, comparaison sans alerte, autres familles en cartes photo (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. en-tête : les deux boutons */
.ct-hero .btns{margin-top:clamp(18px,2.2vw,26px)}
.ct-hero .crumb a{display:inline-flex;align-items:center;min-height:44px}

/* 2. filtres : la barre de navigation ne reste pas en haut de l'écran, la barre de filtres se cale donc tout en haut */
/* la page d'origine décollait la barre au téléphone parce qu'elle y tenait sur quatre lignes : elle tient maintenant sur une */
.ct-flt{position:sticky;top:0}
.ct-flt__s{display:contents}
.ct-flt .flt__b,.ct-flt select,.ct-flt .flt__x{min-height:44px}
.ct-flt .flt__b{white-space:nowrap}
.ct-flt .flt__b:focus-visible,.ct-flt select:focus-visible,.ct-flt .flt__x:focus-visible{outline:2px solid var(--o-500);outline-offset:2px}
/* téléphone et tablette : une seule ligne à faire défiler, pour ne pas manger l'écran */
@media (max-width:1099px){
  .ct-flt{padding-block:8px}
  .ct-flt .flt__in{flex-wrap:nowrap;gap:8px 18px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ct-flt .flt__in::-webkit-scrollbar{display:none}
  .ct-flt .flt__g{flex:0 0 auto;flex-wrap:nowrap}
  .ct-flt .flt__x{flex:0 0 auto;margin-left:0;white-space:nowrap}
}

/* 3. carte système : la case « Comparer » passe au-dessus du lien étendu à toute la carte */
.ct-cmp{position:relative;z-index:2;display:flex;align-items:center;gap:9px;min-height:44px;margin-top:2px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink-60);cursor:pointer}
.ct-cmp input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--g-600);cursor:pointer}
.ct-cmp:has(input:checked){color:var(--g-600)}
.ct-cmp:has(input:disabled){opacity:.45;cursor:not-allowed}
.ct-cmp:has(input:disabled) input{cursor:not-allowed}
.ct-cmp:has(input:focus-visible){outline:2px solid var(--o-500);outline-offset:-2px}
#cMore{margin-top:18px}

/* 4. barre de comparaison : au-dessus de la barre d'appel du téléphone */
.ct-dock{z-index:75}
.ct-dock__m{align-self:center;font-size:12px;font-weight:600;color:#B9C9BE}
.ct-dock .cdock__i{padding:0 0 0 10px}
.ct-dock .cdock__i button{min-width:44px;min-height:44px}
.ct-dock .cdock__i button:focus-visible,.ct-dock .btn:focus-visible{outline:2px solid var(--o-300);outline-offset:-2px}
/* téléphone : les systèmes choisis sur une ligne à faire défiler, le bouton en pleine largeur */
@media (max-width:699px){
  .ct-dock{padding:10px 0 calc(10px + env(safe-area-inset-bottom))}
  .ct-dock .wrap{gap:8px 12px}
  .ct-dock .flt__l{display:none}
  .ct-dock .cdock__l{flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ct-dock .cdock__l::-webkit-scrollbar{display:none}
  .ct-dock .cdock__i,.ct-dock__m{flex:0 0 auto;white-space:nowrap}
  .ct-dock .btn{width:100%;min-height:46px}
}

/* 5. les autres familles : cinq cartes photo compactes */
.ct-fams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ct-fams .fm-card,.ct-fams .fm-card:first-child{grid-column:auto}
.ct-fams .fm-card__m,.ct-fams .fm-card:first-child .fm-card__m{aspect-ratio:4/3}
.ct-fams .fm-card__c{padding:14px}
.ct-fams .fm-card__n{font-size:1.02rem;letter-spacing:-.02em;line-height:1.15}
.ct-fams .fm-card__p{margin-top:6px;font-size:12.5px}
.ct-fams .fm-card__f{padding-top:8px}
.ct-fams .fm-card__go{font-size:13px}
@media (min-width:700px){.ct-fams{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}
@media (min-width:1100px){.ct-fams{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* 6. lire les valeurs : une liste, lisible au téléphone sans défilement horizontal */
.ct-read{margin:0;border:1px solid var(--line);border-radius:var(--r2)}
.ct-read>div{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 20px;padding:12px 14px}
.ct-read>div+div{border-top:1px solid var(--line)}
.ct-read dt{font-size:13px;font-weight:800;color:var(--ink)}
.ct-read dd{margin:0;font-size:13px;line-height:1.5;color:var(--ink-60)}
@media (min-width:700px){.ct-read>div{grid-template-columns:130px minmax(0,1fr)}}

/* ===== v18 — fiche d'un système : galerie (photo d'ambiance, rendu, coupe cotée), nom, chiffres clés et devis, barre produit fixe, détail en volets, systèmes proches à visuel (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. fil d'Ariane : lisible sur fond clair, cibles de 44 px */
.sy .crumb{padding-block:4px 0}
.sy .crumb ol{gap:0 9px}
.sy .crumb a,.sy .crumb [aria-current]{display:inline-flex;align-items:center;min-height:44px}
.sy .crumb a{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:4px;transition:text-decoration-color .25s var(--e-out)}
.sy .crumb a:hover{text-decoration-color:currentColor}
/* téléphone : un seul lien, vers la page du matériau, pour tenir sur une ligne */
@media (max-width:699px){
  .sy .crumb li:not(:nth-child(3)){display:none}
  .sy .crumb li:nth-child(3)::before{content:'‹';margin-right:8px;font-size:15px;line-height:1;color:var(--ink-60)}
  .sy .crumb li:nth-child(3) a{font-weight:700;color:var(--ink)}
}

/* 2. haut de fiche : le visuel à gauche, le nom et le devis à droite */
.sy-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,3.2vw,56px);align-items:start;padding-block:4px clamp(40px,5.4vw,80px)}
@media (min-width:1000px){.sy-hero{grid-template-columns:minmax(0,1.14fr) minmax(0,.86fr)}}

/* 3. galerie : une piste à faire défiler (doigt, flèches, vignettes), une vue à la fois */
.sy-gal{min-width:0}
.sy-gal__s{position:relative}
.sy-gal__v{display:flex;gap:8px;aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--r2);background:#fff;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sy-gal__v::-webkit-scrollbar{display:none}
.sy-gal__v:focus-visible{outline:2px solid var(--g-600);outline-offset:3px}
.sy-sl{position:relative;flex:0 0 100%;min-width:0;margin:0;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;background:#fff}
.sy-sl picture{display:contents}
.sy-sl img{position:absolute;inset:0;margin:auto;width:auto;height:auto;max-width:84%;max-height:88%}
.sy-sl--photo{background:var(--g-900)}
.sy-sl--photo img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:var(--pos,50% 50%)}
.sy-sl--prod{background:linear-gradient(165deg,#E9EDE8,#D2D9D3)}
/* le rendu n'est jamais agrandi au-delà de sa taille d'origine (--w) */
.sy-sl--prod img{max-width:min(74%,var(--w,360px));max-height:86%}
.sy-sl figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:6px 9px 5px;border-radius:var(--r);background:rgba(3,27,11,.84);font-size:10px;font-weight:600;letter-spacing:.08em;line-height:1.3;text-transform:uppercase;color:#D3DED6}
.sy-gal__a{position:absolute;top:50%;z-index:2;display:none;place-items:center;width:44px;height:44px;margin-top:-22px;padding:0;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.95);color:var(--ink);cursor:pointer;transition:opacity .25s var(--e-out),border-color .25s var(--e-out)}
.sy-gal__a svg{width:18px;height:18px}
.sy-gal__a--p{left:12px}
.sy-gal__a--n{right:12px}
.sy-gal__a:hover{border-color:var(--g-600)}
.sy-gal__a[disabled]{opacity:0;pointer-events:none}
@media (min-width:700px){.sy-gal__a{display:grid}}
.sy-gal__t{display:flex;gap:8px;margin-top:8px;padding:3px;margin-inline:-3px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.sy-gal__t::-webkit-scrollbar{display:none}
.sy-th{flex:0 0 auto;width:84px;padding:0;border:1px solid var(--line);border-radius:var(--r2);background:#fff;color:var(--ink-60);text-align:left;cursor:pointer;overflow:hidden;transition:border-color .25s var(--e-out),color .25s var(--e-out)}
.sy-th__m{position:relative;display:block;height:54px;overflow:hidden;background:#fff}
.sy-th__m img{position:absolute;inset:0;margin:auto;max-width:86%;max-height:86%;width:auto;height:auto}
.sy-th--photo .sy-th__m img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.sy-th--prod .sy-th__m{background:linear-gradient(165deg,#E9EDE8,#D2D9D3)}
.sy-th__l{display:block;padding:5px 7px;border-top:1px solid var(--line);font-size:10.5px;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sy-th:hover{border-color:var(--ink-40)}
.sy-th[aria-current="true"]{border-color:var(--g-600);box-shadow:inset 0 0 0 1px var(--g-600);color:var(--ink)}
.sy-th:focus-visible{outline:2px solid var(--o-500);outline-offset:2px}
.sy-gal .credit{margin-top:10px;max-width:none}
@media (min-width:700px){
  .sy-th{width:104px}
  .sy-th__m{height:66px}
}

/* 4. nom, chiffres clés, devis */
.sy-info{min-width:0}
.sy-h1{font-size:clamp(2.2rem,4.1vw,3.6rem);letter-spacing:-.045em;line-height:1;overflow-wrap:anywhere}
.sy-h1__k{display:block;margin-bottom:10px;font-size:11px;font-weight:800;letter-spacing:.2em;line-height:1.3;text-transform:uppercase;color:var(--o-700)}
.sy-lead{max-width:46ch;margin:14px 0 0}
.sy-kf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:clamp(18px,2.2vw,26px) 0 0;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--r2);background:var(--line);overflow:hidden}
.sy-kf li{min-width:0;padding:14px 14px 13px;background:#fff}
/* trois chiffres : l'isolation sur toute la largeur, les deux autres dessous ; quatre chiffres : deux par deux */
.sy-kf[data-n="3"] li:first-child{grid-column:1/-1}
.sy-kf svg{width:20px;height:20px;margin-bottom:9px;color:var(--g-600)}
.sy-kf b{display:block;font-size:clamp(1.45rem,2vw,1.8rem);font-weight:800;letter-spacing:-.04em;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--ink)}
.sy-kf li:first-child b{color:var(--g-600)}
.sy-kf b small{margin-left:4px;font-size:.5em;font-weight:700;letter-spacing:0;color:var(--ink-60)}
/* plusieurs valeurs dans la même case (« 74 à 169 », « 2 ou 3 ») : écrites plus petit */
.sy-kf b.sy-kf__s{font-size:clamp(1.05rem,1.35vw,1.25rem);letter-spacing:-.02em;line-height:1.25;padding-block:4px 3px}
.sy-kf b.sy-kf__s small{font-size:.62em}
.sy-kf__l{display:block;margin-top:7px;font-size:10px;font-weight:800;letter-spacing:.12em;line-height:1.3;text-transform:uppercase;color:var(--ink-60)}
.sy-kf__d{display:block;margin-top:4px;font-size:12px;line-height:1.4;color:var(--ink-60)}
/* sur une ligne dès que la colonne est assez large */
@media (min-width:560px){
  .sy-kf[data-n="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sy-kf[data-n="3"] li:first-child{grid-column:auto}
}
@media (min-width:560px) and (max-width:999px),(min-width:1360px){.sy-kf[data-n="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}}
.sy-kf__n{max-width:none;margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--ink-60)}
.sy-tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.sy-tags li{display:inline-flex;align-items:center;gap:7px;padding:7px 11px 7px 9px;border:1px solid var(--line);border-radius:var(--r);background:#fff;font-size:12.5px;font-weight:600;color:var(--ink)}
.sy-tags svg{flex:0 0 auto;width:14px;height:14px;color:var(--g-600)}
.sy-cta{margin-top:clamp(18px,2.2vw,26px)}
.sy-cta .btn{flex:1 1 auto}
.sy-ok{display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;padding:0;list-style:none;font-size:12.5px;font-weight:600;color:var(--ink-60)}
.sy-ok li{display:inline-flex;align-items:center;gap:7px}
.sy-ok svg{flex:0 0 auto;width:14px;height:14px;color:var(--o-700)}
@media (max-width:479px){.sy-cta .btn{flex-basis:100%}}
@media (max-width:359px){.sy-cta .btn{padding-inline:12px;font-size:13.5px}}
/* preuves vérifiées, en petit : mêmes données et mêmes liens que la page Fenêtres */
.sy-proof{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:clamp(18px,2.2vw,26px)}
.sy-proof li{gap:14px;padding:10px 14px;background:#fff}
.sy-proof img{width:36px}
.sy-proof .fp-proof__v{font-size:.92rem}
.sy-proof .fp-proof__v b{font-size:1.05rem}
.sy-proof .fp-proof__d{font-size:12px}
.sy-proof .fp-proof__a{font-size:12px}
@media (min-width:560px){.sy-proof{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px) and (max-width:1239px){.sy-proof{grid-template-columns:minmax(0,1fr)}}
.sy-cmp{margin:10px 0 0}

/* 5. barre produit : en bas au téléphone, en haut à l'ordinateur (la barre de navigation du site ne reste pas à l'écran) */
.sy-bar{position:fixed;left:0;right:0;bottom:0;z-index:72;padding:10px 0 calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;transform:translateY(105%);visibility:hidden;transition:transform .4s var(--e-out),visibility 0s .4s}
.sy-bar[data-open="true"]{transform:none;visibility:visible;transition:transform .4s var(--e-out)}
.sy-bar .wrap{display:flex;align-items:center;gap:10px}
.sy-bar__p{display:none}
.sy-bar .btn{flex:1 1 0;min-height:50px;padding-inline:12px;font-size:13px}
body.sy-pad{padding-bottom:calc(71px + env(safe-area-inset-bottom))}
@media (min-width:1000px){
  .sy-bar{top:0;bottom:auto;padding:8px 0;border-top:0;border-bottom:1px solid var(--line);box-shadow:0 14px 34px -26px rgba(4,36,15,.55);transform:translateY(-105%)}
  .sy-bar__p{display:flex;align-items:center;gap:14px;min-width:0;margin-right:auto}
  .sy-bar__m{flex:0 0 auto;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(165deg,#E9EDE8,#D2D9D3);overflow:hidden}
  .sy-bar__m picture{display:contents}
  .sy-bar__m img{max-width:80%;max-height:84%;width:auto;height:auto}
  .sy-bar__n{min-width:0;font-size:15px;font-weight:800;letter-spacing:-.02em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sy-bar__u{flex:0 0 auto;padding-left:14px;border-left:1px solid var(--ink-20);font-size:12.5px;font-weight:600;color:var(--ink-60);white-space:nowrap}
  .sy-bar__u b{font-size:15px;font-weight:800;color:var(--g-600)}
  .sy-bar .btn{flex:0 0 auto;min-height:46px;padding-inline:20px}
  body.sy-pad{padding-bottom:0}
}

/* 6. le détail : volets à gauche, le matériau et le contact à droite */
.sy-detail{padding-block:clamp(44px,6vw,96px)}
.sy-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,3vw,44px);align-items:start}
.sy-side{display:grid;gap:14px;min-width:0}
@media (min-width:1000px){
  .sy-cols{grid-template-columns:minmax(0,1fr) minmax(280px,380px)}
  .sy-side{position:sticky;top:84px}
}
.sy-detail .acc__b{font-size:15.5px}
.sy-detail .acc__b:focus-visible{outline:2px solid var(--o-500);outline-offset:-2px}
.sy-detail .acc__p>div{padding:2px 20px 22px}
.sy-detail .acc__p[inert]{visibility:hidden}
.sy-p{max-width:68ch;margin:0 0 12px;font-size:14px;line-height:1.55;color:var(--ink-60)}
/* une valeur, puis sa condition de mesure : lisible au téléphone sans défilement horizontal */
.sy-dl{margin:0}
.sy-dl>div{display:grid;grid-template-columns:minmax(42%,1fr) auto;gap:3px 16px;padding:13px 0;border-top:1px solid var(--line)}
.sy-dl>div:first-child{padding-top:4px;border-top:0}
.sy-dl>div:last-child{padding-bottom:0}
.sy-dl dt{font-size:14px;font-weight:700;line-height:1.35;color:var(--ink)}
.sy-dl dd{margin:0}
.sy-dl__v{font-size:15px;font-weight:800;letter-spacing:-.01em;line-height:1.35;font-variant-numeric:tabular-nums;text-align:right;color:var(--ink)}
.sy-dl__c{grid-column:1/-1;max-width:70ch;font-size:12.5px;line-height:1.5;color:var(--ink-60)}
.sy-opt{margin:0;padding:0;list-style:none}
.sy-opt li{display:flex;align-items:baseline;gap:14px;padding:11px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.4}
.sy-opt li:last-child{padding-bottom:0}
.sy-opt b{flex:0 0 auto;min-width:52px;padding:4px 8px 3px;border:1px solid var(--ink-20);border-radius:var(--r);font-size:11px;font-weight:800;letter-spacing:.05em;line-height:1.3;text-align:center;color:var(--ink)}
.sy-opt__x{margin:14px 0 0;font-size:12.5px;color:var(--ink-60)}
.sy-plan{margin:0;padding:clamp(12px,2vw,24px);border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.sy-plan picture{display:block;max-width:none}
.sy-plan img{display:block;width:100%;max-width:520px;height:auto;margin-inline:auto}
.sy-plan figcaption{margin-top:12px;font-size:12px;line-height:1.45;text-align:center;color:var(--ink-60)}
.sy-detail .bul{margin-bottom:6px}
.sy-detail .bul li:first-child{padding-top:4px}
.sy-detail .src{max-width:70ch;margin:0;font-size:12.5px}
.sy-mat,.sy-help{min-width:0;padding:clamp(18px,2vw,24px);border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.sy-mat h3,.sy-help h3{font-size:1.2rem;letter-spacing:-.03em;line-height:1.15}
.sy-mat dl{margin:14px 0 6px}
.sy-mat dt{margin-top:12px;font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--o-700)}
.sy-mat dd{margin:4px 0 0;font-size:14.5px;font-weight:600;line-height:1.4;color:var(--ink)}
.sy-help{border-color:transparent;background:var(--g-950);color:#fff}
.sy-help p{max-width:none;margin:8px 0 14px;font-size:13.5px;line-height:1.5;color:#B9C9BE}
.sy-help__t{display:inline-flex;align-items:center;min-height:44px;font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:#fff;text-decoration:none}
.sy-help__t:hover{color:var(--o-300)}
.sy-help .btn{margin-top:8px}

/* 7. systèmes proches : les cartes du catalogue, sur trois colonnes */
.sy-near{padding-block:clamp(44px,6vw,96px)}
@media (min-width:900px){.sy-near .fp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sy-near__l{display:flex;flex-wrap:wrap;gap:0 28px;margin-top:14px}

/* 8. identifiant inconnu : un message, pas la fiche d'un autre système */
.sy-none{padding-block:clamp(40px,7vw,110px)}
.sy-none .btns{margin-top:24px}

@media (prefers-reduced-motion:reduce){
  .sy-bar,.sy-th,.sy-gal__a{transition:none}
}

/* 9. bloc de devis de fin de page (toutes les pages) : à 360 px le bouton était coupé de 8 px ; la règle des petits écrans est étendue jusqu'à 389 px */
@media (max-width:389px){.mcta__b .btn{padding-inline:12px;font-size:13.5px}}

/* ===== v20 — nos engagements : trois badges dorés (pose soignée, garantie du fabricant, entreprise alsacienne), toujours sur fond clair ; accueil, familles, catalogue, résultat, fiche système (à ajouter à la fin de assets/era-c.css) ===== */
.eng-sec{padding-block:clamp(30px,4vw,56px)}
.eng{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:0;padding:0;list-style:none}
.eng li{display:flex;align-items:center;gap:14px;min-width:0;padding:14px 16px;border:1px solid var(--o-300);border-top:3px solid var(--o-500);border-radius:var(--r2);background:#fff}
/* le doré de la charte (#C99E67) en surface : pastille et filet, jamais en texte */
.eng__i{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--o-500);color:var(--g-900);box-shadow:0 0 0 4px var(--o-100)}
.eng__i svg{width:26px;height:26px}
.eng__t{max-width:none;margin:0;font-size:15.5px;font-weight:800;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
.eng__p{max-width:none;margin:3px 0 0;font-size:13px;line-height:1.4;color:var(--ink-60)}
.fp-proof:not([hidden])+.eng-wrap{margin-top:18px}
@media (min-width:760px){
  .eng{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .eng li{flex-direction:column;gap:12px;padding:26px 18px 22px;text-align:center}
  .eng__i{width:66px;height:66px;box-shadow:0 0 0 5px var(--o-100)}
  .eng__i svg{width:32px;height:32px}
  .eng__t{font-size:16.5px}
}
/* fiche système : trois badges côte à côte sous les boutons de devis */
.sy-eng{margin-top:clamp(18px,2.2vw,26px)}
.sy-eng:empty{display:none}
.sy-eng .eng{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sy-eng .eng li{flex-direction:column;gap:9px;padding:16px 8px 13px;text-align:center}
.sy-eng .eng__i{width:46px;height:46px;box-shadow:0 0 0 3px var(--o-100)}
.sy-eng .eng__i svg{width:23px;height:23px}
.sy-eng .eng__t{font-size:13.5px}
.sy-eng .eng__p{font-size:12px}
@media (max-width:479px){.sy-eng .eng__t{font-size:12.5px}.sy-eng .eng__p{display:none}}

/* ===== v21 — badges premium (proposition C) : grande icône dorée au trait, sans cercle ni aplat, fin filet doré dessous, filets dorés entre les badges (à ajouter à la fin de assets/era-c.css ; remplace l'aspect du bloc v20) ===== */
.eng-sec{padding-block:clamp(34px,4.6vw,64px)}
.eng li{gap:16px;padding:12px 0;border:0;border-radius:0;background:none}
.eng li+li{border-top:1px solid rgba(201,158,103,.38)}
.eng__i{width:52px;height:52px;border-radius:0;background:none;box-shadow:none}
.eng__i svg{display:block;width:100%;height:100%}
.eng__f{display:none;width:28px;height:1px;background:linear-gradient(90deg,#E2CAA9,#8A6634)}
.eng__t{font-size:12.5px;font-weight:800;letter-spacing:.15em;line-height:1.35;text-transform:uppercase;color:var(--g-900)}
.eng__p{margin-top:5px;font-size:13px;line-height:1.45;color:var(--ink-60)}
.fp-proof:not([hidden])+.eng-wrap{margin-top:30px}
@media (min-width:760px){
  .eng{gap:0}
  .eng li{gap:14px;padding:4px clamp(14px,2.4vw,34px)}
  .eng li+li{border-top:0;border-left:1px solid rgba(201,158,103,.45)}
  .eng__i{width:68px;height:68px;box-shadow:none}
  .eng__i svg{width:100%;height:100%}
  .eng__f{display:block;margin-bottom:6px}
  .eng__t{font-size:13px}
}
/* fiche système : trois icônes côte à côte, séparées par un filet doré */
.sy-eng .eng{gap:0}
.sy-eng .eng li{gap:8px;padding:2px 8px;border:0;background:none}
.sy-eng .eng li+li{border-top:0;border-left:1px solid rgba(201,158,103,.45)}
.sy-eng .eng__i{width:44px;height:44px;box-shadow:none}
.sy-eng .eng__i svg{width:100%;height:100%}
.sy-eng .eng__f{display:block;width:20px;margin-bottom:2px}
.sy-eng .eng__t{font-size:10.5px;letter-spacing:.12em}
.sy-eng .eng__p{font-size:12px}
@media (max-width:479px){.sy-eng .eng__i{width:38px;height:38px}.sy-eng .eng__t{font-size:10px;letter-spacing:.07em}}

/* ===== v22 — accueil, lot 1, étape 22.1 : contenu lisible sans script, contrastes, en-tête (H-1, H-2), barre fixe après le haut de page, titre explicite, note Google dans la bande, voile directionnel (à ajouter à la fin de assets/era-c.css) ===== */

/* 1. sans script, tout le contenu reste visible : la classe « js » est posée dans le <head> de chaque page */
html:not(.js) .reveal{opacity:1;transform:none}
html:not(.js) .rv-line>span{transform:none}
html:not(.js) .rv-img>*{clip-path:none}

/* 2. contrastes AA sur fond clair (mention « images d'illustration » 5,18:1 ; numéros de section 5,13:1) */
:where(.sec--white,.sec--paper) .credit{font-size:12px;color:#5E635B}
:where(.sec--white,.sec--paper) .idx b{color:#7D5C2E}
.foot .brand__txt small{opacity:1}

/* 3. bandeau supérieur : le lien téléphone se distingue autrement que par la couleur ; « Haut-Rhin » n'est jamais coupé */
.topline a{text-decoration:underline;text-decoration-color:rgba(201,158,103,.75);text-underline-offset:3px}
.topline .nw{white-space:nowrap}

/* 4. H-1 : entre 1 100 et 1 439 px, la barre de navigation ne déborde plus
      (1 100–1 239 px : menu replié dans le bouton « menu » ; 1 240–1 439 px : « Être rappelé » reste dans le haut de page et le pied de page) */
@media (min-width:1100px) and (max-width:1239px){
  .menu{display:none}
  .burger{display:grid}
  .mega{display:none!important}
}
@media (min-width:1240px) and (max-width:1439px){
  .nav-act .btn--line{display:none}
}
/* H-2 : à 320 px, plus de défilement horizontal */
@media (max-width:359px){
  .nav .wrap{gap:8px}
  .brand{gap:9px}
  .brand__mark{height:28px}
  .brand__txt em{font-size:11px;letter-spacing:.03em}
  .nav-act{gap:6px;padding-left:0}
  .nav-act .btn{padding:0 10px}
}

/* 5. barre fixe après le haut de page (accueil, à partir de 761 px ; en dessous, la barre d'action du bas d'écran) */
.hbar{position:fixed;top:0;left:0;right:0;z-index:85;display:none;background:rgba(247,245,241,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 6px 24px rgba(3,27,11,.06);transform:translateY(-102%);visibility:hidden;transition:transform .35s var(--e-out),visibility 0s .35s}
.hbar[data-on="true"]{transform:none;visibility:visible;transition:transform .35s var(--e-out)}
@media (min-width:761px){.hbar{display:block} html{scroll-padding-top:76px}}
.hbar__in{display:flex;align-items:center;gap:clamp(10px,1.8vw,26px);min-height:64px}
.hbar__logo{display:flex;align-items:center;gap:11px;min-height:44px;text-decoration:none;color:var(--g-700)}
.hbar__logo img{display:block;width:auto;height:30px}
.hbar__logo span{font-size:13px;font-weight:800;letter-spacing:.055em;white-space:nowrap}
.hbar__menu{display:flex;gap:2px;margin:0;padding:0;list-style:none}
.hbar__menu a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;font-size:13.5px;font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap}
.hbar__menu a:hover{color:var(--g-600);text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:5px}
.hbar__tel{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-left:auto;font-size:14px;font-weight:700;color:var(--g-700);text-decoration:none;white-space:nowrap}
.hbar__tel svg{width:16px;height:16px;flex:0 0 auto;color:var(--o-700)}
.hbar .btn{flex:0 0 auto}
@media (max-width:1023px){.hbar__logo span{display:none}}
@media (max-width:900px){.hbar__menu a{padding:0 8px;font-size:13px}}
@media (prefers-reduced-motion:reduce){.hbar,.hbar[data-on="true"]{transition:none}}

/* 6. titre de l'accueil : le métier et le lieu entrent dans le H1 ; deux lignes courtes, posées sur la partie sombre du voile */
.hero h1 .hero__terr{display:grid;grid-template-columns:26px auto;column-gap:12px;row-gap:3px;align-items:center;justify-content:start;max-width:none;margin:0 0 26px;font-size:11px;font-weight:700;line-height:1.55;letter-spacing:.2em;text-transform:uppercase;color:#D3DDD6}
.hero h1 .hero__terr::before{grid-row:1;width:26px}
.hero h1 .hero__terr>span:not(.sr){grid-column:2;display:block}
@media (max-width:900px){.hero h1 .hero__terr{margin-bottom:16px;color:#fff}}
@media (max-width:400px){.hero h1 .hero__terr{letter-spacing:.13em}}

/* 7. bande de preuves : la note Google en premier */
.hero__proofs .hp-g svg{color:#E8B341}
.hero__proofs .hp-g b{font-variant-numeric:tabular-nums}

/* 8. panneau du devis : pictogramme de la durée */
#hPanel .hpanel__k span svg{width:12px;height:12px}

/* 9. couleur de secours si la photographie ne charge pas : le titre reste lisible */
.hero__media{background:var(--g-950)}

/* 10. voile directionnel (ordinateur), variante A retenue par le client le 10 octobre 2026 : fort sous le texte, léger sur la photographie */
@media (min-width:1080px){
  .hero[data-voile="a"] .hero__media::after{background:
    linear-gradient(180deg,rgba(3,27,11,.56) 0%,rgba(3,27,11,0) 17%,rgba(3,27,11,0) 74%,rgba(3,27,11,.78) 100%),
    linear-gradient(90deg,rgba(3,27,11,.86) 0%,rgba(3,27,11,.80) 30%,rgba(3,27,11,.64) 46%,rgba(3,27,11,.32) 60%,rgba(3,27,11,.12) 72%,rgba(3,27,11,.06) 100%)}
}
/* téléphone et tablette : la photographie garde son haut éclairci ; le voile se renforce sous le surtitre et le titre */
@media (max-width:1079px){
  .hero[data-voile] .hero__media::after{background:linear-gradient(180deg,rgba(3,27,11,.56) 0%,rgba(3,27,11,.72) 15%,rgba(3,27,11,.78) 38%,rgba(3,27,11,.92) 78%,rgba(3,27,11,.95) 100%)}
}

/* ----- v22, étape 22.2 : accueil complet en 12 blocs (document 48, §5.1 ; décisions du 10 octobre 2026) ----- */

/* 11. rythme : sections plus serrées ; titres de section sur deux lignes au plus (C-09) */
.sec--c{padding-block:clamp(56px,6.6vw,104px)}
.st{max-width:24ch;font-size:clamp(1.85rem,3.3vw,2.85rem);letter-spacing:-.04em;line-height:1.04}
.sec--c .head{margin-bottom:clamp(26px,3.2vw,44px)}
.sec--c .head--split{display:grid;gap:14px 48px;align-items:end;max-width:none}
.sec--c .head--split .idx{margin-bottom:16px}
.sec--c .head__side p{max-width:46ch;margin:0;font-size:clamp(1rem,1.1vw,1.08rem);line-height:1.55;color:var(--ink-60)}
.sec--c.on-dark .head__side p{color:#A9BCB0}
@media (min-width:1000px){.sec--c .head--split{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}

/* 12. carrousels au téléphone : une carte et le début de la suivante ; défilement au doigt, ou au clavier quand le carrousel a le focus */
.crs-hint{display:none}
@media (max-width:759px){
  .crs{position:relative;margin-inline:calc(var(--gut) * -1);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none}
  .crs::-webkit-scrollbar{display:none}
  .crs>ul{display:flex;gap:12px;width:max-content;padding-inline:var(--gut)}
  .crs>ul>li{flex:0 0 min(78vw,300px);scroll-snap-align:start}
  .crs:focus-visible{outline:2px solid var(--o-500);outline-offset:-2px}
  .crs-hint{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:12.5px;font-weight:600;color:var(--ink-60)}
  .on-dark .crs-hint{color:#A9BCB0}
  .crs-hint svg{width:16px;height:16px;color:var(--o-700)}
}
@media (min-width:640px){.sols .crs-hint{display:none}}
@media (max-width:639px){
  .sols__grid{position:relative;display:flex;gap:12px;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);scrollbar-width:none}
  .sols__grid::-webkit-scrollbar{display:none}
  .sols__grid .sol{flex:0 0 min(80vw,300px);min-height:380px;scroll-snap-align:start}
  .sols__grid .sol__d{display:block}
}

/* 13. contenus en attente des données de l'entreprise : visibles et signalés ; html.sans-attente les masque (variante A) */
.wtag{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border:1px dashed #8E897D;border-radius:999px;background:#fff;font-size:10.5px;font-weight:800;letter-spacing:.14em;line-height:1;text-transform:uppercase;color:#4E534C;white-space:nowrap}
.wtag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--o-500)}
.on-dark .wtag{background:transparent;border-color:rgba(255,255,255,.5);color:#E4ECE6}
.wait{display:grid;gap:8px 18px;align-items:start;margin-top:clamp(18px,2.4vw,28px);padding:16px 20px;border:1.5px dashed #B9B3A6;border-radius:var(--r2);background:var(--paper)}
.wait__t{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.wait__p{margin:0;max-width:none;font-size:14px;line-height:1.5;color:var(--ink-60)}
@media (min-width:760px){.wait{grid-template-columns:auto auto minmax(0,1fr);align-items:center}}
.wnote{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;max-width:none;margin:18px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-60)}
html.sans-attente [data-attente],html.sans-attente [data-attente-bloc],html.sans-attente [data-attente-q]{display:none!important}

/* 14. réalisations (03) : trois fiches de chantier, en attente des chantiers réels */
.cards3{display:grid;gap:14px;margin:0;padding:0;list-style:none}
@media (min-width:760px){.cards3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.real__c{display:flex;flex-direction:column;overflow:hidden;border:1.5px dashed #C2BCAF;border-radius:var(--r2);background:var(--paper)}
.real__ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;aspect-ratio:16/10;background:repeating-linear-gradient(135deg,rgba(20,22,19,.035) 0 10px,transparent 10px 20px),var(--paper-2);font-size:12.5px;font-weight:700;letter-spacing:.04em;color:#5E635B}
.real__ph svg{width:30px;height:30px}
.real__b{padding:16px 18px 18px}
.real__k{margin:0 0 12px;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-60)}
.real__d{display:grid;gap:9px;margin:0}
.real__d div{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px}
.real__d dt{font-size:12.5px;font-weight:600;color:var(--ink-60)}
.real__d dd{height:9px;margin:0;border-radius:5px;background:#E3DED4}
.real__d div:nth-child(2) dd{width:52%}
.real__d div:nth-child(3) dd{width:84%}

/* 15. aide au choix (04) sur fond clair : la liste en blanc, la fiche reste une carte sombre */
.needs-l .needlist{background:var(--line);border-color:var(--line);border-radius:var(--r2);overflow:hidden}
.needs-l .needbtn{background:#fff;color:var(--ink)}
.needs-l .needbtn svg{color:var(--g-600)}
.needs-l .needbtn:hover{background:var(--g-50)}
.needs-l .needbtn[aria-selected='true']{background:var(--g-50)}
.needs-l .needbtn[aria-selected='true'] svg{color:var(--o-700)}
.needs-l .needbtn em{color:var(--ink-60)}
.needs-l .needbtn[aria-selected='true'] em{color:var(--g-600)}
.needs-l .needview{border:0;background:var(--g-900)}
.needs-l .needview__body{background:var(--g-900);-webkit-backdrop-filter:none;backdrop-filter:none}
.needs-l .needview .credit{color:#9DB2A4}

/* 16. la pose (05) : images générées par IA, signalées sur l'image même, dès la première vue */
.ia-b{position:absolute;top:12px;right:12px;z-index:3;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:rgba(3,27,11,.84);font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1;color:#fff;white-space:nowrap;pointer-events:none}
.ia-b svg{width:12px;height:12px;flex:0 0 auto;color:var(--o-300)}
.mstep--ia .mstep__m img{object-position:50% 30%}
.is-acc .mstep:not(.is-on) .ia-b{display:none}
@media (max-width:1023px){.mstep--ia .mstep__m{height:clamp(210px,56vw,340px)}}
@media (min-width:1024px){
  .is-acc .mstep:not(.is-on) .ia-b{display:inline-flex;padding:6px 8px}
  .is-acc .mstep:not(.is-on) .ia-b>span{display:none}
  .is-acc .mstep--ia.is-on::before{background:linear-gradient(to top,rgba(3,27,11,.96) 0,rgba(3,27,11,.9) 30%,rgba(3,27,11,.42) 52%,rgba(3,27,11,0) 70%)}
}

/* 17. où nous intervenons (06) : l'adresse et la vérification de la commune, puis les quatre zones en texte (pas de carte dessinée) */
.zones__g{display:grid;gap:14px}
@media (min-width:1000px){.zones__g{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch}}
.zbase{position:relative;display:flex;flex-direction:column;gap:6px;padding:clamp(22px,2.6vw,34px);border-radius:var(--r2);background:var(--g-900);color:#fff}
.zbase::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--o-500),transparent)}
.zbase__k{margin:0;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--o-300)}
.zbase__t{margin:2px 0 0;font-size:clamp(1.4rem,2.2vw,1.9rem);font-weight:800;letter-spacing:-.035em;line-height:1.1}
.zbase address{font-style:normal;font-size:15px;line-height:1.5;color:#C7D5CB}
.zbase__h{max-width:none;margin:0;font-size:14px;line-height:1.5;color:#C7D5CB}
.zbase__h a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:3px;white-space:nowrap}
.zchk{margin-top:auto;padding-top:18px;border-top:1px solid rgba(255,255,255,.14)}
@media (min-width:1000px){.zchk{margin-top:22px}}
.zchk__l{display:block;margin-bottom:10px;font-size:14px;font-weight:700;color:#fff}
.zchk .qd__field{margin:0}
.zchk .qd__field input{min-height:52px;padding-left:44px;font-size:16px;border-color:rgba(255,255,255,.4)}
.zchk .qd__field input:focus{border-color:var(--o-500);box-shadow:0 0 0 3px rgba(201,158,103,.32)}
.zchk .qd__field input::placeholder{color:#A9BDB0}
.zchk .qd__pin{top:26px;left:15px;color:var(--o-300)}
.zchk__r{display:flex;gap:10px;align-items:flex-start;max-width:none;margin:12px 0 0;padding:10px 12px;border-left:2px solid var(--o-500);background:rgba(201,158,103,.12);font-size:14px;line-height:1.5;color:#F2E8DA}
.zchk__r:empty{display:none}
.zchk__r[data-out='true']{border-left-color:rgba(255,255,255,.45);background:rgba(255,255,255,.07);color:#E4ECE6}
.zchk__r svg{width:16px;height:16px;flex:0 0 auto;margin-top:3px}
.zchk__r a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:3px}
.zlist{display:grid;gap:1px;margin:0;padding:0;list-style:none;overflow:hidden;border:1px solid var(--line);border-radius:var(--r2);background:var(--line)}
@media (min-width:640px){.zlist{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zcard{display:flex;flex-direction:column;gap:10px;padding:clamp(18px,2.2vw,28px);background:#fff}
.zcard__h{display:flex;align-items:center;gap:12px}
.zcard__d{display:inline-grid;place-items:center;min-width:40px;height:30px;padding:0 7px;border:1px solid var(--o-300);border-radius:var(--r);background:var(--o-100);font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--g-700)}
.zcard h3{font-size:1.18rem;letter-spacing:-.025em;line-height:1.15}
.zcard__c a,.zcard h3 a{color:inherit;text-decoration:none}.zcard__c a:hover,.zcard h3 a:hover{color:var(--g-600);text-decoration:underline;text-underline-offset:3px}
.zcard__c{max-width:none;margin:0;font-size:14px;line-height:1.7;color:var(--ink-60)}
.zones .wnote{margin-top:16px}

/* 18. aides (07) : quatre fiches, chacune avec sa source et sa date de vérification */
.aid__l{display:grid;gap:14px;margin:0;padding:0;list-style:none}
@media (min-width:700px){.aid__l{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){.aid__l{grid-template-columns:repeat(4,minmax(0,1fr))}}
.aid{display:flex;flex-direction:column;padding:22px 20px 18px;border-top:3px solid var(--g-600);border-radius:var(--r2);background:#fff}
.aid--no{border-top-color:#9C968A}
.aid__t{font-size:1.2rem;letter-spacing:-.025em;line-height:1.15}
.aid__s{display:inline-flex;align-self:flex-start;align-items:center;gap:7px;max-width:none;margin:10px 0 12px;padding:5px 10px;border-radius:999px;background:var(--g-50);font-size:12.5px;font-weight:700;line-height:1.25;color:var(--g-700)}
.aid--no .aid__s{background:var(--paper-2);color:var(--ink)}
.aid__s svg{width:14px;height:14px;flex:0 0 auto}
.aid p{max-width:none;margin:0 0 10px;font-size:14px;line-height:1.5;color:var(--ink)}
.aid__c{display:grid;gap:6px;margin:0 0 14px;padding:0;list-style:none}
.aid__c li{position:relative;padding-left:16px;font-size:13.5px;line-height:1.45;color:var(--ink-60)}
.aid__c li::before{content:"";position:absolute;left:2px;top:.66em;width:7px;height:1.5px;background:var(--o-700)}
.aid .aid__src{margin:auto 0 0;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.5;color:var(--ink-60)}
.aid__src a,.aid__f a{color:var(--t-700);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.aid__f{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 32px;margin-top:22px}
.aid__f p{max-width:60ch;margin:0;font-size:14.5px;line-height:1.55;color:var(--ink)}
.aid__f p+p{font-size:13px;color:var(--ink-60)}

/* 19. conseils (08) : trois articles, en préparation */
.tip{display:flex;flex-direction:column;gap:12px;min-height:190px;padding:22px 20px;border:1.5px dashed #C2BCAF;border-radius:var(--r2);background:var(--paper)}
.tip__k{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:none;margin:0;color:var(--g-600)}
.tip__k svg{width:24px;height:24px}
.tip__t{font-size:1.1rem;letter-spacing:-.02em;line-height:1.28;color:var(--ink)}
.tip__m{max-width:none;margin:auto 0 0;font-size:13px;color:var(--ink-60)}

/* 20. questions fréquentes (09) : accordéon natif, lisible sans script ; une question ouverte à la fois */
.faq__g{display:grid;gap:clamp(22px,3vw,40px)}
@media (min-width:1000px){.faq__g{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:start}.faq__h{position:sticky;top:100px}}
.sec--c .faq__h{margin-bottom:0}
.faq__h a{color:var(--g-600);font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:3px}
.faq__l{border-top:1px solid var(--ink-20)}
.faq__i{border-bottom:1px solid var(--ink-20)}
.faq__i>summary{display:flex;align-items:center;gap:16px;min-height:64px;padding:14px 0;list-style:none;cursor:pointer}
.faq__i>summary::-webkit-details-marker{display:none}
.faq__i>summary h3{flex:1;font-size:clamp(1.02rem,1.3vw,1.15rem);letter-spacing:-.02em;line-height:1.3;color:var(--ink)}
.faq__i>summary:hover h3{color:var(--g-600)}
.faq__i>summary:focus-visible{outline:2px solid var(--o-500);outline-offset:4px}
.faq__ic{flex:0 0 auto;width:32px;height:32px;padding:7px;border:1px solid var(--ink-20);border-radius:50%;background:#fff;color:var(--g-600);transition:transform .3s var(--e-out),border-color .3s}
.faq__i[open] .faq__ic{transform:rotate(45deg);border-color:var(--o-500)}
.faq__a{padding:0 48px 20px 0}
.faq__a p{max-width:64ch;margin:0 0 10px;font-size:15px;line-height:1.6;color:var(--ink-60)}
.faq__a a{color:var(--g-600);font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:3px}
.faq__a .faq__src{font-size:12.5px}
.faq__a ul{display:grid;gap:4px;margin:0 0 10px;padding:0 0 0 18px;font-size:14.5px;line-height:1.5;color:var(--ink-60)}
@media (max-width:640px){.faq__a{padding-right:0}}
@media (prefers-reduced-motion:reduce){.faq__ic{transition:none}}

/* 21. parlons de votre projet (10) : trois portes, un seul bouton plein ; le mot du dirigeant en attente */
.pdoors{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin:0;padding:0;list-style:none}
@media (min-width:900px){.pdoors{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr)}}
.pdoor{position:relative;display:flex;flex-direction:column;gap:10px;padding:clamp(22px,2.4vw,32px);border:1px solid rgba(255,255,255,.16);border-radius:var(--r2);background:rgba(255,255,255,.03)}
.pdoor--go{border-color:rgba(201,158,103,.5);background:var(--g-800)}
.pdoor--go::before{content:"";position:absolute;left:0;top:0;width:100%;height:2px;background:linear-gradient(90deg,var(--o-500),transparent)}
.pdoor__k{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;max-width:none;margin:0;font-size:11px;font-weight:800;letter-spacing:.2em;line-height:1.3;text-transform:uppercase;color:var(--o-300)}
.pdoor__k span{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid rgba(255,255,255,.32);border-radius:var(--r);letter-spacing:.12em;color:#fff}
.pdoor__k svg{width:13px;height:13px}
.pdoor__t{font-size:clamp(1.3rem,1.9vw,1.65rem);letter-spacing:-.03em;line-height:1.12}
.pdoor__p{max-width:none;margin:0;font-size:14.5px;line-height:1.55;color:#C7D5CB}
.pdoor__p a{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:3px;white-space:nowrap}
.pdoor__ok{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;list-style:none;font-size:12.5px;font-weight:600;color:#E4ECE6}
.pdoor__ok li{display:inline-flex;align-items:center;gap:6px}
.pdoor__ok svg{width:13px;height:13px;color:var(--o-500)}
.pdoor .btn{margin-top:auto}
.pdoor .btn--block{width:100%}
.boss{display:flex;align-items:center;gap:18px;margin-top:14px;padding:18px 20px;border:1.5px dashed rgba(255,255,255,.34);border-radius:var(--r2)}
.boss__ph{display:grid;flex:0 0 auto;place-items:center;width:64px;height:64px;border:1.5px dashed rgba(255,255,255,.42);border-radius:50%;color:#A9BCB0}
.boss__ph svg{width:30px;height:30px}
.boss__k{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;max-width:none;margin:0 0 4px;font-size:15px;font-weight:800;color:#fff}
.boss__p{max-width:72ch;margin:0;font-size:14px;line-height:1.5;color:#B9C9BE}
@media (max-width:560px){.boss{align-items:flex-start}.boss__ph{width:48px;height:48px}.boss__ph svg{width:24px;height:24px}}

/* 22. pied de page : colonnes en accordéons au téléphone ; ouvertes et fixes à partir de 761 px */
.foot .fcol>summary{list-style:none}
.foot .fcol>summary::-webkit-details-marker{display:none}
.foot__h{display:block;margin-top:8px}
@media (min-width:761px){.foot .fcol>summary{pointer-events:none}}
@media (max-width:760px){
  .foot__g{gap:0}
  .foot .fcol{border-bottom:1px solid rgba(255,255,255,.12)}
  .foot .fcol>summary{display:flex;align-items:center;justify-content:space-between;min-height:52px;margin:0;padding:0;border:0;cursor:pointer}
  .foot .fcol>summary::after{content:"+";font-size:20px;font-weight:400;line-height:1;color:var(--o-300)}
  .foot .fcol[open]>summary::after{content:"\2013"}
  .foot .fcol ul{padding-bottom:10px}
  .foot__top{margin-bottom:28px}
  .foot__legal{margin-top:28px}
}

/* 23. ajustements après relecture des captures (22.2) */
.needs-l .needview{color:#fff}
@media (min-width:1024px){
  .is-acc .mstep--ia.is-on::before{background:linear-gradient(to top,rgba(3,27,11,.97) 0,rgba(3,27,11,.93) 36%,rgba(3,27,11,.5) 58%,rgba(3,27,11,0) 76%)}
  .sols .sol{min-height:330px}
  .sols .sol--big{min-height:350px}
  .sols .sol--third{min-height:310px}
}
@media (min-width:760px){.real__ph{aspect-ratio:2/1}}
/* téléphone : aides en carrousel ; preuves RGE et presse en lignes compactes ; pied de page sur une colonne */
@media (max-width:759px){
  .crs--aid>ul{display:flex}
  .crs--aid .aid{flex:0 0 min(84vw,330px)}
  .foot__g{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:560px){
  .trust--band .tcard--rge,.trust--band .tcard--presse{grid-template-columns:64px minmax(0,1fr);gap:14px;padding:18px}
  .tcard__tile{width:64px;height:52px}
  .tcard__tile .tcard__logo{max-width:52px;max-height:34px}
  .trust--band .tcard__v{font-size:1.3rem}
  .trust--band .tcard__body{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}
}
@media (max-width:389px){.pdoor{padding-inline:16px}.pdoor .btn{padding-inline:12px;font-size:13.5px}}

/* ----- v22, correction du bloc 05 (document 57, 11 octobre 2026) : parcours client en 4 étapes ----- */

/* 24. un lien par étape ; sur ordinateur, il passe au-dessus du bouton de l'accordéon (qui couvre toute l'étape) */
.mstep__go{position:relative;z-index:2;margin-top:12px}
.mstep__p .mstep__go{font-size:13.5px}
@media (max-width:389px){.mstep__p .mstep__go{font-size:13px;letter-spacing:0}}
/* 25. ordinateur : panneau un peu plus large (moins de lignes) ; entre 1 024 et 1 439 px, voile plus haut sous le texte, qui y remonte davantage (contraste mesuré pixel par pixel, tools22/contraste05) */
@media (min-width:1024px){.is-acc .mstep.is-on .mstep__p{width:min(470px,40vw)}}
@media (min-width:1024px) and (max-width:1439px){
  .is-acc .mstep--ia.is-on::before{background:linear-gradient(to top,rgba(3,27,11,.97) 0,rgba(3,27,11,.93) 52%,rgba(3,27,11,.6) 74%,rgba(3,27,11,0) 92%)}
}

/* ----- v22, bloc 03 avec les photos réelles des chantiers (document 58, 11 octobre 2026) ----- */

/* 26. fiches de chantier : photo carrée, une à la fois, choisie par les miniatures ; ce qui manque est signalé */
.real__c--ok{border:1px solid var(--line);background:#fff}
.real__m{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--paper-2)}
.real__p{display:none;height:100%}
.real__p.is-on{display:block}
.real__p img{display:block;width:100%;height:100%;object-fit:cover}
.real__s{position:absolute;left:12px;top:12px;z-index:2;display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:rgba(3,27,11,.84);font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1;color:#fff;white-space:nowrap;pointer-events:none}
.real__th{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px 0}
html:not(.js) .real__th{display:none}
.real__th button{flex:0 0 auto;width:48px;height:48px;padding:0;border:2px solid transparent;border-radius:var(--r);background:var(--paper-2);overflow:hidden;cursor:pointer;opacity:.7;transition:opacity .2s,border-color .2s}
.real__th button img{display:block;width:100%;height:100%;object-fit:cover}
.real__th button:hover,.real__th button[aria-pressed="true"]{opacity:1}
.real__th button[aria-pressed="true"]{border-color:var(--g-600)}
.real__th button:focus-visible{outline:2px solid var(--o-500);outline-offset:2px}
.real__c--ok .real__b{display:flex;flex:1;flex-direction:column;padding:14px 16px 16px}
.real__c--ok .real__k{margin-bottom:8px}
.real__k span{letter-spacing:.1em}
.real__t{margin:0 0 12px;font-size:1.06rem;letter-spacing:-.02em;line-height:1.3;color:var(--ink)}
.real__w{max-width:none;margin:auto 0 0;padding-top:10px;border-top:1px dashed #C2BCAF;font-size:13px;line-height:1.45;color:var(--ink-60)}
@media (max-width:389px){.real__th{gap:5px;padding-inline:10px}.real__th button{width:40px;height:40px}}
@media (prefers-reduced-motion:reduce){.real__th button{transition:none}}

/* ----- v22e, bloc 03 (document 60, 12 octobre 2026) : photos 4:5, flèches et compteur sur la photo, agrandissement ----- */

/* 27. fiches de même structure (titres alignés) : la photo en 4:5 porte l'étiquette, l'icône d'agrandissement, les flèches et le compteur */
.real__m{aspect-ratio:4/5}
.real__p{position:absolute;inset:0;cursor:zoom-in}
.real__p picture{display:block;height:100%}
.real__p:focus-visible{outline:3px solid var(--o-500);outline-offset:-3px}
.real__zi{position:absolute;right:12px;top:12px;z-index:2;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:rgba(3,27,11,.78);color:#fff;pointer-events:none}
.real__zi svg{width:16px;height:16px}
.real__nv{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:44px;height:44px;margin-top:-22px;padding:0;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(3,27,11,.74);color:#fff;cursor:pointer;transition:background-color .2s}
.real__nv--p{left:10px}
.real__nv--n{right:10px}
.real__nv:hover{background:rgba(3,27,11,.94)}
.real__nv:focus-visible{outline:3px solid var(--o-500);outline-offset:2px}
.real__nv svg{width:20px;height:20px}
.real__ct{position:absolute;right:12px;bottom:12px;z-index:2;max-width:none;margin:0;padding:6px 10px;border-radius:999px;background:rgba(3,27,11,.84);font-size:12px;font-weight:700;letter-spacing:.06em;line-height:1;color:#fff;font-variant-numeric:tabular-nums;pointer-events:none}
html:not(.js) .real__nv,html:not(.js) .real__ct{display:none}
.real__go{max-width:none;margin:18px 0 0}
@media (max-width:759px){.real__go{margin-top:10px}}
@media (prefers-reduced-motion:reduce){.real__nv{transition:none}}

/* 28. agrandissement : la photo entière (non recadrée), dans une fenêtre plein écran ; Échap, bouton ou clic sur le fond pour fermer */
html.lbx-on{overflow:hidden}
.lbx{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#031B0B;color:#fff;overflow:hidden}
.lbx::backdrop{background:#031B0B}
.lbx[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:max(12px,env(safe-area-inset-top)) clamp(12px,3vw,32px) max(16px,env(safe-area-inset-bottom))}
.lbx__h{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:1100px;margin:0 auto}
.lbx__t{max-width:none;margin:0;font-size:12.5px;font-weight:800;letter-spacing:.14em;line-height:1.3;text-transform:uppercase;color:#E2CAA9}
.lbx__f{display:flex;align-items:center;justify-content:center;min-height:0;margin:0}
.lbx__f picture{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0}
.lbx__f img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;touch-action:pan-y}
.lbx__b{display:flex;align-items:center;gap:12px;width:100%;max-width:1100px;margin:0 auto}
.lbx__c{flex:1;max-width:none;margin:0;font-size:14.5px;line-height:1.45;color:#E4ECE6;text-align:center}
.lbx__c b{display:block;margin-bottom:3px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#E2CAA9}
.lbx button{display:grid;place-items:center;flex:0 0 auto;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:background-color .2s}
.lbx button:hover{background:rgba(255,255,255,.18)}
.lbx button:focus-visible{outline:3px solid var(--o-500);outline-offset:2px}
.lbx button svg{width:22px;height:22px}
.lbx button[hidden]{display:none}
@media (prefers-reduced-motion:no-preference){.lbx[open]{animation:lbxIn .2s var(--e-out)}}
@keyframes lbxIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.lbx button{transition:none}}

/* ================= v22f (12 octobre 2026) ================= */

/* 29. go 1 : les cases « en attente » ne s'affichent qu'en relecture (?relecture) ; par défaut, même sans script, elles sont masquées */
html:not(.relecture) [data-attente],html:not(.relecture) [data-attente-bloc],html:not(.relecture) [data-attente-q]{display:none!important}
.relbar{position:fixed;left:12px;bottom:12px;z-index:60;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:8px 8px 8px 14px;border-radius:999px;background:var(--ink);color:#fff;font-size:13px;font-weight:700;line-height:1.3;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.relbar a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:#fff;color:var(--ink);font-weight:800;text-decoration:none;white-space:nowrap}
.relbar a:focus-visible{outline:2px solid var(--o-500);outline-offset:2px}
@media (max-width:899px){.relbar{bottom:calc(84px + env(safe-area-inset-bottom))}}

/* 30. bloc 03 : note d'honnêteté lisible, sans étiquette */
.real .wnote{margin-top:14px}

/* 31. bloc 01 : les trois derniers avis Google (relevés le 12 octobre 2026) */
.revs{margin-top:clamp(18px,2.4vw,28px);padding:clamp(18px,2.2vw,26px);border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.revs__h{display:grid;gap:6px;margin-bottom:16px}
@media (min-width:900px){.revs__h{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:6px 22px}}
.revs__t{margin:0;font-size:1.05rem;letter-spacing:-.02em;color:var(--ink)}
.revs__s{max-width:none;margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-60)}
.revs__l{display:grid;gap:12px;margin:0;padding:0;list-style:none}
@media (min-width:760px){.revs__l{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rev{display:grid;gap:6px;align-content:start;padding:14px 16px;border-radius:var(--r2);background:var(--paper)}
.rev__top{display:flex;align-items:center;gap:8px;margin:0}
.rev__st{display:inline-flex;gap:2px;color:var(--o-500)}
.rev__st svg{width:15px;height:15px;fill:currentColor}
.rev__nt{font-size:13px;font-weight:800;color:var(--ink)}
.rev__n{margin:0;font-size:15px;font-weight:800;color:var(--ink)}
.rev__d,.rev__w{max-width:none;margin:0;font-size:13.5px;line-height:1.45;color:var(--ink-60)}
.revs .tlink{margin-top:10px}

/* 32. go 3 : bloc 04 en accordéon au téléphone et à la tablette */
.needbtn.is-on{background:var(--g-800);padding-left:26px}
.needbtn.is-on i{transform:scaleY(1);transform-origin:top}
.needbtn.is-on svg{color:var(--o-500)}
.needbtn.is-on em{opacity:1;color:var(--o-300)}
.needs-l .needbtn.is-on{background:var(--g-50)}
.needs-l .needbtn.is-on svg{color:var(--o-700)}
.needs-l .needbtn.is-on em{color:var(--g-600)}
@media (max-width:999px){
  .needs-l .needbtn em{opacity:1;color:var(--ink-60)}
  .needs-l .needbtn.is-on em,.needs-l .needbtn[aria-expanded="true"] em{display:none}
  .needs-l .needbtn[aria-expanded="false"].is-on{background:#fff;padding-left:18px}
  .needlist>.needview{min-height:0;border-radius:0}
  .needlist>.needview .needview__img{flex:none;min-height:0;aspect-ratio:16/9}
  .needlist>.needview .needview__body{padding:20px 18px 22px}
  .needview .btns{display:grid;gap:10px}
  .needview .btns .btn{width:100%;justify-content:center}
  .needview .credit{margin-top:14px}
}

/* 33. bloc 08 : trois conseils publiés */
.tip--ok{position:relative;border:1px solid var(--line);background:#fff;transition:border-color .25s,box-shadow .25s}
.tip--ok:hover{border-color:var(--g-600);box-shadow:0 10px 30px rgba(10,79,38,.08)}
.tip--ok .tip__t a{color:inherit;text-decoration:none}
.tip--ok .tip__t a::after{content:"";position:absolute;inset:0;border-radius:var(--r2)}
.tip--ok .tip__t a:focus-visible{outline:none}
.tip--ok:focus-within{outline:2px solid var(--o-500);outline-offset:3px}
.tip__c{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--g-600)}
.tip__p{max-width:none;margin:0;font-size:14px;line-height:1.5;color:var(--ink-60)}
.tips .head__side .tlink{margin-top:8px}

/* 34. bloc 06 : toutes les communes */
.zones .wnote{display:block}
.zones .wnote b{color:var(--ink)}

/* 35. pages conseils */
.art__hd{padding-block:clamp(24px,3.6vw,52px) clamp(30px,4vw,60px)}
.art__hd .crumb{padding-block:0 18px;color:#A9BCB0}
.art__hd .crumb a{color:#DCE7E0}
.art__hd .crumb [aria-current]{color:#fff}
.art__h1{max-width:24ch;margin:6px 0 16px;font-size:clamp(1.9rem,4.2vw,3.4rem);letter-spacing:-.04em;line-height:1.04}
.art__meta{max-width:none;margin:0;font-size:13.5px;line-height:1.5;color:#B9C9BE}
.art__bd{padding-block:clamp(28px,4vw,60px) clamp(48px,6vw,96px)}
.art__c{max-width:72ch}
.art__c>h2{margin:clamp(34px,4vw,52px) 0 14px;font-size:clamp(1.35rem,2.2vw,1.75rem);letter-spacing:-.03em;line-height:1.15;color:var(--ink);scroll-margin-top:calc(var(--nav-h) + 16px)}
.art__c>h3{margin:26px 0 10px;font-size:1.12rem;letter-spacing:-.02em;color:var(--ink)}
.art__c>p,.art__c li{font-size:16px;line-height:1.65;color:#2E322D}
.art__c>p{margin:0 0 14px}
.art__c a{color:var(--g-600);font-weight:700;text-decoration:underline;text-decoration-color:var(--o-500);text-underline-offset:3px}
.art__c .bul li{font-size:15.5px;line-height:1.55}
.art__lead{font-size:clamp(1.05rem,1.3vw,1.2rem)!important;line-height:1.6!important;color:var(--ink)!important}
.art__key{margin:0 0 26px;padding:18px 20px;border-left:3px solid var(--g-600);background:#fff}
.art__kk{margin:0 0 6px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--g-600)}
.art__key p:last-child{margin:0;font-size:16px;line-height:1.6;color:var(--ink)}
.art__tw{overflow-x:auto;margin:6px 0 18px;border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.art__tw table{width:100%;border-collapse:collapse;font-size:14.5px;line-height:1.45}
.art__tw caption{padding:12px 14px 4px;text-align:left;font-size:13px;font-weight:800;color:var(--ink)}
.art__tw th,.art__tw td{padding:10px 14px;border-top:1px solid var(--line);text-align:left;vertical-align:top;color:#2E322D}
.art__tw thead th{border-top:0;font-size:12.5px;font-weight:800;color:var(--ink-60)}
.art__tw tbody th{font-weight:700;color:var(--ink)}
.art__steps{display:grid;gap:12px;margin:0 0 18px;padding:0;list-style:none;counter-reset:st}
.art__steps li{position:relative;padding:14px 16px 14px 54px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;counter-increment:st}
.art__steps li::before{content:counter(st);position:absolute;left:14px;top:13px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--g-600);color:#fff;font-size:13px;font-weight:800}
.art__check{display:grid;gap:8px;margin:0 0 18px;padding:0;list-style:none}
.art__check li{position:relative;padding:10px 14px 10px 44px;border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.art__check li::before{content:"";position:absolute;left:14px;top:12px;width:18px;height:18px;border:2px solid var(--g-600);border-radius:3px}
.art__fig{margin:6px 0 22px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.art__fig figcaption{margin-bottom:12px;font-size:14px;font-weight:800;color:var(--ink)}
.art__bars{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.art__bars li{display:grid;grid-template-columns:minmax(0,13em) minmax(0,1fr) 3.4em;align-items:center;gap:12px;font-size:14px;color:#2E322D}
.art__bars i{display:block;height:12px;width:var(--w);min-width:4px;border-radius:2px;background:var(--ink-20)}
.art__bars .is-key i{background:var(--g-600)}
.art__bars .is-key span,.art__bars .is-key b{font-weight:800;color:var(--ink)}
.art__bars b{font-weight:700;text-align:right}
@media (max-width:520px){.art__bars li{grid-template-columns:minmax(0,1fr) 3.2em}.art__bars i{grid-column:1/-1;grid-row:2}}
.art__fs{max-width:none;margin:12px 0 0;font-size:12.5px;color:var(--ink-60)}
.art__faq{margin-top:clamp(36px,4vw,56px)}
.art__faq>h2,.art__src>h2{margin:0 0 14px;font-size:clamp(1.35rem,2.2vw,1.75rem);letter-spacing:-.03em;color:var(--ink)}
.art__src{margin-top:clamp(34px,4vw,52px)}
.art__src ol{display:grid;gap:8px;margin:0 0 14px;padding-left:20px;font-size:14px;line-height:1.5;color:var(--ink-60)}
.art__note{max-width:none;margin:0;padding:14px 16px;border-radius:var(--r2);background:var(--paper-2);font-size:13.5px;line-height:1.55;color:var(--ink-60)}
.art__note a{color:var(--g-600);font-weight:700}
.art__side .pbox{display:grid;gap:12px}
.art__bh{margin:0;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-2)}
.pbox--dark .art__bh{color:var(--o-300)}
.art__bp{max-width:none;margin:0;font-size:14px;line-height:1.55;color:var(--ink-60)}
.pbox--dark .art__bp{color:#C9D6CD}
.art__bp a{color:var(--g-600);font-weight:700}
.pbox--dark .tlink{color:var(--o-300)}
.art__more{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.art__more a{font-size:14.5px;font-weight:700;line-height:1.35;color:var(--g-600);text-decoration:none}
.art__more a:hover{text-decoration:underline}
@media (max-width:999px){.art__side{position:static}}
.art__tw:focus-visible{outline:2px solid var(--o-500);outline-offset:3px}
.art__c>p,.art__key p{max-width:none}
.needview[hidden]{display:none}

/* ================= v22g (13 octobre 2026) ================= */

/* 36. bloc 04 : « Voir » masqué sur le besoin déjà choisi (ordinateur) ; « Visuel produit » décollé des boutons */
.needs-l .needbtn[aria-selected='true'] em{opacity:0}
.needs-l .needview .credit{margin-top:18px}

/* ================= v22i (13 octobre 2026) — lot 2 : baies et coulissants, fenêtres ajoutées ================= */

/* 37. visuel absent : pictogramme décoratif et mention, jamais une image de substitution */
.fp-ph{display:grid;justify-items:center;align-content:center;gap:8px;width:100%;height:150px;color:var(--ink-40);text-align:center}
.fp-ph svg{width:44px;height:44px}
.fp-ph span{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
@media (min-width:560px){.fp-ph{height:200px}}
@media (min-width:1200px){.fp-ph{height:220px}}
.sy-sl .fp-ph{position:absolute;inset:0;height:auto}
.sy-sl .fp-ph svg{width:72px;height:72px}
.sy-bar__m .fp-ph{height:auto;gap:0}.sy-bar__m .fp-ph svg{width:26px;height:26px}.sy-bar__m .fp-ph span{display:none}

/* 38. cartes de produit : ligne du type d'ouverture au-dessus du nom */
.fp-card__t{max-width:none;margin:0 0 5px;font-size:10px;font-weight:800;letter-spacing:.16em;line-height:1.3;text-transform:uppercase;color:var(--o-700)}
.fp-card__t ~ .fp-card__f{display:grid;gap:3px}
.fp-card__t ~ .fp-card__f li+li{padding-left:0;border-left:0}
.fp-card__m .fp-ph{height:182px}
@media (min-width:560px){.fp-card__m .fp-ph{height:232px}}
@media (min-width:1200px){.fp-card__m .fp-ph{height:252px}}

/* 39. page Baies et coulissants : types d'ouverture (boutons qui filtrent la liste) */
.gm-types{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.gm-type{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:clamp(16px,1.8vw,22px);border:1px solid var(--line);border-radius:var(--r2);background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .25s var(--e-out),box-shadow .25s var(--e-out)}
.gm-type__n{font-size:1.12rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}
.gm-type__n b{margin-left:6px;font-size:11px;font-weight:800;letter-spacing:.1em;color:var(--o-700);vertical-align:2px}
.gm-type__d{font-size:13.5px;line-height:1.5;color:var(--ink-60)}
.gm-type__go{display:inline-flex;align-items:center;gap:7px;min-height:32px;margin-top:auto;font-size:13px;font-weight:700;color:var(--t-700)}
.gm-type__go svg{width:15px;height:15px;transition:transform .3s var(--e-out)}
.gm-type:hover{border-color:var(--g-600);box-shadow:0 14px 34px -26px rgba(4,36,15,.45)}
.gm-type:hover .gm-type__go svg{transform:translateX(4px)}
.gm-type:focus-visible{outline:2px solid var(--o-500);outline-offset:3px}
@media (min-width:640px){.gm-types{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.gm-types{grid-template-columns:repeat(5,minmax(0,1fr))}}
.gm .fp-chip b{color:var(--ink-60)}
.gm .fp-chip[aria-pressed="true"] b{color:rgba(255,255,255,.85)}

/* 40. fiche produit : visuel seul, citation « usage intérieur », valeurs longues, source sous chaque valeur */
.pr-gal{overflow:hidden}
.pr-int{max-width:52ch;margin:14px 0 0;padding:10px 12px;border-left:2px solid var(--o-500);background:#fff;font-size:13px;line-height:1.5;color:var(--ink-60)}
.pr-int b{color:var(--ink)}
.sy-dl>div.is-long{grid-template-columns:minmax(0,1fr)}
.sy-dl>div.is-long .sy-dl__v{font-size:14px;font-weight:600;line-height:1.5;text-align:left}
.pr-src{display:block;margin-top:2px;font-size:12px;color:var(--ink-60)}
.sy-dl__c:has(.pr-src:only-child){margin-top:-2px}

/* 40 bis. crédit du visuel des fiches : contraste suffisant (AA) */
.sy-gal .credit{color:var(--ink-60)}

/* 41. page Fenêtres : autre système du matériau, sans valeur thermique publiée */
.fp-also{max-width:72ch;margin:18px 0 0;padding:14px 16px;border:1px dashed var(--ink-20);border-radius:var(--r2);font-size:13.5px;line-height:1.55;color:var(--ink-60)}
.fp-also a{font-weight:700;color:var(--t-700)}

/* ================= v23 (13 octobre 2026) : produits par modèle — portes d’entrée ================= */

/* 42. images des modèles : une case de planche, proportions du rendu conservées */
.md-img{display:block;width:100%;background-repeat:no-repeat;background-color:transparent}

/* 43. cartes de collection (page famille) */
.md-colls{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:640px){.md-colls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.md-colls{grid-template-columns:repeat(4,minmax(0,1fr))}.md-colls--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.md-coll{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r2);background:#fff;color:var(--ink);text-decoration:none;overflow:hidden;
  transition:border-color .3s var(--e-out),box-shadow .3s var(--e-out),transform .3s var(--e-out)}
.md-coll:hover{border-color:var(--ink-20);box-shadow:0 18px 40px -26px rgba(3,27,11,.45);transform:translateY(-2px)}
.md-coll__m{display:grid;place-items:center;height:230px;padding:18px;background:linear-gradient(170deg,#F2F1EC 0%,#E3E7E1 100%)}
.md-coll__m picture,.md-coll__m img{display:block;max-height:194px;width:auto;max-width:100%;object-fit:contain}
.md-coll__c{display:flex;flex-direction:column;flex:1 1 auto;gap:6px;padding:16px 16px 6px}
.md-coll__k{font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--o-700)}
.md-coll__n{font-size:1.35rem;font-weight:800;letter-spacing:-.035em;line-height:1.1}
.md-coll__p{font-size:13.5px;line-height:1.5;color:var(--ink-60)}
.md-coll__f{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:auto;padding-top:8px;font-size:12.5px;color:var(--ink-60)}
.md-coll__f b{color:var(--ink);font-weight:800}
.md-coll__go{display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:13px;font-weight:700;color:var(--g-600)}
.md-coll__go svg{width:15px;height:15px;transition:transform .3s var(--e-out)}
.md-coll:hover .md-coll__go svg{transform:translateX(3px)}
.md-coll:focus-visible{outline:2px solid var(--g-600);outline-offset:3px}

/* 44. grille et cartes de modèles */
.md-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media (min-width:600px){.md-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}
@media (min-width:900px){.md-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1240px){.md-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.md-card{position:relative;display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:var(--r2);background:#fff;overflow:hidden;
  transition:border-color .3s var(--e-out),box-shadow .3s var(--e-out),transform .3s var(--e-out)}
.md-card:hover{border-color:var(--ink-20);box-shadow:0 16px 34px -24px rgba(3,27,11,.45);transform:translateY(-2px)}
.md-card__m{display:flex;justify-content:center;padding:16px 14% 10px;background:linear-gradient(172deg,#F3F2EE 0%,#E2E7E0 100%)}
.md-card__c{display:flex;flex-direction:column;gap:2px;padding:11px 12px 12px}
.md-card__k{margin:0;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--o-700)}
.md-card__n{font-size:1.02rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}
.md-card__n a{color:inherit;text-decoration:none}
.md-card__n a::after{content:"";position:absolute;inset:0;z-index:1}
.md-card__n a:focus-visible{outline:none}
.md-card:has(.md-card__n a:focus-visible){outline:2px solid var(--g-600);outline-offset:2px}
.md-card__f,.md-card__d{margin:0;font-size:12px;line-height:1.45;color:var(--ink-60)}
.md-card__d{font-variant-numeric:tabular-nums}

/* 45. filtres : recherche par numéro */
.md-q{min-height:36px;width:min(180px,100%);padding:0 12px;border:1px solid var(--ink-20);border-radius:var(--r);background:#fff;font:inherit;font-size:13px}
.md-q:focus-visible{outline:2px solid var(--g-600);outline-offset:1px}

/* 46. présentation d’une collection */
.md-intro{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start}
@media (min-width:1000px){.md-intro{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}}
.md-intro__m{position:relative;min-width:0}
.md-intro__amb img{display:block;width:100%;height:auto;aspect-ratio:auto;border-radius:var(--r2)}
.md-intro__r{position:absolute;right:14px;bottom:44px;width:min(30%,170px);padding:10px;border-radius:var(--r2);background:rgba(247,245,241,.94);box-shadow:0 14px 32px -18px rgba(3,27,11,.5)}
.md-intro__r img{display:block;width:100%;height:auto}
.md-intro__c{min-width:0}
.md-intro__c .d4{margin-bottom:14px}
.md-intro__cp{display:flex;align-items:center;gap:14px;margin:18px 0 0}
.md-intro__cp img{width:110px;height:auto}
.md-intro__cp figcaption{font-size:12px;color:var(--ink-60)}
.md-intro__l{display:flex;flex-wrap:wrap;align-items:center;gap:0 18px;margin:12px 0 0;font-size:13px;color:var(--ink-60)}
.md-intro__plus{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:clamp(18px,2.4vw,30px)}
.md-intro__v{margin:0;padding:12px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;text-align:center}
.md-intro__v img{display:block;max-height:220px;width:auto;margin:0 auto}
.md-intro__v figcaption{margin-top:8px;font-size:12px;font-weight:600;color:var(--ink-60)}
.md-facts{margin:0}
.md-facts>div{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:4px 16px;padding:11px 0;border-top:1px solid var(--line)}
.md-facts>div:first-child{border-top:0;padding-top:2px}
.md-facts dt{font-size:13.5px;font-weight:700;line-height:1.4}
.md-facts dd{margin:0;font-size:13.5px;line-height:1.5;color:var(--ink-60)}
.md-p{display:inline-block;margin-left:8px;padding:1px 6px;border:1px solid var(--line);border-radius:var(--r);font-size:10.5px;font-weight:700;color:var(--ink-60);white-space:nowrap;vertical-align:1px}
@media (max-width:520px){.md-facts>div{grid-template-columns:minmax(0,1fr)}}

/* 47. motifs emboutis */
.md-mots{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px;margin:0;padding:0;list-style:none}
.md-mot{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;min-height:44px;padding:8px 8px 6px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;cursor:pointer;
  font-size:12px;font-weight:700;color:var(--ink-60);font-variant-numeric:tabular-nums;transition:border-color .2s,box-shadow .2s}
.md-mot:hover{border-color:var(--g-600);box-shadow:0 8px 18px -14px rgba(3,27,11,.5)}
.md-mot .md-img{width:76%}
.md-mots--l{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.md-mots--l .md-mot .md-img{width:92%}
.md-dlg{width:min(420px,calc(100vw - 32px));padding:0;border:0;border-radius:var(--r2);background:#fff;color:var(--ink);box-shadow:0 30px 80px -30px rgba(3,27,11,.6)}
.md-dlg::backdrop{background:rgba(3,27,11,.55)}
.md-dlg__in{padding:20px 20px 18px}
.md-dlg__h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.md-dlg__h h2{font-size:1.25rem}
.md-dlg__x{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;font-size:18px;cursor:pointer}
.md-img--big{width:min(52%,190px);margin:4px auto 12px}

/* 48. fiche d’un modèle */
.md-stage{position:relative;display:grid;place-items:center;min-height:clamp(380px,46vw,620px);padding:clamp(22px,3vw,40px) 12%;border:1px solid var(--line);border-radius:var(--r2);
  background:radial-gradient(120% 70% at 50% 100%,#DCE2DA 0%,rgba(220,226,218,0) 60%),linear-gradient(180deg,#F6F5F1 0%,#ECEFE9 100%)}
.md-img--hero{width:auto;height:clamp(330px,40vw,540px);max-width:100%}
.md-faces{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.md-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:10px;font-size:13px}
.md-nav__a{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-weight:700;color:var(--t-700);text-decoration:none}
.md-nav__a[rel=next]{justify-self:end}
.md-nav__n{font-size:12px;color:var(--ink-60);font-variant-numeric:tabular-nums}
.md-dims{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.md-dims th,.md-dims td{padding:11px 10px 11px 0;border-top:1px solid var(--line);text-align:left;vertical-align:top}
.md-dims thead th{border-top:0;padding-top:2px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-60)}
.md-dims tbody th{font-weight:700}
@media (max-width:520px){.md-dims{font-size:13px}.md-dims th,.md-dims td{padding-right:8px}}
.md-sys{margin:14px 0 0;font-size:14px;color:var(--ink-60)}
.md-sys a{color:var(--t-700);font-weight:700}
.sy-kf[data-n="3"] .sy-kf__s{font-size:clamp(.98rem,1.2vw,1.12rem)}

/* 49. fil d’Ariane sur fond sombre (pages de modèles) */
.on-dark .crumb{color:#A9BCB0}
.on-dark .crumb a:hover{color:#fff}
.on-dark .crumb li+li::before{color:#6F8577}
.on-dark .crumb [aria-current]{color:#fff}
.ct-hero nav.crumb{padding-block:0 6px}
.ct-hero nav.crumb a,.ct-hero nav.crumb [aria-current]{display:inline-flex;align-items:center;min-height:44px}
.md-stage+.md-faces+.credit,#moCredit{color:var(--ink-60)}


/* ================= v24 (13 octobre 2026) : rendus 3D d'illustration des fenêtres ================= */
/* 50. cartes : le rendu occupe toute la zone image */
.fp-card__m--3d{background:#CFCCC5}
.fp-card__m--3d picture{padding:0;width:100%;height:100%}
.fp-card__m--3d img{width:100%;height:182px;object-fit:cover;object-position:50% 50%;transform:none}
@media (max-width:559px){.fp-card__m--3d img{object-position:47% 50%;transform:scale(.9)}.fp-card__3d{display:none}}
@media (min-width:560px){.fp-card__m--3d img{height:232px}}
@media (min-width:1024px){.fp-card__m--3d img{height:252px}}
@media (hover:hover){.fp-card:hover .fp-card__m--3d img{transform:scale(1.05)}}
.fp-card__3d{position:absolute;right:8px;top:8px;padding:5px 7px 4px;border-radius:var(--r);background:rgba(255,255,255,.9);font-size:9px;font-weight:800;letter-spacing:.14em;line-height:1;color:var(--g-600)}
/* 51. fiche : première vue */
.sy-sl--f3d{background:#CFCCC5}
.sy-sl--f3d img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.sy-th--f3d .sy-th__m img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}


/* ================= v25 (13 octobre 2026) : vue 3D interactive et couleurs ================= */
/* 52. section de la fiche */
.sy-3d__g{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(18px,2.4vw,36px);margin-top:clamp(22px,3vw,40px)}
@media (min-width:1000px){.sy-3d__g{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:start}}
.sy-3d__v{position:relative;aspect-ratio:4/3;border:1px solid var(--line);border-radius:var(--r2);background:#D9D6CF;overflow:hidden}
.sy-3d__v.is-on{touch-action:none}
.sy-3d__poster,.sy-3d__poster picture{position:absolute;inset:0;display:block}
.sy-3d__poster img{width:100%;height:100%;object-fit:cover}
.sy-3d__go{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:inline-flex;white-space:nowrap;align-items:center;gap:10px;min-height:48px;padding:0 20px;border:0;border-radius:999px;background:var(--g-600);color:#fff;font:inherit;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 14px 30px -14px rgba(3,27,11,.7)}
.sy-3d__go svg{width:20px;height:20px}
.sy-3d__go:focus-visible{outline:2px solid var(--o-300);outline-offset:3px}
.sy-3d__go.is-load{background:#3E5446;cursor:progress}
.sy-3d__hint,.sy-3d__err{position:absolute;left:12px;bottom:12px;margin:0;padding:6px 10px;border-radius:var(--r);background:rgba(3,27,11,.78);font-size:12px;font-weight:600;color:#E3EAE5}
.sy-3d__err{right:12px}
.sy-3d__vues{display:flex;flex-wrap:wrap;gap:6px}
.sy-3d__vues button,.sy-3d__tabs button{min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.sy-3d__vues button[aria-pressed=true],.sy-3d__tabs button[aria-selected=true]{border-color:var(--g-600);background:var(--g-600);color:#fff}
.sy-3d__tabs button span{margin-left:4px;font-size:11px;font-weight:600;opacity:.7}
.sy-3d__vues button:focus-visible,.sy-3d__tabs button:focus-visible,.sy-3d__c:focus-visible{outline:2px solid var(--g-600);outline-offset:2px}
.sy-3d__sel{display:flex;align-items:baseline;gap:10px;margin:20px 0 12px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}
.sy-3d__sel b{font-size:16px;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.sy-3d__tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.sy-3d__sw{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;max-height:330px;overflow:auto;padding:2px}
.sy-3d__c{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;cursor:pointer;text-align:left}
.sy-3d__c span{display:block;height:38px;border-radius:calc(var(--r2) - 3px);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.sy-3d__c b{font-size:10.5px;font-weight:700;line-height:1.2;color:var(--ink-60);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sy-3d__c[aria-pressed=true]{border-color:var(--g-600);box-shadow:0 0 0 1px var(--g-600)}
.sy-3d__src{margin:14px 0 0;font-size:12px;line-height:1.5;color:var(--ink-60)}


/* ================= v26 (13 octobre 2026) : choix de la poignée ================= */
/* 53. poignées */
.sy-3d__poi{margin-top:22px;padding-top:6px;border-top:1px solid var(--line)}
.sy-3d__pl{display:grid;grid-template-columns:repeat(auto-fill,minmax(66px,1fr));gap:8px}
/* v50 : photo du catalogue de la poignée choisie */
.sy-3d__ph{display:flex;align-items:center;gap:16px;margin:0 0 14px;padding:10px 14px 10px 10px;border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.sy-3d__phi{flex:none;display:block;height:172px;background-repeat:no-repeat;background-color:#fff}
.sy-3d__ph figcaption{display:flex;flex-direction:column;gap:4px;min-width:0}
.sy-3d__ph b{font-size:16px;line-height:1.25;color:var(--ink)}
.sy-3d__ph span{font-size:13.5px;color:var(--ink-60)}
.sy-3d__ph small{margin-top:6px;font-size:12px;line-height:1.45;color:var(--ink-60)}
@media(max-width:520px){.sy-3d__phi{height:140px}}
.sy-3d__h{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-height:44px;padding:6px 4px 6px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;cursor:pointer}
.sy-3d__hi{display:block;width:48px;height:84px;background-repeat:no-repeat;background-size:768px 84px}
.sy-3d__h b{max-width:100%;font-size:10px;font-weight:700;line-height:1.2;color:var(--ink-60);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sy-3d__h i{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--o-700)}
.sy-3d__h[aria-pressed=true]{border-color:var(--g-600);box-shadow:0 0 0 1px var(--g-600);background:#fff}
.sy-3d__h:focus-visible{outline:2px solid var(--g-600);outline-offset:2px}


/* ================= v27 (13 octobre 2026) : baies et coulissants en 3D ================= */
/* 54. fiche produit : galerie à deux vues, poignées de coulissant */
.pr-gal .sy-sl--f3d img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover}
.sy-sl.pr-none{background:linear-gradient(165deg,#E9EDE8,#D2D9D3)}
.sy-3d__hi{background-repeat:no-repeat}
.sy-3d__pl--c{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}
.sy-3d__h small{font-size:9.5px;font-weight:600;line-height:1.2;color:var(--ink-60)}


/* ================= v28 (13 octobre 2026) : volets roulants et brise-soleil ================= */
/* 55. réglage du tablier ou des lames dans la vue 3D */
.sy-3d__reg{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:14px}
.sy-3d__reg>span{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-60)}


/* ================= v30 (13 octobre 2026) : portes de garage, portails et clôtures ================= */
/* 56. dessins assortis de la page des portes de garage */
.gm-ds{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin:0;padding:0;list-style:none}
.gm-ds li{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.gm-ds img{display:block;width:100%;height:auto;padding:12px 10px 4px;object-fit:contain}
.gm-ds p{margin:0;padding:10px 14px 14px;font-size:13px;line-height:1.4;color:var(--ink-60)}
.gm-ds b{display:block;margin-bottom:2px;font-size:15px;font-weight:800;color:var(--ink)}
.era-blanc .sy-sl--prod,.era-blanc .sy-th__m,.era-blanc .fp-card__m{background:#fff}
.sy-3d__note{margin-top:10px;padding:8px 10px;border-left:3px solid var(--g-600);background:var(--g-50,#F0F6F1);color:var(--ink)}

/* v41 : très petits écrans (moins de 380 px) — un libellé de bouton peut passer à la ligne au lieu d’élargir la page */
@media (max-width:379px){.btn{white-space:normal;text-align:center;line-height:1.25;padding-inline:18px}}
/* v41 : en-tête sous 390 px — « ECO RÉNOV ALSACE » sur deux lignes, pour ne plus passer sous le bouton « Devis » */
@media (max-width:389px){.nav .brand__txt em{white-space:normal;max-width:7.4em;line-height:1.08}}

/* ===== v45 : harmonies de couleurs, ligne haut de gamme ===== */
.hx-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.hx-c{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r2);background:#fff;overflow:hidden}
.hx-c__m{aspect-ratio:16/10;display:grid;place-items:center;padding:12px;background:#fff;border-bottom:1px solid var(--line)}
.hx-c__m img{max-width:100%;max-height:100%;object-fit:contain}
.hx-c__b{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px}
.hx-c h3{font-size:17px;letter-spacing:-.02em;line-height:1.3}
.hx-c__b>p{margin:0 0 6px;font-size:14.5px;line-height:1.5;color:var(--fg-2)}
.hx-c details{border-top:1px solid var(--line)}
.hx-c summary{display:flex;align-items:center;min-height:44px;cursor:pointer;font-size:14px;font-weight:700;color:var(--ink)}
.hx-c dl{display:grid;gap:5px;margin:0 0 8px}
.hx-c dl div{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;line-height:1.4}
.hx-c dt{color:var(--fg-2)}.hx-c dd{margin:0;font-weight:600;text-align:right}
.hx-c__s{margin:0 0 10px;font-size:12.5px;color:var(--fg-2)}
.ex-l{display:grid;gap:12px;margin:0;padding:0;list-style:none;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}
.ex-l a{display:flex;flex-direction:column;gap:6px;min-height:44px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--r2);background:#fff;color:var(--ink);text-decoration:none;transition:border-color .2s}
.ex-l a:hover{border-color:var(--g-600)}.ex-l a:focus-visible{outline:2px solid var(--t-600);outline-offset:2px}
.ex-l span{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-2)}
.ex-l b{font-size:18px;letter-spacing:-.02em}.ex-l svg{width:18px;height:18px;color:var(--g-600)}

/* ===== v46 : options et accessoires ===== */
.ax-g{display:grid;gap:12px}
.ax-d{border:1px solid var(--line);border-radius:var(--r2);background:#fff}
.ax-d summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 18px;cursor:pointer;font-size:16px;font-weight:700;color:var(--ink)}
.ax-d summary::-webkit-details-marker{display:none}
.ax-d summary:focus-visible{outline:2px solid var(--t-600);outline-offset:2px}
.ax-d__n{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--o-700)}
.ax-d__x{width:18px;height:18px;margin-left:auto;flex:none;color:var(--g-600);transition:transform .2s}
.ax-d[open] .ax-d__x{transform:rotate(45deg)}
.ax-d__i{margin:0 18px 12px;max-width:72ch;font-size:14.5px;line-height:1.5;color:var(--fg-2)}
.ax-l{display:grid;gap:10px;margin:0;padding:0 18px 18px;list-style:none;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.ax-l>li{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper)}
.ax-l b{display:block;font-size:14.5px;line-height:1.35}
.ax-l span{display:block;margin-top:4px;font-size:13.5px;line-height:1.45;color:var(--fg-2)}
.ax-p{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.ax-p li{padding:3px 8px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12.5px;line-height:1.4}
.ax-sec .credit{margin-top:14px}
@media (prefers-reduced-motion:reduce){.ax-d__x{transition:none}}

/* ==================================================================
   v59 — lot de corrections du test complet (doc 113)
   ================================================================== */
/* n10 : liens des réponses de la FAQ — cible de 24 px au moins, sans changer la ligne */
.faq__a a{padding-block:3px}
/* n11 : panneau latéral des conseils — plus collé quand l'écran fait moins de 760 px de haut */
@media (max-height:759px){.art__side.pside{position:static}}
/* n13 : nom de choix du rendez-vous (n'est plus un titre) ; encadré du comparateur passé en h2 */
span.card__n{display:block}
.pbox h2{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-2);margin-bottom:12px}
.pbox--dark h2{color:var(--o-300)}
/* M4 c : blocs construits à partir des données — masqués sans décalage tant que le signal « era-pret » n'est pas là (6 s au plus, même sans script) */
@keyframes era-voir{to{visibility:visible}}
html.js:not(.era-pret) .sy-info,
html.js:not(.era-pret) :is(#syBody,#prBody) > section,
html.js:not(.era-pret) :is(#gHero,#fHero) > .wrap,
html.js:not(.era-pret) :is(#gHero,#fHero) ~ section,
html.js:not(.era-pret) .ct-hero .btns,
html.js:not(.era-pret) .ct-zone,
html.js:not(.era-pret) #gBody ~ section,
html.js:not(.era-pret) [data-donnees]{visibility:hidden;animation:era-voir 0s 6s forwards}

/* M3 : messages d'erreur de la fenêtre « Être rappelé » en texte courant (et non en petites capitales du libellé) */
.fld .err,.chk .err{text-transform:none;letter-spacing:0;font-weight:600;font-size:13px;margin-bottom:0}
