/* Voltesia : feuille de style commune */
:root{
  --bg:#081528; --paper:#0D1D37; --ink:#F3EFE5; --muted:#A4AFC4; --line:#1F3155;
  --accent:#D4A64A; --accent-hi:#E9C677; --err:#F08A7E; --ok:#8FCB9F;
  --night:#050E1D; --on-night:#F3EFE5; --on-night-muted:#93A0B8; --night-line:#1A2A49;
  --hdr:#FFFFFF; --hdr-ink:#0B1A33; --hdr-muted:#56627A; --hdr-line:#E4E1D8;
  color-scheme:dark;
  --serif:"Cormorant Garamond", "Didot", "Bodoni 72", Georgia, serif;
  --sans:"Jost", "Futura", "Avenir Next", "Helvetica Neue", Arial, sans-serif;
  --wrap:1280px; --hh:84px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;font-size:16.5px;line-height:1.75;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:40;background:var(--night)}
a{color:inherit}
p{margin:0}
img{display:block;max-width:100%}
h1,h2,h3{font-family:var(--serif);font-weight:300;margin:0;line-height:1.04;letter-spacing:-.005em;text-wrap:balance}
h2{font-size:clamp(40px,5.2vw,72px)}
h3{font-size:clamp(24px,2.2vw,30px);font-weight:400}
em{font-style:italic}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.label{font-size:11px;font-weight:400;letter-spacing:.28em;text-transform:uppercase;color:var(--muted)}
.label.acc{color:var(--accent)}
.lead{font-size:17px;color:var(--muted);max-width:52ch}
section{padding-block:clamp(96px,12vw,170px)}
.sec-head{display:grid;grid-template-columns:1.2fr .8fr;gap:32px 80px;align-items:end;margin-bottom:clamp(44px,5vw,72px)}
.sec-head>div{display:grid;gap:22px;min-width:0}
.sec-head .lead{border-bottom:1px solid var(--line);padding-bottom:22px}
@media (max-width:860px){.sec-head{grid-template-columns:1fr}}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.arrow{display:inline-block;transition:transform .25s}
a:hover .arrow,button:hover .arrow{transform:translate(3px,-3px)}

.btn{display:inline-flex;align-items:center;gap:14px;font:400 11.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:19px 30px;border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background .25s,color .25s,border-color .25s}
.btn-dark{background:var(--accent);color:var(--night)}
.btn-dark:hover{background:var(--accent-hi);color:var(--night)}
.btn-outline{border-color:color-mix(in srgb,var(--ink) 35%,transparent)}
.btn-outline{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-outline:hover{background:var(--ink);color:var(--paper)}
.btn-light-outline{border-color:color-mix(in srgb,var(--on-night) 50%,transparent);color:var(--on-night);background:transparent}
.btn-light-outline:hover{background:var(--on-night);color:var(--night)}
.btn-text{background:none;border:0;padding:17px 0;color:var(--muted)}
.btn-text:hover{color:var(--ink)}

/* En-tête */
.mark{width:34px;height:34px;flex:none}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:36px;height:var(--hh)}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo .wm{display:grid;line-height:1}
.logo b{font-family:var(--serif);font-weight:400;font-size:25px;letter-spacing:.32em}
.logo small{font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:5px}
nav.main{display:flex;gap:32px;margin-left:auto}
nav.main a{text-decoration:none;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);transition:color .2s}
nav.main a:hover{color:var(--ink)}
.top .btn{padding:14px 20px;white-space:nowrap}
@media (max-width:1060px){nav.main{display:none}.top .btn{margin-left:auto}}
@media (max-width:560px){:root{--hh:70px}.top .wrap{height:70px;gap:16px}.logo b{font-size:20px;letter-spacing:.24em}.logo small{display:none}.top .btn{padding:12px 14px;letter-spacing:.14em;font-size:10.5px}.top .btn .arrow{display:none}}

/* Accueil */
.hero{position:relative;padding:0;background:var(--paper);border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);align-items:center;padding-block:clamp(56px,7vw,110px)}
.hero-copy{display:grid;gap:24px;min-width:0}
.hero h1{font-size:clamp(46px,4.9vw,76px);line-height:1;letter-spacing:-.01em}
.hero h1 em{color:var(--accent)}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:15px;color:var(--muted)}
.checks li{display:flex;gap:12px;align-items:center}
.checks li::before{content:"";width:22px;height:1px;flex:none;background:var(--accent)}
.hero-photo{margin:0;position:relative;aspect-ratio:3/2;max-width:100%;overflow:hidden}
.hero-photo::after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.45);pointer-events:none}
.hero-photo{outline:1px solid var(--line);outline-offset:10px}
@media (max-width:960px){.hero-photo{outline:0}}
@media (max-width:560px){.hero-ctas .btn{flex:1 1 100%;justify-content:center}}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-photo figcaption{position:absolute;left:30px;bottom:28px;color:#fff;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;text-shadow:0 1px 12px rgba(0,0,0,.5)}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr}.hero-photo{order:-1}}

/* Barre d'estimation */
.quick-band{background:var(--night);color:var(--on-night);padding:0}
.quick{display:grid;grid-template-columns:auto minmax(170px,1.1fr) minmax(220px,1.3fr) minmax(140px,.8fr) auto;gap:18px 36px;align-items:end;padding-block:34px}
.quick .q-title{display:grid;gap:2px;align-self:center;padding-right:8px}
.quick .q-title b{font-family:var(--serif);font-weight:300;font-size:30px;line-height:1.1;white-space:nowrap}
.quick .q-title span{font-size:12.5px;color:color-mix(in srgb,var(--on-night) 65%,transparent)}
.quick .f label{color:color-mix(in srgb,var(--on-night) 65%,transparent)}
.quick .f input,.quick .f select{color:var(--on-night);border-bottom-color:color-mix(in srgb,var(--on-night) 30%,transparent)}
.quick .f input:focus,.quick .f select:focus{border-bottom-color:var(--on-night)}
.quick .f select option{background:var(--night);color:var(--on-night)}
.quick .seg{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.quick .seg label{position:relative;text-transform:none;letter-spacing:.02em;color:inherit}
.quick .seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.quick .seg span{display:flex;justify-content:center;align-items:center;min-height:44px;padding:0 12px;border:1px solid color-mix(in srgb,var(--on-night) 30%,transparent);font-size:14.5px;transition:all .2s}
.quick .seg input:checked+span{background:var(--accent);color:var(--night);border-color:var(--accent)}
.quick .seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.quick .btn{background:transparent;border-color:var(--accent);color:var(--on-night);white-space:nowrap}
.quick .btn:hover{background:var(--accent);color:#fff}
@media (max-width:1100px){.quick{grid-template-columns:1fr 1fr}.quick .q-title{grid-column:1/-1}.quick .btn{justify-content:center}}
@media (max-width:560px){.quick{grid-template-columns:1fr}}

/* Garanties */
.trust{background:var(--paper);border-bottom:1px solid var(--line);padding:0}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.t-item{display:flex;gap:18px;align-items:flex-start;padding:34px 24px 34px 0;min-width:0}
.t-item+.t-item{padding-left:28px;border-left:1px solid var(--line)}
.t-item svg{width:28px;height:28px;flex:none;color:var(--accent);stroke-width:1.2}
.t-item b{display:block;font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.2}
.t-item span{font-size:14px;color:var(--muted)}
@media (max-width:960px){.trust .wrap{grid-template-columns:1fr 1fr}.t-item:nth-child(3){border-left:0;padding-left:0}.t-item:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:520px){.trust .wrap{grid-template-columns:1fr}.t-item+.t-item{border-left:0;padding-left:0;border-top:1px solid var(--line)}}

/* Visite : on entre dans la maison en faisant défiler */
.journey{position:relative;height:560vh;padding:0;background:var(--night);color:#fff}
.j-stage{position:sticky;top:calc(var(--hh) + env(safe-area-inset-top,0px));height:calc(100vh - var(--hh));height:calc(100svh - var(--hh));overflow:hidden}
.layer{position:absolute;inset:0;opacity:0;will-change:opacity,transform}
.layer:first-child{opacity:1}
.layer img{width:100%;height:100%;object-fit:cover}
.layer.salon img{object-position:center 10%}
.j-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,14,29,.62) 0%,rgba(5,14,29,.25) 45%,rgba(5,14,29,0) 70%),linear-gradient(180deg,rgba(5,14,29,.45) 0%,rgba(5,14,29,0) 24%,rgba(5,14,29,0) 42%,rgba(5,14,29,.82) 100%);pointer-events:none}
.j-text{position:absolute;inset:auto 0 0 0;z-index:2;padding-bottom:clamp(36px,6vw,72px)}
.j-text .wrap{position:relative;min-height:clamp(250px,34vw,400px)}
.chap{position:absolute;left:max(20px,env(safe-area-inset-left,0px));right:max(20px,env(safe-area-inset-right,0px));bottom:0;display:grid;gap:18px;max-width:880px;opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s;pointer-events:none}
.chap.on{opacity:1;transform:none;pointer-events:auto}
.chap .label{color:rgba(255,255,255,.85)}
.chap h1{font-size:clamp(44px,6.2vw,100px);line-height:.98;letter-spacing:-.02em;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.chap h2{font-size:clamp(36px,5vw,72px);text-shadow:0 2px 30px rgba(0,0,0,.25)}
.chap p.d{font-size:17px;color:rgba(255,255,255,.88);max-width:54ch}
.chap .aid{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-hi)}
.j-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.btn-white{background:var(--accent);color:var(--night)}
.btn-white:hover{background:var(--accent-hi);color:var(--night)}
.btn-glass{border-color:rgba(255,255,255,.55);color:#fff;background:transparent}
.btn-glass:hover{background:#fff;color:var(--night)}
.rooms{position:absolute;z-index:3;right:max(20px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);list-style:none;margin:0;padding:0;display:grid;gap:4px}
.rooms button{background:none;border:0;color:rgba(255,255,255,.6);font:500 11px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:8px 0;cursor:pointer;width:100%}
.rooms button::after{content:"";width:22px;height:1px;background:currentColor;transition:width .3s}
.rooms button:hover,.rooms button[aria-current="true"]{color:#fff}
.rooms button[aria-current="true"]::after{width:44px}
.scroll-cue{position:absolute;z-index:3;left:50%;bottom:22px;transform:translateX(-50%);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8);display:flex;flex-direction:column;align-items:center;gap:10px;transition:opacity .4s}
.scroll-cue i{width:1px;height:38px;background:linear-gradient(#fff,transparent);animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.j-progress{position:absolute;z-index:3;left:0;bottom:0;height:2px;background:#fff;width:0}
@media (max-width:860px){.rooms{display:none}.scroll-cue{display:none}}

/* Bouton flottant */
.float{opacity:0;pointer-events:none;transition:opacity .3s}
.float.show{opacity:1;pointer-events:auto}
.float{position:fixed;z-index:25;right:max(20px,calc(env(safe-area-inset-right,0px) + 20px));bottom:calc(20px + env(safe-area-inset-bottom,0px));box-shadow:0 10px 30px rgba(0,0,0,.18)}

/* Services : cartes photo */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.card{display:grid;gap:16px;text-decoration:none;min-width:0;align-content:start}
.card figure{margin:0;overflow:hidden;aspect-ratio:4/3.4;max-width:100%;background:var(--line)}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.card:hover img{transform:scale(1.05)}
.card h3{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.card h3 .arrow{font-family:var(--sans);font-size:15px;color:var(--muted)}
.card p{color:var(--muted);font-size:15px;border-bottom:1px solid var(--line);padding-bottom:18px}
@media (max-width:1000px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}

.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(0,.9fr) 40px;gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:padding .3s}
.row .n{font-size:12px;letter-spacing:.14em;color:var(--muted)}
.row h3{font-size:clamp(28px,3.2vw,42px);font-weight:300}
.row p{color:var(--muted);font-size:15px}
.row .arrow{justify-self:end;color:var(--muted)}
.row:hover{padding-left:10px}
@media (max-width:760px){.row{grid-template-columns:44px 1fr;gap:6px 14px}.row p{grid-column:2}.row .arrow{display:none}}

/* Engagements avec grande photo */
.split{background:var(--paper);border-block:1px solid var(--line)}
.split .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,96px);align-items:center}
.split figure{margin:0;aspect-ratio:4/5;overflow:hidden;max-width:100%}
.split figure img{width:100%;height:100%;object-fit:cover}
.split .txt{display:grid;gap:28px;min-width:0}
.commit{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.commit li{padding:20px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:200px 1fr;gap:20px}
.commit b{font-family:var(--serif);font-weight:400;font-size:23px}
.commit span{color:var(--muted);font-size:15px}
@media (max-width:900px){.split .wrap{grid-template-columns:1fr}.split figure{aspect-ratio:4/3}}
@media (max-width:560px){.commit li{grid-template-columns:1fr;gap:4px}}

/* Aides */
.aids{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.aid-c{padding:34px 32px 38px 0;display:grid;gap:12px;align-content:start;border-bottom:1px solid var(--line);min-width:0}
.aid-c:not(:nth-child(3n+1)){padding-left:32px;border-left:1px solid var(--line)}
.aid-c .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.aid-c p{color:var(--muted);font-size:15px}
.mpr{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.mpr span{display:flex;align-items:center;gap:7px}
.mpr span::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c)}
.note{margin-top:28px;font-size:13.5px;color:var(--muted);max-width:80ch}
@media (max-width:900px){.aids{grid-template-columns:1fr 1fr}.aid-c:not(:nth-child(3n+1)){padding-left:0;border-left:0}.aid-c:nth-child(even){padding-left:26px;border-left:1px solid var(--line)}}
@media (max-width:600px){.aids{grid-template-columns:1fr}.aid-c:nth-child(even){padding-left:0;border-left:0}.aid-c{padding-right:0}}

/* En images */
.gallery{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}
.gallery figure{margin:0;display:grid;gap:14px;min-width:0}
.gallery .ph{overflow:hidden;max-width:100%}
.gallery img{width:100%;height:100%;object-fit:cover}
.gallery .big .ph{aspect-ratio:4/4.4}
.gallery .col{display:grid;gap:24px;min-width:0}
.gallery .col .ph{aspect-ratio:4/3}
.gallery figcaption{display:grid;gap:4px}
.gallery figcaption b{font-family:var(--serif);font-weight:400;font-size:28px}
.gallery figcaption span{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
@media (max-width:760px){.gallery{grid-template-columns:1fr}.gallery .big .ph{aspect-ratio:4/3}}

/* Méthode */
.method{background:var(--paper);border-block:1px solid var(--line)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);counter-reset:s;border-top:1px solid var(--ink)}
.steps li{counter-increment:s;padding:28px 24px 0 0;display:grid;gap:12px;align-content:start;min-width:0}
.steps li+li{padding-left:24px;border-left:1px solid var(--line)}
.steps li::before{content:counter(s,decimal-leading-zero);font-size:12px;letter-spacing:.16em;color:var(--accent)}
.steps h3{font-size:26px}
.steps p{color:var(--muted);font-size:15px}
@media (max-width:1000px){.steps{grid-template-columns:1fr}.steps li,.steps li+li{padding:24px 0;border-left:0;border-bottom:1px solid var(--line);grid-template-columns:60px 1fr;column-gap:16px}.steps li::before{grid-row:span 2;padding-top:6px}}

/* Simulateur */
.sim-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,96px);align-items:start}
@media (max-width:960px){.sim-grid{grid-template-columns:1fr}}
.sim-side{display:grid;gap:26px;position:sticky;top:110px;min-width:0}
@media (max-width:960px){.sim-side{position:static}}
.sim-side figure{margin:0;aspect-ratio:4/3;overflow:hidden;max-width:100%}
.sim-side figure img{width:100%;height:100%;object-fit:cover}
form.sim{background:var(--paper);border:1px solid var(--line);color:var(--ink);padding:clamp(24px,4vw,52px);display:grid;gap:28px;min-width:0}
.progress{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.progress i{height:2px;background:var(--line);transition:background .3s}
.progress i.on{background:var(--accent)}
.step-label{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
fieldset{border:0;margin:0;padding:0;display:grid;gap:12px;min-width:0}
fieldset+fieldset{margin-top:28px}
legend{font-family:var(--serif);font-size:30px;font-weight:400;margin-bottom:14px;padding:0}
.choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.choice span{display:flex;align-items:center;gap:12px;min-height:54px;padding:12px 16px;border:1px solid var(--line);font-size:15px;background:var(--bg);transition:border-color .2s,background .2s}
.choice span::before{content:"";width:14px;height:14px;flex:none;border:1px solid var(--muted);transition:all .2s}
.choice input[type=radio]+span::before{border-radius:50%}
.choice input:hover+span{border-color:var(--muted)}
.choice input:checked+span{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--paper))}
.choice input:checked+span::before{background:var(--accent);border-color:var(--accent);box-shadow:inset 0 0 0 3px var(--paper)}
.choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
@media (max-width:560px){.fields{grid-template-columns:1fr}}
.f{display:grid;gap:8px;min-width:0}
.f.full{grid-column:1/-1}
.f label{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.f input,.f select,.f textarea{font:inherit;font-size:17px;padding:10px 0 12px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);width:100%;transition:border-color .2s}
.f select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}
.f select option{background:var(--paper);color:var(--ink)}
.f input:focus,.f select:focus,.f textarea:focus{outline:none;border-bottom-color:var(--ink)}
.f small{color:var(--muted);font-size:13px}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--muted)}
.consent input{margin-top:4px;width:16px;height:16px;flex:none;accent-color:var(--ink)}
.nav-btns{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px}
.err{color:var(--err);font-size:14px;font-weight:500;min-height:1em}
.result{border-left:2px solid var(--accent);padding:4px 0 4px 22px;display:grid;gap:12px;margin-top:8px}
.result h4{margin:0;font-family:var(--serif);font-weight:400;font-size:22px}
.result ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;font-size:15.5px}
.result li{display:flex;gap:12px}
.result li::before{content:"—";color:var(--accent)}
.result p{font-size:14px;color:var(--muted)}
.done{display:grid;gap:14px}
.done h3{font-size:34px}
.done h3 em{color:var(--ok)}
.done p{color:var(--muted)}
.sim .arr{display:inline-block;transition:transform .25s}
.sim button:hover .arr{transform:translateX(3px)}

/* Zone et FAQ */
.depts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.dept{padding:24px 20px 26px 0;border-bottom:1px solid var(--line);display:grid;gap:2px;min-width:0}
.dept:not(:nth-child(4n+1)){padding-left:22px;border-left:1px solid var(--line)}
.dept b{font-family:var(--serif);font-weight:300;font-size:52px;line-height:1;font-variant-numeric:tabular-nums}
.dept span{font-size:14px;color:var(--muted)}
.dept.home b{color:var(--accent)}
.dept.home span::after{content:" · siège";color:var(--accent)}
@media (max-width:700px){.depts{grid-template-columns:1fr 1fr}.dept:not(:nth-child(4n+1)){padding-left:0;border-left:0}.dept:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}}
.faq-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,6vw,100px)}
@media (max-width:900px){.faq-wrap{grid-template-columns:1fr}}
.faq-wrap .intro{display:grid;gap:22px;align-content:start;min-width:0}
.faq{border-top:1px solid var(--ink);min-width:0}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:28px 48px 28px 0;font-family:var(--serif);font-size:26px;position:relative;line-height:1.3}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:34px;width:14px;height:14px;background:linear-gradient(var(--ink),var(--ink)) center/14px 1px no-repeat,linear-gradient(var(--ink),var(--ink)) center/1px 14px no-repeat;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 26px;color:var(--muted);max-width:62ch}

/* Contact sombre */
.contact{background:var(--night);color:var(--on-night)}
.contact .label{color:var(--on-night-muted)}
.contact-top{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--night-line);padding-top:18px;margin-bottom:clamp(48px,6vw,80px)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px 96px;align-items:start}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}
.contact h2{font-size:clamp(40px,5.4vw,72px)}
.contact .lead{color:var(--on-night-muted);margin-top:26px}
.c-lines{display:grid}
.c-line{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--night-line);font-size:15px}
.c-line:first-child{border-top:1px solid var(--night-line)}
.c-line span:first-child{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--on-night-muted);padding-top:3px}
.c-line span:last-child{text-align:right}
.c-big{font-family:var(--serif);font-weight:300;font-size:clamp(28px,2.8vw,38px);margin-bottom:22px;line-height:1.2}

footer{background:var(--paper);color:var(--muted);padding-block:64px 36px;font-size:14px;border-top:1px solid var(--line)}
footer .wrap{display:grid;gap:44px}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start}
@media (max-width:760px){.foot-top{grid-template-columns:1fr}}
footer .logo{color:var(--ink)}
footer .slogan{font-family:var(--serif);font-size:26px;font-weight:300;color:var(--ink);line-height:1.3;margin-top:18px;max-width:22ch}
footer h4{margin:0 0 12px;color:var(--ink);font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
footer a{text-decoration:none}
footer a:hover{color:var(--ink)}
.legal{border-top:1px solid var(--line);padding-top:22px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:start}
.legal details{flex:1 1 400px}
.legal summary{cursor:pointer;color:var(--ink)}
.legal details div{display:grid;gap:8px;margin-top:14px;max-width:80ch}

/* ===== Ajouts multi-pages ===== */
body{padding-left:0;padding-right:0}

/* Navigation : menu Services et menu mobile */
nav.main{align-items:center}
nav.main a[aria-current="page"],nav.main .dd>a[aria-current="page"]{color:var(--ink)}
nav.main a[aria-current="page"]{box-shadow:inset 0 -1px 0 var(--accent)}
.dd{position:relative;display:flex;align-items:center}
.dd>a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:9px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-3px) rotate(45deg)}
.dd-menu{position:absolute;top:calc(100% + 26px);left:-28px;min-width:300px;background:var(--paper);border:1px solid var(--line);padding:14px 0;display:grid;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .2s,transform .2s,visibility .2s;box-shadow:0 24px 50px rgba(0,0,0,.35)}
.dd-menu::before{content:"";position:absolute;inset:-28px 0 auto;height:28px}
.dd:hover .dd-menu,.dd:focus-within .dd-menu{opacity:1;visibility:visible;transform:none}
nav.main .dd-menu a{padding:11px 28px;font-size:11px;display:flex;justify-content:space-between;gap:16px}
nav.main .dd-menu a:hover{background:var(--bg);color:var(--ink)}
nav.main .dd-menu a span{color:var(--accent);letter-spacing:.1em}
.burger{display:none;margin-left:14px;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;place-items:center;flex:none}
.burger i{display:block;width:18px;height:1px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor;transition:all .2s}
.burger[aria-expanded="true"] i{box-shadow:none;transform:rotate(45deg)}
.burger[aria-expanded="true"] i::after{content:"";display:block;width:18px;height:1px;background:currentColor;transform:rotate(-90deg)}
@media (max-width:1060px){.burger{display:grid}.top .btn{margin-left:auto}}
.m-panel{position:fixed;z-index:29;inset:calc(var(--hh) + env(safe-area-inset-top,0px)) 0 0;background:var(--bg);overflow-y:auto;padding-block:28px calc(40px + env(safe-area-inset-bottom,0px))}
.m-panel .wrap{display:grid;gap:30px}
.m-panel h4{margin:0 0 6px;font:400 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}
.m-panel ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.m-panel li a{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);text-decoration:none;font-family:var(--serif);font-size:24px;line-height:1.2}
.m-panel li a[aria-current="page"]{color:var(--accent)}
@media (min-width:1241px){.m-panel{display:none!important}}
body.menu-open{overflow:hidden}
body.menu-open .float{display:none}

/* En-tête des pages intérieures */
.page-hero{background:var(--paper);border-bottom:1px solid var(--line);padding-block:clamp(40px,5vw,72px) clamp(56px,7vw,100px)}
.page-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,96px);align-items:center}
.page-hero.solo .wrap{grid-template-columns:minmax(0,1fr)}
.page-hero .ph-copy{display:grid;gap:24px;min-width:0;align-content:start}
.page-hero h1{font-size:clamp(44px,5.2vw,80px);line-height:1;letter-spacing:-.01em}
.page-hero.solo h1{max-width:16ch}
.page-hero h1 em{color:var(--accent)}
.page-hero .lead{font-size:18px}
.page-hero figure{margin:0;aspect-ratio:4/3;overflow:hidden;max-width:100%;outline:1px solid var(--line);outline-offset:10px;position:relative}
.page-hero figure img{width:100%;height:100%;object-fit:cover}
.page-hero figure.diagram{background:var(--bg);display:grid;place-items:center;padding:clamp(16px,3vw,32px);aspect-ratio:auto}
@media (max-width:960px){.page-hero .wrap{grid-template-columns:1fr}.page-hero figure{outline:0}}
.crumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);list-style:none;margin:0 0 clamp(28px,4vw,52px);padding:0}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--line)}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--ink)}
.crumbs [aria-current]{color:var(--accent)}

/* Repères chiffrés d'un service */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);margin-top:8px}
.facts div{padding:18px 18px 0 0;display:grid;gap:4px;min-width:0}
.facts div+div{padding-left:18px;border-left:1px solid var(--line)}
.facts dt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:0;font-family:var(--serif);font-size:22px;line-height:1.25}
@media (max-width:560px){.facts{grid-template-columns:1fr}.facts div+div{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.facts div{padding-top:14px}}

/* Texte long en deux colonnes */
.prose-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,6vw,100px);align-items:start}
.prose-grid>.side{display:grid;gap:22px;position:sticky;top:calc(var(--hh) + 40px)}
@media (max-width:900px){.prose-grid{grid-template-columns:1fr}.prose-grid>.side{position:static}}
.prose{display:grid;gap:22px;min-width:0;max-width:66ch;font-size:17px}
.prose p{color:color-mix(in srgb,var(--ink) 82%,var(--bg))}
.prose h3{font-size:clamp(26px,2.4vw,32px);margin-top:18px}
.prose ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.prose ul li{display:grid;grid-template-columns:22px 1fr;gap:12px;color:color-mix(in srgb,var(--ink) 82%,var(--bg))}
.prose ul li::before{content:"";height:1px;background:var(--accent);margin-top:.85em}
.prose strong{font-weight:500;color:var(--ink)}
.spec{display:grid;border-top:1px solid var(--ink);margin:6px 0 0}
.spec div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px;padding:16px 0;border-bottom:1px solid var(--line)}
.spec dt{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding-top:4px}
.spec dd{margin:0;font-size:15.5px}
@media (max-width:560px){.spec div{grid-template-columns:1fr;gap:4px}}

/* Étapes compactes (pages services) */
.mini-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));counter-reset:s;border-top:1px solid var(--ink)}
.mini-steps li{counter-increment:s;padding:26px 22px 0 0;display:grid;gap:10px;align-content:start;min-width:0}
.mini-steps li+li{padding-left:22px;border-left:1px solid var(--line)}
.mini-steps li::before{content:counter(s,decimal-leading-zero);font-size:12px;letter-spacing:.16em;color:var(--accent)}
.mini-steps h3{font-size:24px}
.mini-steps p{color:var(--muted);font-size:15px}
@media (max-width:900px){.mini-steps{grid-template-columns:1fr 1fr}.mini-steps li:nth-child(3){padding-left:0;border-left:0}.mini-steps li:nth-child(n+3){padding-top:30px}}
@media (max-width:560px){.mini-steps{grid-template-columns:1fr}.mini-steps li,.mini-steps li+li{padding:22px 0;border-left:0;border-bottom:1px solid var(--line)}}

/* Services liés */
.related{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.related a{display:grid;gap:10px;padding:28px 28px 30px 0;text-decoration:none;border-bottom:1px solid var(--line);min-width:0;transition:background .25s}
.related a+a{padding-left:28px;border-left:1px solid var(--line)}
.related a:hover h3{color:var(--accent)}
.related .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.related h3{transition:color .2s}
.related p{color:var(--muted);font-size:15px}
@media (max-width:860px){.related{grid-template-columns:1fr}.related a+a{padding-left:0;border-left:0}}

/* Bandeau d'appel à l'action */
.cta-band{background:var(--night);color:var(--on-night);border-top:1px solid var(--night-line);padding-block:clamp(72px,9vw,120px)}
.cta-band .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:32px 60px;align-items:end}
.cta-band h2{font-size:clamp(38px,4.6vw,64px)}
.cta-band h2 em{color:var(--accent)}
.cta-band p{color:var(--on-night-muted);margin-top:18px;max-width:52ch}
.cta-band .acts{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:860px){.cta-band .wrap{grid-template-columns:1fr}}
@media (max-width:560px){.cta-band .acts .btn{flex:1 1 100%;justify-content:center}}

/* Schéma des pertes de chaleur */
.loss svg{width:100%;height:auto;max-width:560px;display:block}
.loss .shape{fill:none;stroke:var(--muted);stroke-width:1.4}
.loss .hot .shape,.loss .hot.shape{stroke:var(--accent);stroke-width:2.4}
.loss .zone{fill:var(--paper)}
.loss .hot .zone{fill:color-mix(in srgb,var(--accent) 16%,var(--paper))}
.loss text{font-family:var(--sans);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;fill:var(--muted)}
.loss text.v{font-family:var(--serif);font-size:24px;letter-spacing:0;text-transform:none;fill:var(--ink)}
.loss .hot text{fill:var(--accent)}
.loss .hot text.v{fill:var(--accent)}
.loss .lead-line{stroke:var(--line);stroke-width:1}
.loss .hot .lead-line{stroke:var(--accent)}
.loss .air{fill:none;stroke:var(--muted);stroke-width:1.4;stroke-dasharray:4 5}
.loss .hot .air{stroke:var(--accent)}
.loss figcaption{margin-top:14px;font-size:12.5px;color:var(--muted);text-align:center}

/* Grille des services (accueil et page Services) */
.svc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink)}
.svc{display:grid;grid-template-columns:52px minmax(0,1fr) 24px;gap:6px 18px;padding:30px 28px 32px 0;border-bottom:1px solid var(--line);text-decoration:none;min-width:0}
.svc:nth-child(even){padding-left:28px;padding-right:0;border-left:1px solid var(--line)}
.svc .n{font-size:12px;letter-spacing:.14em;color:var(--accent);padding-top:12px}
.svc h3{font-size:clamp(26px,2.6vw,34px);transition:color .2s}
.svc p{grid-column:2;color:var(--muted);font-size:15px}
.svc .arrow{color:var(--muted);padding-top:10px}
.svc:hover h3{color:var(--accent)}
@media (max-width:860px){.svc-grid{grid-template-columns:1fr}.svc:nth-child(even){padding-left:0;border-left:0;padding-right:28px}}

/* Tableau des aides */
.table-wrap{overflow-x:auto;border-top:1px solid var(--ink)}
table.aid-t{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.aid-t th,.aid-t td{text-align:left;padding:16px 18px 16px 0;border-bottom:1px solid var(--line);vertical-align:top}
.aid-t th{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:400}
.aid-t td:first-child{font-family:var(--serif);font-size:21px;white-space:nowrap}
.aid-t td{color:color-mix(in srgb,var(--ink) 82%,var(--bg))}
.mpr-t{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.mpr-t div{padding:20px 18px 22px 0;display:grid;gap:6px;min-width:0}
.mpr-t div+div{padding-left:18px;border-left:1px solid var(--line)}
.mpr-t b{font-family:var(--serif);font-weight:400;font-size:24px;display:flex;align-items:center;gap:10px}
.mpr-t b::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--c)}
.mpr-t span{font-size:14px;color:var(--muted)}
@media (max-width:760px){.mpr-t{grid-template-columns:1fr 1fr}.mpr-t div:nth-child(3){padding-left:0;border-left:0}}

/* Fiche d'identité */
.id-card{border:1px solid var(--line);background:var(--paper);padding:clamp(24px,3vw,36px);display:grid;gap:4px}
.id-card .spec{border-top:0;margin:0}
.id-card .spec div:last-child{border-bottom:0}

/* Pages juridiques */
.doc{max-width:74ch;display:grid;gap:44px}
.doc section{padding:0;display:grid;gap:14px}
.doc h2{font-size:clamp(28px,3vw,38px)}
.doc p{color:color-mix(in srgb,var(--ink) 82%,var(--bg))}

/* Formulaire de contact */
form.contact-form{background:var(--paper);border:1px solid var(--line);padding:clamp(24px,4vw,52px);display:grid;gap:26px;min-width:0}
.f textarea{resize:vertical;min-height:110px}
.c-panel{display:grid;gap:30px;align-content:start;min-width:0}
.c-panel .spec dd{font-size:16px}

.sec-tight{padding-block:clamp(72px,9vw,120px)}
.sec-paper{background:var(--paper);border-block:1px solid var(--line)}
.more{margin-top:clamp(32px,4vw,48px);display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:560px){.top .btn{display:none}.burger{margin-left:auto}}
.checks li{align-items:flex-start}
.checks li::before{margin-top:.85em}

/* Qualifications */
.q-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink)}
.q-item{display:grid;gap:8px;align-content:start;padding:30px 28px 32px 0;border-bottom:1px solid var(--line);min-width:0}
.q-item:not(:nth-child(3n+1)){padding-left:28px;border-left:1px solid var(--line)}
.q-item b{font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.6vw,36px);line-height:1.1;color:var(--accent)}
.q-item .k{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.q-item p{color:var(--muted);font-size:15px}
@media (max-width:900px){.q-grid{grid-template-columns:1fr 1fr}.q-item:not(:nth-child(3n+1)){padding-left:0;border-left:0}.q-item:nth-child(even){padding-left:24px;border-left:1px solid var(--line)}}
@media (max-width:560px){.q-grid{grid-template-columns:1fr}.q-item:nth-child(even){padding-left:0;border-left:0}.q-item{padding-right:0}}

/* Thème bleu nuit et or : en-tête et pied de page clairs pour le logo */
body::before{background:var(--hdr)}
header.top{background:var(--hdr);color:var(--hdr-ink);border-bottom-color:var(--hdr-line)}
:root{--hh:96px}
.logo{gap:10px}
.logo img{display:block;width:auto;mix-blend-mode:multiply}
.logo .l-emb{height:68px}
.logo .l-mot{height:38px}
.top nav.main a{color:var(--hdr-muted)}
.top nav.main a:hover,.top nav.main a[aria-current="page"]{color:var(--hdr-ink)}
.top .btn-dark{background:var(--hdr-ink);color:var(--hdr)}
.top .btn-dark:hover{background:var(--accent);color:var(--hdr-ink)}
.dd-menu{background:var(--hdr);border-color:var(--hdr-line);box-shadow:0 24px 50px rgba(5,14,29,.25)}
nav.main .dd-menu a{color:var(--hdr-ink)}
nav.main .dd-menu a:hover{background:color-mix(in srgb,var(--accent) 10%,var(--hdr));color:var(--hdr-ink)}
nav.main .dd-menu a span{color:#A9802C}
.burger{border-color:var(--hdr-line);color:var(--hdr-ink)}
@media (max-width:1200px){nav.main{gap:22px}}
@media (max-width:560px){:root{--hh:72px}.top .wrap{height:72px}.logo .l-emb{height:44px}.logo .l-mot{height:22px}}
@media (max-width:360px){.logo .l-mot{height:18px}}
footer{background:var(--hdr);color:var(--hdr-muted);border-top:0}
footer h4,footer .slogan{color:var(--hdr-ink)}
footer a:hover{color:var(--hdr-ink)}
footer .slogan{font-size:22px}
.foot-logo img{width:min(260px,100%);height:auto}
footer .legal{border-top-color:var(--hdr-line)}
.hero h1 em,.page-hero h1 em{color:var(--accent)}

/* Zone d'intervention avec le camion */
.zone-band{padding:0;background:var(--paper);border-block:1px solid var(--line)}
.zone-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;max-width:1600px;margin:0 auto}
.zone-txt{display:grid;gap:24px;align-content:center;padding-block:clamp(64px,8vw,110px);padding-left:max(20px,calc((min(100vw,1600px) - var(--wrap))/2 + 20px));padding-right:clamp(24px,5vw,72px);min-width:0}
.zone-van{margin:0;position:relative;min-height:340px;overflow:hidden;max-width:100%}
.zone-van img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 60%}
.zone-van::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--paper) 0%,transparent 22%);pointer-events:none}
.regions{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 28px;border-top:1px solid var(--line);padding-top:18px}
.regions li{display:flex;gap:10px;align-items:baseline;font-size:15px;color:color-mix(in srgb,var(--ink) 85%,var(--bg));padding:5px 0}
.regions li::before{content:"";width:8px;height:8px;flex:none;border:1px solid var(--accent);transform:rotate(45deg) translateY(-1px)}
.regions li.home{color:var(--accent)}
.regions li.home::before{background:var(--accent)}
.regions li.home::after{content:"· siège";font-size:12px;letter-spacing:.08em;color:var(--muted)}
@media (max-width:900px){.zone-grid{grid-template-columns:1fr}.zone-txt{padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.zone-van{aspect-ratio:16/9;min-height:0}.zone-van::before{background:linear-gradient(180deg,var(--paper) 0%,transparent 18%)}}
@media (max-width:420px){.regions{grid-template-columns:1fr}}

/* Bandeau des labels et partenaires */
.labels{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.lab{display:grid;place-items:center;align-content:center;gap:4px;min-height:84px;padding:12px;background:#fff;border:1px solid var(--hdr-line);text-align:center;min-width:0}
.lab img{max-height:52px;width:auto;max-width:100%;object-fit:contain}
.lab b{font-family:var(--sans);font-weight:500;font-size:17px;letter-spacing:.04em;color:var(--hdr-ink)}
.lab span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--hdr-muted);line-height:1.4}
.labels.on-dark{margin-top:clamp(32px,4vw,48px)}
.labels.on-dark .lab{border-color:transparent}
@media (max-width:900px){.labels{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.labels{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zone-grid{align-items:center}
.zone-van{min-height:0;aspect-ratio:1188/678}
.zone-van img{object-position:center}

/* Barre de contact en haut de page */
.topbar{background:var(--night);color:var(--on-night-muted);font-size:12.5px;letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px}
.topbar a{text-decoration:none;color:var(--on-night)}
.topbar a:hover{color:var(--accent)}
.tb-r{display:flex;gap:22px;flex-wrap:wrap}
.tb-r a:first-child{color:var(--accent);font-weight:400;letter-spacing:.08em}
@media (max-width:760px){.tb-l{display:none}.topbar .wrap{justify-content:center}.tb-r{gap:16px;justify-content:center}}
.m-contact{font-family:var(--serif);font-size:22px;line-height:1.6;margin:10px 0 0}
.m-contact a{text-decoration:none}
@media (max-width:1240px){nav.main{gap:20px}nav.main a{letter-spacing:.16em}}

/* Labels : vrais logos */
.lab img{max-height:46px}
.lab img+span{margin-top:6px}

/* Réalisations */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chips a{border:1px solid var(--line);padding:9px 14px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--muted);transition:all .2s}
.chips a:hover{border-color:var(--accent);color:var(--ink)}
.real-wrap{display:grid;gap:clamp(64px,8vw,110px)}
.real-group{display:grid;gap:26px;scroll-margin-top:calc(var(--hh) + 20px)}
.rg-head{display:flex;align-items:baseline;gap:18px;border-bottom:1px solid var(--ink);padding-bottom:16px;flex-wrap:wrap}
.rg-head .n{font-size:12px;letter-spacing:.16em;color:var(--accent)}
.rg-head h2{font-size:clamp(32px,3.6vw,48px)}
.rg-head .btn{margin-left:auto;padding:8px 0}
.rg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.rg-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.rf{margin:0;display:grid;gap:12px;align-content:start;min-width:0;text-decoration:none}
.rf .ph{overflow:hidden;aspect-ratio:3/2;max-width:100%;background:var(--paper)}
.rg-grid.four .rf .ph{aspect-ratio:4/3.2}
.rf img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.rf:hover img{transform:scale(1.04)}
.rf figcaption{display:grid;gap:2px}
.rf figcaption b{font-family:var(--serif);font-weight:400;font-size:22px}
.rf figcaption span{font-size:13.5px;color:var(--muted)}
@media (max-width:1000px){.rg-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.rg-grid,.rg-grid.four{grid-template-columns:1fr}.rg-head .btn{margin-left:0}}

/* Aides par solution */
.aid-sol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.aid-sol article{padding:26px 22px 30px 0;border-bottom:1px solid var(--line);display:grid;gap:10px;align-content:start;min-width:0}
.aid-sol article:not(:nth-child(4n+1)){padding-left:22px;border-left:1px solid var(--line)}
.aid-sol .n{font-size:12px;letter-spacing:.16em;color:var(--accent)}
.aid-sol h3{font-size:24px}
.aid-sol h3 a{text-decoration:none}
.aid-sol h3 a:hover{color:var(--accent)}
.aid-sol ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px;color:var(--muted)}
.aid-sol li{display:grid;grid-template-columns:14px 1fr;gap:8px}
.aid-sol li::before{content:"";height:1px;background:var(--accent);margin-top:.8em}
@media (max-width:1000px){.aid-sol{grid-template-columns:1fr 1fr}.aid-sol article:not(:nth-child(4n+1)){padding-left:0;border-left:0}.aid-sol article:nth-child(even){padding-left:22px;border-left:1px solid var(--line)}}
@media (max-width:560px){.aid-sol{grid-template-columns:1fr}.aid-sol article:nth-child(even){padding-left:0;border-left:0}}
.legal-credit{font-size:13.5px;border-left:2px solid var(--accent);padding-left:16px;color:var(--muted)!important}
.rg-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:860px){.rg-grid.three{grid-template-columns:1fr}}
nav.main a{white-space:nowrap}
.top .wrap{gap:28px}
@media (max-width:1440px){nav.main{gap:22px}nav.main a{letter-spacing:.14em;font-size:10.5px}.logo .l-emb{height:58px}.logo .l-mot{height:32px}}
@media (max-width:1240px){nav.main{display:none}.burger{display:grid}.top .btn{margin-left:auto}}
@media (min-width:1241px){.m-panel{display:none!important}}
@media (max-width:560px){.logo .l-emb{height:42px}.logo .l-mot{height:21px}.top .wrap{gap:12px}}

/* ===== Recalibrage en-tête : le logo ne touche jamais le menu ===== */
.top .wrap{max-width:1360px;gap:0}
.top .logo{flex:none;margin-right:48px}
.logo .l-emb{height:56px}
.logo .l-mot{height:30px}
nav.main{gap:26px;margin-left:auto;margin-right:28px}
nav.main a{font-size:10.5px;letter-spacing:.15em}
@media (max-width:1240px){nav.main{display:none}.top .btn{margin-left:auto}.burger{margin-left:12px}}
@media (max-width:560px){.top .logo{margin-right:12px}.logo .l-emb{height:42px}.logo .l-mot{height:21px}.top .btn{display:none}.burger{margin-left:auto}}

/* Page solution : grand visuel */
.svc-hero{position:relative;padding:0;min-height:clamp(560px,78vh,760px);display:grid;color:#fff;overflow:hidden;background:var(--night)}
.svc-hero .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,14,29,.92) 0%,rgba(5,14,29,.72) 38%,rgba(5,14,29,.15) 72%),linear-gradient(0deg,rgba(5,14,29,.85) 0%,rgba(5,14,29,0) 34%)}
.svc-hero .wrap{position:relative;z-index:1;display:grid;grid-template-rows:auto 1fr auto;width:100%;padding-block:clamp(28px,4vw,48px) 0}
.svc-hero .crumbs{margin-bottom:0}
.svc-hero .crumbs,.svc-hero .crumbs a{color:rgba(255,255,255,.7)}
.sh-copy{display:grid;gap:22px;max-width:600px;align-content:center;padding-block:clamp(40px,6vw,80px)}
.svc-hero h1{font-size:clamp(44px,5.4vw,82px);line-height:1;letter-spacing:-.01em;text-shadow:0 2px 30px rgba(0,0,0,.3)}
.svc-hero h1 em{color:var(--accent)}
.svc-hero .lead{color:rgba(255,255,255,.88);font-size:18px}
.svc-hero .facts{border-top-color:rgba(255,255,255,.25);margin:0;padding-bottom:30px;max-width:900px}
.svc-hero .facts div+div{border-left-color:rgba(255,255,255,.2)}
.svc-hero .facts dt{color:rgba(255,255,255,.65)}
.svc-hero .facts dd{color:#fff}
@media (max-width:760px){.svc-hero::after{background:linear-gradient(0deg,rgba(5,14,29,.96) 0%,rgba(5,14,29,.8) 55%,rgba(5,14,29,.35) 100%)}.svc-hero .facts{grid-template-columns:1fr}.svc-hero .facts div+div{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.2);padding-top:12px;margin-top:12px}}
@media (max-width:560px){.svc-hero .hero-ctas .btn{flex:1 1 100%;justify-content:center}}

/* Avantages */
.adv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.adv-c{background:var(--paper);border:1px solid var(--line);padding:30px 26px 32px;display:grid;gap:12px;align-content:start;min-width:0}
.adv-c svg{width:38px;height:38px;color:var(--accent)}
.adv-c h3{font-size:25px}
.adv-c p{color:var(--muted);font-size:15px}
@media (max-width:1000px){.adv{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.adv{grid-template-columns:1fr}}
.prose-grid>.side .loss{margin-top:10px}

/* ===== Typographie nette : Montserrat pour les titres, Source Sans 3 pour le texte ===== */
:root{
  --serif:"Montserrat","Avenir Next","Helvetica Neue",Arial,sans-serif;
  --sans:"Source Sans 3","Segoe UI","Helvetica Neue",Arial,sans-serif;
  --muted:#B3BDD0; --on-night-muted:#A9B4C8;
}
body{font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.65;letter-spacing:0}
h1,h2,h3{font-family:var(--serif);font-weight:700;letter-spacing:-.015em;line-height:1.15}
h2{font-size:clamp(28px,3.1vw,42px)}
h3{font-size:clamp(18px,1.4vw,21px);font-weight:600;letter-spacing:-.005em}
em{font-style:normal;color:var(--accent)}
.label{font-family:var(--serif);font-size:12px;font-weight:600;letter-spacing:.14em}
.lead{font-size:18px;line-height:1.6}
.hero h1{font-size:clamp(34px,3.7vw,54px);line-height:1.12}
.page-hero h1,.svc-hero h1{font-size:clamp(34px,4vw,58px);line-height:1.1;font-weight:700}
.chap h1{font-size:clamp(34px,4.6vw,66px)}
.chap h2{font-size:clamp(30px,3.8vw,54px)}
.cta-band h2,.contact h2{font-size:clamp(28px,3.3vw,46px)}

/* Navigation et boutons lisibles */
nav.main a{font-family:var(--serif);font-size:13.5px;font-weight:600;letter-spacing:0;text-transform:none}
nav.main .dd-menu a{font-size:14px}
.btn{font-family:var(--serif);font-size:13.5px;font-weight:600;letter-spacing:.02em;text-transform:none;padding:17px 28px}
.top .btn{padding:14px 22px}
.btn-text{padding:14px 0}
.topbar{font-size:13.5px}
.crumbs{font-family:var(--serif);font-size:12px;letter-spacing:.06em;font-weight:500;text-transform:none}
.chips a{font-family:var(--serif);font-size:13px;letter-spacing:0;text-transform:none;font-weight:500}

/* Éléments qui utilisaient la police fine : titres nets, tailles mesurées */
.quick .q-title b{font-size:22px;font-weight:700}
.t-item b{font-size:17px;font-weight:600}
.commit b{font-size:17px;font-weight:600}
legend{font-size:22px;font-weight:700}
.result h4{font-size:18px;font-weight:600}
.dept b{font-size:38px;font-weight:700}
.faq summary{font-size:18px;font-weight:600;line-height:1.4;padding-block:24px}
.faq summary::after{top:31px}
.c-big{font-size:clamp(22px,2.2vw,28px);font-weight:600}
footer .slogan{font-size:17px;font-weight:600}
.m-panel li a{font-size:18px;font-weight:600}
.m-contact{font-size:18px;font-weight:600}
.facts dt{font-family:var(--serif);font-size:11px;font-weight:600;letter-spacing:.1em}
.facts dd{font-size:17px;font-weight:600}
.loss text{font-family:var(--serif);font-weight:600;letter-spacing:.06em}
.loss text.v{font-size:20px;font-weight:700}
.mpr-t b{font-size:19px;font-weight:700}
.q-item b{font-size:clamp(22px,2vw,28px);font-weight:700}
.q-item .k{font-family:var(--serif);font-size:11.5px;font-weight:600;letter-spacing:.1em}
.rf figcaption b{font-size:17px;font-weight:600}
.svc h3{font-size:clamp(20px,1.8vw,24px)}
.svc .n,.rg-head .n,.aid-sol .n,.row .n,.mini-steps li::before,.steps li::before{font-family:var(--serif);font-weight:700}
.rg-head h2{font-size:clamp(24px,2.6vw,34px)}
.steps h3,.mini-steps h3{font-size:19px}
.adv-c h3{font-size:19px}
.aid-sol h3{font-size:19px}
.aid-c .k,.related .k,.lab span,.step-label,.f label,.spec dt{font-family:var(--serif);font-weight:600;letter-spacing:.08em}
.spec dd{font-size:16px}
.regions li{font-size:16px}
.prose{font-size:17.5px}
.prose p,.prose ul li{color:#D9DEE8}
.rooms button{font-family:var(--serif);font-weight:600;letter-spacing:.06em}
.scroll-cue{font-family:var(--serif);font-weight:600;letter-spacing:.08em}

/* Logo d'en-tête : emblème + nom VOLTESIA, bien lisible */
:root{--hh:100px}
.logo{gap:14px}
.logo .l-emb{height:70px}
.logo .l-mot{height:30px}
@media (max-width:1440px){.logo .l-emb{height:66px}.logo .l-mot{height:28px}}
@media (max-width:560px){:root{--hh:78px}.top .wrap{height:78px}.logo{gap:8px}.logo .l-emb{height:52px}.logo .l-mot{height:20px}}
@media (max-width:370px){.logo .l-mot{height:16px}}

/* ===== Motion design ===== */
:root{--cool:#8EC3F0}
.svc-hero .bg{animation:kb 22s ease-in-out infinite alternate;transform-origin:60% 50%}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.09) translate(-1.5%,-1%)}}
.mo{margin:8px 0 0;display:grid;gap:12px}
.mo-frame{position:relative;background:radial-gradient(120% 90% at 30% 20%,#13284A 0%,var(--night) 70%);border:1px solid var(--line);padding:14px}
.mo svg{display:block;width:100%;height:auto}
.mo-tag{position:absolute;bottom:12px;right:12px;font-family:var(--serif);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 50%,transparent);padding:4px 8px}
.mo figcaption{font-size:14.5px;color:var(--muted)}
.mo text{font-family:var(--serif);font-size:13px;font-weight:600;fill:var(--ink)}
.mo text.sm{font-size:11.5px;font-weight:500;fill:var(--muted)}
.mo text.ttl{font-size:17px;font-weight:700}
.mo text.big{font-size:22px;font-weight:700;fill:var(--accent)}
.mo .gold-t{fill:var(--accent)}.mo .cool-t{fill:var(--cool)}
.mo .ln{fill:none;stroke:#C9D2E3;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.mo .ln.thin{stroke-width:1.2;opacity:.6}
.mo .ln.gold{stroke:var(--accent)}
.mo .gr{stroke:#2B4069;stroke-width:2}
.mo .sun{fill:color-mix(in srgb,var(--accent) 30%,transparent);stroke:var(--accent);stroke-width:2.5}
.mo .panel{fill:#1E3E78;stroke:#8FB0E8;stroke-width:1.5}
.mo .beam{stroke:var(--accent);stroke-width:2;fill:none;opacity:.8}
.mo .wire,.mo .hot{stroke:var(--accent);stroke-width:3;fill:none;stroke-linecap:round}
.mo .cold,.mo .air,.mo .cold-air{stroke:var(--cool);stroke-width:2.5;fill:none;stroke-linecap:round}
.mo .cold{opacity:.75}
.mo .heat,.mo .heat-arrow{stroke:#F08A5D;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.mo .glow{fill:color-mix(in srgb,var(--accent) 22%,transparent)}
.mo .water{fill:color-mix(in srgb,var(--accent) 55%,transparent)}
.mo .drop{stroke:var(--cool);stroke-width:2;stroke-linecap:round}
.mo .glass{fill:color-mix(in srgb,var(--cool) 10%,transparent);stroke:var(--cool);stroke-width:1.4}
.mo .cold-arrow{stroke:var(--cool);stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round}
.mo .insul{fill:none;stroke:var(--accent);stroke-width:12;stroke-linejoin:round;opacity:.9}
.mo .dpe{font-size:18px;font-weight:700;fill:#fff}
.mo .mk{fill:var(--ink)}.mo .mk-t{fill:var(--night);font-size:14px;font-weight:700}

.mo .flow{stroke-dasharray:7 9;animation:flow 1.1s linear infinite}
.mo .flow.rev{animation-direction:reverse}
.mo .d2{animation-delay:-.35s}.mo .d3{animation-delay:-.7s}
@keyframes flow{to{stroke-dashoffset:-32}}
.mo .spin{animation:spin 1.6s linear infinite}
.mo .spin.slow{animation-duration:14s}
@keyframes spin{to{transform:rotate(360deg)}}
.mo .pulse{animation:pulse 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes pulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}
.mo .rise{animation:rise 2.4s ease-in infinite}
.mo .rise.d2{animation-delay:-.8s}.mo .rise.d3{animation-delay:-1.6s}
@keyframes rise{0%{transform:translateY(8px);opacity:0}30%{opacity:1}100%{transform:translateY(-26px);opacity:0}}
.mo .fill{transform-box:fill-box;transform-origin:bottom;animation:fill 6s ease-in-out infinite}
@keyframes fill{0%{transform:scaleY(.12)}70%,100%{transform:scaleY(1)}}
.mo .fall{animation:fall .9s linear infinite}
.mo .fall.d2{animation-delay:-.3s}.mo .fall.d3{animation-delay:-.6s}
@keyframes fall{from{transform:translateY(0);opacity:1}to{transform:translateY(40px);opacity:0}}
/* Isolation : avant / après en boucle */
.mo .heat-arrow{animation:out 1.6s ease-out infinite}
@keyframes out{0%{opacity:0;transform:translate(0,0)}30%{opacity:1}100%{opacity:0}}
.mo .loss{animation:phaseA 8s infinite}
.mo .iso,.mo .lbl-b{animation:phaseB 8s infinite}
.mo .lbl-a{animation:phaseA 8s infinite}
@keyframes phaseA{0%,42%{opacity:1}50%,92%{opacity:0}100%{opacity:1}}
@keyframes phaseB{0%,42%{opacity:0}50%,92%{opacity:1}100%{opacity:0}}
/* Climatisation : hiver / été */
.mo .warm{animation:phaseA 8s infinite}.mo .cool{animation:phaseB 8s infinite}
/* Fenêtres : le froid s'arrête sur la vitre */
.mo .push{animation:push 2.4s ease-in infinite}
.mo .push.d2{animation-delay:-.8s}.mo .push.d3{animation-delay:-1.6s}
@keyframes push{0%{transform:translateX(0);opacity:0}20%{opacity:1}75%{transform:translateX(86px);opacity:1}100%{transform:translateX(92px);opacity:0}}
/* DPE : la maison remonte de G à B */
.mo .marker{animation:dpe 8s ease-in-out infinite}
@keyframes dpe{0%,18%{transform:translateY(0)}50%,85%{transform:translateY(-210px)}100%{transform:translateY(0)}}
@media (prefers-reduced-motion:reduce){.svc-hero .bg{animation:none}.mo .iso,.mo .lbl-b,.mo .cool{opacity:0}}

/* Accueil : animations en onglets */
.mo-tabs{display:grid;grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr);gap:clamp(24px,4vw,56px);align-items:start}
.mo-list{display:grid;border-top:1px solid var(--ink)}
.mo-list button{display:flex;gap:16px;align-items:baseline;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);color:var(--muted);font:600 16px/1.3 var(--serif);padding:16px 8px 16px 0;cursor:pointer;transition:color .2s,padding .2s}
.mo-list button span{font-size:12px;color:var(--accent);letter-spacing:.08em}
.mo-list button:hover{color:var(--ink)}
.mo-list button[aria-selected="true"]{color:var(--ink);padding-left:12px;box-shadow:inset 2px 0 0 var(--accent)}
.mo-panel{display:grid;gap:18px;justify-items:start}
.mo-panel .mo{width:100%;margin:0}
@media (max-width:900px){.mo-tabs{grid-template-columns:1fr}.mo-list{grid-template-columns:1fr 1fr;column-gap:16px}.mo-list button{font-size:14.5px;padding:12px 6px 12px 0}}
@media (max-width:420px){.mo-list{grid-template-columns:1fr}}
[hidden]{display:none!important}
@media (max-width:900px){
  .mo-list{display:flex;overflow-x:auto;gap:8px;border-top:0;padding-bottom:6px;scrollbar-width:none}
  .mo-list::-webkit-scrollbar{display:none}
  .mo-list button{flex:none;border:1px solid var(--line);padding:10px 14px;font-size:14px;white-space:nowrap}
  .mo-list button[aria-selected="true"]{padding-left:14px;box-shadow:none;border-color:var(--accent);color:var(--ink)}
}

/* Page Nos solutions : une animation par solution */
.sol-list{display:grid;gap:clamp(64px,8vw,110px)}
.sol-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center;scroll-margin-top:calc(var(--hh) + 24px)}
.sol-row.flip .sol-media{order:2}
.sol-media .mo{margin:0}
.sol-txt{display:grid;gap:18px;min-width:0}
.sol-txt h2{font-size:clamp(28px,3vw,40px)}
.sol-txt .facts{margin:0}
.sol-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
@media (max-width:900px){.sol-row{grid-template-columns:1fr}.sol-row.flip .sol-media{order:0}}
@media (max-width:560px){.sol-ctas .btn{flex:1 1 100%;justify-content:center}}
.sol-row.flip{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
@media (max-width:900px){.sol-row.flip{grid-template-columns:1fr}}
